Google Colab で Llama-3.1-Swallow を試す
「Google Colab」で「Llama-3.1-Swallow」を試したのでまとめました。
1. Llama-3.1-Swallow
「Llama-3.1-Swallow」は「Llama 3.1」の英語の能力を維持しながら、日本語の能力を強化した大規模言語モデル (8B, 70B) です。「Llama 3.1」をベースに、東京科学大学情報理工学院の岡崎研究室と横田研究室、国立研究開発法人産業技術総合研究所の研究チームで開発されました。
2. Colabでの実行
Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!pip install transformers accelerate bitsandbytes
(2) 「HuggingFace」からAPIキーを取得し、Colabのシークレットマネージャーの「HF_TOKEN」に登録。
(3) トークナイザーとモデルの準備。
メモリ削減のため8bit量子化しています。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
"tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.1"
)
model = AutoModelForCausalLM.from_pretrained(
"tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.1",
device_map="cuda",
torch_dtype="auto",
load_in_8bit=True,
)
(4) 推論の実行。
# メッセージの準備
chat = [
{ "role": "user", "content": "まどか☆マギカでは誰が一番かわいい?" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
# 推論の実行
input_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
def generate():
model.generate(
input_ids,
max_new_tokens=512,
streamer=streamer
)
thread = Thread(target=generate)
thread.start()
for text in streamer:
print(text, end="", flush=True)
thread.join()
この記事が気に入ったらサポートをしてみませんか?