Spaces:
Paused
Paused
File size: 33,311 Bytes
ee6e328 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
<!--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.
-->
# π€ 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)
<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. *νΉμ§ μΈμ½λ(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μ μ¬μ©ν©λλ€. μ΄λ ν©μ±κ³± λ μ΄μ΄λ₯Ό κΈ°λ°μΌλ‘ νμ§λ§ νλ λ€νΈμν¬ μ€κ³λ₯Ό μ μ©ν©λλ€.
<Tip>
μΈ λ²μ§Έ λ°©λ²μ Transformerμ ν©μ±κ³±(μλ₯Ό λ€μ΄, [Convolutional Vision Transformer](model_doc/cvt) λλ [LeViT](model_doc/levit))μ κ²°ν©νλ κ²μ
λλ€. μ°λ¦¬λ μ΄ν΄λ³Ό λ κ°μ§ λ°©λ²λ§ κ²°ν©νκΈ° λλ¬Έμ μ¬κΈ°μ μ΄ λ°©λ²μ λ€λ£¨μ§ μμ΅λλ€.
</Tip>
ViTμ ConvNeXTλ μΌλ°μ μΌλ‘ μ΄λ―Έμ§ λΆλ₯μμ μ¬μ©λμ§λ§, 물체 κ°μ§, λΆν , κΉμ΄ μΆμ κ³Ό κ°μ λ€λ₯Έ λΉμ μμ
μλ κ°κ° DETR, Mask2Former, GLPNμ΄ λ μ ν©νλ―λ‘ μ΄λ¬ν λͺ¨λΈμ μ΄ν΄λ³΄κ² μ΅λλ€.
### μ΄λ―Έμ§ λΆλ₯[[image-classification]]
ViTμ ConvNeXT λͺ¨λ μ΄λ―Έμ§ λΆλ₯μ μ¬μ©λ μ μμ§λ§, ViTλ μ΄ν
μ
λ©μ»€λμ¦μ, ConvNeXTλ ν©μ±κ³±μ μ¬μ©νλ κ²μ΄ μ£Όλ μ°¨μ΄μ
λλ€.
#### Transformer[[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. μ΄λ―Έμ§λ μλ‘ μ€μ²©λμ§ μλ μ μ¬κ°ν ν¨μΉλ‘ λΆν λκ³ , κ° ν¨μΉλ λ²‘ν° λλ *ν¨μΉ μλ² λ©(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]]
<Tip>
μ΄ μΉμ
μμλ ν©μ±κ³±μ λν΄ κ°λ΅νκ² μ€λͺ
ν©λλ€. κ·Έλ¬λ μ΄λ―Έμ§μ λͺ¨μκ³Ό ν¬κΈ°κ° μ΄λ»κ² λ³ννλμ§μ λν μ¬μ μ΄ν΄κ° μλ€λ©΄ λμμ΄ λ κ²μ
λλ€. ν©μ±κ³±μ μ΅μνμ§ μμ κ²½μ°, fastai bookμ [ν©μ±κ³± μ κ²½λ§ μ±ν°](https://github.com/fastai/fastbook/blob/master/13_convolutions.ipynb)λ₯Ό νμΈνμΈμ!
</Tip>
[ConvNeXT](model_doc/convnext)λ μ±λ₯μ λμ΄κΈ° μν΄ μλ‘μ΄ νλ λ€νΈμν¬ μ€κ³λ₯Ό μ μ©ν CNN ꡬ쑰μ
λλ€. κ·Έλ¬λ ν©μ±κ³±μ μ¬μ ν λͺ¨λΈμ ν΅μ¬μ
λλ€. λμ μμ€μ κ΄μ μμ λ³Ό λ, [ν©μ±κ³±](glossary#convolution)μ μμ νλ ¬(*컀λ*)μ μ΄λ―Έμ§ ν½μ
μ μμ μλμ°λ₯Ό κ³±νλ μ°μ°μ
λλ€. μ΄λ νΉμ ν
μ€μ³(texture)μ΄λ μ μ 곑λ₯ κ³Ό κ°μ μΌλΆ νΉμ§μ κ³μ°ν©λλ€. κ·Έλ¬κ³ λ€μ ν½μ
μλμ°λ‘ λμ΄κ°λλ°, μ¬κΈ°μ ν©μ±κ³±μ΄ μ΄λνλ 거리λ₯Ό *보ν(stride)*μ΄λΌκ³ ν©λλ€.
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/convolution.gif"/>
</div>
<small>ν¨λ©μ΄λ 보νμ΄ μλ κΈ°λ³Έ ν©μ±κ³±, <a href="https://arxiv.org/abs/1603.07285">λ₯λ¬λμ μν ν©μ±κ³± μ°μ° κ°μ΄λ</a></small>
μ΄ μΆλ ₯μ λ€λ₯Έ ν©μ±κ³± λ μ΄μ΄μ μ λ¬ν μ μμΌλ©°, κ° μ°μμ μΈ λ μ΄μ΄λ₯Ό ν΅ν΄ λ€νΈμν¬λ ν«λκ·Έλ λ‘μΌκ³Ό κ°μ΄ λ 볡μ‘νκ³ μΆμμ μΈ κ²μ νμ΅ν©λλ€. ν©μ±κ³± λ μ΄μ΄ μ¬μ΄μ νλ§ λ μ΄μ΄λ₯Ό μΆκ°νμ¬ μ°¨μμ μ€μ΄κ³ νΉμ§μ μμΉ λ³νμ λν΄ λͺ¨λΈμ λ κ²¬κ³ νκ² λ§λλ κ²μ΄ μΌλ°μ μ
λλ€.
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/convnext_architecture.png"/>
</div>
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) κ°μ²΄ νμ§ λͺ¨λΈμ
λλ€.
<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/detr_architecture.png"/>
</div>
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λ₯Ό λ―ΈμΈ μ‘°μ ν΄λ³Ό μ μμ΅λλ€.
<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. μ΄λ¬ν μλ‘ λ€λ₯Έ ν¬κΈ°μ νΉμ§ 맡μ κ³ ν΄μλ νΉμ§μμ μμ κ°μ²΄λ₯Ό ν¬μ°©νκΈ° μν΄ ν λ²μ νλμ 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μ
λλ€.
<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 λ μ΄μ΄λ‘ ꡬμ±λ©λλ€. νμμ λͺ©μ μ μμΉ μ 보λ₯Ό μ 곡νλ κ²μ
λλ€. κ° μΈμ½λ λΈλ‘μ λμλ κ³μΈ΅μ ννμ μμ±νκΈ° μν *ν¨μΉ λ³ν©(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λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
<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, 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λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
<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λ λͺ¨λ μ νμ λ³νμ μ μ©ν μ μμ΅λλ€. κ·Έλ¬λ *text infilling* λ³ν κΈ°λ²μ΄ κ°μ₯ μ μλν©λλ€. Text Infilingμμλ μ¬λ¬ ν
μ€νΈ μ€ν¬μ **λ¨μΌ** [`mask`] ν ν°μΌλ‘ λ체ν©λλ€. μ΄λ λͺ¨λΈμ΄ λ§μ€ν¬λ ν ν°μ μμΈ‘ν΄μΌ νκ³ , λͺ¨λΈμ λλ½λ ν ν°μ μλ₯Ό μμΈ‘νλλ‘ κ°λ₯΄μΉκΈ° λλ¬Έμ μ€μν©λλ€. μ
λ ₯ μλ² λ©κ³Ό λ§μ€ν¬λ μ€ν¬μ΄ μΈμ½λλ₯Ό κ±°μ³ μ΅μ’
μλ μνλ₯Ό μΆλ ₯νμ§λ§, BERTμ λ¬λ¦¬ BARTλ λ§μ§λ§μ λ¨μ΄λ₯Ό μμΈ‘νλ μλ°©ν₯ λ€νΈμν¬λ₯Ό μΆκ°νμ§ μμ΅λλ€.
2. μΈμ½λμ μΆλ ₯μ λμ½λλ‘ μ λ¬λλ©°, λμ½λλ μΈμ½λμ μΆλ ₯μμ λ§μ€ν¬ ν ν°κ³Ό λ³νλμ§ μμ ν ν°μ μμΈ‘ν΄μΌ ν©λλ€. μ΄λ λμ½λκ° μλ³Έ ν
μ€νΈλ₯Ό 볡μνλ λ° λμμ΄ λλ μΆκ°μ μΈ λ¬Έλ§₯μ μ»λλ‘ ν©λλ€. λμ½λμ μΆλ ₯μ μΈμ΄ λͺ¨λΈλ§ ν€λμ μ λ¬λλ©°, μΈμ΄ λͺ¨λΈλ§ ν€λλ μλ μνλ₯Ό λ‘μ§μΌλ‘ μ ν λ³νμ μνν©λλ€. κ΅μ°¨ μνΈλ‘νΌ μμ€μ λ‘μ§κ³Ό ν ν°μ΄ μ€λ₯Έμͺ½μΌλ‘ μ΄λλ λ μ΄λΈ κ°μ κ³μ°λ©λλ€.
μμ½μ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [μμ½ κ°μ΄λ](tasks/summarization)λ₯Ό νμΈνμ¬ T5λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
<Tip>
ν
μ€νΈ μμ±μ λν μμΈν λ΄μ©μ [ν
μ€νΈ μμ± μ λ΅](generation_strategies) κ°μ΄λλ₯Ό νμΈνμΈμ!
</Tip>
### λ²μ[[translation]]
λ²μμ μνμ€-ν¬-μνμ€ μμ
μ λ λ€λ₯Έ μλ‘, [BART](model_doc/bart) λλ [T5](model_doc/t5)μ κ°μ μΈμ½λ-λμ½λ λͺ¨λΈμ μ¬μ©ν μ μμ΅λλ€. μ΄ μΉμ
μμ BARTμ μλ λ°©λ²μ μ€λͺ
ν λ€μ, λ§μ§λ§μ T5λ₯Ό λ―ΈμΈ μ‘°μ ν΄λ³Ό μ μμ΅λλ€.
BARTλ μμ² μΈμ΄λ₯Ό νκ² μΈμ΄λ‘ λμ½λ©ν μ μλ μ
λ ₯μ 맀ννκΈ° μν΄ λ¬΄μμλ‘ μ΄κΈ°νλ λ³λμ μΈμ½λλ₯Ό μΆκ°νμ¬ λ²μμ μ μ©ν©λλ€. μ΄ μλ‘μ΄ μΈμ½λμ μλ² λ©μ μλ³Έ λ¨μ΄ μλ² λ© λμ μ¬μ νλ ¨λ μΈμ½λλ‘ μ λ¬λ©λλ€. μμ² μΈμ½λλ λͺ¨λΈ μΆλ ₯μ κ΅μ°¨ μνΈλ‘νΌ μμ€λ‘λΆν° μμ² μΈμ½λ, μμΉ μλ² λ©, μ
λ ₯ μλ² λ©μ κ°±μ νμ¬ νλ ¨λ©λλ€. 첫 λ²μ§Έ λ¨κ³μμλ λͺ¨λΈ νλΌλ―Έν°κ° κ³ μ λκ³ , λ λ²μ§Έ λ¨κ³μμλ λͺ¨λ λͺ¨λΈ νλΌλ―Έν°κ° ν¨κ» νλ ¨λ©λλ€.
BARTλ μ΄ν λ²μμ μν΄ λ€μν μΈμ΄λ‘ μ¬μ νλ ¨λ λ€κ΅μ΄ λ²μ μ mBARTλ‘ νμ₯λμμ΅λλ€.
λ²μμ μ§μ λμ ν μ€λΉκ° λμ
¨λμ? μμ ν [λ²μ κ°μ΄λ](tasks/summarization)λ₯Ό νμΈνμ¬ T5λ₯Ό λ―ΈμΈ μ‘°μ νκ³ μΆλ‘ μ μ¬μ©νλ λ°©λ²μ νμ΅νμΈμ!
<Tip>
ν
μ€νΈ μμ±μ λν μμΈν λ΄μ©μ [ν
μ€νΈ μμ± μ λ΅](generation_strategies) κ°μ΄λλ₯Ό νμΈνμΈμ!
</Tip> |