ざっくり言うと
Top-K(トップケー)は、AIが次の言葉を選ぶときの候補を、確率の高い上位K個だけに絞る設定です。対応する生成AIなら指定できます。
Kには整数を入れます。K=40と指定すれば、上位40個が候補になる仕組みです。
- Kが小さいと候補が絞られ、出力のばらつきは小さくなる傾向があります
- Kが大きいと候補が広がり、表現の幅が増える可能性があります
よく似た設定にTop-P(Nucleus Sampling)があります。Top-Kは個数で候補を絞り、Top-Pは確率の合計で絞る、という違いです。
イメージ
正確には
Top-Kサンプリングは、確率の高い順に上位K個の候補だけを残し、残りをすべて切り捨てるやり方です。
Hugging Faceの解説ブログは、この方式を「次のトークン候補のうち、確率が最も高いK個だけを抽出し、そのK個の間で確率を再分配してサンプリングする方式」だと紹介しています。トークンとは、AIが文章を扱うときの、言葉の細かい単位のことです。
上位K個だけを残して確率を割り振り直し、そこから1個を選ぶのがTop-Kのしくみです。
この絞り方は、論文 Hierarchical Neural Story Generation(Fan et al., 2018)で広く知られるようになった、代表的なサンプリング手法のひとつです。
Top-KとTop-Pは、絞り方が違います
よく混同されるのが、もうひとつのサンプリング方式であるTop-Pとの違いです。
| パラメータ | 絞り方 | 値の意味 | 候補数 |
|---|---|---|---|
| Top-K | 個数で絞る | 整数(例:40) | 常にK個に固定 |
| Top-P | 累積確率で絞る | 0〜1の小数(例:0.9) | 状況によって変動 |
個数で切るか、確率の合計で切るか。Top-KとTop-Pの違いは、この絞り方の基準だけです。
TemperatureとTop-Kは、役割が違います
Top-Kは、よく見かけるTemperature(温度)と組み合わせて使われます。Temperatureは確率分布の形を変える設定で、Top-Kは候補の数を絞る設定です。この2つは、別々の角度から出力のランダムさを調整します。
- Temperature
確率の山を尖らせたり、平らにしたりします - Top-K
候補リストの上からK個だけ残します
組み合わせると、ある程度のバリエーションは出しつつ、明らかにおかしい候補は外す、といった細かい調整ができます。
Top-Kを、検索窓に出る予測候補の表示件数のようなものだと考えると扱いやすくなります。5件だけ出すのか、50件まで出すのか、という違いです。
ただし、AIはその候補からさらに確率で選びます。Kを大きくしても、必ず変な答えになるわけではありません。変な候補が選ばれる可能性が出てくる、という程度に見ておくのがちょうどよいでしょう。
使う場面
使うモデルで設定できるかを、先に確かめてください
関連用語
- Top-P(Nucleus Sampling) — 候補を個数ではなく、確率の合計で絞る設定です。
- Temperature(温度) — 候補の確率の差を、はっきりさせるか、なだらかにするかを決める設定です。
- トークン — 文章をAIが扱うときの、言葉の細かい単位です。
- パラメータ — 同じ言葉でも、こちらは学習で決まるモデル内部の数値を指します。
やってみよう