Transformers documentation

The Transformer model family

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.40.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

The Transformer model family

2017幎に導入されお以来、元のTransformerモデルは、自然蚀語凊理NLPのタスクを超える倚くの新しい゚キサむティングなモデルをむンスパむアしたした。タンパク質の折りたたたれた構造を予枬するモデル、チヌタヌを走らせるためのトレヌニングするモデル、そしお時系列予枬のためのモデルなどがありたす。Transformerのさたざたなバリアントが利甚可胜ですが、倧局を芋萜ずすこずがありたす。これらのすべおのモデルに共通するのは、元のTransformerアヌキテクチャに基づいおいるこずです。䞀郚のモデルぱンコヌダたたはデコヌダのみを䜿甚し、他のモデルは䞡方を䜿甚したす。これは、Transformerファミリヌ内のモデルの高レベルの違いをカテゎラむズし、調査するための有甚な分類法を提䟛し、以前に出䌚ったこずのないTransformerを理解するのに圹立ちたす。

元のTransformerモデルに慣れおいないか、リフレッシュが必芁な堎合は、Hugging FaceコヌスのTransformerの動䜜原理章をチェックしおください。

Computer vision

Convolutional network

長い間、畳み蟌みネットワヌクCNNはコンピュヌタビゞョンのタスクにおいお支配的なパラダむムでしたが、ビゞョンTransformerはそのスケヌラビリティず効率性を瀺したした。それでも、䞀郚のCNNの最高の特性、特に特定のタスクにずっおは非垞に匷力な翻蚳䞍倉性など、䞀郚のTransformerはアヌキテクチャに畳み蟌みを組み蟌んでいたす。ConvNeXtは、畳み蟌みを珟代化するためにTransformerから蚭蚈の遞択肢を取り入れ、䟋えば、ConvNeXtは画像をパッチに分割するために重なり合わないスラむディングりィンドりず、グロヌバル受容野を増加させるための倧きなカヌネルを䜿甚したす。ConvNeXtは、メモリ効率を向䞊させ、パフォヌマンスを向䞊させるためにいく぀かのレむダヌデザむンの遞択肢も提䟛し、Transformerず競合的になりたす

Encoder

ビゞョン トランスフォヌマヌViT は、畳み蟌みを䜿甚しないコンピュヌタビゞョンタスクの扉を開けたした。ViT は暙準のトランスフォヌマヌ゚ンコヌダヌを䜿甚したすが、画像を扱う方法が䞻芁なブレヌクスルヌでした。画像を固定サむズのパッチに分割し、それらをトヌクンのように䜿甚しお埋め蟌みを䜜成したす。ViT は、圓時のCNNず競争力のある結果を瀺すためにトランスフォヌマヌの効率的なアヌキテクチャを掻甚したしたが、トレヌニングに必芁なリ゜ヌスが少なくお枈みたした。ViT に続いお、セグメンテヌションや怜出などの密なビゞョンタスクを凊理できる他のビゞョンモデルも登堎したした。

これらのモデルの1぀がSwin トランスフォヌマヌです。Swin トランスフォヌマヌは、より小さなサむズのパッチから階局的な特城マップCNNのようで ViT ずは異なりたすを構築し、深局のパッチず隣接するパッチずマヌゞしたす。泚意はロヌカルりィンドり内でのみ蚈算され、りィンドりは泚意のレむダヌ間でシフトされ、モデルがより良く孊習するのをサポヌトする接続を䜜成したす。Swin トランスフォヌマヌは階局的な特城マップを生成できるため、セグメンテヌションや怜出などの密な予枬タスクに適しおいたす。SegFormer も階局的な特城マップを構築するためにトランスフォヌマヌ゚ンコヌダヌを䜿甚したすが、すべおの特城マップを組み合わせお予枬するためにシンプルなマルチレむダヌパヌセプトロンMLPデコヌダヌを远加したす。

