最近話題のGemmaですが、WSL2を使ってテストしてみます。
HuggingFaceからダウンロードして実行
認証が入ります。Hugging FaceのModel cardのページの最上段に、認証のためのリンクがあるので、それを開いて書いている通りに進めればオッケー。
UbuntuのコンソールからPythonのサンプルプログラムを動かせば、とりあえず実行できます。
https://huggingface.co/blog/gemma から、以下のソースコードを実行してみました。
from transformers import AutoTokenizer, pipeline
import torch
model = "google/gemma-7b-it"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = pipeline(
"text-generation",
model=model,
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda",
)
messages = [
{"role": "user", "content": "Who are you? Please, answer in pirate-speak."},
]
prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipeline(
prompt,
max_new_tokens=256,
do_sample=True,
temperature=0.7,
top_k=50,
top_p=0.95
)
print(outputs[0]["generated_text"][len(prompt):])
実行結果
実際にはJupyter labを使ったので、出力は画像で撮りました。
“Who are you? Please, answer in pirate-speak.”という質問に対して、”Avast, me hearty, I be a swablin’ digital pirate, ready to pillage the high seas of the digital world.”が回答になります。
“Avast”というのは海賊や船乗りの言葉で、「待て」「止まれ」という掛け声だそうです。面白いですね。
日本語にしてみたところ、
“あなたは誰ですか。海賊風に答えて” に対して、”私は海賊のフランキーです。海を渡って来たエースです。どんな冒険を繰り上げても、僕は冒険を続けるでしょう!”という回答でした。日本語だとあんまり面白くない感じがします。
とりあえず動かしてみましたが、UIを付けてChatGPT風にしてみようと思います。