Terminalで、c4ai-command-r-plus-104b-iq2_xxs.gguff を走らせた記事を書きましたが、やっぱりインターフェースでやり取りをしたいと思って、Gradioを用いてみました。
まずは、llama-cpp-pythonを以下でアップデート。
pip install -U llama_cpp_python
これで、⌘R-Plusが使えるようになるはずです。
前に使ったスクリプトをちょこちょこと弄って、以下のスクリプトが動くようになりました。
今回の特徴は、AutoTokenizerモジュールを取り込んで、chat-templateをモデルから取り込んで変換することにしたことです。
import time
import gradio as gr
from llama_cpp import Llama
from transformers import AutoTokenizer
llm = Llama(model_path = "ここはモデルのパス名/ggml-c4ai-command-r-plus-104b-iq2_xxs.gguf", n_gpu_layers= -1, n_ctx=2048, verbose = False)
model_id = "CohereForAI/c4ai-command-r-plus"
tokenizer = AutoTokenizer.from_pretrained(model_id)
def predict(message, history, token):
prompt = []
for human, assistant in history:
prompt.append({'role': 'user', 'content': human})
prompt.append({'role': 'assistant', 'content': assistant})
prompt.append({'role': 'user', 'content': message})
inputs = tokenizer.apply_chat_template(prompt,
tokenize=False,
add_generation_prompt=True)
full_prompt = inputs
output = llm(full_prompt, max_tokens=token, stop=["<|END_OF_TURN_TOKEN|>"], echo=False,)
return(output['choices'][0]['text'])
demo = gr.ChatInterface(predict,
title="Llama.cpp-python-sample",
description="",
additional_inputs=[
gr.Slider(100, 1024, value=512, label="Tokens")
]
)
if __name__ == "__main__":
demo .queue().launch()
llama.cpp-pythonでは、temperatureの設定の仕方が私にはわからなかったので、tokensの調整スライダーだけ残してあります。
64GBのM3 max MacBookProで動きました。
生成中のメモリーはこんな感じ。
あなたは誰?
人生の意味をメタファーを使って説明して。
猫の視点で、猫の語りで、語って
野良猫だったとしたら?
猫が天下を支配した世界では人間はどのように生きるべきでしょうか?
という感じです。iq2_xxs で、これですので凄いですね。
あとHuggingChatに、このモデルが入ったというニュースがありました。
ぜひHuggingChatでも遊んでください。
上のサイトでの実行結果です。
猫の視点から猫の語りで、人間を評価して
#AI #AIとやってみた #やってみた #Huggingface #ローカルLLM #Llama .cpp #Command -R-Plus