かりんちゃんの随心遊戯日誌

ゲームの日記、たまに政治の話、香港の話

RAGASとの死闘

仕事のRAGのプロトタイプがとりあえず構築したことで、次は評価システムを作って調整する作業に入る、RAGの評価では、よくこんなものが使われている:

ネットでも日本語の記事が結構多いので、簡単なことだろう…と思いきゃ…なぜか日本語の記事のように正常に評価できない…。

 

一番簡単な検証データ(全部同じ)を作っても、「Faithfulness」の評価はNANか0しか出ず、なんかおかしい?とソースコードを調べたら、苦戦した挙げ句、やっと原因を特定…

構造上、これもChatGPTを使っている。だからOpenAIキーやLLMモデルがいる。その利用過程では、なぜかjson.dumpsがensure_asciiがデフォルトのTrueとなっていて、日本語は全部Unicodeに変換されてる。

テキストがUnicodeのままでChatGPTに投げられると、ChatGPTは日本語単語と認識せず、Unicodeに変換されたアルファベットと数字のみ認識しており、そりゃまともに動かないわ

Githubでもとある人が指摘したが、いかんせんまだ反映されてない。

ではどうする…?

反映されるのを待つか…自分で改造するしかない。

 

まあ、一応使ってるプロンプトをオーバーライドして、json.dumps使ってる部分のみ改造し、値はそのままでインポートすればたいてい動ける。

ただ、「Faithfulness」はクラスの部分でもjson.dumpsの挙動が日本語非対応なので、それもオーバーライドしなきゃいけない…

 

思わぬところでずっとバトルしてた今日…。疲れた。