huggingface経由でgoogle/gemma-7b-itを動かす

初めに

以下を試してみます

huggingface.co

環境

  • L4 GPU(Jupyter Notebook)
  • ubuntu22.04

準備

以下のライブラリを入れます

!pip install transformers bitsandbytes accelerate

モデルのダウンロードをします

# pip install bitsandbytes accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(load_in_4bit=True)

tokenizer = AutoTokenizer.from_pretrained("google/gemma-7b-it")
model = AutoModelForCausalLM.from_pretrained("google/gemma-7b-it", quantization_config=quantization_config)

実行

# input_text = "まどマギで一番可愛いキャラはなんですか?"
chat = [
    { "role": "user", "content": "まどマギで一番可愛いキャラはなんですか?" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = tokenizer.encode(prompt, add_special_tokens=True, return_tensors="pt")

outputs = model.generate(input_ids=inputs.to(model.device), max_new_tokens=500)
print(tokenizer.decode(outputs[0]))

回答

<bos><start_of_turn>user
まどマギで一番可愛いキャラはなんですか?<end_of_turn>
<start_of_turn>model
まどマギで一番可愛いキャラは、個人によって異なるはずです。ただし、いくつかのキャラが人気のある内で、ここではいくつかの例を挙げてみます。

* **アギラ:** アギラは可愛らしい笑顔と明るいキャラクターが特徴です。彼女の笑顔は、多くのファンに笑顔を起こします。
* **アスカ:** アスカは可愛らしい笑顔と明るいキャラクターが特徴です。彼女の笑顔は、多くのファンに笑顔を起こします。
* **キリハ:** キリハは可愛らしい笑顔と明るいキャラクターが特徴です。彼女の笑顔は、多くのファンに笑顔を起こします。
* **サトール:** サトールは可愛らしい笑顔と明るいキャラクターが特徴です。彼女の笑顔は、多くのファンに笑顔を起こします。

これらのキャラは、それぞれ可愛らしい笑顔と明るいキャラクターを持っているため、多くのファンに人気があります。<eos>