TL;DRこの論文では、現実世…
TL;DR
LLMが複数の仕様(自然言語、形式言語、自然化形式言語、入出力例)に矛盾する指示を与えられたとき、どれを優先するかを体系的に測るフレームワークを提案。数学ベンチマーク(550件)で、形式言語と自然化形式言語が自然言語や例より優先される傾向を確認。モデルやタスクによって例の影響は変わる。
解説
ねえ智也くん、この論文のタイトル、『LLMは仕様の表現形式にどう反応する?』って面白そう!でも、仕様って何?
ああ、ソフトウェア開発で「こう動いてほしい」って指示を書いたものだよ。自然言語で書いたり、形式言語で書いたり、いろんな書き方があるんだ。
なるほど。で、この論文は何を調べたの?
LLMに複数の仕様を矛盾させて与えたとき、どれを優先するかを調べたんだ。例えば、自然言語で「Aをしろ」、形式言語で「Bをしろ」って書いてあったら、どっちに従うかってこと。
へえ、それって面白いね。でも、なんでそんなことを調べる必要があるの?
LLMをコード生成や仕様書の処理に使うとき、どの形式を信頼していいか分からないと困るだろ。優先順位が分かれば、安全に使えるようになる。
なるほどね。で、どうやって調べたの?
数学ベンチマークを550件用意して、それぞれに自然言語、形式言語、自然化形式言語、入出力例の4種類の仕様を矛盾させて与えたんだ。
自然化形式言語って何?
自然言語っぽいけど、構造が決まっている言語だよ。例えば、日本語で「もし〜ならば、〜する」みたいに書くけど、文法が厳密に決まってる感じ。
ふむふむ。で、結果はどうだったの?
全体的に、形式言語と自然化形式言語が自然言語や入出力例より優先される傾向があったよ。
へえ、やっぱり厳密な書き方の方が強いんだね。でも、入出力例はどうなの?
モデルやタスクによって影響が変わったんだ。例えば、あるモデルでは例を重視するけど、別のモデルでは無視する、みたいな。
それって、モデルによって性格が違うってこと?
まあ、そう言えるかもね。でも、この研究の意義は、そういう違いを体系的に測れるフレームワークを提案したことにあるんだ。
なるほど。でも、限界とかはあるの?
数学ベンチマークだけだから、他の分野に適用できるかは分からない。あと、矛盾のさせ方によって結果が変わる可能性もある。
そっか。でも、これからLLMを使うときに、どの指示を信じればいいか分かるのは便利だね。
そうだね。ただ、まだ研究段階だから、実用には注意が必要だけど。
でも、もしLLMが形式言語を優先するなら、私は全部形式言語で書けばいいんだね!…って、私が書けるかどうかは別問題だけど。
はは、それならまず形式言語の勉強から始めたほうがいいよ。