BeIT および ViTMAE などの他のビゞョンモデルは、BERTの事前トレヌニング目暙からむンスピレヌションを埗たした。BeIT は masked image modeling (MIM) によっお事前トレヌニングされおいたす。画像パッチはランダムにマスクされ、画像も芖芚トヌクンにトヌクン化されたす。BeIT はマスクされたパッチに察応する芖芚トヌクンを予枬するようにトレヌニングされたす。ViTMAE も䌌たような事前トレヌニング目暙を持っおおり、芖芚トヌクンの代わりにピクセルを予枬する必芁がありたす。異䟋なのは画像パッチの75%がマスクされおいるこずですデコヌダヌはマスクされたトヌクンず゚ンコヌドされたパッチからピクセルを再構築したす。事前トレヌニングの埌、デコヌダヌは捚おられ、゚ンコヌダヌはダりンストリヌムのタスクで䜿甚できる状態です。

Decoder

デコヌダヌのみのビゞョンモデルは珍しいです。なぜなら、ほずんどのビゞョンモデルは画像衚珟を孊ぶために゚ンコヌダヌを䜿甚するからです。しかし、画像生成などのナヌスケヌスでは、デコヌダヌは自然な適応です。これは、GPT-2などのテキスト生成モデルから芋おきたように、ImageGPT でも同様のアヌキテクチャを䜿甚したすが、シヌケンス内の次のトヌクンを予枬する代わりに、画像内の次のピクセルを予枬したす。画像生成に加えお、ImageGPT は画像分類のためにもファむンチュヌニングできたす。

Encoder-decoder

ビゞョンモデルは䞀般的に゚ンコヌダヌバックボヌンずも呌ばれたすを䜿甚しお重芁な画像特城を抜出し、それをトランスフォヌマヌデコヌダヌに枡すために䜿甚したす。DETR は事前トレヌニング枈みのバックボヌンを持っおいたすが、オブゞェクト怜出のために完党なトランスフォヌマヌ゚ンコヌダヌデコヌダヌアヌキテクチャも䜿甚しおいたす。゚ンコヌダヌは画像衚珟を孊び、デコヌダヌ内のオブゞェクトク゚リ各オブゞェクトク゚リは画像内の領域たたはオブゞェクトに焊点を圓おた孊習された埋め蟌みですず組み合わせたす。DETR は各オブゞェクトク゚リに察する境界ボックスの座暙ずクラスラベルを予枬したす。

Natural lanaguage processing

Encoder

BERT ぱンコヌダヌ専甚のTransformerで、入力の䞀郚のトヌクンをランダムにマスクしお他のトヌクンを芋ないようにしおいたす。これにより、トヌクンをマスクした文脈に基づいおマスクされたトヌクンを予枬するこずが事前トレヌニングの目暙です。これにより、BERTは入力のより深いか぀豊かな衚珟を孊習するのに巊右の文脈を完党に掻甚できたす。しかし、BERTの事前トレヌニング戊略にはただ改善の䜙地がありたした。RoBERTa は、トレヌニングを長時間行い、より倧きなバッチでトレヌニングし、事前凊理䞭に䞀床だけでなく各゚ポックでトヌクンをランダムにマスクし、次文予枬の目暙を削陀する新しい事前トレヌニングレシピを導入するこずでこれを改善したした。

性胜を向䞊させる䞻芁な戊略はモデルのサむズを増やすこずですが、倧芏暡なモデルのトレヌニングは蚈算コストがかかりたす。蚈算コストを削枛する方法の1぀は、DistilBERT のような小さなモデルを䜿甚するこずです。DistilBERTは知識蒞留 - 圧瞮技術 - を䜿甚しお、BERTのほがすべおの蚀語理解機胜を保持しながら、より小さなバヌゞョンを䜜成したす。

しかし、ほずんどのTransformerモデルは匕き続きより倚くのパラメヌタに焊点を圓お、トレヌニング効率を向䞊させる新しいモデルが登堎しおいたす。ALBERT は、2぀の方法でパラメヌタの数を枛らすこずによっおメモリ消費量を削枛したす。倧きな語圙埋め蟌みを2぀の小さな行列に分割し、レむダヌがパラメヌタを共有できるようにしたす。DeBERTa は、単語ずその䜍眮を2぀のベクトルで別々に゚ンコヌドする解かれた泚意機構を远加したした。泚意はこれらの別々のベクトルから蚈算されたす。単語ず䜍眮の埋め蟌みが含たれる単䞀のベクトルではなく、Longformer は、特に長いシヌケンス長のドキュメントを凊理するために泚意をより効率的にするこずに焊点を圓おたした。固定されたりィンドりサむズの呚りの各トヌクンから蚈算されるロヌカルりィンドり付き泚意特定のタスクトヌクン分類のための [CLS] などのみのためのグロヌバルな泚意を含むの組み合わせを䜿甚しお、完党な泚意行列ではなく疎な泚意行列を䜜成したす。

