定義
FIM(Fill-in-the-Middle)とは、文章やコードの前後(プレフィックスとサフィックス)を与えて、その間の欠落部分をAIに補完させるプロンプト技法のこと。
FIM (中間補完プロンプト)とは — 詳しく解説
FIMは通常の後方生成(続きだけを書かせる)とは異なり、prefixとsuffixを明示してモデルに中間のトークン列を予測させる手法で、コード補完(IDEのオートコンプリート等)や文章の穴埋め生成で広く採用されているとされる。CodeLlamaやStarCoderのように事前学習段階でFIM目的関数を組み込んだモデルでないと精度が出にくく、通常のチャット向けモデルにそのまま<PRE><SUF><MID>形式のプロンプトを渡しても期待通りの補完にならない場合がある点が、実運用での落とし穴になりやすい。現場での選び方としては、モデルカードにFIM対応の明記があるかをまず確認し、非対応モデルには無理に使わないのが基本とされる。2026年時点では、自前でFIM対応モデルを推論用にホスティングするコストが小規模チームには重く、相場感としてはAPI課金型の補完サービスに任せた方が運用コストを抑えやすいという判断も広がっているとされる。
FIM (中間補完プロンプト)の使用例
- <PRE> def add(a, b):\n <SUF>\n return result <MID> という形式でモデルに中間コードを補完させる。
- 文章穴埋め: 「昔々あるところに」<MID>「おじいさんとおばあさんが住んでいました。」の間を生成させる。