【LLM】llama2(ラマ2)/環境
ubunu22での環境を想定。
↑インストール手順はここが確実かな
モデルのダウンロード(2023/12月時点)
⭐️conda環境構築後に実施した方が楽です。
フォームで送信するとメールが送られてくる。
...
Model weights available:
Llama-2-7b
Llama-2-7b-chat
Llama-2-13b
Llama-2-13b-chat
Llama-2-70b
Llama-2-70b-chat
...
When asked for your unique custom URL, please insert the following:
https://download.ll....
...
git clone https://github.com/facebookresearch/llama.git
cd llama
./download.sh
⭐️上記のshファイルを実行するためには下記のライブラリが必要。
wget
md5sum
⭐️apt-get等でインストールしてしまいましょう。
/download.shを実行するとメールに記載されたURLの入力が求められる。
必要なモデルを選択できる。(サイズが重いので気をつけましょう。)
llama-2-13b
llama-2-13b-chat
llama-2-70b
llama-2-70b-chat
llama-2-7b
llama-2-7b-chat
上記のモデル(フォルダ)を取得できる。
ではフォルダの中身を確認してみよう。
checklist.chk
consolidated.01.pth
consolidated.03.pth
consolidated.05.pth
consolidated.07.pth
consolidated.00.pth
consolidated.02.pth
consolidated.04.pth
consolidated.06.pth
params.json
それぞれのフォルダに対して、chkファイル、複数のpthファイル、それからjsonファイルが入っていることがわかる。
⭐慣例によりPyTorchファイルは「.pt」「.pth」拡張子で保存される。
conda環境構築
推論をするにあたり、condaの利用が簡易的です。
ここに自分で作成したcondaが動くdockerファイルを記載しておきます。
(他に参考にしてたやつ動かなかったんですよね..)
FROM nvidia/cuda:12.3.0-devel-ubuntu22.04
RUN apt-get update && apt-get install -y \
sudo \
wget \
vim \
git \
build-essential
# minicondaを構築
RUN wget \
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda \
&& rm -f Miniconda3-latest-Linux-x86_64.sh
ENV PATH="/opt/miniconda/bin:$PATH"
ARG PATH="/opt/miniconda/bin:$PATH"
RUN conda --version
RUN pip install --upgrade pip && \
conda update -n base -c defaults conda
RUN conda init bash
コンテナを起動後、コンテナに入り、condaの仮想環境を構築して、ログイン時に常に
activateするようにします。
(⭐️ここもdockerfileに記載できるとさらに利便性が高まりそうです。)
conda create -n llama python=3.10 -y
# 環境を変更
echo "conda activate llama" >> ~/.bashrc
. ~/.bashrc
環境内で(モデルをダウンロードするときのgitと同じ)cloneとその中にダウンロードしたファイルをおいておきましょう。(k8s上で構築するならPVないに作っておくとコンテナ終了しても無くならないのでGOODです。)
git clone https://github.com/facebookresearch/llama.git
cd llma
必要なライブラリも仮想環境上で(ローカルから)インスールしまいましょう。
pip install -e.
自分はダウンロードしたモデルをllamaフォルダ配下においているので下記のコマンド
を実行して、chatができることを確認できます。
torchrun --nproc_per_node 1 example_chat_completion.py \
--ckpt_dir llama-2-7b-chat/ \
--tokenizer_path tokenizer.model \
--max_seq_len 512 --max_batch_size 6
動作させたときの自分の感想
llama-2-7bのイメージ→勝手に会話を作っていくイメージ
llama-2-7b-chatのイメージ→命令を元に回答するイメージ
Discussion