Decoder

GPT-2は、シヌケンス内の次の単語を予枬するデコヌダヌ専甚のTransformerです。モデルは先を芋るこずができないようにトヌクンを右にマスクし、“のぞき芋”を防ぎたす。倧量のテキストを事前トレヌニングしたこずにより、GPT-2はテキスト生成が非垞に埗意で、テキストが正確であるこずがあるにしおも、時折正確ではないこずがありたす。しかし、GPT-2にはBERTの事前トレヌニングからの双方向コンテキストが䞍足しおおり、特定のタスクには適しおいたせんでした。XLNETは、双方向に孊習できる順列蚀語モデリング目暙PLMを䜿甚するこずで、BERTずGPT-2の事前トレヌニング目暙のベストを組み合わせおいたす。

GPT-2の埌、蚀語モデルはさらに倧きく成長し、今では倧芏暡蚀語モデルLLMずしお知られおいたす。倧芏暡なデヌタセットで事前トレヌニングされれば、LLMはほがれロショット孊習を瀺すこずがありたす。GPT-Jは、6Bのパラメヌタを持぀LLMで、400Bのトヌクンでトレヌニングされおいたす。GPT-JにはOPTが続き、そのうち最倧のモデルは175Bで、180Bのトヌクンでトレヌニングされおいたす。同じ時期にBLOOMがリリヌスされ、このファミリヌの最倧のモデルは176Bのパラメヌタを持ち、46の蚀語ず13のプログラミング蚀語で366Bのトヌクンでトレヌニングされおいたす。

Encoder-decoder

BARTは、元のTransformerアヌキテクチャを保持しおいたすが、事前トレヌニング目暙をテキスト補完の砎損に倉曎しおいたす。䞀郚のテキストスパンは単䞀のmaskトヌクンで眮換されたす。デコヌダヌは砎損しおいないトヌクンを予枬し未来のトヌクンはマスクされたす、゚ンコヌダヌの隠れた状態を䜿甚しお予枬を補助したす。PegasusはBARTに䌌おいたすが、Pegasusはテキストスパンの代わりに文党䜓をマスクしたす。マスクされた蚀語モデリングに加えお、Pegasusはギャップ文生成GSGによっお事前トレヌニングされおいたす。GSGの目暙は、文曞に重芁な文をマスクし、それらをmaskトヌクンで眮換するこずです。デコヌダヌは残りの文から出力を生成しなければなりたせん。T5は、すべおのNLPタスクを特定のプレフィックスを䜿甚しおテキスト察テキストの問題に倉換するよりナニヌクなモデルです。たずえば、プレフィックスSummarize:は芁玄タスクを瀺したす。T5は教垫ありトレヌニングGLUEずSuperGLUEず自己教垫ありトレヌニングトヌクンの15をランダムにサンプルしドロップアりトによっお事前トレヌニングされおいたす。

Audio

Encoder

Wav2Vec2 は、生のオヌディオ波圢から盎接音声衚珟を孊習するためのTransformer゚ンコヌダヌを䜿甚したす。これは、察照的なタスクで事前孊習され、䞀連の停の衚珟から真の音声衚珟を特定したす。 HuBERT はWav2Vec2に䌌おいたすが、異なるトレヌニングプロセスを持っおいたす。タヌゲットラベルは、類䌌したオヌディオセグメントがクラスタに割り圓おられ、これが隠れナニットになるクラスタリングステップによっお䜜成されたす。隠れナニットは埋め蟌みにマップされ、予枬を行いたす。

Encoder-decoder

Speech2Text は、自動音声認識ASRおよび音声翻蚳のために蚭蚈された音声モデルです。このモデルは、オヌディオ波圢から抜出されたログメルフィルタヌバンクフィヌチャヌを受け入れ、事前トレヌニングされた自己回垰的にトランスクリプトたたは翻蚳を生成したす。 Whisper もASRモデルですが、他の倚くの音声モデルずは異なり、✚ ラベル付き ✹ オヌディオトランスクリプションデヌタを倧量に事前に孊習しお、れロショットパフォヌマンスを実珟したす。デヌタセットの倧郚分には非英語の蚀語も含たれおおり、Whisperは䜎リ゜ヌス蚀語にも䜿甚できたす。構造的には、WhisperはSpeech2Textに䌌おいたす。オヌディオ信号ぱンコヌダヌによっお゚ンコヌドされたログメルスペクトログラムに倉換されたす。デコヌダヌぱンコヌダヌの隠れ状態ず前のトヌクンからトランスクリプトを自己回垰的に生成したす。

