- リンクを取得
- ×
- メール
- 他のアプリ
Stable Diffusion などをリリースしている Stability AI から、コーディング用 LLM 生成 AI という StableCode がリリースされました。
RTX2070 を搭載した PC を購入しているので、ローカルで動くか試してみます。
1. Hugging Face のモデルをダウンロードする。
StableCode は、ベースモデル、インストラクションモデル、ロングコンテキストウインドウモデルの 3 種類があります。今回はインストラクションモデルを使用してみようと思っていますが、このモデルは Hugging Face にログインし、使用許諾に同意する必要があります。
また、モデルデータが数 GB の容量なので、都度ダウンロードするよりは、一回のダウンロードで済ませたいと考えました。そのため、コンテナ外でモデルのリポジトリをクローンしておきます。
(クローンするディレクトリはどこでも構いませんが、後ほど、コンテナ起動時にディレクトリ共有することを忘れないようにします)
cd /work git lfs install git clone https://huggingface.co/stabilityai/stablecode-instruct-alpha-3b/
※ここで Hugging Face のユーザー情報を入力する必要があります。また、モデルデータをダウンロードするので、それなりに時間がかかります。また、lfs を有効にしておかないと、モデルデータがダウンロードできないようです
2. Docker イメージを起動する
CUDA の Docker イメージを使用し、--gpus で GPU を割り当てます。-v オプションで、先ほどリポジトリをクローンしたディレクトリを、コンテナ内と共有します。
docker run -it --gpus=all --rm -v /work:/work nvidia/cuda:11.8.0-base-ubuntu22.04 /bin/bash
3. ライブラリインストール
コンテナ内で必要ライブラリをインストールします。
apt update
apt install python3-pip -y
pip install torch torchvision torchaudio transformers
4. python コードを実行する
例をもとに、以下のコードを作成しました。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stablecode/stablecode-instruct-alpha-3b")
model = AutoModelForCausalLM.from_pretrained(
"stablecode/stablecode-instruct-alpha-3b",
trust_remote_code=True,
torch_dtype="auto",
)
model.cuda()
inputs =
inputs = """
###Instruction
Generate a python function to find number of CPU cores.
###Response
"""
inputs = tokenizer(
inputs, return_tensors="pt",
return_token_type_ids=False,
).to("cuda")
tokens = model.generate(
**inputs,
max_new_tokens=48,
temperature=0.2,
do_sample=True,
)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))
※モデルデータを指定している2か所は、実際のディレクトリ構成に応じて修正が必要です。パスが違っているとダウンロードしたモデルが認識されず、エラーになるか Hugging Face からダウンロードしようとすると思います
コメント
コメントを投稿