「Google Colab」で「Phi-3」を試したので、まとめました。
1. Phi-3
「Phi-3」は、Microsoftが開発したSLM (Small Language Model)です。さまざまな言語、推論、コーディング、数学のベンチマークにわたって、同じサイズのモデルや次のサイズのモデルよりも優れたパフォーマンスを発揮します。
パラメータ数と学習トークン数は、次のとおりです。
2. Phi-3 のモデル
「Phi-3」では現在、次の4種類のモデルが提供されています。
2. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
!pip install -U transformers accelerate
(2) 「HuggingFace」からAPIキーを取得し、Colabのシークレットマネージャーの「HF_TOKEN」に登録。
(3) トークナイザーとモデルの準備。
今回は、「microsoft/Phi-3-mini-128k-instruct」を使います。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"microsoft/Phi-3-mini-128k-instruct"
)
model = AutoModelForCausalLM.from_pretrained(
"microsoft/Phi-3-mini-128k-instruct",
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
(4) 推論の実行。
import torch
chat = [
{"role": "user", "content": "Who is the cutest in Madoka Magica?"},
]
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,
max_new_tokens=256,
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1) :], skip_special_tokens=True)
print(output)