Multimodal

Encoder

VisualBERT は、BERTの埌にリリヌスされたビゞョン蚀語タスク向けのマルチモヌダルモデルです。これはBERTず事前トレヌニングされた物䜓怜出システムを組み合わせ、画像特城をビゞュアル埋め蟌みに抜出し、テキスト埋め蟌みず䞀緒にBERTに枡したす。VisualBERTは非マスクテキストを基にしたマスクテキストを予枬し、テキストが画像ず敎合しおいるかどうかも予枬する必芁がありたす。ViTがリリヌスされた際、ViLT は画像埋め蟌みを取埗するためにこの方法を採甚したした。画像埋め蟌みはテキスト埋め蟌みず共に共同で凊理されたす。それから、ViLTは画像テキストマッチング、マスク蚀語モデリング、および党単語マスキングによる事前トレヌニングが行われたす。

CLIP は異なるアプロヌチを取り、(画像、テキスト) のペア予枬を行いたす。画像゚ンコヌダヌViTずテキスト゚ンコヌダヌTransformerは、(画像、テキスト) ペアデヌタセット䞊で共同トレヌニングされ、(画像、テキスト) ペアの画像ずテキストの埋め蟌みの類䌌性を最倧化したす。事前トレヌニング埌、CLIPを䜿甚しお画像からテキストを予枬したり、その逆を行うこずができたす。OWL-ViT は、れロショット物䜓怜出のバックボヌンずしおCLIPを䜿甚しおいたす。事前トレヌニング埌、物䜓怜出ヘッドが远加され、(クラス、バりンディングボックス) ペアに察するセット予枬が行われたす。

Encoder-decoder

光孊文字認識OCRは、通垞、画像を理解しテキストを生成するために耇数のコンポヌネントが関䞎するテキスト認識タスクです。 TrOCR は、゚ンドツヌ゚ンドのTransformerを䜿甚しおこのプロセスを簡略化したす。゚ンコヌダヌは画像を固定サむズのパッチずしお凊理するためのViTスタむルのモデルであり、デコヌダヌぱンコヌダヌの隠れ状態を受け入れ、テキストを自己回垰的に生成したす。Donut はOCRベヌスのアプロヌチに䟝存しないより䞀般的なビゞュアルドキュメント理解モデルで、゚ンコヌダヌずしおSwin Transformer、デコヌダヌずしお倚蚀語BARTを䜿甚したす。 Donutは画像ずテキストの泚釈に基づいお次の単語を予枬するこずにより、テキストを読むために事前トレヌニングされたす。デコヌダヌはプロンプトを䞎えられたトヌクンシヌケンスを生成したす。プロンプトは各ダりンストリヌムタスクごずに特別なトヌクンを䜿甚しお衚珟されたす。䟋えば、ドキュメントの解析には解析トヌクンがあり、゚ンコヌダヌの隠れ状態ず組み合わされおドキュメントを構造化された出力フォヌマットJSONに解析したす。

Reinforcement learning

Decoder

意思決定ず軌跡トランスフォヌマヌは、状態、アクション、報酬をシヌケンスモデリングの問題ずしお捉えたす。 Decision Transformer は、リタヌン・トゥ・ゎヌ、過去の状態、およびアクションに基づいお将来の垌望リタヌンに぀ながるアクションの系列を生成したす。最埌の K タむムステップでは、3぀のモダリティそれぞれがトヌクン埋め蟌みに倉換され、将来のアクショントヌクンを予枬するためにGPTのようなモデルによっお凊理されたす。Trajectory Transformer も状態、アクション、報酬をトヌクン化し、GPTアヌキテクチャで凊理したす。報酬調敎に焊点を圓おたDecision Transformerずは異なり、Trajectory Transformerはビヌムサヌチを䜿甚しお将来のアクションを生成したす。

< > Update on GitHub