Google Colab で Llama 3 を試す
「Google Colab」で「Llama 3」を試したので、まとめました。
1. Llama 3
「Llama 3」は、Metaが開発したオープンモデルです。
2. Llama 3 のモデル
「Llama 3」では現在、次の4種類のモデルが提供されています。
2. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!pip install -U transformers accelerate bitsandbytes
(2) モデルカードで利用許諾。
(3) 「HuggingFace」からAPIキーを取得し、Colabのシークレットマネージャーの「HF_TOKEN」に登録。
(4) トークナイザーとモデルの準備。
今回は、「meta-llama/Meta-Llama-3-8B-Instruct」を使います。
from transformers import AutoModelForCausalLM, AutoTokenizer
# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
"meta-llama/Meta-Llama-3-8B-Instruct"
)
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Meta-Llama-3-8B-Instruct",
device_map="auto",
torch_dtype="auto",
)
(3) 推論の実行。
モデルカードの指示に従って eos_token_id を付加してます。
import torch
# プロンプトの準備
chat = [
{ "role": "system", "content": "あなたは日本語で回答するAIアシスタントです。" },
{ "role": "user", "content": "まどか☆マギカでは誰が一番かわいい?" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
# 推論の実行
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
do_sample=True,
temperature=0.6,
top_p=0.9,
max_new_tokens=256,
eos_token_id=[
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
],
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1) :], skip_special_tokens=True)
print(output)
この記事が気に入ったらサポートをしてみませんか?