トランスフォーマーにおける人間レベルのテキスト生成のためのコントラスト検索

Hugging Face は、Contrastive Search を導入しました。これは、ニューラルテキスト生成の最先端デコード手法で、現在 PyTorch と TensorFlow の両方に対応した transformers ライブラリで利用可能です。Contrastive Search は、決定的デコードと確率的デコードの間の重要なトレードオフに対処し、オフ・ザ・シェルフの言語モデルが、貪欲探索でよく見られる繰り返しや、核サンプリングで見られる一貫性の欠如なしに、人間レベルで意味的に一貫したテキストを生成できるようにします。

問題点: モデルの退化 vs. 意味的一貫性の欠如

既存のデコード手法は概ね二つのカテゴリに分かれ、どちらもテキスト品質を低下させる固有の欠点を持っています。

決定的手法(Greedy と Beam Search)

決定的手法は、最も高い尤度を持つ続き方を選択します。これによりしばしば model degeneration が発生し、生成されたテキストが不自然になり、望ましくない繰り返しが含まれます。例えば、GPT-2 Large を greedy search で使用すると、同じ文が何度も繰り返されることが頻繁に起こります。

確率的手法(Top-k と Nucleus Sampling)

確率的手法は、繰り返しを避けるためにランダム性を導入します。nucleus sampling(top-p)は繰り返しを排除できるものの、しばしば semantic coherence を維持できません。その結果、生成されたフレーズが前文と論理的に切り離されたものになります。温度を下げることでこの問題を緩和できますが、モデルが greedy search に近づき、繰り返しと一貫性欠如の間で難しいトレードオフが生じます。

Contrastive Search の仕組み

Contrastive Search は、モデルの信頼度と退化ペナルティを同時に考慮することでトークン選択を最適化し、出力が高確率であると同時に過去の文脈と異なることを保証します。

デコード目的

前置き $x_{<t}$ が与えられたときに次のトークン $x_{t}$ を選択する際、手法は top‑k 予測集合 ($V^{k}$) を評価します。選択は以下の二つの主要要素に基づきます:

  1. Model Confidence: 言語モデルが予測した候補トークン $v$ の確率。
  2. Degeneration Penalty: 候補 $v$ が前文脈 $x_{<t}$ に対してどれだけ識別的かを測る指標。これは、前置きと $v$ を結合した入力でモデルが算出する $v$ のトークン表現と、文脈中のすべてのトークン表現との最大余弦類似度として計算されます。

これらの要素はハイパーパラメータ $\alpha$ によってバランスが取られます。$\alpha = 0$ の場合、手法は標準的な greedy search に戻ります。$\alpha$ を大きくすると、既存の文脈と過度に類似したトークンに対するペナルティが増加し、繰り返しが防止されます。

パフォーマンスと視覚的証拠

Contrastive Search は、文法的に流暢で、意味的に一貫し、事実に基づいたテキストを生成します。GPT-2 Large と Meta の OPT-1.3b を用いたテストでは、最大 512 トークンの長文ドキュメントを生成し、一貫したストーリーを保ちつつ、greedy search で見られる繰り返しループを回避しました。

トークン類似度の可視化

トークン類似度行列の視覚的分析により、退化ペナルティの技術的成功が明らかになります:

  • Greedy Search: 対角外のエントリに高い類似度スコアが表示され、トークンやパターンの繰り返しが存在することを示します。
  • Contrastive Search: 高い類似度スコアは主に対角エントリに現れ、退化問題が効果的に緩和されたことが確認できます。

Transformers における実装

Contrastive Search は transformers ライブラリ(バージョン 4.24.0 以降)に統合されています。ユーザーは以下のハイパーパラメータを指定して generate メソッドを用いることで実装できます:

  • penalty_alpha: 退化ペナルティの重要度を調整する $\alpha$ ハイパーパラメータ。
  • top_k: 探索中に考慮する上位予測の数。

GPT-2 モデルの実装例:

output = model.generate(input_ids, penalty_alpha=0.6, top_k=4, max_length=512)

研究の基盤

この実装は二つの主要な研究論文に基づいています:

  1. A Contrastive Framework for Neural Text Generation(NeurIPS 2022)、元のフレームワークを提案。
  2. Contrastive Search Is What You Need For Neural Text Generation(2022)、オフ・ザ・シェルフモデルを用いて 16 の異なる言語で手法の有効性を実証。

Sources