# π€ Transformersλ‘ μμ
μ ν΄κ²°νλ λ°©λ²[[how-transformers-solve-tasks]]
[π€ Transformersλ‘ ν μ μλ μμ
](task_summary)μμ μμ°μ΄ μ²λ¦¬(NLP), μμ± λ° μ€λμ€, μ»΄ν¨ν° λΉμ μμ
λ±μ μ€μν μμ©μ λ°°μ μ΅λλ€. μ΄ νμ΄μ§μμλ λͺ¨λΈμ΄ μ΄λ¬ν μμ
μ μ΄λ»κ² ν΄κ²°νλμ§ μμΈν μ΄ν΄λ³΄κ³ λ΄λΆμμ μ΄λ€ μΌμ΄ μΌμ΄λλμ§ μ€λͺ
ν©λλ€. μ£Όμ΄μ§ μμ
μ ν΄κ²°νλ λ§μ λ°©λ²μ΄ μμΌλ©°, μΌλΆ λͺ¨λΈμ νΉμ κΈ°μ μ ꡬννκ±°λ μ¬μ§μ΄ μλ‘μ΄ λ°©μμΌλ‘ μμ
μ μ κ·Όν μλ μμ§λ§, Transformer λͺ¨λΈμ κ²½μ° μΌλ°μ μΈ μμ΄λμ΄λ λμΌν©λλ€. μ μ°ν μν€ν
μ² λλΆμ λλΆλΆμ λͺ¨λΈμ μΈμ½λ, λμ½λ λλ μΈμ½λ-λμ½λ ꡬ쑰μ λ³νμ
λλ€. Transformer λͺ¨λΈλΏλ§ μλλΌ μ°λ¦¬μ λΌμ΄λΈλ¬λ¦¬μλ μ€λλ μ»΄ν¨ν° λΉμ μμ
μ μ¬μ©λλ λͺ κ°μ§ ν©μ±κ³± μ κ²½λ§(CNNs)λ μμ΅λλ€. λν, μ°λ¦¬λ νλ CNNμ μλ λ°©μμ λν΄ μ€λͺ
ν κ²μ
λλ€.
μμ
μ΄ μ΄λ»κ² ν΄κ²°λλμ§ μ€λͺ
νκΈ° μν΄, μ μ©ν μμΈ‘μ μΆλ ₯νκ³ μ λͺ¨λΈ λ΄λΆμμ μ΄λ€ μΌμ΄ μΌμ΄λλμ§ μ΄ν΄λ΄
λλ€.
- μ€λμ€ λΆλ₯ λ° μλ μμ± μΈμ(ASR)μ μν [Wav2Vec2](model_doc/wav2vec2)
- μ΄λ―Έμ§ λΆλ₯λ₯Ό μν [Vision Transformer (ViT)](model_doc/vit) λ° [ConvNeXT](model_doc/convnext)
- κ°μ²΄ νμ§λ₯Ό μν [DETR](model_doc/detr)
- μ΄λ―Έμ§ λΆν μ μν [Mask2Former](model_doc/mask2former)
- κΉμ΄ μΆμ μ μν [GLPN](model_doc/glpn)
- μΈμ½λλ₯Ό μ¬μ©νλ ν
μ€νΈ λΆλ₯, ν ν° λΆλ₯ λ° μ§μμλ΅κ³Ό κ°μ NLP μμ
μ μν [BERT](model_doc/bert)
- λμ½λλ₯Ό μ¬μ©νλ ν
μ€νΈ μμ±κ³Ό κ°μ NLP μμ
μ μν [GPT2](model_doc/gpt2)
- μΈμ½λ-λμ½λλ₯Ό μ¬μ©νλ μμ½ λ° λ²μκ³Ό κ°μ NLP μμ
μ μν [BART](model_doc/bart)
λ λμκ°κΈ° μ μ, κΈ°μ‘΄ Transformer μν€ν
μ²μ λν κΈ°λ³Έμ μΈ μ§μμ μμ§νλ κ²μ΄ μ’μ΅λλ€. μΈμ½λ, λμ½λ λ° μ΄ν
μ
μ μλ λ°©μμ μλ©΄ λ€μν Transformer λͺ¨λΈμ΄ μ΄λ»κ² μλνλμ§ μ΄ν΄νλ λ° λμμ΄ λ©λλ€. μμ λ¨κ³κ±°λ 볡μ΅μ΄ νμν κ²½μ°, λ λ§μ μ 보λ₯Ό μν΄ [μ½μ€](https://huggingface.co/course/chapter1/4?fw=pt)λ₯Ό νμΈνμΈμ!
## μμ± λ° μ€λμ€[[speech-and-audio]]
[Wav2Vec2](model_doc/wav2vec2)λ λ μ΄λΈμ΄ μ§μ λμ§ μμ μμ± λ°μ΄ν°μ λν΄ μ¬μ νλ ¨λ λͺ¨λΈλ‘, μ€λμ€ λΆλ₯ λ° μλ μμ± μΈμμ μν΄ λ μ΄λΈμ΄ μ§μ λ λ°μ΄ν°λ‘ λ―ΈμΈ μ‘°μ ν©λλ€.
μ΄ λͺ¨λΈμλ 4κ°μ§ μ£Όμ κ΅¬μ± μμκ° μμ΅λλ€:
1. *νΉμ§ μΈμ½λ(feature encoder)*λ μμ μ€λμ€ νν(raw audio waveform)μ κ°μ Έμμ μ λ‘ νκ· λ° λ¨μ λΆμ°μΌλ‘ νμ€ννκ³ , κ°κ° 20ms κΈΈμ΄μ νΉμ§ 벑ν°μ μνμ€λ‘ λ³νν©λλ€.
2. μ€λμ€ ννμ λ³Έμ§μ μΌλ‘ μ°μμ μ΄κΈ° λλ¬Έμ, ν
μ€νΈ μνμ€λ₯Ό λ¨μ΄λ‘ λλλ κ²κ³Ό κ°μ΄ λΆν ν μ μμ΅λλ€. κ·Έλμ *μμν λͺ¨λ(quantization module)*λ‘ μ λ¬λλ νΉμ§ 벑ν°λ μ΄μ°ν μμ± λ¨μλ₯Ό νμ΅νκΈ° μν κ²μ
λλ€. μμ± λ¨μλ *μ½λλΆ(codebook)*(μ΄νμ§μ΄λΌκ³ μκ°ν μ μμ΅λλ€)μ΄λΌλ μ½λλ¨μ΄(codewords) μ½λ μ
μμ μ νλ©λλ€. μ½λλΆμμ μ°μμ μΈ μ€λμ€ μ
λ ₯μ κ°μ₯ μ λνλ΄λ λ²‘ν° λλ μμ± λ¨μκ° μ νλμ΄ λͺ¨λΈμ ν΅κ³Όν©λλ€.
3. νΉμ§ 벑ν°μ μ λ°μ 무μμλ‘ λ§μ€ν¬κ° μ μ©λλ©°, λ§μ€ν¬λ νΉμ§ 벑ν°λ *μλμ μμΉ μλ² λ©*μ μΆκ°νλ Transformer μΈμ½λμΈ *λ¬Έλ§₯ λ€νΈμν¬(context network)*λ‘ μ λ¬λ©λλ€.
4. λ¬Έλ§₯ λ€νΈμν¬μ μ¬μ νλ ¨ λͺ©νλ *λμ‘°μ μμ
(contrastive task)*μ
λλ€. λͺ¨λΈμ μλͺ»λ μμΈ‘ μνμ€μμ λ§μ€ν¬λ μμΈ‘μ μ€μ μμνλ μμ± ννμ μμΈ‘νλ©°, λͺ¨λΈμ΄ κ°μ₯ μ μ¬ν 컨ν
μ€νΈ 벑ν°μ μμνλ μμ± λ¨μ(νκ² λ μ΄λΈ)λ₯Ό μ°Ύλλ‘ κΆμ₯ν©λλ€.
μ΄μ wav2vec2κ° μ¬μ νλ ¨λμμΌλ―λ‘, μ€λμ€ λΆλ₯ λλ μλ μμ± μΈμμ μν΄ λ°μ΄ν°μ λ§μΆ° λ―ΈμΈ μ‘°μ ν μ μμ΅λλ€!
### μ€λμ€ λΆλ₯[[audio-classification]]
μ¬μ νλ ¨λ λͺ¨λΈμ μ€λμ€ λΆλ₯μ μ¬μ©νλ €λ©΄, κΈ°λ³Έ Wav2Vec2 λͺ¨λΈ μλ¨μ μνμ€ λΆλ₯ ν€λλ₯Ό μΆκ°νλ©΄ λ©λλ€. λΆλ₯ ν€λλ μΈμ½λμ μλ μν(hidden states)λ₯Ό λ°λ μ ν λ μ΄μ΄μ
λλ€. μλ μνλ κ°κ° κΈΈμ΄κ° λ€λ₯Έ μ€λμ€ νλ μμμ νμ΅λ νΉμ§μ λνλ
λλ€. κ³ μ κΈΈμ΄μ λ²‘ν° νλλ₯Ό λ§λ€κΈ° μν΄, μλ μνλ λ¨Όμ νλ§λκ³ , ν΄λμ€ λ μ΄λΈμ λν λ‘μ§μΌλ‘ λ³νλ©λλ€. κ°μ₯ κ°λ₯μ±μ΄ λμ ν΄λμ€λ₯Ό μ°ΎκΈ° μν΄ λ‘μ§κ³Ό νκ² μ¬μ΄μ κ΅μ°¨ μνΈλ‘νΌ μμ€μ΄ κ³μ°λ©λλ€.
μ€λμ€ λΆλ₯μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μ€λμ€ λΆλ₯ κ°μ΄λ](tasks/audio_classification)λ₯Ό νμΈνμ¬ Wav2Vec2λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
### μλ μμ± μΈμ[[automatic-speech-recognition]]
μ¬μ νλ ¨λ λͺ¨λΈμ μλ μμ± μΈμμ μ¬μ©νλ €λ©΄, [μ°κ²°μ£Όμμ μκ° λΆλ₯(CTC, Connectionist Temporal Classification)](glossary#connectionist-temporal-classification-ctc)λ₯Ό μν΄ κΈ°λ³Έ Wav2Vec2 λͺ¨λΈ μλ¨μ μΈμ΄ λͺ¨λΈλ§ ν€λλ₯Ό μΆκ°ν©λλ€. μΈμ΄ λͺ¨λΈλ§ ν€λλ μΈμ½λμ μλ μνλ₯Ό λ°μμ λ‘μ§μΌλ‘ λ³νν©λλ€. κ° λ‘μ§μ ν ν° ν΄λμ€(ν ν° μλ μμ
μ μ΄νμμ λνλ©λλ€)λ₯Ό λνλ
λλ€. CTC μμ€μ ν
μ€νΈλ‘ λμ½λ©λ ν ν°μμ κ°μ₯ κ°λ₯μ±μ΄ λμ ν ν° μνμ€λ₯Ό μ°ΎκΈ° μν΄ λ‘μ§κ³Ό νκ² μ¬μ΄μμ κ³μ°λ©λλ€.
μλ μμ± μΈμμ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μλ μμ± μΈμ κ°μ΄λ](tasks/asr)λ₯Ό νμΈνμ¬ Wav2Vec2λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
## μ»΄ν¨ν° λΉμ [[computer-vision]]
μ»΄ν¨ν° λΉμ μμ
μ μ κ·Όνλ 2κ°μ§ λ°©λ²μ΄ μμ΅λλ€:
1. μ΄λ―Έμ§λ₯Ό ν¨μΉ μνμ€λ‘ λΆλ¦¬νκ³ Transformerλ‘ λ³λ ¬ μ²λ¦¬ν©λλ€.
2. [ConvNeXT](model_doc/convnext)μ κ°μ νλ CNNμ μ¬μ©ν©λλ€. μ΄λ ν©μ±κ³± λ μ΄μ΄λ₯Ό κΈ°λ°μΌλ‘ νμ§λ§ νλ λ€νΈμν¬ μ€κ³λ₯Ό μ μ©ν©λλ€.
μΈ λ²μ§Έ λ°©λ²μ Transformerμ ν©μ±κ³±(μλ₯Ό λ€μ΄, [Convolutional Vision Transformer](model_doc/cvt) λλ [LeViT](model_doc/levit))μ κ²°ν©νλ κ²μ
λλ€. μ°λ¦¬λ μ΄ν΄λ³Ό λ κ°μ§ λ°©λ²λ§ κ²°ν©νκΈ° λλ¬Έμ μ¬κΈ°μ μ΄ λ°©λ²μ λ€λ£¨μ§ μμ΅λλ€.
ViTμ ConvNeXTλ μΌλ°μ μΌλ‘ μ΄λ―Έμ§ λΆλ₯μμ μ¬μ©λμ§λ§, 물체 κ°μ§, λΆν , κΉμ΄ μΆμ κ³Ό κ°μ λ€λ₯Έ λΉμ μμ
μλ κ°κ° DETR, Mask2Former, GLPNμ΄ λ μ ν©νλ―λ‘ μ΄λ¬ν λͺ¨λΈμ μ΄ν΄λ³΄κ² μ΅λλ€.
### μ΄λ―Έμ§ λΆλ₯[[image-classification]]
ViTμ ConvNeXT λͺ¨λ μ΄λ―Έμ§ λΆλ₯μ μ¬μ©λ μ μμ§λ§, ViTλ μ΄ν
μ
λ©μ»€λμ¦μ, ConvNeXTλ ν©μ±κ³±μ μ¬μ©νλ κ²μ΄ μ£Όλ μ°¨μ΄μ
λλ€.
#### Transformer[[transformer]]
[ViT](model_doc/vit)μ ν©μ±κ³±μ μ μ μΌλ‘ μμ Transformer μν€ν
μ²λ‘ λ체ν©λλ€. κΈ°μ‘΄ Transformerμ μ΅μνλ€λ©΄, ViTλ₯Ό μ΄ν΄νλ λ°©λ²μ λλΆλΆμ μ΄λ―Έ νμ
νλ€κ³ λ³Ό μ μμ΅λλ€.
ViTκ° λμ
ν μ£Όμ λ³κ²½ μ¬νμ μ΄λ―Έμ§κ° Transformerλ‘ μ΄λ»κ² μ λ¬λλμ§μ μμ΅λλ€:
1. μ΄λ―Έμ§λ μλ‘ μ€μ²©λμ§ μλ μ μ¬κ°ν ν¨μΉλ‘ λΆν λκ³ , κ° ν¨μΉλ λ²‘ν° λλ *ν¨μΉ μλ² λ©(patch embedding)*μΌλ‘ λ³νλ©λλ€. ν¨μΉ μλ² λ©μ μ μ ν μ
λ ₯ μ°¨μμ λ§λλ 2D ν©μ±κ³± κ³μΈ΅μμ μμ±λ©λλ€(κΈ°λ³Έ Transformerμ κ²½μ° κ° ν¨μΉμ μλ² λ©λ§λ€ 768κ°μ κ°μ΄ νμν©λλ€). 224x224 ν½μ
μ΄λ―Έμ§κ° μλ€λ©΄, 16x16 μ΄λ―Έμ§ ν¨μΉ 196κ°λ‘ λΆν ν μ μμ΅λλ€. ν
μ€νΈκ° λ¨μ΄λ‘ ν ν°νλλ κ²μ²λΌ, μ΄λ―Έμ§λ ν¨μΉ μνμ€λ‘ "ν ν°ν"λ©λλ€.
2. *νμ΅ κ°λ₯ν μλ² λ©(learnable embedding)*(νΉμν `[CLS]` ν ν°)μ΄ BERTμ κ°μ΄ ν¨μΉ μλ² λ©μ μμ λΆλΆμ μΆκ°λ©λλ€. `[CLS]` ν ν°μ λ§μ§λ§ μλ μνλ λΆμ°©λ λΆλ₯ ν€λμ μ
λ ₯μΌλ‘ μ¬μ©λκ³ , λ€λ₯Έ μΆλ ₯μ 무μλ©λλ€. μ΄ ν ν°μ λͺ¨λΈμ΄ μ΄λ―Έμ§μ ννμ μΈμ½λ©νλ λ°©λ²μ νμ΅νλ λ° λμμ΄ λ©λλ€.
3. ν¨μΉμ νμ΅ κ°λ₯ν μλ² λ©μ λ§μ§λ§μΌλ‘ μΆκ°ν κ²μ *μμΉ μλ² λ©*μ
λλ€. μλνλ©΄ λͺ¨λΈμ μ΄λ―Έμ§ ν¨μΉμ μμλ₯Ό λͺ¨λ₯΄κΈ° λλ¬Έμ
λλ€. μμΉ μλ² λ©λ νμ΅ κ°λ₯νλ©°, ν¨μΉ μλ² λ©κ³Ό λμΌν ν¬κΈ°λ₯Ό κ°μ§λλ€. μ΅μ’
μ μΌλ‘, λͺ¨λ μλ² λ©μ΄ Transformer μΈμ½λμ μ λ¬λ©λλ€.
4. `[CLS]` ν ν°μ ν¬ν¨ν μΆλ ₯μ λ€μΈ΅ νΌμ
νΈλ‘ ν€λ(MLP)μ μ λ¬λ©λλ€. ViTμ μ¬μ νλ ¨ λͺ©νλ λ¨μν λΆλ₯μ
λλ€. λ€λ₯Έ λΆλ₯ ν€λμ κ°μ΄, MLP ν€λλ μΆλ ₯μ ν΄λμ€ λ μ΄λΈμ λν΄ λ‘μ§μΌλ‘ λ³ννκ³ κ΅μ°¨ μνΈλ‘νΌ μμ€μ κ³μ°νμ¬ κ°μ₯ κ°λ₯μ±μ΄ λμ ν΄λμ€λ₯Ό μ°Ύμ΅λλ€.
μ΄λ―Έμ§ λΆλ₯μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μ΄λ―Έμ§ λΆλ₯ κ°μ΄λ](tasks/image_classification)λ₯Ό νμΈνμ¬ ViTλ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
#### CNN[[cnn]]
μ΄ μΉμ
μμλ ν©μ±κ³±μ λν΄ κ°λ΅νκ² μ€λͺ
ν©λλ€. κ·Έλ¬λ μ΄λ―Έμ§μ λͺ¨μκ³Ό ν¬κΈ°κ° μ΄λ»κ² λ³ννλμ§μ λν μ¬μ μ΄ν΄κ° μλ€λ©΄ λμμ΄ λ κ²μ
λλ€. ν©μ±κ³±μ μ΅μνμ§ μμ κ²½μ°, fastai bookμ [ν©μ±κ³± μ κ²½λ§ μ±ν°](https://github.com/fastai/fastbook/blob/master/13_convolutions.ipynb)λ₯Ό νμΈνμΈμ!
[ConvNeXT](model_doc/convnext)λ μ±λ₯μ λμ΄κΈ° μν΄ μλ‘μ΄ νλ λ€νΈμν¬ μ€κ³λ₯Ό μ μ©ν CNN ꡬ쑰μ
λλ€. κ·Έλ¬λ ν©μ±κ³±μ μ¬μ ν λͺ¨λΈμ ν΅μ¬μ
λλ€. λμ μμ€μ κ΄μ μμ λ³Ό λ, [ν©μ±κ³±](glossary#convolution)μ μμ νλ ¬(*컀λ*)μ μ΄λ―Έμ§ ν½μ
μ μμ μλμ°λ₯Ό κ³±νλ μ°μ°μ
λλ€. μ΄λ νΉμ ν
μ€μ³(texture)μ΄λ μ μ 곑λ₯ κ³Ό κ°μ μΌλΆ νΉμ§μ κ³μ°ν©λλ€. κ·Έλ¬κ³ λ€μ ν½μ
μλμ°λ‘ λμ΄κ°λλ°, μ¬κΈ°μ ν©μ±κ³±μ΄ μ΄λνλ 거리λ₯Ό *보ν(stride)*μ΄λΌκ³ ν©λλ€.
ν¨λ©μ΄λ 보νμ΄ μλ κΈ°λ³Έ ν©μ±κ³±, λ₯λ¬λμ μν ν©μ±κ³± μ°μ° κ°μ΄λ
μ΄ μΆλ ₯μ λ€λ₯Έ ν©μ±κ³± λ μ΄μ΄μ μ λ¬ν μ μμΌλ©°, κ° μ°μμ μΈ λ μ΄μ΄λ₯Ό ν΅ν΄ λ€νΈμν¬λ ν«λκ·Έλ λ‘μΌκ³Ό κ°μ΄ λ 볡μ‘νκ³ μΆμμ μΈ κ²μ νμ΅ν©λλ€. ν©μ±κ³± λ μ΄μ΄ μ¬μ΄μ νλ§ λ μ΄μ΄λ₯Ό μΆκ°νμ¬ μ°¨μμ μ€μ΄κ³ νΉμ§μ μμΉ λ³νμ λν΄ λͺ¨λΈμ λ κ²¬κ³ νκ² λ§λλ κ²μ΄ μΌλ°μ μ
λλ€.
ConvNeXTλ CNNμ 5κ°μ§ λ°©μμΌλ‘ νλνν©λλ€:
1. κ° λ¨κ³μ λΈλ‘ μλ₯Ό λ³κ²½νκ³ λ ν° λ³΄νκ³Ό κ·Έμ λμνλ 컀λ ν¬κΈ°λ‘ μ΄λ―Έμ§λ₯Ό "ν¨μΉν(patchify)"ν©λλ€. κ²ΉμΉμ§ μλ μ¬λΌμ΄λ© μλμ°λ ViTκ° μ΄λ―Έμ§λ₯Ό ν¨μΉλ‘ λΆν νλ λ°©λ²κ³Ό μ μ¬νκ² μ΄ ν¨μΉν μ λ΅μ λ§λλλ€.
2. *λ³λͺ©(bottleneck)* λ μ΄μ΄λ μ±λ μλ₯Ό μ€μλ€κ° λ€μ 볡μν©λλ€. μλνλ©΄ 1x1 ν©μ±κ³±μ μννλ κ²μ΄ λ λΉ λ₯΄κ³ , κΉμ΄λ₯Ό λ릴 μ μκΈ° λλ¬Έμ
λλ€. μ λ³λͺ©(inverted bottlenect)μ μ±λ μλ₯Ό νμ₯νκ³ μΆμν¨μΌλ‘μ¨ κ·Έ λ°λλ‘ μννλ―λ‘, λ©λͺ¨λ¦¬ ν¨μ¨μ΄ λ λμ΅λλ€.
3. λ³λͺ© λ μ΄μ΄μ μΌλ°μ μΈ 3x3 ν©μ±κ³± λ μ΄μ΄λ₯Ό κ° μ
λ ₯ μ±λμ κ°λ³μ μΌλ‘ ν©μ±κ³±μ μ μ©ν λ€μ λ§μ§λ§μ μλ *κΉμ΄λ³ ν©μ±κ³±(depthwise convolution)*μΌλ‘ λ체ν©λλ€. μ΄λ λ€νΈμν¬ νμ΄ λν μ±λ₯μ΄ ν₯μλ©λλ€.
4. ViTλ μ΄ν
μ
λ©μ»€λμ¦ λλΆμ ν λ²μ λ λ§μ μ΄λ―Έμ§λ₯Ό λ³Ό μ μλ μ μ μμ νλλ₯Ό κ°μ§κ³ μμ΅λλ€. ConvNeXTλ 컀λ ν¬κΈ°λ₯Ό 7x7λ‘ λλ € μ΄ ν¨κ³Όλ₯Ό μ¬ννλ €κ³ μλν©λλ€.
5. λν ConvNeXTλ Transformer λͺ¨λΈμ λͺ¨λ°©νλ λͺ κ°μ§ λ μ΄μ΄ μ€κ³λ₯Ό λ³κ²½ν©λλ€. νμ±ν λ° μ κ·ν λ μ΄μ΄κ° λ μ κ³ , νμ±ν ν¨μκ° ReLU λμ GELUλ‘ μ νλκ³ , BatchNorm λμ LayerNormμ μ¬μ©ν©λλ€.
ν©μ±κ³± λΈλ‘μ μΆλ ₯μ λΆλ₯ ν€λλ‘ μ λ¬λλ©°, λΆλ₯ ν€λλ μΆλ ₯μ λ‘μ§μΌλ‘ λ³ννκ³ κ΅μ°¨ μνΈλ‘νΌ μμ€μ κ³μ°νμ¬ κ°μ₯ κ°λ₯μ±μ΄ λμ λ μ΄λΈμ μ°Ύμ΅λλ€.
### κ°μ²΄ νμ§[[object-detection]]
[DETR](model_doc/detr), *DEtection TRansformer*λ CNNκ³Ό Transformer μΈμ½λ-λμ½λλ₯Ό κ²°ν©ν μ’
λ¨κ°(end-to-end) κ°μ²΄ νμ§ λͺ¨λΈμ
λλ€.
1. μ¬μ νλ ¨λ CNN *λ°±λ³Έ(backbone)*μ ν½μ
κ°μΌλ‘ λνλΈ μ΄λ―Έμ§λ₯Ό κ°μ Έμ μ ν΄μλ νΉμ§ 맡μ λ§λλλ€. νΉμ§ 맡μ λν΄ 1x1 ν©μ±κ³±μ μ μ©νμ¬ μ°¨μμ μ€μ΄κ³ , κ³ μμ€ μ΄λ―Έμ§ ννμ κ°μ§ μλ‘μ΄ νΉμ§ 맡μ μμ±ν©λλ€. Transformerλ μνμ€ λͺ¨λΈμ΄κΈ° λλ¬Έμ νΉμ§ 맡μ μμΉ μλ² λ©κ³Ό κ²°ν©λ νΉμ§ 벑ν°μ μνμ€λ‘ νννν©λλ€.
2. νΉμ§ 벑ν°λ μ΄ν
μ
λ μ΄μ΄λ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§ ννμ νμ΅νλ μΈμ½λμ μ λ¬λ©λλ€. λ€μμΌλ‘, μΈμ½λμ μλ μνλ λμ½λμμ *κ°μ²΄ 쿼리*μ κ²°ν©λ©λλ€. κ°μ²΄ 쿼리λ μ΄λ―Έμ§μ λ€λ₯Έ μμμ μ΄μ μ λ§μΆ νμ΅λ μλ² λ©μΌλ‘ νμ΅λκ³ , κ° μ΄ν
μ
λ μ΄μ΄λ₯Ό μ§ννλ©΄μ κ°±μ λ©λλ€. λμ½λμ μλ μνλ κ° κ°μ²΄ 쿼리μ λν λ°μ΄λ© λ°μ€ μ’νμ ν΄λμ€ λ μ΄λΈμ μμΈ‘νλ μλ°©ν₯ λ€νΈμν¬μ μ λ¬λλ©°, κ°μ²΄κ° μλ κ²½μ° `no object`κ° μΆλ ₯λ©λλ€.
DETRμ κ° κ°μ²΄ 쿼리λ₯Ό λ³λ ¬λ‘ λμ½λ©νμ¬ *N* κ°μ μ΅μ’
μμΈ‘μ μΆλ ₯ν©λλ€. μ¬κΈ°μ *N*μ 쿼리 μμ
λλ€. ν λ²μ νλμ μμλ₯Ό μμΈ‘νλ μΌλ°μ μΈ μκΈ°νκ· λͺ¨λΈκ³Ό λ¬λ¦¬, κ°μ²΄ νμ§λ ν λ²μ *N* κ°μ μμΈ‘μ μννλ μ§ν© μμΈ‘ μμ
(`λ°μ΄λ© λ°μ€`, `ν΄λμ€ λ μ΄λΈ`)μ
λλ€.
3. DETRμ νλ ¨ μ€ *μ΄λΆ λ§€μΉ μμ€(bipartite matching loss)*μ μ¬μ©νμ¬ κ³ μ λ μμ μμΈ‘κ³Ό κ³ μ λ μ€μ μ λ΅ λ μ΄λΈ(ground truth labels) μΈνΈλ₯Ό λΉκ΅ν©λλ€. *N*κ°μ λ μ΄λΈ μΈνΈμ μ€μ μ λ΅ λ μ΄λΈλ³΄λ€ μ μ κ²½μ°, `no object` ν΄λμ€λ‘ ν¨λ©λ©λλ€. μ΄ μμ€ ν¨μλ DETRμ΄ μμΈ‘κ³Ό μ€μ μ λ΅ λ μ΄λΈ κ° 1:1 λμμ μ°Ύλλ‘ κΆμ₯ν©λλ€. λ°μ΄λ© λ°μ€ λλ ν΄λμ€ λ μ΄λΈ μ€ νλλΌλ μλͺ»λ κ²½μ°, μμ€μ΄ λ°μν©λλ€. λ§μ°¬κ°μ§λ‘, μ‘΄μ¬νμ§ μλ κ°μ²΄λ₯Ό μμΈ‘νλ κ²½μ°, ν¨λν°λ₯Ό λ°μ΅λλ€. μ΄λ‘ μΈν΄ DETRμ μ΄λ―Έμ§μμ λμ μ λλ 물체 νλμ μ§μ€νλ λμ , λ€λ₯Έ κ°μ²΄λ₯Ό μ°Ύλλ‘ κΆμ₯λ©λλ€.
κ°μ²΄ νμ§ ν€λκ° DETR μλ¨μ μΆκ°λμ΄ ν΄λμ€ λ μ΄λΈκ³Ό λ°μ΄λ© λ°μ€μ μ’νλ₯Ό μ°Ύμ΅λλ€. κ°μ²΄ νμ§ ν€λμλ λ κ°μ§ κ΅¬μ± μμκ° μμ΅λλ€: λμ½λ μλ μνλ₯Ό ν΄λμ€ λ μ΄λΈμ λ‘μ§μΌλ‘ λ³ννλ μ ν λ μ΄μ΄ λ° λ°μ΄λ© λ°μ€λ₯Ό μμΈ‘νλ MLP
κ°μ²΄ νμ§μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [κ°μ²΄ νμ§ κ°μ΄λ](tasks/object_detection)λ₯Ό νμΈνμ¬ DETRμ λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
### μ΄λ―Έμ§ λΆν [[image-segmentation]]
[Mask2Former](model_doc/mask2former)λ λͺ¨λ μ νμ μ΄λ―Έμ§ λΆν μμ
μ ν΄κ²°νλ λ²μ© μν€ν
μ²μ
λλ€. μ ν΅μ μΈ λΆν λͺ¨λΈμ μΌλ°μ μΌλ‘ μλ©ν±(semantic) λλ νλν±(panoptic) λΆν κ³Ό κ°μ μ΄λ―Έμ§ λΆν μ νΉμ νμ μμ
μ λ§μΆ° μ‘°μ λ©λλ€. Mask2Formerλ λͺ¨λ μμ
μ *λ§μ€ν¬ λΆλ₯* λ¬Έμ λ‘ κ΅¬μ±ν©λλ€. λ§μ€ν¬ λΆλ₯λ ν½μ
μ *N*κ° μΈκ·Έλ¨ΌνΈλ‘ κ·Έλ£Ήννκ³ , μ£Όμ΄μ§ μ΄λ―Έμ§μ λν΄ *N*κ°μ λ§μ€ν¬μ κ·Έμ λμνλ ν΄λμ€ λ μ΄λΈμ μμΈ‘ν©λλ€. μ΄ μΉμ
μμ Mask2Formerμ μλ λ°©λ²μ μ€λͺ
ν λ€μ, λ§μ§λ§μ SegFormerλ₯Ό λ―ΈμΈ μ‘°μ ν΄λ³Ό μ μμ΅λλ€.
Mask2Formerμλ 3κ°μ§ μ£Όμ κ΅¬μ± μμκ° μμ΅λλ€:
1. [Swin](model_doc/swin) λ°±λ³Έμ΄ μ΄λ―Έμ§λ₯Ό λ°μ 3κ°μ μ°μλ 3x3 ν©μ±κ³±μμ μ ν΄μλ μ΄λ―Έμ§ νΉμ§ 맡μ μμ±ν©λλ€.
2. νΉμ§ 맡μ *ν½μ
λμ½λ*μ μ λ¬λ©λλ€. μ΄ λμ½λλ μ ν΄μλ νΉμ§μ κ³ ν΄μλ ν½μ
μλ² λ©μΌλ‘ μ μ§μ μΌλ‘ μ
μνλ§ν©λλ€. ν½μ
λμ½λλ μ€μ λ‘ μλ³Έ μ΄λ―Έμ§μ 1/32, 1/16, 1/8 ν΄μλμ λ€μ€ μ€μΌμΌ νΉμ§(μ ν΄μλ λ° κ³ ν΄μλ νΉμ§ λͺ¨λ ν¬ν¨)μ μμ±ν©λλ€.
3. μ΄λ¬ν μλ‘ λ€λ₯Έ ν¬κΈ°μ νΉμ§ 맡μ κ³ ν΄μλ νΉμ§μμ μμ κ°μ²΄λ₯Ό ν¬μ°©νκΈ° μν΄ ν λ²μ νλμ Transformer λμ½λ λ μ΄μ΄μ μ°μμ μΌλ‘ 곡κΈλ©λλ€. Mask2Formerμ ν΅μ¬μ λμ½λμ *λ§μ€ν¬ μ΄ν
μ
* λ©μ»€λμ¦μ
λλ€. μ 체 μ΄λ―Έμ§λ₯Ό μ°Έμ‘°ν μ μλ ν¬λ‘μ€ μ΄ν
μ
(cross-attention)κ³Ό λ¬λ¦¬, λ§μ€ν¬ μ΄ν
μ
μ μ΄λ―Έμ§μ νΉμ μμμλ§ μ§μ€ν©λλ€. μ΄λ μ΄λ―Έμ§μ μ§μμ νΉμ§λ§μΌλ‘ λͺ¨λΈμ΄ μΆ©λΆν νμ΅ν μ μκΈ° λλ¬Έμ λ λΉ λ₯΄κ³ μ±λ₯μ΄ μ°μν©λλ€.
4. [DETR](tasks_explained#object-detection)κ³Ό κ°μ΄, Mask2Formerλ νμ΅λ κ°μ²΄ 쿼리λ₯Ό μ¬μ©νκ³ μ΄λ₯Ό ν½μ
λμ½λμμμ μ΄λ―Έμ§ νΉμ§κ³Ό κ²°ν©νμ¬ μμΈ‘ μ§ν©(`ν΄λμ€ λ μ΄λΈ`, `λ§μ€ν¬ μμΈ‘`)μ μμ±ν©λλ€. λμ½λμ μλ μνλ μ ν λ μ΄μ΄λ‘ μ λ¬λμ΄ ν΄λμ€ λ μ΄λΈμ λν λ‘μ§μΌλ‘ λ³νλ©λλ€. λ‘μ§κ³Ό ν΄λμ€ λ μ΄λΈ μ¬μ΄μ κ΅μ°¨ μνΈλ‘νΌ μμ€μ κ³μ°νμ¬ κ°μ₯ κ°λ₯μ±μ΄ λμ κ²μ μ°Ύμ΅λλ€.
λ§μ€ν¬ μμΈ‘μ ν½μ
μλ² λ©κ³Ό μ΅μ’
λμ½λ μλ μνλ₯Ό κ²°ν©νμ¬ μμ±λ©λλ€. μκ·Έλͺ¨μ΄λ κ΅μ°¨ μνΈλ‘νΌ λ° Dice μμ€μ λ‘μ§κ³Ό μ€μ μ λ΅ λ§μ€ν¬(ground truth mask) μ¬μ΄μμ κ³μ°λμ΄ κ°μ₯ κ°λ₯μ±μ΄ λμ λ§μ€ν¬λ₯Ό μ°Ύμ΅λλ€.
μ΄λ―Έμ§ λΆν μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μ΄λ―Έμ§ λΆν κ°μ΄λ](tasks/semantic_segmentation)λ₯Ό νμΈνμ¬ SegFormerλ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
### κΉμ΄ μΆμ [[depth-estimation]]
[GLPN](model_doc/glpn), *Global-Local Path Network*λ [SegFormer](model_doc/segformer) μΈμ½λμ κ²½λ λμ½λλ₯Ό κ²°ν©ν κΉμ΄ μΆμ μ μν Transformerμ
λλ€.
1. ViTμ κ°μ΄, μ΄λ―Έμ§λ ν¨μΉ μνμ€λ‘ λΆν λμ§λ§, μ΄λ―Έμ§ ν¨μΉκ° λ μλ€λ μ μ΄ λ€λ¦
λλ€. μ΄λ μΈκ·Έλ©ν
μ΄μ
μ΄λ κΉμ΄ μΆμ κ³Ό κ°μ λ°λ μμΈ‘ μμ
μ λ μ ν©ν©λλ€. μ΄λ―Έμ§ ν¨μΉλ ν¨μΉ μλ² λ©μΌλ‘ λ³νλμ΄(ν¨μΉ μλ² λ©μ΄ μμ±λλ λ°©λ²μ [μ΄λ―Έμ§ λΆλ₯](#image-classification) μΉμ
μ μ°Έμ‘°νμΈμ), μΈμ½λλ‘ μ λ¬λ©λλ€.
2. μΈμ½λλ ν¨μΉ μλ² λ©μ λ°μ, μ¬λ¬ μΈμ½λ λΈλ‘μ μ λ¬ν©λλ€. κ° λΈλ‘μ μ΄ν
μ
λ° Mix-FFN λ μ΄μ΄λ‘ ꡬμ±λ©λλ€. νμμ λͺ©μ μ μμΉ μ 보λ₯Ό μ 곡νλ κ²μ
λλ€. κ° μΈμ½λ λΈλ‘μ λμλ κ³μΈ΅μ ννμ μμ±νκΈ° μν *ν¨μΉ λ³ν©(patch merging)* λ μ΄μ΄κ° μμ΅λλ€. κ° μΈμ ν ν¨μΉ κ·Έλ£Ήμ νΉμ§μ μ°κ²°λκ³ , μ°κ²°λ νΉμ§μ μ ν λ μ΄μ΄κ° μ μ©λμ΄ ν¨μΉ μλ₯Ό 1/4μ ν΄μλλ‘ μ€μ
λλ€. μ΄λ λ€μ μΈμ½λ λΈλ‘μ μ
λ ₯μ΄ λλ©°, μ΄λ¬ν μ 체 νλ‘μΈμ€λ 1/8, 1/16, 1/32 ν΄μλμ μ΄λ―Έμ§ νΉμ§μ κ°μ§ λκΉμ§ λ°λ³΅λ©λλ€.
3. κ²½λ λμ½λλ μΈμ½λμμ λ§μ§λ§ νΉμ§ 맡(1/32 ν¬κΈ°)μ κ°μ Έμ 1/16 ν¬κΈ°λ‘ μ
μνλ§ν©λλ€. μ¬κΈ°μ, νΉμ§μ *μ νμ νΉμ§ μ΅ν©(SFF, Selective Feature Fusion)* λͺ¨λλ‘ μ λ¬λ©λλ€. μ΄ λͺ¨λμ κ° νΉμ§μ λν΄ μ΄ν
μ
맡μμ λ‘컬 λ° μ μ νΉμ§μ μ ννκ³ κ²°ν©ν λ€μ, 1/8λ‘ μ
μνλ§ν©λλ€. μ΄ νλ‘μΈμ€λ λμ½λ©λ νΉμ±μ΄ μλ³Έ μ΄λ―Έμ§μ λμΌν ν¬κΈ°κ° λ λκΉμ§ λ°λ³΅λ©λλ€. μΆλ ₯μ λ κ°μ ν©μ±κ³± λ μ΄μ΄λ₯Ό κ±°μΉ λ€μ, μκ·Έλͺ¨μ΄λ νμ±νκ° μ μ©λμ΄ κ° ν½μ
μ κΉμ΄λ₯Ό μμΈ‘ν©λλ€.
## μμ°μ΄μ²λ¦¬[[natural-language-processing]]
Transformerλ μ΄κΈ°μ κΈ°κ³ λ²μμ μν΄ μ€κ³λμκ³ , κ·Έ μ΄νλ‘λ μ¬μ€μ λͺ¨λ NLP μμ
μ ν΄κ²°νκΈ° μν κΈ°λ³Έ μν€ν
μ²κ° λμμ΅λλ€. μ΄λ€ μμ
μ Transformerμ μΈμ½λ ꡬ쑰μ μ ν©νλ©°, λ€λ₯Έ μμ
μ λμ½λμ λ μ ν©ν©λλ€. λ λ€λ₯Έ μμ
μ Transformerμ μΈμ½λ-λμ½λ ꡬ쑰λ₯Ό λͺ¨λ νμ©ν©λλ€.
### ν
μ€νΈ λΆλ₯[[text-classification]]
[BERT](model_doc/bert)λ μΈμ½λ μ μ© λͺ¨λΈμ΄λ©°, ν
μ€νΈμ νλΆν ννμ νμ΅νκΈ° μν΄ μλ°©ν₯μ λ¨μ΄μ μ£Όλͺ©ν¨μΌλ‘μ¨ μ¬μΈ΅ μλ°©ν₯μ±(deep bidirectionality)μ ν¨κ³Όμ μΌλ‘ ꡬνν μ΅μ΄μ λͺ¨λΈμ
λλ€.
1. BERTλ [WordPiece](tokenizer_summary#wordpiece) ν ν°νλ₯Ό μ¬μ©νμ¬ λ¬Έμ₯μ ν ν° μλ² λ©μ μμ±ν©λλ€. λ¨μΌ λ¬Έμ₯κ³Ό ν μμ λ¬Έμ₯μ ꡬλΆνκΈ° μν΄ νΉμν `[SEP]` ν ν°μ΄ μΆκ°λ©λλ€. λͺ¨λ ν
μ€νΈ μνμ€μ μμ λΆλΆμλ νΉμν `[CLS]` ν ν°μ΄ μΆκ°λ©λλ€. `[CLS]` ν ν°μ΄ μλ μ΅μ’
μΆλ ₯μ λΆλ₯ μμ
μ μν λΆλ₯ ν€λλ‘ μ
λ ₯μ μ¬μ©λ©λλ€. BERTλ λν ν μμ λ¬Έμ₯μμ κ° ν ν°μ΄ 첫 λ²μ§Έ λ¬Έμ₯μΈμ§ λ λ²μ§Έ λ¬Έμ₯μ μνλμ§ λνλ΄λ μΈκ·Έλ¨ΌνΈ μλ² λ©(segment embedding)μ μΆκ°ν©λλ€.
2. BERTλ λ§μ€ν¬λ μΈμ΄ λͺ¨λΈλ§κ³Ό λ€μ λ¬Έμ₯ μμΈ‘, λ κ°μ§ λͺ©μ μΌλ‘ μ¬μ νλ ¨λ©λλ€. λ§μ€ν¬λ μΈμ΄ λͺ¨λΈλ§μμλ μ
λ ₯ ν ν°μ μΌλΆκ° 무μμλ‘ λ§μ€νΉλκ³ , λͺ¨λΈμ μ΄λ₯Ό μμΈ‘ν΄μΌ ν©λλ€. μ΄λ λͺ¨λΈμ΄ λͺ¨λ λ¨μ΄λ₯Ό λ³΄κ³ λ€μ λ¨μ΄λ₯Ό "μμΈ‘"ν μ μλ μλ°©ν₯μ± λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. μμΈ‘λ λ§μ€ν¬ ν ν°μ μ΅μ’
μλ μνλ μ΄νμ λν μννΈλ§₯μ€κ° μλ μλ°©ν₯ λ€νΈμν¬λ‘ μ λ¬λμ΄ λ§μ€ν¬λ λ¨μ΄λ₯Ό μμΈ‘ν©λλ€.
λ λ²μ§Έ μ¬μ νλ ¨ λμμ λ€μ λ¬Έμ₯ μμΈ‘μ
λλ€. λͺ¨λΈμ λ¬Έμ₯ Bκ° λ¬Έμ₯ A λ€μμ μ€λμ§ μμΈ‘ν΄μΌ ν©λλ€. λ¬Έμ₯ Bκ° λ€μ λ¬Έμ₯μΈ κ²½μ°μ 무μμ λ¬Έμ₯μΈ κ²½μ° κ°κ° 50%μ νλ₯ λ‘ λ°μν©λλ€. λ€μ λ¬Έμ₯μΈμ§ μλμ§μ λν μμΈ‘μ λ κ°μ ν΄λμ€(`IsNext` λ° `NotNext`)μ λν μννΈλ§₯μ€κ° μλ μλ°©ν₯ λ€νΈμν¬λ‘ μ λ¬λ©λλ€.
3. μ
λ ₯ μλ² λ©μ μ¬λ¬ μΈμ½λ λ μ΄μ΄λ₯Ό κ±°μ³μ μ΅μ’
μλ μνλ₯Ό μΆλ ₯ν©λλ€.
μ¬μ νλ ¨λ λͺ¨λΈμ ν
μ€νΈ λΆλ₯μ μ¬μ©νλ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ μλ¨μ μνμ€ λΆλ₯ ν€λλ₯Ό μΆκ°ν©λλ€. μνμ€ λΆλ₯ ν€λλ μ΅μ’
μλ μνλ₯Ό λ°λ μ ν λ μ΄μ΄μ΄λ©°, λ‘μ§μΌλ‘ λ³ννκΈ° μν΄ μ ν λ³νμ μνν©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ λ‘μ§κ³Ό νκ² κ°μ κ³μ°λμ΄ κ°μ₯ κ°λ₯μ±μ΄ λμ λ μ΄λΈμ μ°Ύμ΅λλ€.
ν
μ€νΈ λΆλ₯μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [ν
μ€νΈ λΆλ₯ κ°μ΄λ](tasks/sequence_classification)λ₯Ό νμΈνμ¬ DistilBERTλ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
### ν ν° λΆλ₯[[token-classification]]
κ°μ²΄λͺ
μΈμ(Named Entity Recognition, NER)κ³Ό κ°μ ν ν° λΆλ₯ μμ
μ BERTλ₯Ό μ¬μ©νλ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ μλ¨μ ν ν° λΆλ₯ ν€λλ₯Ό μΆκ°ν©λλ€. ν ν° λΆλ₯ ν€λλ μ΅μ’
μλ μνλ₯Ό λ°λ μ ν λ μ΄μ΄μ΄λ©°, λ‘μ§μΌλ‘ λ³ννκΈ° μν΄ μ ν λ³νμ μνν©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ λ‘μ§κ³Ό κ° ν ν° κ°μ κ³μ°λμ΄ κ°μ₯ κ°λ₯μ±μ΄ λμ λ μ΄λΈμ μ°Ύμ΅λλ€.
ν ν° λΆλ₯μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [ν ν° λΆλ₯ κ°μ΄λ](tasks/token_classification)λ₯Ό νμΈνμ¬ DistilBERTλ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
### μ§μμλ΅[[question-answering]]
μ§μμλ΅μ BERTλ₯Ό μ¬μ©νλ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ μμ μ€ν¬(span) λΆλ₯ ν€λλ₯Ό μΆκ°ν©λλ€. μ΄ μ ν λ μ΄μ΄λ μ΅μ’
μλ μνλ₯Ό λ°κ³ , λ΅λ³μ λμνλ `μ€ν¬`μ μμκ³Ό λ λ‘κ·Έλ₯Ό κ³μ°νκΈ° μν΄ μ ν λ³νμ μνν©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ λ‘μ§κ³Ό κ° λ μ΄λΈ μμΉ κ°μ κ³μ°λμ΄ λ΅λ³μ λμνλ κ°μ₯ κ°λ₯μ±μ΄ λμ ν
μ€νΈμ μ€ν¬μ μ°Ύμ΅λλ€.
μ§μμλ΅μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μ§μμλ΅ κ°μ΄λ](tasks/question_answering)λ₯Ό νμΈνμ¬ DistilBERTλ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
π‘ μ¬μ νλ ¨λ BERTλ₯Ό λ€μν μμ
μ μ¬μ©νλ κ²μ΄ μΌλ§λ μ¬μ΄μ§ μ£Όλͺ©νμΈμ. μ¬μ νλ ¨λ λͺ¨λΈμ νΉμ ν€λλ₯Ό μΆκ°νκΈ°λ§ νλ©΄ μλ μνλ₯Ό μνλ μΆλ ₯μΌλ‘ μ‘°μν μ μμ΅λλ€!
### ν
μ€νΈ μμ±[[text-generation]]
[GPT-2](model_doc/gpt2)λ λλμ ν
μ€νΈμ λν΄ μ¬μ νλ ¨λ λμ½λ© μ μ© λͺ¨λΈμ
λλ€. ν둬ννΈλ₯Ό μ£Όμ΄μ§λ©΄ μ€λλ ₯ μλ (νμ μ¬μ€μ μλμ§λ§!) ν
μ€νΈλ₯Ό μμ±νκ³ λͺ
μμ μΌλ‘ νλ ¨λμ§ μμμμλ λΆκ΅¬νκ³ μ§μμλ΅κ³Ό κ°μ λ€λ₯Έ NLP μμ
μ μμν μ μμ΅λλ€.
1. GPT-2λ λ¨μ΄λ₯Ό ν ν°ννκ³ ν ν° μλ² λ©μ μμ±νκΈ° μν΄ [λ°μ΄νΈ νμ΄ μΈμ½λ©(BPE, byte pair encoding)](tokenizer_summary#bytepair-encoding-bpe)μ μ¬μ©ν©λλ€. μμΉ μΈμ½λ©μ μνμ€μμ κ° ν ν°μ μμΉλ₯Ό λνλ΄κΈ° μν΄ ν ν° μλ² λ©μ μΆκ°λ©λλ€. μ
λ ₯ μλ² λ©μ μ¬λ¬ λμ½λ λΈλ‘μ κ±°μ³ μΌλΆ μ΅μ’
μλ μνλ₯Ό μΆλ ₯ν©λλ€. κ° λμ½λ λΈλ‘ λ΄μμ GPT-2λ *λ§μ€ν¬λ μ
ν μ΄ν
μ
(masked self-attention)* λ μ΄μ΄λ₯Ό μ¬μ©ν©λλ€. μ΄λ GPT-2κ° μ΄ν ν ν°(future tokens)μ μ£Όμλ₯Ό κΈ°μΈμΌ μ μλλ‘ ν©λλ€. μΌμͺ½μ μλ ν ν°μλ§ μ£Όμλ₯Ό κΈ°μΈμΌ μ μμ΅λλ€. λ§μ€ν¬λ μ
ν μ΄ν
μ
μμλ μ΄ν
μ
λ§μ€ν¬λ₯Ό μ¬μ©νμ¬ μ΄ν ν ν°μ λν μ μ(score)λ₯Ό `0`μΌλ‘ μ€μ νκΈ° λλ¬Έμ BERTμ [`mask`] ν ν°κ³Ό λ€λ¦
λλ€.
2. λμ½λμ μΆλ ₯μ μΈμ΄ λͺ¨λΈλ§ ν€λμ μ λ¬λλ©°, μΈμ΄ λͺ¨λΈλ§ ν€λλ μλ μνλ₯Ό λ‘μ§μΌλ‘ μ ν λ³νμ μνν©λλ€. λ μ΄λΈμ μνμ€μ λ€μ ν ν°μΌλ‘, λ‘μ§μ μ€λ₯Έμͺ½μΌλ‘ νλμ© μ΄λνμ¬ μμ±λ©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ μ΄λλ λ‘μ§κ³Ό λ μ΄λΈ κ°μ κ³μ°λμ΄ κ°μ₯ κ°λ₯μ±μ΄ λμ λ€μ ν ν°μ μΆλ ₯ν©λλ€.
GPT-2μ μ¬μ νλ ¨ λͺ©μ μ μ μ μΌλ‘ [μΈκ³Όμ μΈμ΄ λͺ¨λΈλ§](glossary#causal-language-modeling)μ κΈ°λ°νμ¬, μνμ€μμ λ€μ λ¨μ΄λ₯Ό μμΈ‘νλ κ²μ
λλ€. μ΄λ GPT-2κ° ν
μ€νΈ μμ±μ κ΄λ ¨λ μμ
μ νΉν μ°μνλλ‘ ν©λλ€.
ν
μ€νΈ μμ±μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μΈκ³Όμ μΈμ΄ λͺ¨λΈλ§ κ°μ΄λ](tasks/language_modeling#causal-language-modeling)λ₯Ό νμΈνμ¬ DistilGPT-2λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
ν
μ€νΈ μμ±μ λν μμΈν λ΄μ©μ [ν
μ€νΈ μμ± μ λ΅](generation_strategies) κ°μ΄λλ₯Ό νμΈνμΈμ!
### μμ½[[summarization]]
[BART](model_doc/bart) λ° [T5](model_doc/t5)μ κ°μ μΈμ½λ-λμ½λ λͺ¨λΈμ μμ½ μμ
μ μνμ€-ν¬-μνμ€ ν¨ν΄μ μν΄ μ€κ³λμμ΅λλ€. μ΄ μΉμ
μμ BARTμ μλ λ°©λ²μ μ€λͺ
ν λ€μ, λ§μ§λ§μ T5λ₯Ό λ―ΈμΈ μ‘°μ ν΄λ³Ό μ μμ΅λλ€.
1. BARTμ μΈμ½λ μν€ν
μ²λ BERTμ λ§€μ° μ μ¬νλ©° ν
μ€νΈμ ν ν° λ° μμΉ μλ² λ©μ λ°μ΅λλ€. BARTλ μ
λ ₯μ λ³νμν€κ³ λμ½λλ‘ μ¬κ΅¬μ±νμ¬ μ¬μ νλ ¨λ©λλ€. νΉμ λ³ν κΈ°λ²μ΄ μλ λ€λ₯Έ μΈμ½λμλ λ¬λ¦¬, BARTλ λͺ¨λ μ νμ λ³νμ μ μ©ν μ μμ΅λλ€. κ·Έλ¬λ *text infilling* λ³ν κΈ°λ²μ΄ κ°μ₯ μ μλν©λλ€. Text Infilingμμλ μ¬λ¬ ν
μ€νΈ μ€ν¬μ **λ¨μΌ** [`mask`] ν ν°μΌλ‘ λ체ν©λλ€. μ΄λ λͺ¨λΈμ΄ λ§μ€ν¬λ ν ν°μ μμΈ‘ν΄μΌ νκ³ , λͺ¨λΈμ λλ½λ ν ν°μ μλ₯Ό μμΈ‘νλλ‘ κ°λ₯΄μΉκΈ° λλ¬Έμ μ€μν©λλ€. μ
λ ₯ μλ² λ©κ³Ό λ§μ€ν¬λ μ€ν¬μ΄ μΈμ½λλ₯Ό κ±°μ³ μ΅μ’
μλ μνλ₯Ό μΆλ ₯νμ§λ§, BERTμ λ¬λ¦¬ BARTλ λ§μ§λ§μ λ¨μ΄λ₯Ό μμΈ‘νλ μλ°©ν₯ λ€νΈμν¬λ₯Ό μΆκ°νμ§ μμ΅λλ€.
2. μΈμ½λμ μΆλ ₯μ λμ½λλ‘ μ λ¬λλ©°, λμ½λλ μΈμ½λμ μΆλ ₯μμ λ§μ€ν¬ ν ν°κ³Ό λ³νλμ§ μμ ν ν°μ μμΈ‘ν΄μΌ ν©λλ€. μ΄λ λμ½λκ° μλ³Έ ν
μ€νΈλ₯Ό 볡μνλ λ° λμμ΄ λλ μΆκ°μ μΈ λ¬Έλ§₯μ μ»λλ‘ ν©λλ€. λμ½λμ μΆλ ₯μ μΈμ΄ λͺ¨λΈλ§ ν€λμ μ λ¬λλ©°, μΈμ΄ λͺ¨λΈλ§ ν€λλ μλ μνλ₯Ό λ‘μ§μΌλ‘ μ ν λ³νμ μνν©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ λ‘μ§κ³Ό ν ν°μ΄ μ€λ₯Έμͺ½μΌλ‘ μ΄λλ λ μ΄λΈ κ°μ κ³μ°λ©λλ€.
μμ½μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μμ½ κ°μ΄λ](tasks/summarization)λ₯Ό νμΈνμ¬ T5λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
ν
μ€νΈ μμ±μ λν μμΈν λ΄μ©μ [ν
μ€νΈ μμ± μ λ΅](generation_strategies) κ°μ΄λλ₯Ό νμΈνμΈμ!
### λ²μ[[translation]]
λ²μμ μνμ€-ν¬-μνμ€ μμ
μ λ λ€λ₯Έ μλ‘, [BART](model_doc/bart) λλ [T5](model_doc/t5)μ κ°μ μΈμ½λ-λμ½λ λͺ¨λΈμ μ¬μ©ν μ μμ΅λλ€. μ΄ μΉμ
μμ BARTμ μλ λ°©λ²μ μ€λͺ
ν λ€μ, λ§μ§λ§μ T5λ₯Ό λ―ΈμΈ μ‘°μ ν΄λ³Ό μ μμ΅λλ€.
BARTλ μμ² μΈμ΄λ₯Ό νκ² μΈμ΄λ‘ λμ½λ©ν μ μλ μ
λ ₯μ 맀ννκΈ° μν΄ λ¬΄μμλ‘ μ΄κΈ°νλ λ³λμ μΈμ½λλ₯Ό μΆκ°νμ¬ λ²μμ μ μ©ν©λλ€. μ΄ μλ‘μ΄ μΈμ½λμ μλ² λ©μ μλ³Έ λ¨μ΄ μλ² λ© λμ μ¬μ νλ ¨λ μΈμ½λλ‘ μ λ¬λ©λλ€. μμ² μΈμ½λλ λͺ¨λΈ μΆλ ₯μ κ΅μ°¨ μνΈλ‘νΌ μμ€λ‘λΆν° μμ² μΈμ½λ, μμΉ μλ² λ©, μ
λ ₯ μλ² λ©μ κ°±μ νμ¬ νλ ¨λ©λλ€. 첫 λ²μ§Έ λ¨κ³μμλ λͺ¨λΈ νλΌλ―Έν°κ° κ³ μ λκ³ , λ λ²μ§Έ λ¨κ³μμλ λͺ¨λ λͺ¨λΈ νλΌλ―Έν°κ° ν¨κ» νλ ¨λ©λλ€.
BARTλ μ΄ν λ²μμ μν΄ λ€μν μΈμ΄λ‘ μ¬μ νλ ¨λ λ€κ΅μ΄ λ²μ μ mBARTλ‘ νμ₯λμμ΅λλ€.
λ²μμ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [λ²μ κ°μ΄λ](tasks/summarization)λ₯Ό νμΈνμ¬ T5λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
ν
μ€νΈ μμ±μ λν μμΈν λ΄μ©μ [ν
μ€νΈ μμ± μ λ΅](generation_strategies) κ°μ΄λλ₯Ό νμΈνμΈμ!