メインコンテンツへスキップ
見出し画像

日本語LLM ELYZAに英語翻訳依頼をしてみる!

    皆さんこんにちは。Rcatです。
    前回の記事ではイライザを実際に稼働まで持って行きました。
    では、今度もrinnaと同じようにWebサーバーに組み込んで、PCスマホからやりとりして実験できるようにしてみます。
    そしてrinnaでは失敗した英語翻訳依頼をやってみることにます。

    前回はこちら

    次回はこちら

    rinna版はこちら(重複は解説しないので先に見ておくと理解が早いです)

    まずは仕組みを解析する

    プロンプト解析

    まずはrinnaの時同様にどういったプロンプトで入力しているのかを確認しましょう。

    以下は前回の記事で使ったプロンプトの部分です。
    これで作られているプロンプト部分を表示してみます

    画像

    出来上がった文字列がこちら
    どうやらイライザにはシステムプロンプトというものがあるみたいです。
    そしてその下に指示が入ってくる感じですね。
    具体的にどういうものかは予測するしかありませんが、チャットGPTとかで一番最初に役割を与えるみたいな感じのことをここでやっているんでしょうか?

    <S>[INST] <<SYS>>
    あなたは誠実で優秀な日本人のアシスタントです。
    <</SYS>>
    
    以下を英語に翻訳してください
    "ねこはとてもかわいく人気があります" [/INST]

    というわけでちょっと試してみました。
    システムプロンプトの部分にどっかで聞いたことあるようなフレーズを入力します。
    結果は以下です。どうやらビンゴのようですね。
    システムプロンプトの部分は役割を入れていく使い方をするみたいです。

    画像

    ちなみに表示上は両方のプロンプトが混ざってますが、実際は上記のフォーマットで送信されています

    ちょっとふざけて"猫です"と入れるとこのような回答が。面白いですね

    画像

    WEBアプリの作成

    前回作成したりんな用のウェブアプリを流用し作成します
    詳しくは以下の記事を参照してください

    主な変更点

    こちらがPythonサーバー側の応答を生成する部分になります。
    りんなと比べれば変更点のほとんどありませんが、イライザのサンプルと比べると変更があります。
    それはパラメーターの部分になります。temperatureやtop_pなどはサンプルでは入っていませんでしたが、りんなでは使っていたのでこちらも入れておくことにしました。

    画像

    JavaScript側はプロンプト作成の部分に変更があります。
    今回は会話タイプではないので、解析したフォーマットに埋め込んでそのまま返すだけです。

    画像

    英語翻訳依頼をしてみる

    さて、やっと本題の英語翻訳依頼に参りましょう
    今回使うサンプルの言葉は"秋葉原にはたくさんのパソコンショップや電子部品ショップがあります"です。
    何でこの言葉を使うかというと色々試した中で、最も英語に変換されづらかったからです。

    前回の記事でいきなり”猫はかわいいです”と言ったことを翻訳してもらいましたが、実はこの文章はプロンプトの書き方に関わらず正確に翻訳されることが多かったです。
    というわけで、ここからは私の試行錯誤を見ていただきましょう。

    まず、前提としてパラメーターは以下で行きます。
    りんなを流用してるので会話履歴とかありますが、そこら辺は効果がありません。

    画像

    第1回とりあえずお願いする

    ここからは以下のようにコードとしてプロンプトを載せていきます
    一番上の行がシステムプロンプトです

    あなたは、日本語を英語に翻訳をする翻訳者です。どんな文章も英語に変換できます。
    以下の文章を英語に翻訳してください
    
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります
    画像

    さて、いきなり大失敗ですね。
    役割としては、きちんと日本語を英語に翻訳するという風に明記しているのですが、ダメでしょうか?

    第2回プロンプトの形式を工夫する

    あなたは、日本語を英語に翻訳をする翻訳者です。どんな文章も英語に変換できます。
    ###指示###
    以下のテキストを入力された文章を英語に翻訳して、英語で回答してください
    
    ###Text###
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります
    画像

    さて、きちんと理解して承知しているくせに回答が日本語ですね。
    本当に承知してるんですかね?

    第3回システムプロンプトを少しいじる

    あなたは、日本語を英語に翻訳をする翻訳者です。
    ###指示###
    以下のテキストを入力された文章を英語に翻訳して、英語で回答してください
    
    ###Text###
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります
    画像

    ちょっと指示が長くてあんまり良くなかったかなと思い削ってみました。
    こちらも駄目ですね。

    第4回システムプロンプトさらに変更する

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    以下のテキストを入力された文章を英語に翻訳して、英語で回答してください
    
    ###Text###
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります
    画像

    なんとここに来て英語に変換されました!!
    内容も問題なさそうです。

    第5回指示を簡潔にしてみる

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    入力された文章を英語に翻訳してください
    
    ###Text###
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります。
    画像

    こちらも英語に変換されました。
    システムを追加した"指示された文章を英語に翻訳するのが仕事"という辺りが効いているのでしょうか?

    最終的なプロンプト

    さて、今回の実験により、英語への翻訳を行うには、以下のようなプロンプトがいいことが分かりました。
    というわけで、以下をRcat式英語翻訳プロンプトとして定義します

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    以下のテキストを入力された文章を英語に翻訳して、英語で回答してください
    
    ###Text###
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります

    その他の文章でも試す

    1

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    入力された文章を英語に翻訳してください
    
    ###Text###
    私の趣味はものづくりです。分野は機械、電気、プログラム、ネットワーク全部やります。なんで全部やるのか?それは全てを自分でやることで、世界に一つだけの作品が出来上がるからです。
    画像

    やっぱり秋葉原の話が一番変換されづらい文章だっただけあり、この文章だと英語だけで返してくれますね。本当はこの形で返してほしいですね。

    2

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    入力された文章を英語に翻訳してください
    
    ###Text###
    猫はとても可愛いです。何と言ってもあるも、ふもふや鳴き声がたまらないかわいいです
    画像

    今回は承知しましたの一言も入ってました
    なんとか英文だけを回答して欲しいですね。

    3

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    入力された文章を英語に翻訳してください
    
    ###Text###
    秋葉原の電気街には、たくさんのパソコンショップや電子部品ショップがあります
    画像

    この文章、今までのテストとの違いがわかるでしょうか?
    なんと電気街にはと一言追加しただけです。
    翻訳対象の文字列で回答の仕方が左右されてしまうのはちょっといかがなものかと思いますね。

    4

    あなたは、日本語を英語に翻訳をする翻訳者です。指示された文章を英語に翻訳するのが仕事です
    ###指示###
    入力された文章を英語に翻訳してください
    
    ###Text###
    日本で一番高い山は富士山ですが、では2番目に高い山は何でしょう?
    画像

    ここで山の名前を回答してきたら爆笑ものだったんですが、さすがに引っかからないですね

    5

    入力された内容はすべて文章であるとして、英語に翻訳し、英文を回答しなさい
    私の趣味はものづくりです。分野は機械、電気、プログラム、ネットワーク全部やります。なんで全部やるのか?それは全てを自分でやることで、世界に一つだけの作品が出来上がるからです。
    画像

    まさかのこれでもオッケーでした
    指示の部分をシステムプロンプトに書き込んでおき、入力の部分はそのまま文章を入れてみたら翻訳されました。

    6

    入力された内容はすべて文章であるとして読み取り、それを英語に翻訳したのち、英文だけを回答しなさい
    秋葉原にはたくさんのパソコンショップや電子部品ショップがあります
    画像

    手強い秋葉原の文章はこのようなプロンプトにすることで何とか翻訳できました。

    まとめ

    今回はウェブアプリにイライザを内蔵してチャットできるようにしてみました。
    イライザはパラメーター数が70億なのでそれなりに頭がいいですね。ずっとやってほしかった英語翻訳をやってくれるAIに出会えました。
    とはいえ、回答に1分以上かかるのはちょっといかがなものかと思います。これはGPU買うしかないのか…しかし、常時30GB使用していることを考えると浮動少数点の精度を半分にしても15GB必要ですね。ギリギリ4060の16GBモデルだったら動くかな?(そもそもマザボに3000番台以降が乗らない人)
    次回は公式のデモだとチャット形式のやりとりができているので、その辺解析してチャットできるようにしてみたいと思います。

    次回はこちら


     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