🧱
日本語入力システムSumibiの開発 part10: プロンプトの最適化
はじめに
前々回の 記事 では、Sumibiの日本語変換精度をベンチマークし、その結果を分析して紹介しました。その後、プロンプトの工夫で変換精度が大きく向上したため、今回はその結果を共有したいと思います。プロンプトの微調整→ベンチマークのサイクルを繰り返しながら改善ポイントを探り、ベンチマークが性能チューニングの鍵となりました。
まずはグラフをご覧ください
図はプロンプト改善後の v2.4.0 の結果です。どのモデルにおいても性能が向上しています。
エラー率グラフの見方
-
縦軸が変換エラー率
ローマ字から漢字仮名交じり文への変換エラー率です。期待する日本語変換結果とSumibiの変換結果との間の編集距離(挿入・削除・置換の最小回数)を計算します。編集距離を求めるアルゴリズムは、Levenshteinです。
-
横軸が1回の日本語変換の費用
-
円の大きさが変換の平均時間(秒)
どのようなデータを使ったかなど、より詳細な情報は、こちらのベンチマーク結果のまとめを見てください。
プロンプトの改善内容
v2.4.0では、以下の太字部分を追加しただけですが、性能が大きく向上しました。
role | content |
---|---|
system | あなたはローマ字とひらがなを日本語に変換するアシスタントです。ローマ字の 「nn」 は 「ん」と読んでください。[](URL)のようなmarkdown構文は維持してください。# や ## や ### や #### のようなmarkdown構文は維持してください。ローマ字の字面をそのままひらがなや漢字にするだけで、元のローマ字にない文章を作り出さないでください。出力は変換後の一文のみ。注釈や説明は一切付けないください。もし、入力された文章が英語の文章と判断できた場合は、日本語に翻訳してください。 |
user | ローマ字とひらがなの文を漢字仮名混じり文にしてください。 周辺の文章は、「こんにちは、中野です。watashi no namae ha nakano desu . どうぞよろしくお願いします。」のような文章になっています。周辺の文脈を見てそれに合った語彙を選んでください。: watashi no namae ha nakano desu . |
assistant | 私の名前は中野です。 |
user | ローマ字とひらがなの文を漢字仮名混じり文にしてください。周辺の文章は、「説明はここまでです。それ以外は ikano toori desu .」のような文章になっています。周辺の文脈を見てそれに合った語彙を選んでください。: ikano toori desu . |
assistant | 以下の通りです。 |
user | ローマ字とひらがなの文を漢字仮名混じり文にしてください。 周辺の文章は、「{surrounding_text}」のような文章になっています。 周辺の文脈を見てそれに合った語彙を選んでください。: {text} |
※ surrounding_text 部分には「近年知名度gaagattekiteori」のような変換対象の周辺文章を含む文字列が入ります。
※ text部分には「gaagattekiteori」のような変換対象の文字列が入ります。
最後に
いかがでしたでしょうか?LLMを活用したアプリケーションおいて、今後もプロンプトが肝になると感じました。この記事が皆さんのお役に立てば幸いです。
Discussion