Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Longformer

Longformerはスライディングウィンドウアテンションと少数のグローバルトークンを組み合わせているため、計算量は系列長に対して線形に増加し、4,096トークンの文書を処理できます。

Longformerは長いドキュメント向けのTransformerで、すべての自己注意を、各トークンの周囲にあるスライディングウィンドウ注意と、タスクに応じて選んだ少数のトークンに対するグローバル注意に置き換えます。そのため、計算コストは入力長の二乗ではなく線形に増加します。Allen Institute for AIのIz Beltagy、Matthew Peters、Arman Cohanが、2020年の論文Longformer: The Long-Document Transformerで発表しました。BERTやRoBERTaなどのエンコーダーは最大512トークンまでしか読み取れないため、それより長いテキストは分割する必要があり、分割間のつながりが失われていました。公開されたLongformerモデルは4,096トークンを一度に読み取るため、コンテキストウィンドウが8倍に拡大しました。

Longformerの注意機構の仕組み#

各層は1つの注意機構内で、局所的なパターンとグローバルなパターンを組み合わせます。

  • スライディングウィンドウ注意: 各トークンは、公開モデルでは両側それぞれ256個の固定範囲内にある隣接トークンに注意を向けます。
  • 拡張スライディングウィンドウ: 注意を向ける位置の間隔を空けることで、同じ計算コストのまま、ヘッドがより遠くまで見渡せるようにします。著者らは、文字レベルの言語モデルの上位層にある一部のヘッドで拡張を使用しました。
  • グローバル注意: 選択されたトークンはすべての位置に注意を向け、すべての位置から選択されたトークンに注意を向けます。この処理には、独立したクエリー、キー、バリューの射影を使います。対象はタスクに応じて選択されます。分類では[CLS]トークン、質問応答では質問のトークンが選ばれます。

層を重ねると、積み重ねた畳み込みによって畳み込みニューラルネットワーク(CNN)の受容野が広がるのと同様に、ウィンドウの範囲が広がります。ウィンドウ幅がwのl層では、l × w個のトークンをカバーします。各層で計算する注意スコアはn × nではなく、およそn × wです。Longformerのマスク内の組み合わせ数を数えると、その違いが分かります。

import torch

window = 512  # Longformer-base: 256 tokens on each side of every token

for n in (1024, 2048, 4096):
    pos = torch.arange(n)
    # Sliding window: each token attends to neighbors within window / 2 positions
    mask = (pos[:, None] - pos[None, :]).abs() <= window // 2
    # Global attention on token 0 ([CLS]): it sees every token and every token sees it
    mask[0, :] = True
    mask[:, 0] = True
    print(f"{n} tokens: full attention {n * n / 1e6:.1f}M scores, Longformer {mask.sum().item() / 1e6:.1f}M")

Longformerでは0.5M、1.0M、2.0Mのスコアが出力される一方、フル注意では1.0M、4.2M、16.8Mとなります。入力を2倍にするたびにLongformerの注意計算量は2倍になりますが、フル注意では4倍になります。実際の実装ではスコアの帯状部分だけを計算し、これによってメモリを節約します。

訓練と結果#

LongformerはRoBERTaのチェックポイントから始めます。著者らは学習済み位置埋め込み512個を8回コピーして4,096位置に拡張し、長文書を使ってマスク言語モデルの事前学習を続けました。ファインチューニング後は、長文書タスクで一貫してRoBERTaを上回り、WikiHopとTriviaQAの質問応答ベンチマークで当時の最高性能を達成しました。また、文字レベルの言語モデルは、text8とenwik8で新たな記録を樹立しました。

Longformer-Encoder-Decoder(LED)は、テキスト要約やその他のテキスト生成タスク向けにデコーダーを追加したモデルで、arXivの科学論文全文の要約で実証されました。Hugging Face Transformersは両方のモデルを実装しており、グローバルトークンをglobal_attention_maskとして受け取ります。大規模な臨床テキストコーパスで事前学習され、固有表現認識、質問応答、ドキュメント分類など10個のタスクで評価されたClinical-Longformerなど、分野別モデルも登場しました。

  • Transformer-XL: 長いテキストをセグメントごとに読み込み、各セグメントが前のセグメントのキャッシュ済み隠れ状態に注意を向けられるようにします。再帰によってコンテキストを拡張し、左から右への生成を行います。
  • BigBird: 同じ年に登場したGoogleのモデルで、ウィンドウ注意とグローバル注意にランダムな注意リンクを加え、4,096トークンも読み取ります。
  • スパース注意: Longformerが属する、固定された注意パターンのより広いカテゴリです。
  • Flash Attention: オンチップメモリのタイル上で正確なフル注意を計算します。そのため、メモリ使用量は入力長に対して線形に増加しますが、スコアの数は二次関数的に増加します。

ビジョンにおける局所注意とグローバル注意#

高解像度画像でも同じ問題が生じます。ビジョントランスフォーマー(ViT)は画像を数千個のパッチトークンに変換するためです。Swin Transformerはシフトされた局所ウィンドウでこの問題に対処します。Ultralyticsパッケージで実行できるMetaのSegment Anything Model(SAM)は、ブロックごとにウィンドウ注意とグローバル注意を組み合わせ、画像セグメンテーションを行います。ViT-B画像エンコーダーは、64 × 64のパッチグリッドを重なりのない14 × 14のウィンドウに分割し、12個のブロックのうち8個ではウィンドウ内に注意を向け、ブロック2、5、8、11では4,096個すべてのパッチに対してグローバルに注意を向けます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう