diff --git a/docs/source/ko/_toctree.yml b/docs/source/ko/_toctree.yml index 56db314e8f..b8f43312e1 100644 --- a/docs/source/ko/_toctree.yml +++ b/docs/source/ko/_toctree.yml @@ -166,8 +166,8 @@ title: πŸ€— Transformers둜 ν•  수 μžˆλŠ” μž‘μ—… - local: tasks_explained title: πŸ€— Transformers둜 μž‘μ—…μ„ ν•΄κ²°ν•˜λŠ” 방법 - - local: in_translation - title: (λ²ˆμ—­μ€‘) The Transformer model family + - local: model_summary + title: Transformer λͺ¨λΈκ΅° - local: in_translation title: (λ²ˆμ—­μ€‘) Summary of the tokenizers - local: attention diff --git a/docs/source/ko/model_summary.md b/docs/source/ko/model_summary.md new file mode 100644 index 0000000000..568b942533 --- /dev/null +++ b/docs/source/ko/model_summary.md @@ -0,0 +1,107 @@ + + +# Transformer λͺ¨λΈκ΅°[[the-transformer-model-family]] + +2017년에 μ†Œκ°œλœ [κΈ°λ³Έ Transformer](https://arxiv.org/abs/1706.03762) λͺ¨λΈμ€ μžμ—°μ–΄ 처리(NLP) μž‘μ—…μ„ λ„˜μ–΄ μƒˆλ‘­κ³  ν₯미둜운 λͺ¨λΈλ“€μ— μ˜κ°μ„ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. [λ‹¨λ°±μ§ˆ μ ‘νž˜ ꡬ쑰 예츑](https://huggingface.co/blog/deep-learning-with-proteins), [μΉ˜νƒ€μ˜ 달리기 ν›ˆλ ¨](https://huggingface.co/blog/train-decision-transformers), [μ‹œκ³„μ—΄ 예츑](https://huggingface.co/blog/time-series-transformers) 등을 μœ„ν•œ λ‹€μ–‘ν•œ λͺ¨λΈμ΄ μƒκ²¨λ‚¬μŠ΅λ‹ˆλ‹€. Transformer의 λ³€ν˜•μ΄ λ„ˆλ¬΄ λ§Žμ•„μ„œ, 큰 그림을 λ†“μΉ˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ—¬κΈ° μžˆλŠ” λͺ¨λ“  λͺ¨λΈμ˜ 곡톡점은 κΈ°λ³Έ Trasnformer μ•„ν‚€ν…μ²˜λ₯Ό 기반으둜 ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€. 일뢀 λͺ¨λΈμ€ 인코더 λ˜λŠ” λ””μ½”λ”λ§Œ μ‚¬μš©ν•˜κ³ , λ‹€λ₯Έ λͺ¨λΈλ“€μ€ 인코더와 디코더λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ Transformer λͺ¨λΈκ΅° λ‚΄ μƒμœ„ λ ˆλ²¨μ—μ„œμ˜ 차이점을 λΆ„λ₯˜ν•˜κ³  κ²€ν† ν•˜λ©΄ μœ μš©ν•œ λΆ„λ₯˜ 체계λ₯Ό 얻을 수 있으며, 이전에 접해보지 λͺ»ν•œ Transformer λͺ¨λΈλ“€ λ˜ν•œ μ΄ν•΄ν•˜λŠ” 데 도움이 될 κ²ƒμž…λ‹ˆλ‹€. + +κΈ°λ³Έ Transformer λͺ¨λΈμ— μ΅μˆ™ν•˜μ§€ μ•Šκ±°λ‚˜ 볡슡이 ν•„μš”ν•œ 경우, Hugging Face κ°•μ˜μ˜ [νŠΈλžœμŠ€ν¬λ¨ΈλŠ” μ–΄λ–»κ²Œ λ™μž‘ν•˜λ‚˜μš”?](https://huggingface.co/course/chapter1/4?fw=pt) 챕터λ₯Ό ν™•μΈν•˜μ„Έμš”. + +
+ +
+ +## 컴퓨터 λΉ„μ „[[computer-vision]] + + + +### ν•©μ„±κ³± λ„€νŠΈμ›Œν¬[[convolutional-network]] + +[Vision Transformer](https://arxiv.org/abs/2010.11929)κ°€ ν™•μž₯μ„±κ³Ό νš¨μœ¨μ„±μ„ μž…μ¦ν•˜κΈ° μ „κΉŒμ§€ μ˜€λž«λ™μ•ˆ ν•©μ„±κ³± λ„€νŠΈμ›Œν¬(CNN)κ°€ 컴퓨터 λΉ„μ „ μž‘μ—…μ˜ 지배적인 νŒ¨λŸ¬λ‹€μž„μ΄μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ , 이동 λΆˆλ³€μ„±(translation invariance)κ³Ό 같은 CNN의 μš°μˆ˜ν•œ 뢀뢄이 λ„λ“œλΌμ§€κΈ° λ•Œλ¬Έμ— λͺ‡λͺ‡ (특히 νŠΉμ • κ³Όμ—…μ—μ„œμ˜) Transformer λͺ¨λΈμ€ μ•„ν‚€ν…μ²˜μ— 합성곱을 ν†΅ν•©ν•˜κΈ°λ„ ν–ˆμŠ΅λ‹ˆλ‹€. [ConvNeXt](model_doc/convnext)λŠ” 이런 κ΄€λ‘€λ₯Ό λ’€μ§‘μ–΄ CNN을 ν˜„λŒ€ν™”ν•˜κΈ° μœ„ν•΄ Transformer의 λ””μžμΈμ„ μ°¨μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ ConvNeXtλŠ” κ²ΉμΉ˜μ§€ μ•ŠλŠ” μŠ¬λΌμ΄λ”© μ°½(sliding window)을 μ‚¬μš©ν•˜μ—¬ 이미지λ₯Ό νŒ¨μΉ˜ν™”ν•˜κ³ , 더 큰 μ»€λ„λ‘œ μ „μ—­ 수용 ν•„λ“œ(global receptive field)λ₯Ό ν™•μž₯μ‹œν‚΅λ‹ˆλ‹€. ConvNeXtλŠ” λ˜ν•œ λ©”λͺ¨λ¦¬ νš¨μœ¨μ„ 높이고 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ μ—¬λŸ¬ λ ˆμ΄μ–΄ 섀계λ₯Ό μ„ νƒν•˜κΈ° λ•Œλ¬Έμ— Transformer와 κ²¬μ€„λ§Œν•©λ‹ˆλ‹€! + +### 인코더[[cv-encoder]] + +[Vision Transformer(ViT)](model_doc/vit)λŠ” ν•©μ„±κ³± μ—†λŠ” 컴퓨터 λΉ„μ „ μž‘μ—…μ˜ 막을 μ—΄μ—ˆμŠ΅λ‹ˆλ‹€. ViTλŠ” ν‘œμ€€ Transformer 인코더λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ, κ°€μž₯ 큰 ν˜μ‹ μ€ 이미지λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ°©μ‹μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ¬Έμž₯을 ν† ν°μœΌλ‘œ λΆ„ν• ν•˜λŠ” κ²ƒμ²˜λŸΌ 이미지λ₯Ό κ³ μ •λœ 크기의 패치둜 λΆ„ν• ν•˜κ³ , 이λ₯Ό μ‚¬μš©ν•˜μ—¬ μž„λ² λ”©μ„ μƒμ„±ν•©λ‹ˆλ‹€. ViTλŠ” Transformer의 효율적인 μ•„ν‚€ν…μ²˜λ₯Ό ν™œμš©ν•˜μ—¬ ν›ˆλ ¨μ— 더 적은 μžμ›μ„ μ‚¬μš©ν•˜λ©΄μ„œλ„ λ‹Ήμ‹œ CNN에 λΉ„κ²¬ν•˜λŠ” κ²°κ³Όλ₯Ό μž…μ¦ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 ViTλ₯Ό 뒀이어 λΆ„ν• (segmentation)κ³Ό 같은 고밀도 λΉ„μ „ μž‘μ—…κ³Ό 탐지 μž‘μ—…λ„ λ‹€λ£° 수 μžˆλŠ” λ‹€λ₯Έ λΉ„μ „ λͺ¨λΈμ΄ λ“±μž₯ν–ˆμŠ΅λ‹ˆλ‹€. + +μ΄λŸ¬ν•œ λͺ¨λΈ 쀑 ν•˜λ‚˜κ°€ [Swin](model_doc/swin) Transformerμž…λ‹ˆλ‹€. 이 λͺ¨λΈμ€ μž‘μ€ 크기의 νŒ¨μΉ˜μ—μ„œ 계측적 νŠΉμ§• λ§΅(CNN πŸ‘€κ³Ό κ°™μ§€λ§Œ ViTμ™€λŠ” 닀름)을 λ§Œλ“€κ³  더 κΉŠμ€ λ ˆμ΄μ–΄μ˜ 인접 νŒ¨μΉ˜μ™€ λ³‘ν•©ν•©λ‹ˆλ‹€. μ–΄ν…μ…˜(Attention)은 μ§€μ—­ μœˆλ„μš° λ‚΄μ—μ„œλ§Œ κ³„μ‚°λ˜λ©°, λͺ¨λΈμ΄ 더 잘 ν•™μŠ΅ν•  수 μžˆλ„λ‘ μ–΄ν…μ…˜ λ ˆμ΄μ–΄ 간에 μœˆλ„μš°λ₯Ό μ΄λ™ν•˜λ©° 연결을 μƒμ„±ν•©λ‹ˆλ‹€. Swin TransformerλŠ” 계측적 νŠΉμ§• 맡을 생성할 수 μžˆμœΌλ―€λ‘œ, λΆ„ν• (segmentation)κ³Ό 탐지와 같은 고밀도 예츑 μž‘μ—…μ— μ ν•©ν•©λ‹ˆλ‹€. [SegFormer](model_doc/segformer) μ—­μ‹œ Transformer 인코더λ₯Ό μ‚¬μš©ν•˜μ—¬ 계측적 νŠΉμ§• 맡을 κ΅¬μΆ•ν•˜μ§€λ§Œ, 상단에 κ°„λ‹¨ν•œ λ‹€μΈ΅ νΌμ…‰νŠΈλ‘ (MLP) 디코더λ₯Ό μΆ”κ°€ν•˜μ—¬ λͺ¨λ“  νŠΉμ§• 맡을 κ²°ν•©ν•˜κ³  μ˜ˆμΈ‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. + +BeIT와 ViTMAE와 같은 λ‹€λ₯Έ λΉ„μ „ λͺ¨λΈμ€ BERT의 μ‚¬μ „ν›ˆλ ¨ λͺ©ν‘œ(objective)μ—μ„œ μ˜κ°μ„ μ–»μ—ˆμŠ΅λ‹ˆλ‹€. [BeIT](model_doc/beit)λŠ” *λ§ˆμŠ€ν¬λ“œ 이미지 λͺ¨λΈλ§(MIM)*으둜 μ‚¬μ „ν›ˆλ ¨λ˜λ©°, 이미지 νŒ¨μΉ˜λŠ” μž„μ˜λ‘œ λ§ˆμŠ€ν‚Ήλ˜κ³  이미지도 μ‹œκ°μ  ν† ν°μœΌλ‘œ ν† ν°ν™”λ©λ‹ˆλ‹€. BeITλŠ” λ§ˆμŠ€ν‚Ήλœ νŒ¨μΉ˜μ— ν•΄λ‹Ήν•˜λŠ” μ‹œκ°μ  토큰을 μ˜ˆμΈ‘ν•˜λ„λ‘ ν•™μŠ΅λ©λ‹ˆλ‹€. [ViTMAE](model_doc/vitmae)도 λΉ„μŠ·ν•œ μ‚¬μ „ν›ˆλ ¨ λͺ©ν‘œκ°€ μžˆμ§€λ§Œ, μ‹œκ°μ  토큰 λŒ€μ‹  픽셀을 μ˜ˆμΈ‘ν•΄μ•Ό ν•œλ‹€λŠ” 점이 λ‹€λ¦…λ‹ˆλ‹€. νŠΉμ΄ν•œ 점은 이미지 패치의 75%κ°€ λ§ˆμŠ€ν‚Ήλ˜μ–΄ μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€! λ””μ½”λ”λŠ” λ§ˆμŠ€ν‚Ήλœ 토큰과 μΈμ½”λ”©λœ νŒ¨μΉ˜μ—μ„œ 픽셀을 μž¬κ΅¬μ„±ν•©λ‹ˆλ‹€. μ‚¬μ „ν›ˆλ ¨μ΄ λλ‚˜λ©΄ λ””μ½”λ”λŠ” 폐기되고 μΈμ½”λ”λŠ” λ‹€μš΄μŠ€νŠΈλ¦Ό μž‘μ—…μ— μ‚¬μš©ν•  μ€€λΉ„κ°€ λ©λ‹ˆλ‹€. + +### 디코더[[cv-decoder]] + +λŒ€λΆ€λΆ„μ˜ λΉ„μ „ λͺ¨λΈμ€ 인코더에 μ˜μ‘΄ν•˜μ—¬ 이미지 ν‘œν˜„μ„ ν•™μŠ΅ν•˜κΈ° λ•Œλ¬Έμ— 디코더 μ „μš© λΉ„μ „ λͺ¨λΈμ€ λ“œλ­…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이미지 생성 λ“±μ˜ μ‚¬λ‘€μ˜ 경우, GPT-2와 같은 ν…μŠ€νŠΈ 생성 λͺ¨λΈμ—μ„œ λ³΄μ•˜λ“―μ΄ 디코더가 κ°€μž₯ μ ν•©ν•©λ‹ˆλ‹€. [ImageGPT](model_doc/imagegpt)λŠ” GPT-2와 λ™μΌν•œ μ•„ν‚€ν…μ²˜λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ, μ‹œν€€μŠ€μ˜ λ‹€μŒ 토큰을 μ˜ˆμΈ‘ν•˜λŠ” λŒ€μ‹  μ΄λ―Έμ§€μ˜ λ‹€μŒ 픽셀을 μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. ImageGPTλŠ” 이미지 생성 뿐만 μ•„λ‹ˆλΌ 이미지 λΆ„λ₯˜λ₯Ό μœ„ν•΄ λ―Έμ„Έ μ‘°μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. + +### 인코더-디코더[[cv-encoder-decoder]] + +λΉ„μ „ λͺ¨λΈμ€ 일반적으둜 인코더(λ°±λ³ΈμœΌλ‘œλ„ μ•Œλ €μ§)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ€‘μš”ν•œ 이미지 νŠΉμ§•μ„ μΆ”μΆœν•œ ν›„, 이λ₯Ό Transformer λ””μ½”λ”λ‘œ μ „λ‹¬ν•©λ‹ˆλ‹€. [DETR](model_doc/detr)에 μ‚¬μ „ν›ˆλ ¨λœ 백본이 μžˆμ§€λ§Œ, 객체 탐지λ₯Ό μœ„ν•΄ μ™„μ „ν•œ Transformer 인코더-디코더 μ•„ν‚€ν…μ²˜λ„ μ‚¬μš©ν•©λ‹ˆλ‹€. μΈμ½”λ”λŠ” 이미지 ν‘œν˜„μ„ ν•™μŠ΅ν•˜κ³  이λ₯Ό λ””μ½”λ”μ—μ„œ 객체 쿼리(각 객체 μΏΌλ¦¬λŠ” μ΄λ―Έμ§€μ˜ μ˜μ—­ λ˜λŠ” 객체에 쀑점을 두고 ν•™μŠ΅λœ μž„λ² λ”©)와 κ²°ν•©ν•©λ‹ˆλ‹€. DETR은 각 객체 쿼리에 λŒ€ν•œ λ°”μš΄λ”© λ°•μŠ€ μ’Œν‘œμ™€ 클래슀 λ ˆμ΄λΈ”μ„ μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. + +## μžμ—°μ–΄μ²˜λ¦¬[[natural-language-processing]] + + + +### 인코더[[nlp-encoder]] + +[BERT](model_doc/bert)λŠ” 인코더 μ „μš© Transformer둜, λ‹€λ₯Έ 토큰을 보고 μ†Œμœ„ "λΆ€μ • ν–‰μœ„"λ₯Ό μ €μ§€λ₯΄λŠ” κ±Έ 막기 μœ„ν•΄ μž…λ ₯μ—μ„œ νŠΉμ • 토큰을 μž„μ˜λ‘œ λ§ˆμŠ€ν‚Ήν•©λ‹ˆλ‹€. μ‚¬μ „ν›ˆλ ¨μ˜ λͺ©ν‘œλŠ” μ»¨ν…μŠ€νŠΈλ₯Ό 기반으둜 λ§ˆμŠ€ν‚Ήλœ 토큰을 μ˜ˆμΈ‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이λ₯Ό 톡해 BERTλŠ” μ™Όμͺ½κ³Ό 였λ₯Έμͺ½ μ»¨ν…μŠ€νŠΈλ₯Ό μΆ©λΆ„νžˆ ν™œμš©ν•˜μ—¬ μž…λ ₯에 λŒ€ν•΄ 더 깊고 ν’λΆ€ν•œ ν‘œν˜„μ„ ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ BERT의 μ‚¬μ „ν›ˆλ ¨ μ „λž΅μ—λŠ” μ—¬μ „νžˆ κ°œμ„ μ˜ μ—¬μ§€κ°€ 남아 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. [RoBERTa](model_doc/roberta)λŠ” 더 κΈ΄ μ‹œκ°„ λ™μ•ˆ 더 큰 λ°°μΉ˜μ— λŒ€ν•œ ν›ˆλ ¨μ„ ν¬ν•¨ν•˜κ³ , μ „μ²˜λ¦¬ 쀑에 ν•œ 번만 λ§ˆμŠ€ν‚Ήν•˜λŠ” 것이 μ•„λ‹ˆλΌ 각 μ—ν­μ—μ„œ 토큰을 μž„μ˜λ‘œ λ§ˆμŠ€ν‚Ήν•˜κ³ , λ‹€μŒ λ¬Έμž₯ 예츑 λͺ©ν‘œλ₯Ό μ œκ±°ν•˜λŠ” μƒˆλ‘œμš΄ μ‚¬μ „ν›ˆλ ¨ 방식을 λ„μž…ν•¨μœΌλ‘œμ¨ 이λ₯Ό κ°œμ„ ν–ˆμŠ΅λ‹ˆλ‹€. + +μ„±λŠ₯ κ°œμ„ μ„ μœ„ν•œ μ „λž΅μœΌλ‘œ λͺ¨λΈ 크기λ₯Ό ν‚€μš°λŠ” 것이 μ§€λ°°μ μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 큰 λͺ¨λΈμ„ ν›ˆλ ¨ν•˜λ €λ©΄ 계산 λΉ„μš©μ΄ 많이 λ“­λ‹ˆλ‹€. 계산 λΉ„μš©μ„ μ€„μ΄λŠ” ν•œ κ°€μ§€ 방법은 [DistilBERT](model_doc/distilbert)와 같이 μž‘μ€ λͺ¨λΈμ„ μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. DistilBERTλŠ” μ••μΆ• 기법인 [지식 증λ₯˜(knowledge distillation)](https://arxiv.org/abs/1503.02531)λ₯Ό μ‚¬μš©ν•˜μ—¬, 거의 λͺ¨λ“  μ–Έμ–΄ 이해 λŠ₯λ ₯을 μœ μ§€ν•˜λ©΄μ„œ 더 μž‘μ€ λ²„μ „μ˜ BERTλ₯Ό λ§Œλ“­λ‹ˆλ‹€. + +κ·ΈλŸ¬λ‚˜ λŒ€λΆ€λΆ„μ˜ Transformer λͺ¨λΈμ— 더 λ§Žμ€ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½ν–₯이 μ΄μ–΄μ‘Œκ³ , 이에 따라 ν›ˆλ ¨ νš¨μœ¨μ„±μ„ κ°œμ„ ν•˜λŠ” 것에 쀑점을 λ‘” μƒˆλ‘œμš΄ λͺ¨λΈμ΄ λ“±μž₯ν–ˆμŠ΅λ‹ˆλ‹€. [ALBERT](model_doc/albert)λŠ” 두 κ°€μ§€ λ°©λ²•μœΌλ‘œ λ§€κ°œλ³€μˆ˜ 수λ₯Ό 쀄여 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μ€„μ˜€μŠ΅λ‹ˆλ‹€. λ°”λ‘œ 큰 μ–΄νœ˜λ₯Ό 두 개의 μž‘μ€ ν–‰λ ¬λ‘œ λΆ„λ¦¬ν•˜λŠ” 것과 λ ˆμ΄μ–΄κ°€ λ§€κ°œλ³€μˆ˜λ₯Ό κ³΅μœ ν•˜λ„λ‘ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. [DeBERTa](model_doc/deberta)λŠ” 단어와 κ·Έ μœ„μΉ˜λ₯Ό 두 개의 λ²‘ν„°λ‘œ κ°œλ³„μ μœΌλ‘œ μΈμ½”λ”©ν•˜λŠ” λΆ„λ¦¬λœ(disentangled) μ–΄ν…μ…˜ λ©”μ»€λ‹ˆμ¦˜μ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. μ–΄ν…μ…˜μ€ 단어와 μœ„μΉ˜ μž„λ² λ”©μ„ ν¬ν•¨ν•˜λŠ” 단일 벑터 λŒ€μ‹  이 λ³„λ„μ˜ λ²‘ν„°μ—μ„œ κ³„μ‚°λ©λ‹ˆλ‹€. [Longformer](model_doc/longformer)λŠ” 특히 μ‹œν€€μŠ€ 길이가 κΈ΄ λ¬Έμ„œλ₯Ό μ²˜λ¦¬ν•  λ•Œ, μ–΄ν…μ…˜μ„ 더 효율적으둜 λ§Œλ“œλŠ” 것에 쀑점을 λ‘μ—ˆμŠ΅λ‹ˆλ‹€. μ§€μ—­(local) μœˆλ„μš° μ–΄ν…μ…˜(각 토큰 μ£Όλ³€μ˜ κ³ μ •λœ μœˆλ„μš° ν¬κΈ°μ—μ„œλ§Œ κ³„μ‚°λ˜λŠ” μ–΄ν…μ…˜)κ³Ό μ „μ—­(global) μ–΄ν…μ…˜(λΆ„λ₯˜λ₯Ό μœ„ν•΄ `[CLS]`와 같은 νŠΉμ • μž‘μ—… ν† ν°μ—λ§Œ ν•΄λ‹Ή)의 쑰합을 μ‚¬μš©ν•˜μ—¬ 전체(full) μ–΄ν…μ…˜ ν–‰λ ¬ λŒ€μ‹  ν¬μ†Œ(sparse) μ–΄ν…μ…˜ 행렬을 μƒμ„±ν•©λ‹ˆλ‹€. + +### 디코더[[nlp-decoder]] + +[GPT-2](model_doc/gpt2)λŠ” μ‹œν€€μŠ€μ—μ„œ λ‹€μŒ 단어λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 디코더 μ „μš© Transformerμž…λ‹ˆλ‹€. 토큰을 였λ₯Έμͺ½μœΌλ‘œ λ§ˆμŠ€ν‚Ήν•˜μ—¬ λͺ¨λΈμ΄ 이전 토큰을 보고 "λΆ€μ • ν–‰μœ„"λ₯Ό ν•˜μ§€ λͺ»ν•˜λ„둝 ν•©λ‹ˆλ‹€. GPT-2λŠ” λ°©λŒ€ν•œ ν…μŠ€νŠΈμ— λŒ€ν•΄ μ‚¬μ „ν›ˆλ ¨ν•˜μ—¬ ν…μŠ€νŠΈκ°€ μΌλΆ€λ§Œ μ •ν™•ν•˜κ±°λ‚˜ 사싀인 κ²½μš°μ—λ„ μƒλ‹Ήνžˆ λŠ₯μˆ™ν•˜κ²Œ ν…μŠ€νŠΈλ₯Ό 생성할 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ GPT-2λŠ” BERTκ°€ μ‚¬μ „ν›ˆλ ¨μ—μ„œ κ°–λŠ” μ–‘λ°©ν–₯ μ»¨ν…μŠ€νŠΈκ°€ λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έμ— νŠΉμ • μž‘μ—…μ— μ ν•©ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. [XLNET](model_doc/xlnet)은 μ–‘λ°©ν–₯ ν›ˆλ ¨μ΄ κ°€λŠ₯ν•œ permutation language modeling objective(PLM)λ₯Ό μ‚¬μš©ν•˜μ—¬ BERT와 GPT-2의 μ‚¬μ „ν›ˆλ ¨ λͺ©ν‘œμ— λŒ€ν•œ μž₯점을 ν•¨κ»˜ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. + +GPT-2 이후, μ–Έμ–΄ λͺ¨λΈμ€ λ”μš± κ±°λŒ€ν•΄μ‘Œκ³  ν˜„μž¬λŠ” *λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)*둜 μ•Œλ €μ Έ μžˆμŠ΅λ‹ˆλ‹€. μΆ©λΆ„νžˆ 큰 데이터 μ„ΈνŠΈλ‘œ μ‚¬μ „ν›ˆλ ¨λœ LLM은 퓨샷(few-shot) λ˜λŠ” μ œλ‘œμƒ·(zero-shot) ν•™μŠ΅μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. [GPT-J](model_doc/gptj)λŠ” 6B 크기의 λ§€κ°œλ³€μˆ˜κ°€ 있고 400B 크기의 ν† ν°μœΌλ‘œ ν›ˆλ ¨λœ LLMμž…λ‹ˆλ‹€. GPT-J에 이어 디코더 μ „μš© λͺ¨λΈκ΅°μΈ [OPT](model_doc/opt)κ°€ λ“±μž₯ν–ˆμœΌλ©°, 이 쀑 κ°€μž₯ 큰 λͺ¨λΈμ€ 175B 크기이고 180B 크기의 ν† ν°μœΌλ‘œ ν›ˆλ ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. [BLOOM](model_doc/bloom)은 λΉ„μŠ·ν•œ μ‹œκΈ°μ— μΆœμ‹œλ˜μ—ˆμœΌλ©°, 이 쀑 κ°€μž₯ 큰 λͺ¨λΈμ€ 176B 크기의 λ§€κ°œλ³€μˆ˜κ°€ 있고 46개의 언어와 13개의 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ 된 366B 크기의 ν† ν°μœΌλ‘œ ν›ˆλ ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. + +### 인코더-디코더[[nlp-encoder-decoder]] + +[BART](model_doc/bart)λŠ” κΈ°λ³Έ Transformer μ•„ν‚€ν…μ²˜λ₯Ό μœ μ§€ν•˜μ§€λ§Œ, 일뢀 ν…μŠ€νŠΈ 슀팬(span)이 단일 `마슀크` ν† ν°μœΌλ‘œ λŒ€μ²΄λ˜λŠ” *text infilling* λ³€ν˜•μœΌλ‘œ μ‚¬μ „ν›ˆλ ¨ λͺ©ν‘œλ₯Ό μˆ˜μ •ν•©λ‹ˆλ‹€. λ””μ½”λ”λŠ” λ³€ν˜•λ˜μ§€ μ•Šμ€ 토큰(ν–₯ν›„ 토큰은 λ§ˆμŠ€ν‚Ήλ¨)을 μ˜ˆμΈ‘ν•˜κ³  μΈμ½”λ”μ˜ 은닉 μƒνƒœλ₯Ό μ‚¬μš©ν•˜μ—¬ 이 μž‘μ—…μ„ λ•μŠ΅λ‹ˆλ‹€. [Pegasus](model_doc/pegasus)λŠ” BART와 μœ μ‚¬ν•˜μ§€λ§Œ, PegasusλŠ” ν…μŠ€νŠΈ 슀팬 λŒ€μ‹  전체 λ¬Έμž₯을 λ§ˆμŠ€ν‚Ήν•©λ‹ˆλ‹€. PegasusλŠ” λ§ˆμŠ€ν¬λ“œ μ–Έμ–΄ λͺ¨λΈλ§ 외에도 gap sentence generation(GSG)둜 μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. GSGλŠ” λ¬Έμ„œμ— μ€‘μš”ν•œ λ¬Έμž₯ 전체λ₯Ό λ§ˆμŠ€ν‚Ήν•˜μ—¬ `마슀크` ν† ν°μœΌλ‘œ λŒ€μ²΄ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€. λ””μ½”λ”λŠ” 남은 λ¬Έμž₯μ—μ„œ 좜λ ₯을 생성해야 ν•©λ‹ˆλ‹€. [T5](model_doc/t5)λŠ” νŠΉμ • 접두사λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  NLP μž‘μ—…μ„ ν…μŠ€νŠΈ 투 ν…μŠ€νŠΈ 문제둜 λ³€ν™˜ν•˜λŠ” 더 νŠΉμˆ˜ν•œ λͺ¨λΈμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 접두사 `Summarize:`은 μš”μ•½ μž‘μ—…μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. T5λŠ” 지도(GLUE 및 SuperGLUE) ν›ˆλ ¨κ³Ό μžκΈ°μ§€λ„ ν›ˆλ ¨(ν† ν°μ˜ 15%λ₯Ό μž„μ˜λ‘œ μƒ˜ν”Œλ§ν•˜μ—¬ 제거)으둜 μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. + +## μ˜€λ””μ˜€[[audio]] + + + +### 인코더[[audio-encoder]] + +[Wav2Vec2](model_doc/wav2vec2)λŠ” Transformer 인코더λ₯Ό μ‚¬μš©ν•˜μ—¬ 원본 μ˜€λ””μ˜€ νŒŒν˜•(raw audio waveform)μ—μ„œ 직접 μŒμ„± ν‘œν˜„μ„ ν•™μŠ΅ν•©λ‹ˆλ‹€. ν—ˆμœ„ μŒμ„± ν‘œν˜„ μ„ΈνŠΈμ—μ„œ μ‹€μ œ μŒμ„± ν‘œν˜„μ„ νŒλ³„ν•˜λŠ” λŒ€μ‘° μž‘μ—…μœΌλ‘œ μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. [HuBERT](model_doc/hubert)λŠ” Wav2Vec2와 μœ μ‚¬ν•˜μ§€λ§Œ ν›ˆλ ¨ 과정이 λ‹€λ¦…λ‹ˆλ‹€. νƒ€κ²Ÿ λ ˆμ΄λΈ”μ΄ μœ μ‚¬ν•œ μ˜€λ””μ˜€ μ„Έκ·Έλ¨ΌνŠΈκ°€ ν΄λŸ¬μŠ€ν„°μ— ν• λ‹Ήλ˜μ–΄ 은닉 λ‹¨μœ„(unit)κ°€ λ˜λŠ” κ΅°μ§‘ν™”(clustering) λ‹¨κ³„μ—μ„œ μƒμ„±λ©λ‹ˆλ‹€. 은닉 λ‹¨μœ„λŠ” μ˜ˆμΈ‘μ„ μœ„ν•œ μž„λ² λ”©μ— λ§€ν•‘λ©λ‹ˆλ‹€. + +### 인코더-디코더[[audio-encoder-decoder]] + +[Speech2Text](model_doc/speech_to_text)λŠ” μžλ™ μŒμ„± 인식(ASR) 및 μŒμ„± λ²ˆμ—­μ„ μœ„ν•΄ κ³ μ•ˆλœ μŒμ„± λͺ¨λΈμž…λ‹ˆλ‹€. 이 λͺ¨λΈμ€ μ˜€λ””μ˜€ νŒŒν˜•μ—μ„œ μΆ”μΆœν•œ log mel-filter bank νŠΉμ§•μ„ μ±„νƒν•˜κ³  μžκΈ°νšŒκ·€ λ°©μ‹μœΌλ‘œ μ‚¬μ „ν›ˆλ ¨ν•˜μ—¬, 전사본 λ˜λŠ” λ²ˆμ—­μ„ λ§Œλ“­λ‹ˆλ‹€. [Whisper](model_doc/whisper)은 ASR λͺ¨λΈμ΄μ§€λ§Œ, λ‹€λ₯Έ λ§Žμ€ μŒμ„± λͺ¨λΈκ³Ό 달리 μ œλ‘œμƒ· μ„±λŠ₯을 μœ„ν•΄ λŒ€λŸ‰μ˜ ✨ λ ˆμ΄λΈ”μ΄ μ§€μ •λœ ✨ μ˜€λ””μ˜€ 전사 데이터에 λŒ€ν•΄ μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. 데이터 μ„ΈνŠΈμ˜ 큰 λ¬ΆμŒμ—λŠ” μ˜μ–΄κ°€ μ•„λ‹Œ 언어도 ν¬ν•¨λ˜μ–΄ μžˆμ–΄μ„œ μžμ›μ΄ 적은 언어에도 Whisperλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ꡬ쑰적으둜, WhisperλŠ” Speech2Text와 μœ μ‚¬ν•©λ‹ˆλ‹€. μ˜€λ””μ˜€ μ‹ ν˜ΈλŠ” 인코더에 μ˜ν•΄ μΈμ½”λ”©λœ log-mel spectrogram으둜 λ³€ν™˜λ©λ‹ˆλ‹€. λ””μ½”λ”λŠ” μΈμ½”λ”μ˜ 은닉 μƒνƒœμ™€ 이전 ν† ν°μœΌλ‘œλΆ€ν„° μžκΈ°νšŒκ·€ λ°©μ‹μœΌλ‘œ 전사λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. + +## λ©€ν‹°λͺ¨λ‹¬[[multimodal]] + + + +### 인코더[[mm-encoder]] + +[VisualBERT](model_doc/visual_bert)λŠ” BERT 이후에 μΆœμ‹œλœ λΉ„μ „ μ–Έμ–΄ μž‘μ—…μ„ μœ„ν•œ λ©€ν‹°λͺ¨λ‹¬ λͺ¨λΈμž…λ‹ˆλ‹€. 이 λͺ¨λΈμ€ BERT와 μ‚¬μ „ν›ˆλ ¨λœ 객체 탐지 μ‹œμŠ€ν…œμ„ κ²°ν•©ν•˜μ—¬ 이미지 νŠΉμ§•μ„ μ‹œκ° μž„λ² λ”©μœΌλ‘œ μΆ”μΆœν•˜κ³ , ν…μŠ€νŠΈ μž„λ² λ”©κ³Ό ν•¨κ»˜ BERT둜 μ „λ‹¬ν•©λ‹ˆλ‹€. VisualBERTλŠ” λ§ˆμŠ€ν‚Ήλ˜μ§€ μ•Šμ€ ν…μŠ€νŠΈμ™€ μ‹œκ° μž„λ² λ”©μ„ 기반으둜 λ§ˆμŠ€ν‚Ήλœ ν…μŠ€νŠΈλ₯Ό μ˜ˆμΈ‘ν•˜κ³ , ν…μŠ€νŠΈκ°€ 이미지와 μΌμΉ˜ν•˜λŠ”μ§€ μ˜ˆμΈ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. ViTκ°€ 이미지 μž„λ² λ”©μ„ κ΅¬ν•˜λŠ” 방식이 더 쉬웠기 λ•Œλ¬Έμ—, ViTκ°€ μΆœμ‹œλœ ν›„ [ViLT](model_doc/vilt)λŠ” μ•„ν‚€ν…μ²˜μ— ViTλ₯Ό μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€. 이미지 μž„λ² λ”©μ€ ν…μŠ€νŠΈ μž„λ² λ”©κ³Ό ν•¨κ»˜ μ²˜λ¦¬λ©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ, ViLTλŠ” 이미지 ν…μŠ€νŠΈ λ§€μΉ­, λ§ˆμŠ€ν¬λ“œ μ–Έμ–΄ λͺ¨λΈλ§, 전체 단어 λ§ˆμŠ€ν‚Ήμ„ 톡해 μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. + +[CLIP](model_doc/clip)은 λ‹€λ₯Έ μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ—¬ (`이미지`, `ν…μŠ€νŠΈ`)의 쌍 μ˜ˆμΈ‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. (`이미지`, `ν…μŠ€νŠΈ`) μŒμ—μ„œμ˜ 이미지와 ν…μŠ€νŠΈ μž„λ² λ”© κ°„μ˜ μœ μ‚¬λ„λ₯Ό μ΅œλŒ€ν™”ν•˜κΈ° μœ„ν•΄ 4μ–΅ 개의 (`이미지`, `ν…μŠ€νŠΈ`) 쌍 데이터 μ„ΈνŠΈμ— λŒ€ν•΄ 이미지 인코더(ViT)와 ν…μŠ€νŠΈ 인코더(Transformer)λ₯Ό ν•¨κ»˜ ν›ˆλ ¨ν•©λ‹ˆλ‹€. μ‚¬μ „ν›ˆλ ¨ ν›„, μžμ—°μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지가 μ£Όμ–΄μ§„ ν…μŠ€νŠΈλ₯Ό μ˜ˆμΈ‘ν•˜κ±°λ‚˜ κ·Έ λ°˜λŒ€λ‘œ μ˜ˆμΈ‘ν•˜λ„λ‘ CLIP에 μ§€μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. [OWL-ViT](model_doc/owlvit)λŠ” CLIP을 μ œλ‘œμƒ· 객체 탐지λ₯Ό μœ„ν•œ λ°±λ³Έ(backbone)으둜 μ‚¬μš©ν•˜μ—¬ CLIP 상에 κ΅¬μΆ•λ©λ‹ˆλ‹€. μ‚¬μ „ν›ˆλ ¨ ν›„, 객체 탐지 ν—€λ“œκ°€ μΆ”κ°€λ˜μ–΄ (`클래슀`, `λ°”μš΄λ”© λ°•μŠ€`) μŒμ— λŒ€ν•œ μ§‘ν•©(set) μ˜ˆμΈ‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. + +### 인코더-디코더[[mm-encoder-decoder]] + +κ΄‘ν•™ 문자 인식(OCR)은 이미지λ₯Ό μ΄ν•΄ν•˜κ³  ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ ꡬ성 μš”μ†Œλ₯Ό ν•„μš”λ‘œ ν•˜λŠ” 전톡적인 ν…μŠ€νŠΈ 인식 μž‘μ—…μž…λ‹ˆλ‹€. [TrOCR](model_doc/trocr)은 쒅단간(end-to-end) Transformerλ₯Ό μ‚¬μš©ν•˜μ—¬ 이 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ°„μ†Œν™”ν•©λ‹ˆλ‹€. μΈμ½”λ”λŠ” 이미지 이해λ₯Ό μœ„ν•œ ViT λ°©μ‹μ˜ λͺ¨λΈμ΄λ©° 이미지λ₯Ό κ³ μ •λœ 크기의 패치둜 μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ””μ½”λ”λŠ” μΈμ½”λ”μ˜ 은닉 μƒνƒœλ₯Ό λ°›μ•„μ„œ μžκΈ°νšŒκ·€ λ°©μ‹μœΌλ‘œ ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. [Donut](model_doc/donut)은 OCR 기반 μ ‘κ·Ό 방식에 μ˜μ‘΄ν•˜μ§€ μ•ŠλŠ” 더 일반적인 μ‹œκ° λ¬Έμ„œ 이해 λͺ¨λΈμž…λ‹ˆλ‹€. 이 λͺ¨λΈμ€ Swin Transformerλ₯Ό μΈμ½”λ”λ‘œ, λ‹€κ΅­μ–΄ BARTλ₯Ό λ””μ½”λ”λ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€. Donut은 이미지와 ν…μŠ€νŠΈ 주석을 기반으둜 λ‹€μŒ 단어λ₯Ό μ˜ˆμΈ‘ν•˜μ—¬ ν…μŠ€νŠΈλ₯Ό 읽도둝 μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. λ””μ½”λ”λŠ” ν”„λ‘¬ν”„νŠΈκ°€ μ£Όμ–΄μ§€λ©΄ 토큰 μ‹œν€€μŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈλŠ” 각 λ‹€μš΄μŠ€νŠΈλ¦Ό μž‘μ—…μ— λŒ€ν•œ 특수 ν† ν°μœΌλ‘œ ν‘œν˜„λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ¬Έμ„œ νŒŒμ‹±(parsing)μ—λŠ” μΈμ½”λ”μ˜ 은닉 μƒνƒœμ™€ κ²°ν•©λ˜μ–΄ λ¬Έμ„œλ₯Ό μ •ν˜• 좜λ ₯ ν˜•μ‹(JSON)으둜 νŒŒμ‹±ν•˜λŠ” 특수 `νŒŒμ‹±` 토큰이 μžˆμŠ΅λ‹ˆλ‹€. + +## κ°•ν™” ν•™μŠ΅[[reinforcement-learning]] + + + +### 디코더[[rl-decoder]] + +Decision 및 Trajectory TransformerλŠ” μƒνƒœ(state), 행동(action), 보상(reward)을 μ‹œν€€μŠ€ λͺ¨λΈλ§ 문제둜 ν‘œν˜„ν•©λ‹ˆλ‹€. [Decision Transformer](model_doc/decision_transformer)λŠ” κΈ°λŒ€ 보상(returns-to-go), κ³Όκ±° μƒνƒœ 및 행동을 기반으둜 미래의 μ›ν•˜λŠ” 수읡(return)으둜 μ΄μ–΄μ§€λŠ” 일련의 행동을 μƒμ„±ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰ *K* μ‹œκ°„ μŠ€ν…(timestep)에 λŒ€ν•΄, μ„Έ κ°€μ§€ λͺ¨λ‹¬λ¦¬ν‹°λŠ” 각각 토큰 μž„λ² λ”©μœΌλ‘œ λ³€ν™˜λ˜κ³  GPT와 같은 λͺ¨λΈμ— μ˜ν•΄ μ²˜λ¦¬λ˜μ–΄ 미래의 μ•‘μ…˜ 토큰을 μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. [Trajectory Transformer](model_doc/trajectory_transformer)도 μƒνƒœ, 행동, 보상을 ν† ν°ν™”ν•˜μ—¬ GPT μ•„ν‚€ν…μ²˜λ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. 보상 쑰건에 쀑점을 λ‘” Decision Transformer와 달리 Trajectory TransformerλŠ” λΉ” μ„œμΉ˜(beam search)둜 미래 행동을 μƒμ„±ν•©λ‹ˆλ‹€. \ No newline at end of file