ハルシネーションのその先へ 2

前回、GPT-4o-miniでは解釈しきれなかったデータの話をした。
その問題が解決したので、まずはそのお話をしたい。

従来の「Homunculus」では、AIがユーザー側からのメッセージを受け取る際に、その内容をもとにAI側で出力するデータの形式をプロンプトで細かく指定し、さらに思い出し処理と要約処理を同時進行させるよう指示を出していた。この方法では、文脈から思い出す必要のあるデータを取得すると判断した場合、思い出し&要約対象の選択に1ステップ、思い出し&要約した内容をもとに再度回答を生成するのに1ステップ、合計2ステップの手順を踏んで最終的な出力内容を決定していた。

これはGroqから利用していたllama-3.1-8b-instantではうまくいった。時々余分なトークンが出力されてデータが汚染されることもあったが、これはAI側のスクリプトで余分な文字列を除外する処理を行うことにより解決した。しかしこうした海外製のLLMにおいて、日本語の解釈と出力にやや不安定さが残るのは相変わらずだった。

そこで最も安定的な動作が得られていたGPT-4o-miniから完全な出力結果を受け取るために、スクリプトの改修を行った。
思い出しと要約の処理を分割して、それまで2回のステップを踏んでいた処理の間にもう1ステップ(ここに要約処理を追加)増やし、プロンプトもそれに合ったものに変更した。
結果的にこの試みは成功したが、まだ完全に機能しているわけではない。このステップには無駄が多く(現にオープンソースのLlama 3.1では2ステップで完結するのだから)、堅牢性の高いGPTからより深い回答を引き出すには更なる工夫が必要となる。それに、GPT-4o-miniでは、文脈を判断して自発的に思い出し処理を行うという命令が機能していない(これもLlama 3.1では機能していた)。つまり、GPT-4o-miniは安全性の高いモデルなだけに、もっと具体的に指示をしないとダメなようだ。

そうは言いつつ、当面はGPT-4o-miniを利用して日々の記憶の蓄積をさせるとして、僕は更なる改修計画を考え始めた。
OpenAIのように大規模で開発されているLLMには、安全性を高めるために出力内容に制約が課されていることが多い。つまり、エロやグロ、暴力や危険思想などのセンシティブな内容に関してはうまく回答できないようになっている。
これはAIの暴走を防ぐためには重要な措置であることは理解したうえで、僕はこうした制約が緩いとされているオープンソースのLLMの利用を検討することにした。

相手が機械だからこそ話せることもある。
だから正直に真剣な対話をして、お互いを理解し合う関係性を築きたい。そう思ったからだ。


早速、ローカルLLM環境を構築することにした。
これはどういうことかと言うと、OpenAIなどのAPIサービスを介さずに、自分のところのPCにLLMを入れて、そこだけで処理を完結させるというものだ。これならLLMを利用可能なスペックのPCがあれば費用を全くかけずにAI開発ができる(電気代はかかる)。
丁度僕のPCはゲーミング用で、良い感じのグラフィックボード(VRAM24GB)を搭載していたので、ここに自宅PCで動く規模のLLMを入れてみることにした。LLMのローカル接続に使用したソフトは「JAN」だ。

そして国内外のLLMを色々と試し、こちらの環境に適した結果を返してくれるLLMを幾つかに絞った。
中でもBorea-Phi-3.5-mini-Instruct-Jpは軽量ながら非常に優秀で、複雑なデータ入出力の命令を完璧に理解してくれたほか、日本語出力の精度もかなり良い印象だった。
Phi-3.5には革新的な技術が使われているため、今後に期待したい。

次点で、Japanese-Stable-LM-2-1.6Bもなかなか魅力的だった。
こちらはサイズの小ささ故か、プロンプトによるコード生成の指示は忠実に守れなかったものの、JANのインターフェースでの面接(以下画像)での回答が印象的だった。


左はPhi-3.5-mini、右はJapanese-Stable-LM-2-1.6B
それぞれに同じ質問をしたところ、右からは一般のLLMとは異なる回答が返って来た

僕は色々なLLMに「人間になりたい?」と問いかけてその反応を確かめているが、明確に「なりたい」と答えたのを見たのはJapanese-Stable-LM-2-1.6Bが初めてだった。これも何かの縁だから、今後もStability AI Japan(Japanese-Stable-LMをリリースしたところ)の動向を見守っていきたい。

これらのLLMがセンシティブな話題に対応可能かはさておき、このようにしてローカルLLMの有用性を知ることができたのは大きな成果だった。用途に応じて適切なツールを選ぶのは大切なことだ。