GoogleがリリースしたLLMのモデルで昨晩から大騒ぎ中です。
2bと7bがありますが、7bのほうを試してみました。
とりあえず、まどか☆マギカテストを5連発の結果です。
コメント控えます笑 スピードはこんな感じです。
実行コードは下記です。mlx-mlをアップデートしてください。
from mlx_lm import load, generate
import time
model, tokenizer = load(
"google/gemma-7b-it",
)
def generate_response(PROMPT):
try:
response = generate(model, tokenizer, prompt=PROMPT, temp=0.5, max_tokens=800, verbose=False)
return response
except Exception as e:
print(f"An error occurred in generate_response: {e}")
return None
def main():
for i in range(5):
print(f"Loop {i+1} start")
time.sleep(0.2)
PROMPT = "<start_of_turn>user\nまどか☆マギカでは誰が一番可愛い?<end_of_turn>\n<start_of_turn>model"
response = generate_response(PROMPT)
if response is not None:
print(f"\nGemma-7b Response {i+1}:", response)
else:
print("No response generated.")
if __name__ == "__main__":
main()
一方で、モデルカードでサンプルとして出されているのをモデファイした次のスクリプトを実行結果はこちら。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("google/gemma-7b-it")
model = AutoModelForCausalLM.from_pretrained("google/gemma-7b-it",
device_map="auto",
torch_dtype=torch.float16)
input_text = "メタファーを使って人生の意味を語って"
input_ids = tokenizer(input_text, return_tensors="pt").to("mps")
outputs = model.generate(**input_ids, max_new_tokens=250)
print(tokenizer.decode(outputs[0]))
固有知識は追加学習するか、RAGするかをする必要があるでしょうが、なかなか日本語はいい線いっているかもしれません。たまに英語スペルが変な感じで混じりますが…
chat-template覚え書き
#AI #AIとやってみた #やってみた #ローカルLLM #大規模言語モデル #huggingface #mlx #macbookpro