transformers/docs/source/ja/tasks_explained.md

302 lines
36 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--Copyright 2023 The HuggingFace Team. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
⚠ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
rendered properly in your Markdown viewer.
-->
# How 🀗 Transformers solve tasks
[🀗 Transformersでできるこず](task_summary)で、自然蚀語凊理NLP、音声ずオヌディオ、コンピュヌタビゞョンのタスク、それらの重芁なアプリケヌションに぀いお孊びたした。このペヌゞでは、モデルがこれらのタスクをどのように解決するかを詳しく芋お、モデルの内郚で䜕が起こっおいるかを説明したす。特定のタスクを解決するためには倚くの方法があり、䞀郚のモデルは特定のテクニックを実装するか、たたは新しい芳点からタスクに取り組むかもしれたせんが、Transformerモデルにずっお、䞀般的なアむデアは同じです。柔軟なアヌキテクチャのおかげで、ほずんどのモデルぱンコヌダ、デコヌダ、たたぱンコヌダ-デコヌダ構造の倉皮です。Transformerモデル以倖にも、圓瀟のラむブラリにはコンピュヌタビゞョンタスクに今でも䜿甚されおいるいく぀かの畳み蟌みニュヌラルネットワヌクCNNもありたす。たた、珟代のCNNがどのように機胜するかも説明したす。
タスクがどのように解決されるかを説明するために、モデル内郚で有甚な予枬を出力するために䜕が起こるかに぀いお説明したす。
- [Wav2Vec2](model_doc/wav2vec2)オヌディオ分類および自動音声認識ASR向け
- [Vision TransformerViT](model_doc/vit)および[ConvNeXT](model_doc/convnext)画像分類向け
- [DETR](model_doc/detr)オブゞェクト怜出向け
- [Mask2Former](model_doc/mask2former)画像セグメンテヌション向け
- [GLPN](model_doc/glpn)深床掚定向け
- [BERT](model_doc/bert)゚ンコヌダを䜿甚するテキスト分類、トヌクン分類、および質問応答などのNLPタスク向け
- [GPT2](model_doc/gpt2)デコヌダを䜿甚するテキスト生成などのNLPタスク向け
- [BART](model_doc/bart)゚ンコヌダ-デコヌダを䜿甚する芁玄および翻蚳などのNLPタスク向け
<Tip>
さらに進む前に、元のTransformerアヌキテクチャの基本的な知識を持぀ず良いです。゚ンコヌダ、デコヌダ、および泚意力がどのように動䜜するかを知っおおくず、異なるTransformerモデルがどのように動䜜するかを理解するのに圹立ちたす。始めおいるか、リフレッシュが必芁な堎合は、詳现な情報に぀いおは圓瀟の[コヌス](https://huggingface.co/course/chapter1/4?fw=pt)をチェックしおください
</Tip>
## Speech and audio
[Wav2Vec2](model_doc/wav2vec2)は、未ラベルの音声デヌタで事前トレヌニングされ、オヌディオ分類および自動音声認識のラベル付きデヌタでファむンチュヌンされた自己教垫モデルです。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/wav2vec2_architecture.png"/>
</div>
このモデルには䞻に次の4぀のコンポヌネントがありたす。
1. *特城゚ンコヌダ*生の音声波圢を受け取り、平均倀をれロに正芏化し、単䜍分散に倉換し、それを20msごずの特城ベクトルのシヌケンスに倉換したす。
2. 波圢は自然に連続しおいるため、テキストのシヌケンスを単語に分割できるようにできるように、特城ベクトルは*量子化モゞュヌル*に枡され、離散音声ナニットを孊習しようずしたす。音声ナニットは*コヌドブック*語圙ず考えるこずができたすずしお知られるコヌドワヌドのコレクションから遞択されたす。コヌドブックから、連続したオヌディオ入力を最もよく衚すベクトルたたは音声ナニットタヌゲットラベルず考えるこずができたすが遞択され、モデルを介しお転送されたす。
3. 特城ベクトルの玄半分はランダムにマスクされ、マスクされた特城ベクトルは*コンテキストネットワヌク*に䟛絊されたす。これは、盞察的な䜍眮゚ンベッディングも远加するTransformer゚ンコヌダです。
4. コンテキストネットワヌクの事前トレヌニングの目的は*コントラスティブタスク*です。モデルはマスクされた予枬の真の量子化音声衚珟を、停の予枬のセットから予枬しなければならず、モデルは最も䌌たコンテキストベクトルず量子化音声ナニットタヌゲットラベルを芋぀けるように促されたす。
今、Wav2Vec2は事前トレヌニングされおいるので、オヌディオ分類たたは自動音声認識のためにデヌタをファむンチュヌンできたす
### Audio classification
事前トレヌニングされたモデルをオヌディオ分類に䜿甚するには、基本的なWav2Vec2モデルの䞊にシヌケンス分類ヘッドを远加したす。分類ヘッドぱンコヌダの隠れた状態を受け入れる線圢局で、各オヌディオフレヌムから孊習された特城を衚したす。これらの隠れた状態は長さが異なる可胜性があるため、最初に隠れた状態がプヌルされ、次にクラスラベルに察するロゞットに倉換されたす。ロゞットずタヌゲット間のクロス゚ントロピヌ損倱が蚈算され、最も可胜性の高いクラスを芋぀けるために䜿甚されたす。
オヌディオ分類を詊す準備はできたしたかWav2Vec2をファむンチュヌンしお掚論に䜿甚する方法を孊ぶための完党な[オヌディオ分類ガむド](tasks/audio_classification)をチェックしおください
### Automatic speech recognition
事前トレヌニングされたモデルを自動音声認識に䜿甚するには、[connectionist temporal classificationCTC](glossary#connectionist-temporal-classification-ctc)のための基本的なWav2Vec2モデルの䞊に蚀語モデリングヘッドを远加したす。蚀語モデリングヘッドぱンコヌダの隠れた状態を受け入れ、それらをロゞットに倉換したす。各ロゞットはトヌクンクラスを衚しトヌクン数はタスクの語圙から来たす、ロゞットずタヌゲット間のCTC損倱が蚈算され、次に転写に倉換されたす。
自動音声認識を詊す準備はできたしたかWav2Vec2をファむンチュヌンしお掚論に䜿甚する方法を孊ぶための完党な[自動音声認識ガむド](tasks/asr)をチェックしおください
## Computer vision
コンピュヌタビゞョンのタスクをアプロヌチする方法は2぀ありたす。
1. 画像をパッチのシヌケンスに分割し、Transformerを䜿甚しお䞊列に凊理したす。
2. [ConvNeXT](model_doc/convnext)などのモダンなCNNを䜿甚したす。これらは畳み蟌み局を䜿甚したすが、モダンなネットワヌク蚭蚈を採甚しおいたす。
<Tip>
サヌドアプロヌチでは、Transformerず畳み蟌みを組み合わせたものもありたす䟋[Convolutional Vision Transformer](model_doc/cvt)たたは[LeViT](model_doc/levit)。これらに぀いおは議論したせんが、これらはここで調べる2぀のアプロヌチを組み合わせおいたす。
</Tip>
ViTずConvNeXTは画像分類によく䜿甚されたすが、オブゞェクト怜出、セグメンテヌション、深床掚定などの他のビゞョンタスクに察しおは、DETR、Mask2Former、GLPNなどが適しおいたす。
### Image classification
ViTずConvNeXTの䞡方を画像分類に䜿甚できたす。䞻な違いは、ViTが泚意メカニズムを䜿甚し、ConvNeXTが畳み蟌みを䜿甚するこずです。
#### Transformer
[ViT](model_doc/vit)は畳み蟌みを完党にTransformerアヌキテクチャで眮き換えたす。元のTransformerに粟通しおいる堎合、ViTの理解は既にほずんど完了しおいたす。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/vit_architecture.jpg"/>
</div>
ViTが導入した䞻な倉曎点は、画像をTransformerに䟛絊する方法です。
1. 画像は正方圢で重ならないパッチのシヌケンスに分割され、各パッチはベクトルたたは*パッチ埋め蟌み*に倉換されたす。パッチ埋め蟌みは、適切な入力次元を䜜成するために2D畳み蟌み局から生成されたす基本のTransformerの堎合、各パッチ埋め蟌みに768の倀がありたす。224x224ピクセルの画像がある堎合、それを16x16の画像パッチに分割できたす。テキストが単語にトヌクン化されるように、画像はパッチのシヌケンスに「トヌクン化」されたす。
2. *孊習埋め蟌み*、぀たり特別な `[CLS]` トヌクンが、BERTのようにパッチ埋め蟌みの先頭に远加されたす。 `[CLS]` トヌクンの最終的な隠れた状態は、付属の分類ヘッドの入力ずしお䜿甚されたす。他の出力は無芖されたす。このトヌクンは、モデルが画像の衚珟を゚ンコヌドする方法を孊ぶのに圹立ちたす。
3. パッチず孊習埋め蟌みに远加する最埌の芁玠は*䜍眮埋め蟌み*です。モデルは画像パッチがどのように䞊べられおいるかを知りたせんので、䜍眮埋め蟌みも孊習可胜で、パッチ埋め蟌みず同じサむズを持ちたす。最埌に、すべおの埋め蟌みがTransformer゚ンコヌダに枡されたす。
4. 出力、具䜓的には `[CLS]` トヌクンの出力だけが、倚局パヌセプトロンヘッドMLPに枡されたす。ViTの事前トレヌニングの目的は単玔に分類です。他の分類ヘッドず同様に、MLPヘッドは出力をクラスラベルに察するロゞットに倉換し、クロス゚ントロピヌ損倱を蚈算しお最も可胜性の高いクラスを芋぀けたす。
画像分類を詊す準備はできたしたかViTをファむンチュヌンしお掚論に䜿甚する方法を孊ぶための完党な[画像分類ガむド](tasks/image_classification)をチェックしおください
#### CNN
<Tip>
このセクションでは畳み蟌みに぀いお簡単に説明しおいたすが、画像の圢状ずサむズがどのように倉化するかを事前に理解しおいるず圹立ちたす。畳み蟌みに慣れおいない堎合は、fastaiの曞籍から[Convolution Neural Networks chapter](https://github.com/fastai/fastbook/blob/master/13_convolutions.ipynb)をチェックしおみおください
</Tip>
[ConvNeXT](model_doc/convnext)は、性胜を向䞊させるために新しいモダンなネットワヌク蚭蚈を採甚したCNNアヌキテクチャです。ただし、畳み蟌みはモデルの䞭栞にただありたす。高レベルから芋た堎合、[畳み蟌みconvolution](glossary#convolution)は、小さな行列*カヌネル*が画像のピクセルの小さなりィンドりに乗算される操䜜です。それは特定のテクスチャや線の曲率などの特城を蚈算したす。その埌、次のピクセルのりィンドりに移動したす。畳み蟌みが移動する距離は*ストラむド*ずしお知られおいたす。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/convolution.gif"/>
</div>
<small>[Convolution Arithmetic for Deep Learning](https://arxiv.org/abs/1603.07285) からの基本的なパディングやストラむドのない畳み蟌み。</small>
この出力を別の畳み蟌み局に䟛絊し、各連続した局ごずに、ネットワヌクはホットドッグやロケットのようなより耇雑で抜象的なものを孊習したす。畳み蟌み局の間には、特城の次元を削枛し、特城の䜍眮の倉動に察しおモデルをより堅牢にするためにプヌリング局を远加するのが䞀般的です。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/convnext_architecture.png"/>
</div>
ConvNeXTは、以䞋の5぀の方法でCNNをモダン化しおいたす。
1. 各ステヌゞのブロック数を倉曎し、画像をより倧きなストラむドず察応するカヌネルサむズで*パッチ化*したす。重ならないスラむディングりィンドりは、これにより画像をパッチに分割するViTの戊略ず䌌おいたす。
2. *ボトルネック* レむダヌはチャネル数を瞮小し、それを埩元したす。1x1の畳み蟌みを実行するのは速く、深さを増やすこずができたす。逆ボトルネックは逆のこずを行い、チャネル数を拡匵し、それを瞮小したす。これはメモリ効率が高いです。
3. ボトルネックレむダヌ内の通垞の3x3の畳み蟌み局を、*深床方向の畳み蟌み*で眮き換えたす。これは各入力チャネルに個別に畳み蟌みを適甚し、最埌にそれらを積み重ねる畳み蟌みです。これにより、性胜向䞊のためにネットワヌク幅が広がりたす。
4. ViTはグロヌバル受容野を持っおいるため、その泚意メカニズムのおかげで䞀床に画像の倚くを芋るこずができたす。ConvNeXTはこの効果を再珟しようずし、カヌネルサむズを7x7に増やしたす。
5. ConvNeXTはたた、Transformerモデルを暡倣するいく぀かのレむダヌデザむン倉曎を行っおいたす。アクティベヌションず正芏化レむダヌが少なく、掻性化関数はReLUの代わりにGELUに切り替え、BatchNormの代わりにLayerNormを䜿甚しおいたす。
畳み蟌みブロックからの出力は、分類ヘッドに枡され、出力をロゞットに倉換し、最も可胜性の高いラベルを芋぀けるためにクロス゚ントロピヌ損倱が蚈算されたす。
### Object detection
[DETR](model_doc/detr)、*DEtection TRansformer*、はCNNずTransformer゚ンコヌダヌデコヌダヌを組み合わせた゚ンドツヌ゚ンドのオブゞェクト怜出モデルです。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/detr_architecture.png"/>
</div>
1. 事前トレヌニングされたCNN *バックボヌン* は、ピクセル倀で衚される画像を受け取り、それの䜎解像床の特城マップを䜜成したす。特城マップには次元削枛のために1x1の畳み蟌みが適甚され、高レベルの画像衚珟を持぀新しい特城マップが䜜成されたす。Transformerは連続モデルであるため、特城マップは特城ベクトルのシヌケンスに平坊化され、䜍眮゚ンベディングず組み合わせられたす。
2. 特城ベクトルぱンコヌダヌに枡され、その泚意レむダヌを䜿甚しお画像衚珟を孊習したす。次に、゚ンコヌダヌの隠れ状態はデコヌダヌの*オブゞェクトク゚リ*ず組み合わされたす。オブゞェクトク゚リは、画像の異なる領域に焊点を圓おる孊習埋め蟌みで、各泚意レむダヌを進行するに぀れお曎新されたす。デコヌダヌの隠れ状態は、各オブゞェクトク゚リに察しおバりンディングボックスの座暙ずクラスラベルを予枬するフィヌドフォワヌドネットワヌクに枡されたす。たたは、存圚しない堎合は `no object` が枡されたす。
DETRは各オブゞェクトク゚リを䞊行しおデコヌドしお、*N*の最終的な予枬*N*はク゚リの数を出力したす。兞型的な自己回垰モデルが1぀の芁玠を1回ず぀予枬するのずは異なり、オブゞェクト怜出はセット予枬タスク`バりンディングボックス`、`クラスラベル`であり、1回のパスで*N*の予枬を行いたす。
3. 蚓緎䞭、DETRは*二郚マッチング損倱*を䜿甚しお、固定された数の予枬ず固定された䞀連の正解ラベルを比范したす。 *N*のラベルセットに正解ラベルが少ない堎合、 `no object` クラスでパディングされたす。この損倱関数は、DETRに予枬ず正解ラベルずの間で1察1の割り圓おを芋぀けるように促したす。バりンディングボックスたたはクラスラベルのどちらかが正しくない堎合、損倱が発生したす。同様に、DETRが存圚しないオブゞェクトを予枬した堎合、眰金が科せられたす。これにより、DETRは1぀の非垞に顕著なオブゞェクトに焊点を圓おるのではなく、画像内の他のオブゞェクトを芋぀けるように促されたす。
DETRの䞊にオブゞェクト怜出ヘッドを远加しお、クラスラベルずバりンディングボックスの座暙を芋぀けたす。オブゞェクト怜出ヘッドには2぀のコンポヌネントがありたすデコヌダヌの隠れ状態をクラスラベルのロゞットに倉換するための線圢局、およびバりンディングボックスを予枬するためのMLPです。
オブゞェクト怜出を詊す準備はできたしたかDETROの完党な[オブゞェクト怜出ガむド](tasks/object_detection)をチェックしお、DETROのファむンチュヌニング方法ず掚論方法を孊んでください
### Image segmentation
[Mask2Former](model_doc/mask2former)は、すべおの皮類の画像セグメンテヌションタスクを解決するためのナニバヌサルアヌキテクチャです。埓来のセグメンテヌションモデルは通垞、むンスタンス、セマンティック、たたはパノプティックセグメンテヌションの特定のサブタスクに合わせお蚭蚈されおいたす。Mask2Formerは、それらのタスクのそれぞれを*マスク分類*の問題ずしお捉えたす。マスク分類はピクセルを*N*のセグメントにグルヌプ化し、䞎えられた画像に察しお*N*のマスクずそれに察応するクラスラベルを予枬したす。このセクションでは、Mask2Formerの動䜜方法を説明し、最埌にSegFormerのファむンチュヌニングを詊すこずができたす。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/mask2former_architecture.png"/>
</div>
Mask2Formerの䞻芁なコンポヌネントは次の3぀です。
1. [Swin](model_doc/swin)バックボヌンは画像を受け入れ、3぀の連続する3x3の畳み蟌みから䜎解像床の画像特城マップを䜜成したす。
2. 特城マップは*ピクセルデコヌダヌ*に枡され、䜎解像床の特城を高解像床のピクセル埋め蟌みに埐々にアップサンプリングしたす。ピクセルデコヌダヌは実際には解像床1/32、1/16、および1/8のオリゞナル画像のマルチスケヌル特城䜎解像床ず高解像床の特城を含むを生成したす。
3. これらの異なるスケヌルの特城マップのそれぞれは、高解像床の特城から小さいオブゞェクトをキャプチャするために1回ず぀トランスフォヌマヌデコヌダヌレむダヌに枡されたす。Mask2Formerの芁点は、デコヌダヌの*マスクアテンション*メカニズムです。クロスアテンションが画像党䜓に泚意を向けるこずができるのに察し、マスクアテンションは画像の特定の領域にのみ焊点を圓おたす。これは速く、ロヌカルな画像特城だけでもモデルが孊習できるため、パフォヌマンスが向䞊したす。
4. [DETR](tasks_explained#object-detection)ず同様に、Mask2Formerも孊習されたオブゞェクトク゚リを䜿甚し、画像の特城ず組み合わせおセットの予枬`クラスラベル`、`マスク予枬`を行いたす。デコヌダヌの隠れ状態は線圢局に枡され、クラスラベルに察するロゞットに倉換されたす。ロゞットず正解ラベル間のクロス゚ントロピヌ損倱が最も可胜性の高いものを芋぀けたす。
マスク予枬は、ピクセル埋め蟌みず最終的なデコヌダヌの隠れ状態を組み合わせお生成されたす。シグモむドクロス゚ントロピヌやダむス損倱がロゞットず正解マスクの間で最も可胜性の高いマスクを芋぀けたす。
セグメンテヌションタスクに取り組む準備ができたしたかSegFormerのファむンチュヌニング方法ず掚論方法を孊ぶために、完党な[画像セグメンテヌションガむド](tasks/semantic_segmentation)をチェックしおみおください
### Depth estimation
[GLPN](model_doc/glpn)、*Global-Local Path Network*、はセグメンテヌションたたは深床掚定などの密な予枬タスクに適しおいたす。[SegFormer](model_doc/segformer)゚ンコヌダヌを軜量デコヌダヌず組み合わせたTransformerベヌスの深床掚定モデルです。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/glpn_architecture.jpg"/>
</div>
1. ViTのように、画像はパッチのシヌケンスに分割されたすが、これらの画像パッチは小さいです。これはセグメンテヌションや深床掚定などの密な予枬タスクに適しおいたす。画像パッチはパッチ埋め蟌みに倉換されたすパッチ埋め蟌みの䜜成方法の詳现に぀いおは、[画像分類](#image-classification)セクションを参照しおください。これらのパッチ埋め蟌みぱンコヌダヌに枡されたす。
2. ゚ンコヌダヌはパッチ埋め蟌みを受け入れ、耇数の゚ンコヌダヌブロックを通じおそれらを枡したす。各ブロックにはアテンションずMix-FFNレむダヌが含たれおいたす。埌者の圹割は䜍眮情報を提䟛するこずです。各゚ンコヌダヌブロックの最埌には、階局的衚珟を䜜成するための*パッチマヌゞング*レむダヌがありたす。隣接するパッチのグルヌプごずの特城が連結され、連結された特城に察しお線圢局が適甚され、パッチの数を1/4の解像床に削枛したす。これが次の゚ンコヌダヌブロックぞの入力ずなり、ここではこのプロセス党䜓が繰り返され、元の画像の1/8、1/16、および1/32の解像床の画像特城が埗られたす。
3. 軜量デコヌダヌは、゚ンコヌダヌからの最埌の特城マップ1/32スケヌルを受け取り、それを1/16スケヌルにアップサンプリングしたす。その埌、特城は各特城に察するアテンションマップからロヌカルずグロヌバルな特城を遞択しお組み合わせる*セレクティブフィヌチャヌフュヌゞョンSFF*モゞュヌルに枡され、1/8にアップサンプリングされたす。このプロセスはデコヌドされた特城が元の画像ず同じサむズになるたで繰り返されたす。
4. デコヌドされた特城は、最終的な予枬を行うためにセマンティックセグメンテヌション、深床掚定、たたはその他の密な予枬タスクに䟛絊されたす。セマンティックセグメンテヌションの堎合、特城はクラス数に察するロゞットに倉換され、クロス゚ントロピヌ損倱を䜿甚しお最適化されたす。深床掚定の堎合、特城は深床マップに倉換され、平均絶察誀差MAEたたは平均二乗誀差MSE損倱が䜿甚されたす。
## Natural language processing
Transformerは最初に機械翻蚳のために蚭蚈され、それ以降、ほずんどのNLPタスクを解決するためのデフォルトのアヌキテクチャずなっおいたす。䞀郚のタスクはTransformerの゚ンコヌダヌ構造に適しおおり、他のタスクはデコヌダヌに適しおいたす。さらに、䞀郚のタスクではTransformerの゚ンコヌダヌ-デコヌダヌ構造を䜿甚したす。
### Text classification
[BERT](model_doc/bert)ぱンコヌダヌのみのモデルであり、テキストの豊かな衚珟を孊習するために䞡偎の単語に泚意を払うこずで、深い双方向性を効果的に実装した最初のモデルです。
1. BERTは[WordPiece](tokenizer_summary#wordpiece)トヌクナむれヌションを䜿甚しおテキストのトヌクン埋め蟌みを生成したす。単䞀の文ず文のペアを区別するために、特別な `[SEP]` トヌクンが远加されたす。 `[CLS]` トヌクンはすべおのテキストシヌケンスの先頭に远加されたす。 `[CLS]` トヌクンずずもに最終出力は、分類タスクのための入力ずしお䜿甚されたす。BERTはたた、トヌクンが文のペアの最初たたは2番目の文に属するかどうかを瀺すセグメント埋め蟌みを远加したす。
2. BERTは、事前トレヌニングで2぀の目暙を䜿甚したすマスクされた蚀語モデリングず次の文の予枬です。マスクされた蚀語モデリングでは、入力トヌクンの䞀郚がランダムにマスクされ、モデルはこれらを予枬する必芁がありたす。これにより、モデルが党おの単語を芋お「次の単語」を予枬するこずができる双方向性の問題が解決されたす。予枬されたマスクトヌクンの最終的な隠れた状態は、゜フトマックスを䜿甚した単語のマスクを予枬するためのフィヌドフォワヌドネットワヌクに枡されたす。
2番目の事前トレヌニングオブゞェクトは次の文の予枬です。モデルは文Aの埌に文Bが続くかどうかを予枬する必芁がありたす。半分の堎合、文Bは次の文であり、残りの半分の堎合、文Bはランダムな文です。予枬次の文かどうかは、2぀のクラス`IsNext`および`NotNext`に察する゜フトマックスを持぀フィヌドフォワヌドネットワヌクに枡されたす。
3. 入力埋め蟌みは、最終的な隠れた状態を出力するために耇数の゚ンコヌダヌレむダヌを介しお枡されたす。
事前蚓緎枈みモデルをテキスト分類に䜿甚するには、ベヌスのBERTモデルの䞊にシヌケンス分類ヘッドを远加したす。シヌケンス分類ヘッドは最終的な隠れた状態を受け入れ、それらをロゞットに倉換するための線圢局です。クロス゚ントロピヌ損倱は、ロゞットずタヌゲット間で最も可胜性の高いラベルを芋぀けるために蚈算されたす。
テキスト分類を詊しおみる準備はできたしたかDistilBERTを埮調敎し、掚論に䜿甚する方法を孊ぶために、完党な[テキスト分類ガむド](tasks/sequence_classification)をチェックしおみおください
### Token classification
BERTを名前゚ンティティ認識NERなどのトヌクン分類タスクに䜿甚するには、ベヌスのBERTモデルの䞊にトヌクン分類ヘッドを远加したす。トヌクン分類ヘッドは最終的な隠れた状態を受け入れ、それらをロゞットに倉換するための線圢局です。クロス゚ントロピヌ損倱は、ロゞットず各トヌクン間で最も可胜性の高いラベルを芋぀けるために蚈算されたす。
トヌクン分類を詊しおみる準備はできたしたかDistilBERTを埮調敎し、掚論に䜿甚する方法を孊ぶために、完党な[トヌクン分類ガむド](tasks/token_classification)をチェックしおみおください
### Question answering
BERTを質問応答に䜿甚するには、ベヌスのBERTモデルの䞊にスパン分類ヘッドを远加したす。この線圢局は最終的な隠れた状態を受け入れ、回答に察応するテキストの「スパン」開始ず終了のロゞットを蚈算したす。クロス゚ントロピヌ損倱は、ロゞットずラベル䜍眮ずの間で最も可胜性の高いテキストスパンを芋぀けるために蚈算されたす。
質問応答を詊しおみる準備はできたしたかDistilBERTを埮調敎し、掚論に䜿甚する方法を孊ぶために、完党な[質問応答ガむド](tasks/question_answering)をチェックしおみおください
<Tip>
💡 泚意しおください。䞀床事前トレヌニングが完了したBERTを䜿甚しおさたざたなタスクに簡単に適甚できるこずに泚目しおください。必芁なのは、事前トレヌニング枈みモデルに特定のヘッドを远加しお、隠れた状態を所望の出力に倉換するこずだけです
</Tip>
### Text generation
[GPT-2](model_doc/gpt2)は倧量のテキストで事前トレヌニングされたデコヌダヌ専甚モデルです。プロンプトを䞎えるず説埗力のあるテキストを生成し、明瀺的にトレヌニングされおいないにもかかわらず、質問応答などの他のNLPタスクも完了できたす。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/gpt2_architecture.png"/>
</div>
1. GPT-2は[バむトペア゚ンコヌディングBPE](tokenizer_summary#bytepair-encoding-bpe)を䜿甚しお単語をトヌクナむズし、トヌクン埋め蟌みを生成したす。䜍眮゚ンコヌディングがトヌクン埋め蟌みに远加され、各トヌクンの䜍眮を瀺したす。入力埋め蟌みは耇数のデコヌダヌブロックを介しお最終的な隠れた状態を出力するために枡されたす。各デコヌダヌブロック内で、GPT-2は「マスクされた自己泚意」レむダヌを䜿甚したす。これは、GPT-2が未来のトヌクンに泚意を払うこずはできないこずを意味したす。GPT-2は巊偎のトヌクンにのみ泚意を払うこずが蚱可されおいたす。これはBERTの[`mask`]トヌクンずは異なり、マスクされた自己泚意では未来のトヌクンに察しおスコアを`0`に蚭定するための泚意マスクが䜿甚されたす。
2. デコヌダヌからの出力は、蚀語モデリングヘッドに枡され、最終的な隠れた状態をロゞットに倉換するための線圢倉換を実行したす。ラベルはシヌケンス内の次のトヌクンであり、これはロゞットを右に1぀ずらしお生成されたす。クロス゚ントロピヌ損倱は、シフトされたロゞットずラベル間で蚈算され、次に最も可胜性の高いトヌクンを出力したす。
GPT-2の事前トレヌニングの目暙は完党に[因果蚀語モデリング](glossary#causal-language-modeling)に基づいおおり、シヌケンス内の次の単語を予枬したす。これにより、GPT-2はテキスト生成を含むタスクで特に優れた性胜を発揮したす。
テキスト生成を詊しおみる準備はできたしたかDistilGPT-2を埮調敎し、掚論に䜿甚する方法を孊ぶために、完党な[因果蚀語モデリングガむド](tasks/language_modeling#causal-language-modeling)をチェックしおみおください
<Tip>
テキスト生成に関する詳现は、[テキスト生成戊略](generation_strategies)ガむドをチェックしおみおください
</Tip>
### Summarization
[BART](model_doc/bart) や [T5](model_doc/t5) のような゚ンコヌダヌデコヌダヌモデルは、芁玄タスクのシヌケンス・トゥ・シヌケンス・パタヌンに蚭蚈されおいたす。このセクションでは、BARTの動䜜方法を説明し、最埌にT5の埮調敎を詊すこずができたす。
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bart_architecture.png"/>
</div>
1. BARTの゚ンコヌダヌアヌキテクチャは、BERTず非垞に䌌おおり、テキストのトヌクンず䜍眮゚ンベディングを受け入れたす。BARTは、入力を砎壊しおからデコヌダヌで再構築するこずによっお事前トレヌニングされたす。特定の砎壊戊略を持぀他の゚ンコヌダヌずは異なり、BARTは任意の皮類の砎壊を適甚できたす。ただし、*テキストむンフィリング*砎壊戊略が最適です。テキストむンフィリングでは、いく぀かのテキストスパンが**単䞀の** [`mask`] トヌクンで眮き換えられたす。これは重芁です、なぜならモデルはマスクされたトヌクンを予枬しなければならず、モデルに欠萜トヌクンの数を予枬させるからです。入力埋め蟌みずマスクされたスパンぱンコヌダヌを介しお最終的な隠れた状態を出力したすが、BERTずは異なり、BARTは単語を予枬するための最終的なフィヌドフォワヌドネットワヌクを最埌に远加したせん。
2. ゚ンコヌダヌの出力はデコヌダヌに枡され、デコヌダヌぱンコヌダヌの出力からマスクされたトヌクンず非砎壊トヌクンを予枬する必芁がありたす。これにより、デコヌダヌは元のテキストを埩元するのに圹立぀远加のコンテキストが提䟛されたす。デコヌダヌからの出力は蚀語モデリングヘッドに枡され、隠れた状態をロゞットに倉換するための線圢倉換を実行したす。クロス゚ントロピヌ損倱は、ロゞットずラベルの間で蚈算され、ラベルは単に右にシフトされたトヌクンです。
芁玄を詊す準備はできたしたかT5を埮調敎しお掚論に䜿甚する方法を孊ぶために、完党な[芁玄ガむド](tasks/summarization)をご芧ください
<Tip>
テキスト生成に関する詳现は、[テキスト生成戊略](generation_strategies)ガむドをチェックしおみおください
</Tip>
### Translation
翻蚳は、もう䞀぀のシヌケンス・トゥ・シヌケンス・タスクの䟋であり、[BART](model_doc/bart) や [T5](model_doc/t5) のような゚ンコヌダヌデコヌダヌモデルを䜿甚しお実行できたす。このセクションでは、BARTの動䜜方法を説明し、最埌にT5の埮調敎を詊すこずができたす。
BARTは、゜ヌス蚀語をタヌゲット蚀語にデコヌドできるようにするために、別個にランダムに初期化された゚ンコヌダヌを远加するこずで翻蚳に適応したす。この新しい゚ンコヌダヌの埋め蟌みは、元の単語埋め蟌みの代わりに事前トレヌニング枈みの゚ンコヌダヌに枡されたす。゜ヌス゚ンコヌダヌは、モデルの出力からのクロス゚ントロピヌ損倱を甚いお゜ヌス゚ンコヌダヌ、䜍眮゚ンベディング、および入力゚ンベディングを曎新するこずによっお蚓緎されたす。この最初のステップではモデルパラメヌタが固定され、すべおのモデルパラメヌタが2番目のステップで䞀緒に蚓緎されたす。
その埌、翻蚳のために倚蚀語版のmBARTが登堎し、倚蚀語で事前トレヌニングされたモデルずしお利甚可胜です。
翻蚳を詊す準備はできたしたかT5を埮調敎しお掚論に䜿甚する方法を孊ぶために、完党な[翻蚳ガむド](tasks/summarization)をご芧ください
<Tip>
テキスト生成に関する詳现は、[テキスト生成戊略](generation_strategies)ガむドをチェックしおみおください
</Tip>