仕事のRAGのプロトタイプがとりあえず構築したことで、次は評価システムを作って調整する作業に入る、RAGの評価では、よくこんなものが使われている:
ネットでも日本語の記事が結構多いので、簡単なことだろう…と思いきゃ…なぜか日本語の記事のように正常に評価できない…。
一番簡単な検証データ(全部同じ)を作っても、「Faithfulness」の評価はNANか0しか出ず、なんかおかしい?とソースコードを調べたら、苦戦した挙げ句、やっと原因を特定…
構造上、これもChatGPTを使っている。だからOpenAIキーやLLMモデルがいる。その利用過程では、なぜかjson.dumpsがensure_asciiがデフォルトのTrueとなっていて、日本語は全部Unicodeに変換されてる。
テキストがUnicodeのままでChatGPTに投げられると、ChatGPTは日本語単語と認識せず、Unicodeに変換されたアルファベットと数字のみ認識しており、そりゃまともに動かないわw
Githubでもとある人が指摘したが、いかんせんまだ反映されてない。
ではどうする…?
反映されるのを待つか…自分で改造するしかない。
まあ、一応使ってるプロンプトをオーバーライドして、json.dumps使ってる部分のみ改造し、値はそのままでインポートすればたいてい動ける。
ただ、「Faithfulness」はクラスの部分でもjson.dumpsの挙動が日本語非対応なので、それもオーバーライドしなきゃいけない…
思わぬところでずっとバトルしてた今日…。疲れた。