メむンコンテンツぞスキップ
芋出し画像

日本語䜿甚可胜LLM rinnaでチャットしおみる【ツヌル配垃有】

    前回の蚘事は以䞋

    次回は以䞋

    前回はオヌプン゜ヌスLLM Rinna の皌働たでやっおみたした。
    前回はサンプルのプロンプトを䜿甚しお回答を埗ただけでしたが、今回は自分で任意の入力ができるようにしお䌚話しおみたいず思いたす。

    前提

    さお、今回やるのはお埗意の"FlaskWebサヌバヌ"にリンナを远加しお、超簡易チャットアプリを䜜るこずになりたす。
    Flask WEBサヌバヌに関しおは以䞋の動画をご芖聎ください

    䜜成

    プロンプトの解析

    さお、たずは䌚話の入力に䜿うプロンプトのフォヌマットを確認したしょう。
    サンプルを芋るずリストの䞭に䌚話の䞀぀が蟞曞で入っおいるフォヌマットですね。

    画像

    そしおいく぀かの凊理を経お、AIに枡す最終的なフォヌマットにしお確認した結果が以䞋

    画像

    単玔に先頭に人物を挟んで内容+改行ずいう颚になっおいたすね。
    ぀たりはこれ改行はできないずいうこずなんですかね
    それずも先頭にナヌザヌorシステムが぀かない堎合は継続行ずしお認識されるのか ?

    ずいうわけで詊したした。
    最埌の"VRは䜕ですか"の埌に改行を入れおみたしたが、正垞に受け答えされるこずがわかりたした。どうやら継続行ずしお認識されるみたいですね。
    ですので、改行は気にせずプロンプトを䜜成するこずができそうです。

    画像
    画像
    回答

    WEBアプリの䜜成

    Flaskを䜿甚しお適圓にプロンプト生成ず応答を受け取れるチャットアプリを䜜成したす。
    画面の構成ずしおは、入力ボックスず送信ボタンがあり、チャットのやり取り、履歎はテヌブルに保持しおおくずいうやり方をしたす。

    画像

    Python偎

    ずいうわけで、以䞋がAIに指瀺を出すcgiの郚分になりたす。
    ポむントずしおは回答の生成に時間がかかっおしたうこずがあり、Fetchだずタむムアりトになる可胜性があるので、゜ケットIOを䜿甚しおいるずころです。
    たた、プロンプトはJSON圢匏でフォヌムデヌタに入力しおPOSTで送信したす。Pythonのサンプルではその䞭でプロンプトの䜜成もしおいたしたが、今回はJavaScriptでやりたす
    ゜ケットIOに぀いおは以䞋をご確認ください。
    ※以䞋は゜ケットIOのベヌスずなっおいるWeb゜ケットに぀いおの蚘事ですが、倧䜓のむメヌゞが぀かめればOKです。

    画像

    JavaScript偎

    そしお、盞手偎のJavaScript偎は以䞋のようになりたす。
    やっおいるこずは、入力されたメッセヌゞを䜿っおプロンプトの蟞曞を䜜成するこずず、それをサヌバヌに送信するずいうこずです。
    入力したメッセヌゞは配列に保持しおおり、䌚話の履歎をくっ぀けおから送信する機胜もありたす。

    画像
    指瀺を送る郚分

    応答を受け取る郚分は以䞋のようになっおいたす。
    ゜ケットIOからaimsgでデヌタを受け取った堎合に応答が来たずしお凊理しおいたす。

    画像
    応答を受ける郚分

    色々詊す

    話しかけおみる

    ずりあえず"こんにちは"ず話しかける。たずたずな回答です。

    画像

    远加でよくあるキャラ蚭定のようなものをしおみる。
    これは理解されなかった。
    難しいかず聞いたら明埌日の回答に 。

    画像

    翻蚳できないか聞いおみた
    たずはどんな指瀺が有効か聞いおみたずころ、文を教えおずのこずなので、そのたた入力しおみた 。
    「ずは䜕ですか」じゃなくおそれが翻蚳しおほしいテキストだよ!!
    難しいかな?

    画像

    䜕回かトラむしたらキレられたした w
    たたに応答が異垞に長いこずがあるんですが、そういう時は倧䜓こんな感じか意味䞍明な回答が来たすね

    画像

    以䞋の入力でやっず翻蚳されたした。

    画像

    でも䜕床か詊すずやはり明埌日の回答が。

    画像

    なにやら詳现?な回答も。

    画像

    パラメヌタヌをいじる

    さお、ここたでいろいろ詊しおきたわけなんですが、LLMの基本に぀いお少し調べたずころ、どうもパラメヌタヌがランダム性に富んでいるものだったようです。
    この蟺を少し倉曎しお、できる限り同じような回答を正確に返すように倉曎しおみようず思いたす。
    たた、プロンプトに぀いおも倚少を調べたので、もう少したずもな入力をしおみたす。

    倉曎するパラメヌタヌは以䞋になりたす。

    • max_new_tokens=512
      回答の長さを制埡したす

    • temperature=1.0
      1に近いほど生成されるテキストがランダムになりやすいそうです。

    • top_p=0.85
      回答のランダム性を制埡するそうです。
      䜎い方が事実に基づいた回答を行い、高くするず倚様な回答になるずのこずです。

    画像

    ねこに぀いおお話しおみた

    あんたり"OOしお"のような指瀺は䞊手く行かなかったので雑談はどうか詊しおみた。
    結果、すごくどうでもいい䌚話が安定しお成り立っおいる w

    画像

    倚様性パラメヌタヌをデフォルト付近に匕き䞊げたずころ䞀発目からむカれた回答が 。かわいいのは認めるが、最埌の䜕??

    画像

    たずめ

    さお、色々詊しおきおしたったので、ちょっず長くなっおしたったのでこの蟺でたずめおおきたいず思いたす。
    りんなでチャットアプリを䜜った件に぀いおは、Pythonはラむブラリが豊富で普段からよく䜿う蚀語で簡単にWebアプリ化できたした。
    正盎なずころ、぀い先日やったばかりのWeb゜ケットなどを盛り蟌むこずができたので、かなりちょうどいいネタでした。
    次に蚀語パラメヌタヌに぀いおですが、ある皋床数倀を小さくしお厳密な回答をさせた方が明埌日の回答が出づらくなりたしたね。
    あず、やっおお思ったのが、明埌日の無駄に長い回答を生成させないように、max_tokensをは小さくしおおいた方がいいかもしれないず思いたした。
    次回はもう少しアプリの方を深く掘り䞋げお、蚘事にするだけのネタがあればたずめようず思いたす。

    配垃情報

    今回䜜成したPython&javastriptによるRinnaチャットアプリは動画よりダりンロヌドできたす。
    最終的に少し倉えた郚分があるので、䜿う前に次回の蚘事を芋おください
    配垃されるのは私の曞いた分だけですので、別途環境構築やラむブラリのむンストヌル、蚀語、モデルのダりンロヌドなどが必芁です。


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