見出し画像

Rakuten/RakutenAI-7B-chat を試してみる ~ Gradioつかって

楽天グループが7Bのモデルを発表しました。

このなかの、Rakuten/RakutenAI-7B-chat を発表日から試していたのですが、上手く会話が成立しませんでした。

ふと思って、掲載サンプルにあるシステムメッセージを省いて、入力をするとちゃんと会話が成立できました。

上記のサンプルコードには下記の部分があります。

requests = [
    "「馬が合う」はどう言う意味ですか",
    "How to make an authentic Spanish Omelette?",
]

system_message = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: {user_input} ASSISTANT:"

for req in requests:
    input_req = system_message.format(user_input=req)

これは無視して、以下のChat_templateで上手くいきました。

chat_template =  (
    "{% for message in messages %}"
    "{{message['role'] + ':'  + message['content']  + '\n'}}"
    "{% endfor %}"
    "{% if add_generation_prompt %}"
    "{{ 'assistant :' }}"
    "{% endif %}"
)

以下は、mlx環境でのスクリプト全体です。

import time
import gradio as gr
from mlx_lm import load, generate

model, tokenizer = load("Rakuten/RakutenAI-7B-chat")

chat_template =  (
    "{% for message in messages %}"
    "{{message['role'] + ':'  + message['content']  + '\n'}}"
    "{% endfor %}"
    "{% if add_generation_prompt %}"
    "{{ 'assistant :' }}"
    "{% endif %}"
)


def predict(message, history, token, temp_value):
    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,
                                           chat_template=chat_template)
    # システムメッセージを頭に入れるとちゃんと会話にならない!! full_prompt = f"{system_message}\n{inputs}"
    full_prompt = inputs
    print (f"入力される最終プロンプトはこんな感じ:\n{full_prompt}")
    response = generate(model, tokenizer, prompt=full_prompt, temp = temp_value, max_tokens = token, verbose=False) 
    #return  response.strip()
    for i in range(len(response)):
            time.sleep(0.05)
            yield response[: i+1]

demo = gr.ChatInterface(predict, 
    title="Rakuten/RakutenAI-7B-chat",
    description="",
    additional_inputs=[
        gr.Slider(100, 1024, value=512, label="Tokens"),
        gr.Slider(0, 1, value=0.3, label="Temperture")
                        ]
                       )

if __name__ == "__main__":
    #demo .queue().launch()
    demo.launch()

実行すると、こちらの画面

あなたは誰?

私は楽天のAI開発チームによって作られた人工知能モデルです。ユーザーとの会話を通して質問や要望に答えるなどのコミュニケーションをとることができます。

まどか☆マギカでは誰が一番可愛い?

この質問は、個人の好みや価値観による差異が大きいため、一概に誰が一番可愛いとは言えないかもしれません。

しかし、まどか☆マギカには、主人公のまどかと、その友情や絆を描いたキャラクターがたくさん登場します。彼女たちの可愛さは、それぞれのキャラクターの個性や魅力によって作られています。

また、まどか☆マギカには、主人公のまどかと、その友情や絆を描いたキャラクターがたくさん登場します。彼女たちの可愛さは、それぞれのキャラクターの個性や魅力によって作られています。

人生の意味を論じて

申し訳ありませんが、人生の意味を論じることは、私のプログラムでは想定していない質問です。人生の意味は、人それぞれで、個人の価値観や経験、考え方によって異なってきます。

人生の意味を探す旅は、自分自身と向き合い、自分の人生を見つめ直す旅でもあります。自分の人生の意味を見つけるためには、自分自身を理解し、自分の人間関係を築き、自分の人間性を尊重することが必要です。

人生の意味を探す旅は、自分自身を尊重し、自分の人間関係を尊重し、自分の人間性を尊重することが必要です。自分の人生の意味を見つけるためには、自分自身を理解し、自分の人間関係を築き、自分の人間性を尊重することが必要です。

人生の意味を探す旅は、自分自身を尊重し、自分の人間関係を尊重し、自分の人間性を尊重することが必要です。自分の人生の意味を見つけるためには、自分自身を理解し、自分の人間関係を築き、自分の人間性を尊重することが必要です。

(最後2段落はリピートでした)

ドラえもんについて教えて

ドラえもんは、藤子・F・不二雄(1969年 - 1996年)、藤子・F・不二雄(2016年 - )による日本の漫画作品、またはその主人公の名である。小学館の漫画雑誌『小学五年生』『小学六年生』に1970年から連載された。単行本は全45巻。

ドラえもんは、小学館の漫画雑誌『小学五年生』『小学六年生』に1970年から連載された。作者は藤子・F・不二雄(1969年 - 1996年)、藤子・F・不二雄(2016年 - )。単行本は全45巻。

ドラえもんは、ひみつ道具を使って、のび太やしずか、ジャイアン、スネ夫といった友達や、先生や家族との日常生活の中で、楽しい冒険を繰り広げるのが基本的なストーリー展開である。ひみつ道具は、タイムマシンや空を飛べる道具、未来を想像する道具など、さまざまな種類がある。

ドラえもんは、1979年にテレビアニメ化され、現在までに3回アニメ化されている。また、映画化も何度もされており、2015年には実写映画も公開された。ドラえもんは、日本を代表する国民的キャラクターとして、さまざまな商品やイベント、テーマパークなどで利用されている。

ドラえもんは、世界各国で翻訳・出版されており、世界でも人気の高い漫画キャラクターの1つである。

登場人物で一番どじなのは誰?

ドラえもんのひみつ道具で、どじな人物を普通の人間に戻す効果があるのは、「どじ道具」です。

ひみつ道具でいちばん有名でみんなが欲しがってるのは?

ドラえもんのひみつ道具で、いちばん有名でみんなが欲しがっているのは、タイムマシンです。

タイムマシンは、「未来を旅する」ひみつ道具で、ドラえもんのひみつ道具の中でも特に有名です。タイムマシンで、過去に戻って、好きな時に好きな場所へ行きたい、過去に戻ってやり直したい、未来を旅して未来を楽しみたいと思っている人が多いからです。

ドラえもんのひみつ道具で、タイムマシン以外にも、空を飛べる道具、未来を想像する道具、未来を旅する道具、未来を楽しむ道具、ひみつ道具で遊ぶ道具などがあります。

ドラえもんのひみつ道具で、どれも有名でみんなが欲しがっているのは、「タイムマシン」です。



以上の感じでした。文脈を読んで答えてくれます。
サンプルでなくて、上のuser: assistant:のフォーマットでうまくいくようですので、試してみてください。


#AI #AIとやってみた #ローカルLLM #MLX #Huggingface #大規模言語モデル #RakutenAI #Gradio

この記事が参加している募集

AIとやってみた

この記事を最後までご覧いただき、ありがとうございます!もしも私の活動を応援していただけるなら、大変嬉しく思います。