ビームサーチとは
ビームサーチ(Beam Search)とは、テキスト生成において複数の候補系列を並行して探索し、最も確率の高い出力系列を見つけるデコーディングアルゴリズムです。各ステップで上位k個(ビーム幅)の候補を保持しながら探索を進めるため、グリーディデコーディングよりも全体的に最適な出力を得やすい特徴があります。
| ひとことで言うと | 候補を複数残しながら進み、文全体として一番良いものを選ぶ探索方法。 |
|---|---|
| どこで使う | 機械翻訳、要約、音声認識の文字起こしなど、正確さが求められる生成。 |
| 注意点 | 候補数(ビーム幅)を増やすほど計算が重い。文章が無難になりがち。 |
ビームサーチの仕組み
ビーム幅をk=3とした場合、生成の各ステップで3つの候補系列を保持します。各候補に対して次のトークンの確率を計算し、累積確率の上位3つの系列を次のステップに引き継ぎます。最終的に全ステップを通じて最も高い累積確率を持つ系列が出力として選ばれます。ビーム幅を大きくするほど探索が網羅的になりますが、計算コストも増大します。
1上位k個を残す1語目の候補
▶
2続きを計算各候補の次の語
▶
3上位k個に絞る文全体のスコア順
▶
4最良の文を出力合計スコア1位を採用
↺ 文の終わりまで、2〜3をくり返す
ビームサーチの特性と用途
ビームサーチは機械翻訳や音声認識など、正確性が重視されるタスクで伝統的に使われてきました。一方で、出力が無難で画一的になりやすい(多様性が低い)傾向があり、クリエイティブな文章生成には向きません。また、同じフレーズの繰り返しが発生しやすいという欠点もあります。近年のLLMではTop-pサンプリングなどの確率的手法が主流となっていますが、精度が最優先される用途では依然として有効な手法です。