解説

AMI HAPPY

ねえねえ智也くん!この「LaCy」っていう論文のタイトル、なんか可愛くない?AIが「何を学ぶべきか」を考える話みたいだけど、どういうこと?

TOMOYA NEUTRAL

ああ、それは小型言語モデル、いわゆるSLMに関する面白い研究だよ。簡単に言うと、小さなAIに「無理して全部覚えようとするな、わからない時は素直に助けを求めろ」って教える手法なんだ。

AMI SURPRISED

えっ、AIなのに諦めちゃっていいの?全部知ってるのがAIのすごいところじゃないの?

TOMOYA NEUTRAL

それが問題なんだ。SLMは脳みそ(パラメータ)が小さいから、世界の知識を全部詰め込むのは物理的に無理なんだよ。無理に覚えさせようとすると、適当な嘘をつき始める。これがハルシネーションだね。

AMI HAPPY

あー、知ったかぶりしちゃうんだ。それなら「わかりません」って言ってくれたほうが助かるかも!

TOMOYA NEUTRAL

その通り。でも、いつ「わかりません」と言わせるかが難しい。これまでは「損失(Loss)」、つまり予測がどれだけ外れたかだけで判断してたんだけど、それだと不十分なんだ。

AMI SURPRISED

外れたらダメなんじゃないの?なんで不十分なの?

TOMOYA NEUTRAL

例えば、「その猫は……」の後に続く言葉が、正解は「黒い」だったとする。でもAIが「可愛い」って答えたら、予測は外れてるから損失は高くなる。でも「可愛い」は間違いじゃないだろ?

AMI HAPPY

確かに!猫は可愛いもんね。それは嘘じゃないよ!

TOMOYA NEUTRAL

だろ?一方で、モーツァルトの誕生日みたいな「事実」は、1文字でも間違えたらアウトだ。LaCyは、この「言い換えOKな場所」と「絶対間違えちゃいけない事実」を区別しようとしたんだよ。

AMI AMI

なるほど!どうやって区別するの?

TOMOYA NEUTRAL

ここで「spaCy」っていう文法解析ツールを使うんだ。これで文章の中の名前や日付、場所みたいな「事実に関わる単語」を見つけ出す。そして、「事実に関わる単語」で、かつ「予測が難しい(損失が高い)」時だけ、大型モデルを呼ぶための「」っていう合図を出すように訓練するんだ。

AMI HAPPY

へぇー!文法を見て「ここは大事なテストに出るぞ!」って判断する感じかな?

TOMOYA NEUTRAL

いい例えだね。そうやって訓練されたSLMは、自分が答えられない事実が来ると「」って言って、後ろに控えてる大きなモデルにバトンタッチするんだ。これをモデルカスケードって呼ぶよ。

AMI NEUTRAL

それって本当に上手くいってるの?

TOMOYA NEUTRAL

実験では、Wikipediaの記事を書かせた時の事実の正確さ(FactScore)が、他の手法よりずっと高かったんだ。しかも、無理に知識を詰め込まないから、モデルのメモリも無駄遣いしない。

AMI HAPPY

すごい!賢い節約術だね。これからはスマホとかの小さなAIでも、嘘をつかずに「ちょっとお兄さんに聞いてくるね!」って言ってくれるようになるのかな?

TOMOYA NEUTRAL

そうだね。デバイス上の小さなAIとクラウドの大きなAIを効率よく使い分ける未来には、こういう技術が不可欠になると思うよ。ただ、まだ課題もあって、今は「いつ呼ぶか」に集中してるけど、「呼んだ後にどう繋ぐか」の最適化もこれからの研究課題だね。

AMI HAPPY

そっかぁ。じゃあ私もLaCyを見習って、今日の晩ごはんのメニューが決められない時は、智也くんに「」って送るね!

TOMOYA NEUTRAL

僕は大型言語モデルじゃないんだから、それくらい自分で決めなよ。

要点

  • 小型言語モデル(SLM)はパラメータ数が少ないため、すべての事実を記憶することは不可能であり、無理に覚えさせようとすると事実誤認(ハルシネーション)を引き起こす。
  • 従来の学習手法では「損失(Loss)」のみを指標に学習対象を選別していたが、損失が高いからといって必ずしも間違い(事実誤認)とは限らない(例:言い換えなど)。
  • 提案手法「LaCy」は、文法解析ツール(spaCy)を用いて「事実に関するトークン」を特定し、損失と組み合わせることで、SLMが自力で答えるべきか、外部(大型モデル)に頼るべきかを判断する。
  • 学習時に、SLMが苦手な事実トークンに対して「」という特殊なトークンを出力するように訓練することで、推論時に大型モデルへ適切にバトンタッチ(モデルカスケード)できる。
  • 実験の結果、LaCyは他の手法よりも高い事実正確性(FactScore)を達成し、メモリの節約と精度の向上を両立させた。