Transformers documentation

πŸ€— Transformers둜 μž‘μ—…μ„ ν•΄κ²°ν•˜λŠ” 방법

You are viewing v4.31.0 version. A newer version v4.47.1 is available.
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

πŸ€— Transformers둜 μž‘μ—…μ„ ν•΄κ²°ν•˜λŠ” 방법

πŸ€— Transformers둜 ν•  수 μžˆλŠ” μž‘μ—…μ—μ„œ μžμ—°μ–΄ 처리(NLP), μŒμ„± 및 μ˜€λ””μ˜€, 컴퓨터 λΉ„μ „ μž‘μ—… λ“±μ˜ μ€‘μš”ν•œ μ‘μš©μ„ λ°°μ› μŠ΅λ‹ˆλ‹€. 이 νŽ˜μ΄μ§€μ—μ„œλŠ” λͺ¨λΈμ΄ μ΄λŸ¬ν•œ μž‘μ—…μ„ μ–΄λ–»κ²Œ ν•΄κ²°ν•˜λŠ”μ§€ μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ³  λ‚΄λΆ€μ—μ„œ μ–΄λ–€ 일이 μΌμ–΄λ‚˜λŠ”μ§€ μ„€λͺ…ν•©λ‹ˆλ‹€. 주어진 μž‘μ—…μ„ ν•΄κ²°ν•˜λŠ” λ§Žμ€ 방법이 있으며, 일뢀 λͺ¨λΈμ€ νŠΉμ • κΈ°μˆ μ„ κ΅¬ν˜„ν•˜κ±°λ‚˜ 심지어 μƒˆλ‘œμš΄ λ°©μ‹μœΌλ‘œ μž‘μ—…μ— μ ‘κ·Όν•  μˆ˜λ„ μžˆμ§€λ§Œ, Transformer λͺ¨λΈμ˜ 경우 일반적인 μ•„μ΄λ””μ–΄λŠ” λ™μΌν•©λ‹ˆλ‹€. μœ μ—°ν•œ μ•„ν‚€ν…μ²˜ 덕뢄에 λŒ€λΆ€λΆ„μ˜ λͺ¨λΈμ€ 인코더, 디코더 λ˜λŠ” 인코더-디코더 ꡬ쑰의 λ³€ν˜•μž…λ‹ˆλ‹€. Transformer λͺ¨λΈλΏλ§Œ μ•„λ‹ˆλΌ 우리의 λΌμ΄λΈŒλŸ¬λ¦¬μ—λŠ” μ˜€λŠ˜λ‚  컴퓨터 λΉ„μ „ μž‘μ—…μ— μ‚¬μš©λ˜λŠ” λͺ‡ 가지 ν•©μ„±κ³± 신경망(CNNs)도 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μš°λ¦¬λŠ” ν˜„λŒ€ CNN의 μž‘λ™ 방식에 λŒ€ν•΄ μ„€λͺ…ν•  κ²ƒμž…λ‹ˆλ‹€.

μž‘μ—…μ΄ μ–΄λ–»κ²Œ ν•΄κ²°λ˜λŠ”μ§€ μ„€λͺ…ν•˜κΈ° μœ„ν•΄, μœ μš©ν•œ μ˜ˆμΈ‘μ„ 좜λ ₯ν•˜κ³ μž λͺ¨λΈ λ‚΄λΆ€μ—μ„œ μ–΄λ–€ 일이 μΌμ–΄λ‚˜λŠ”μ§€ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€.

  • μ˜€λ””μ˜€ λΆ„λ₯˜ 및 μžλ™ μŒμ„± 인식(ASR)을 μœ„ν•œ Wav2Vec2
  • 이미지 λΆ„λ₯˜λ₯Ό μœ„ν•œ Vision Transformer (ViT) 및 ConvNeXT
  • 객체 탐지λ₯Ό μœ„ν•œ DETR
  • 이미지 뢄할을 μœ„ν•œ Mask2Former
  • 깊이 좔정을 μœ„ν•œ GLPN
  • 인코더λ₯Ό μ‚¬μš©ν•˜λŠ” ν…μŠ€νŠΈ λΆ„λ₯˜, 토큰 λΆ„λ₯˜ 및 μ§ˆμ˜μ‘λ‹΅κ³Ό 같은 NLP μž‘μ—…μ„ μœ„ν•œ BERT
  • 디코더λ₯Ό μ‚¬μš©ν•˜λŠ” ν…μŠ€νŠΈ 생성과 같은 NLP μž‘μ—…μ„ μœ„ν•œ GPT2
  • 인코더-디코더λ₯Ό μ‚¬μš©ν•˜λŠ” μš”μ•½ 및 λ²ˆμ—­κ³Ό 같은 NLP μž‘μ—…μ„ μœ„ν•œ BART

더 λ‚˜μ•„κ°€κΈ° 전에, κΈ°μ‘΄ Transformer μ•„ν‚€ν…μ²˜μ— λŒ€ν•œ 기본적인 지식을 μˆ™μ§€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 인코더, 디코더 및 μ–΄ν…μ…˜μ˜ μž‘λ™ 방식을 μ•Œλ©΄ λ‹€μ–‘ν•œ Transformer λͺ¨λΈμ΄ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€. μ‹œμž‘ λ‹¨κ³„κ±°λ‚˜ 볡슡이 ν•„μš”ν•œ 경우, 더 λ§Žμ€ 정보λ₯Ό μœ„ν•΄ μ½”μŠ€λ₯Ό ν™•μΈν•˜μ„Έμš”!

μŒμ„± 및 μ˜€λ””μ˜€

Wav2Vec2λŠ” λ ˆμ΄λΈ”μ΄ μ§€μ •λ˜μ§€ μ•Šμ€ μŒμ„± 데이터에 λŒ€ν•΄ μ‚¬μ „ν›ˆλ ¨λœ λͺ¨λΈλ‘œ, μ˜€λ””μ˜€ λΆ„λ₯˜ 및 μžλ™ μŒμ„± 인식을 μœ„ν•΄ λ ˆμ΄λΈ”μ΄ μ§€μ •λœ λ°μ΄ν„°λ‘œ λ―Έμ„Έ μ‘°μ •ν•©λ‹ˆλ‹€.

이 λͺ¨λΈμ—λŠ” 4가지 μ£Όμš” ꡬ성 μš”μ†Œκ°€ μžˆμŠ΅λ‹ˆλ‹€:

  1. νŠΉμ§• 인코더(feature encoder)λŠ” μ›μ‹œ μ˜€λ””μ˜€ νŒŒν˜•(raw audio waveform)을 κ°€μ Έμ™€μ„œ 제둜 평균 및 λ‹¨μœ„ λΆ„μ‚°μœΌλ‘œ ν‘œμ€€ν™”ν•˜κ³ , 각각 20ms 길이의 νŠΉμ§• λ²‘ν„°μ˜ μ‹œν€€μŠ€λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.

  2. μ˜€λ””μ˜€ νŒŒν˜•μ€ 본질적으둜 연속적이기 λ•Œλ¬Έμ—, ν…μŠ€νŠΈ μ‹œν€€μŠ€λ₯Ό λ‹¨μ–΄λ‘œ λ‚˜λˆ„λŠ” 것과 같이 λΆ„ν• ν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ μ–‘μžν™” λͺ¨λ“ˆ(quantization module)둜 μ „λ‹¬λ˜λŠ” νŠΉμ§• λ²‘ν„°λŠ” μ΄μ‚°ν˜• μŒμ„± λ‹¨μœ„λ₯Ό ν•™μŠ΅ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. μŒμ„± λ‹¨μœ„λŠ” μ½”λ“œλΆ(codebook)(μ–΄νœ˜μ§‘μ΄λΌκ³  생각할 수 μžˆμŠ΅λ‹ˆλ‹€)μ΄λΌλŠ” μ½”λ“œλ‹¨μ–΄(codewords) μ½œλ ‰μ…˜μ—μ„œ μ„ νƒλ©λ‹ˆλ‹€. μ½”λ“œλΆμ—μ„œ 연속적인 μ˜€λ””μ˜€ μž…λ ₯을 κ°€μž₯ 잘 λ‚˜νƒ€λ‚΄λŠ” 벑터 λ˜λŠ” μŒμ„± λ‹¨μœ„κ°€ μ„ νƒλ˜μ–΄ λͺ¨λΈμ„ ν†΅κ³Όν•©λ‹ˆλ‹€.

  3. νŠΉμ§• λ²‘ν„°μ˜ μ ˆλ°˜μ€ λ¬΄μž‘μœ„λ‘œ λ§ˆμŠ€ν¬κ°€ 적용되며, 마슀크된 νŠΉμ§• λ²‘ν„°λŠ” μƒλŒ€μ  μœ„μΉ˜ μž„λ² λ”©μ„ μΆ”κ°€ν•˜λŠ” Transformer 인코더인 λ¬Έλ§₯ λ„€νŠΈμ›Œν¬(context network)둜 μ „λ‹¬λ©λ‹ˆλ‹€.

  4. λ¬Έλ§₯ λ„€νŠΈμ›Œν¬μ˜ μ‚¬μ „ν›ˆλ ¨ λͺ©ν‘œλŠ” λŒ€μ‘°μ  μž‘μ—…(contrastive task)μž…λ‹ˆλ‹€. λͺ¨λΈμ€ 잘λͺ»λœ 예츑 μ‹œν€€μŠ€μ—μ„œ 마슀크된 예츑의 μ‹€μ œ μ–‘μžν™”λœ μŒμ„± ν‘œν˜„μ„ μ˜ˆμΈ‘ν•˜λ©°, λͺ¨λΈμ΄ κ°€μž₯ μœ μ‚¬ν•œ μ»¨ν…μŠ€νŠΈ 벑터와 μ–‘μžν™”λœ μŒμ„± λ‹¨μœ„(νƒ€κ²Ÿ λ ˆμ΄λΈ”)λ₯Ό 찾도둝 ꢌμž₯ν•©λ‹ˆλ‹€.

이제 wav2vec2κ°€ μ‚¬μ „ν›ˆλ ¨λ˜μ—ˆμœΌλ―€λ‘œ, μ˜€λ””μ˜€ λΆ„λ₯˜ λ˜λŠ” μžλ™ μŒμ„± 인식을 μœ„ν•΄ 데이터에 맞좰 λ―Έμ„Έ μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€!

μ˜€λ””μ˜€ λΆ„λ₯˜

μ‚¬μ „ν›ˆλ ¨λœ λͺ¨λΈμ„ μ˜€λ””μ˜€ λΆ„λ₯˜μ— μ‚¬μš©ν•˜λ €λ©΄, κΈ°λ³Έ Wav2Vec2 λͺ¨λΈ 상단에 μ‹œν€€μŠ€ λΆ„λ₯˜ ν—€λ“œλ₯Ό μΆ”κ°€ν•˜λ©΄ λ©λ‹ˆλ‹€. λΆ„λ₯˜ ν—€λ“œλŠ” μΈμ½”λ”μ˜ 은닉 μƒνƒœ(hidden states)λ₯Ό λ°›λŠ” μ„ ν˜• λ ˆμ΄μ–΄μž…λ‹ˆλ‹€. 은닉 μƒνƒœλŠ” 각각 길이가 λ‹€λ₯Έ μ˜€λ””μ˜€ ν”„λ ˆμž„μ—μ„œ ν•™μŠ΅λœ νŠΉμ§•μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. κ³ μ • 길이의 벑터 ν•˜λ‚˜λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄, 은닉 μƒνƒœλŠ” λ¨Όμ € ν’€λ§λ˜κ³ , 클래슀 λ ˆμ΄λΈ”μ— λŒ€ν•œ λ‘œμ§“μœΌλ‘œ λ³€ν™˜λ©λ‹ˆλ‹€. κ°€μž₯ κ°€λŠ₯성이 높은 클래슀λ₯Ό μ°ΎκΈ° μœ„ν•΄ λ‘œμ§“κ³Ό νƒ€κ²Ÿ μ‚¬μ΄μ˜ ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀이 κ³„μ‚°λ©λ‹ˆλ‹€.

μ˜€λ””μ˜€ λΆ„λ₯˜μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ μ˜€λ””μ˜€ λΆ„λ₯˜ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ Wav2Vec2λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

μžλ™ μŒμ„± 인식

μ‚¬μ „ν›ˆλ ¨λœ λͺ¨λΈμ„ μžλ™ μŒμ„± 인식에 μ‚¬μš©ν•˜λ €λ©΄, μ—°κ²°μ£Όμ˜μ  μ‹œκ°„ λΆ„λ₯˜(CTC, Connectionist Temporal Classification)λ₯Ό μœ„ν•΄ κΈ°λ³Έ Wav2Vec2 λͺ¨λΈ 상단에 μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œλŠ” μΈμ½”λ”μ˜ 은닉 μƒνƒœλ₯Ό λ°›μ•„μ„œ λ‘œμ§“μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. 각 λ‘œμ§“μ€ 토큰 클래슀(토큰 μˆ˜λŠ” μž‘μ—…μ˜ μ–΄νœ˜μ—μ„œ λ‚˜νƒ€λ‚©λ‹ˆλ‹€)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. CTC 손싀은 ν…μŠ€νŠΈλ‘œ λ””μ½”λ”©λœ ν† ν°μ—μ„œ κ°€μž₯ κ°€λŠ₯성이 높은 토큰 μ‹œν€€μŠ€λ₯Ό μ°ΎκΈ° μœ„ν•΄ λ‘œμ§“κ³Ό νƒ€κ²Ÿ μ‚¬μ΄μ—μ„œ κ³„μ‚°λ©λ‹ˆλ‹€.

μžλ™ μŒμ„± 인식에 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ μžλ™ μŒμ„± 인식 κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ Wav2Vec2λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

컴퓨터 λΉ„μ „

컴퓨터 λΉ„μ „ μž‘μ—…μ— μ ‘κ·Όν•˜λŠ” 2가지 방법이 μžˆμŠ΅λ‹ˆλ‹€:

  1. 이미지λ₯Ό 패치 μ‹œν€€μŠ€λ‘œ λΆ„λ¦¬ν•˜κ³  Transformer둜 병렬 μ²˜λ¦¬ν•©λ‹ˆλ‹€.
  2. ConvNeXT와 같은 ν˜„λŒ€ CNN을 μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λŠ” ν•©μ„±κ³± λ ˆμ΄μ–΄λ₯Ό 기반으둜 ν•˜μ§€λ§Œ ν˜„λŒ€ λ„€νŠΈμ›Œν¬ 섀계λ₯Ό μ μš©ν•©λ‹ˆλ‹€.

μ„Έ 번째 방법은 Transformer와 ν•©μ„±κ³±(예λ₯Ό λ“€μ–΄, Convolutional Vision Transformer λ˜λŠ” LeViT)을 κ²°ν•©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μš°λ¦¬λŠ” μ‚΄νŽ΄λ³Ό 두 가지 λ°©λ²•λ§Œ κ²°ν•©ν•˜κΈ° λ•Œλ¬Έμ— μ—¬κΈ°μ„œ 이 방법을 닀루지 μ•ŠμŠ΅λ‹ˆλ‹€.

ViT와 ConvNeXTλŠ” 일반적으둜 이미지 λΆ„λ₯˜μ—μ„œ μ‚¬μš©λ˜μ§€λ§Œ, 물체 감지, λΆ„ν• , 깊이 μΆ”μ •κ³Ό 같은 λ‹€λ₯Έ λΉ„μ „ μž‘μ—…μ—λŠ” 각각 DETR, Mask2Former, GLPN이 더 μ ν•©ν•˜λ―€λ‘œ μ΄λŸ¬ν•œ λͺ¨λΈμ„ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

이미지 λΆ„λ₯˜

ViT와 ConvNeXT λͺ¨λ‘ 이미지 λΆ„λ₯˜μ— μ‚¬μš©λ  수 μžˆμ§€λ§Œ, ViTλŠ” μ–΄ν…μ…˜ λ©”μ»€λ‹ˆμ¦˜μ„, ConvNeXTλŠ” 합성곱을 μ‚¬μš©ν•˜λŠ” 것이 주된 μ°¨μ΄μž…λ‹ˆλ‹€.

Transformer

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 ν—€λ“œλŠ” 좜λ ₯을 클래슀 λ ˆμ΄λΈ”μ— λŒ€ν•΄ λ‘œμ§“μœΌλ‘œ λ³€ν™˜ν•˜κ³  ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀을 κ³„μ‚°ν•˜μ—¬ κ°€μž₯ κ°€λŠ₯성이 높은 클래슀λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

이미지 λΆ„λ₯˜μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ 이미지 λΆ„λ₯˜ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ ViTλ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

CNN

이 μ„Ήμ…˜μ—μ„œλŠ” 합성곱에 λŒ€ν•΄ κ°„λž΅ν•˜κ²Œ μ„€λͺ…ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λ―Έμ§€μ˜ λͺ¨μ–‘κ³Ό 크기가 μ–΄λ–»κ²Œ λ³€ν™”ν•˜λŠ”μ§€μ— λŒ€ν•œ 사전 이해가 μžˆλ‹€λ©΄ 도움이 될 κ²ƒμž…λ‹ˆλ‹€. 합성곱에 μ΅μˆ™ν•˜μ§€ μ•Šμ€ 경우, fastai book의 ν•©μ„±κ³± 신경망 챕터λ₯Ό ν™•μΈν•˜μ„Έμš”!

ConvNeXTλŠ” μ„±λŠ₯을 높이기 μœ„ν•΄ μƒˆλ‘œμš΄ ν˜„λŒ€ λ„€νŠΈμ›Œν¬ 섀계λ₯Ό μ μš©ν•œ CNN κ΅¬μ‘°μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 합성곱은 μ—¬μ „νžˆ λͺ¨λΈμ˜ ν•΅μ‹¬μž…λ‹ˆλ‹€. 높은 μˆ˜μ€€μ˜ κ΄€μ μ—μ„œ λ³Ό λ•Œ, 합성곱은 μž‘μ€ ν–‰λ ¬(컀널)에 이미지 ν”½μ…€μ˜ μž‘μ€ μœˆλ„μš°λ₯Ό κ³±ν•˜λŠ” μ—°μ‚°μž…λ‹ˆλ‹€. μ΄λŠ” νŠΉμ • ν…μŠ€μ³(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을 μ‚¬μš©ν•©λ‹ˆλ‹€.

ν•©μ„±κ³± λΈ”λ‘μ˜ 좜λ ₯은 λΆ„λ₯˜ ν—€λ“œλ‘œ μ „λ‹¬λ˜λ©°, λΆ„λ₯˜ ν—€λ“œλŠ” 좜λ ₯을 λ‘œμ§“μœΌλ‘œ λ³€ν™˜ν•˜κ³  ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀을 κ³„μ‚°ν•˜μ—¬ κ°€μž₯ κ°€λŠ₯성이 높은 λ ˆμ΄λΈ”μ„ μ°ΎμŠ΅λ‹ˆλ‹€.

객체 탐지

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

객체 탐지에 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ 객체 탐지 κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ DETR을 λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

이미지 λΆ„ν• 

Mask2FormerλŠ” λͺ¨λ“  μœ ν˜•μ˜ 이미지 λΆ„ν•  μž‘μ—…μ„ ν•΄κ²°ν•˜λŠ” λ²”μš© μ•„ν‚€ν…μ²˜μž…λ‹ˆλ‹€. 전톡적인 λΆ„ν•  λͺ¨λΈμ€ 일반적으둜 μ‹œλ©˜ν‹±(semantic) λ˜λŠ” νŒŒλ†‰ν‹±(panoptic) λΆ„ν• κ³Ό 같은 이미지 λΆ„ν• μ˜ νŠΉμ • ν•˜μœ„ μž‘μ—…μ— 맞좰 μ‘°μ •λ©λ‹ˆλ‹€. Mask2FormerλŠ” λͺ¨λ“  μž‘μ—…μ„ 마슀크 λΆ„λ₯˜ 문제둜 κ΅¬μ„±ν•©λ‹ˆλ‹€. 마슀크 λΆ„λ₯˜λŠ” 픽셀을 N개 μ„Έκ·Έλ¨ΌνŠΈλ‘œ κ·Έλ£Ήν™”ν•˜κ³ , 주어진 이미지에 λŒ€ν•΄ N개의 λ§ˆμŠ€ν¬μ™€ 그에 λŒ€μ‘ν•˜λŠ” 클래슀 λ ˆμ΄λΈ”μ„ μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œ Mask2Former의 μž‘λ™ 방법을 μ„€λͺ…ν•œ λ‹€μŒ, λ§ˆμ§€λ§‰μ— SegFormerλ₯Ό λ―Έμ„Έ μ‘°μ •ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

Mask2Formerμ—λŠ” 3가지 μ£Όμš” ꡬ성 μš”μ†Œκ°€ μžˆμŠ΅λ‹ˆλ‹€:

  1. Swin 백본이 이미지λ₯Ό λ°›μ•„ 3개의 μ—°μ†λœ 3x3 ν•©μ„±κ³±μ—μ„œ 저해상도 이미지 νŠΉμ§• 맡을 μƒμ„±ν•©λ‹ˆλ‹€.

  2. νŠΉμ§• 맡은 ν”½μ…€ 디코더에 μ „λ‹¬λ©λ‹ˆλ‹€. 이 λ””μ½”λ”λŠ” 저해상도 νŠΉμ§•μ„ 고해상도 ν”½μ…€ μž„λ² λ”©μœΌλ‘œ μ μ§„μ μœΌλ‘œ μ—…μƒ˜ν”Œλ§ν•©λ‹ˆλ‹€. ν”½μ…€ λ””μ½”λ”λŠ” μ‹€μ œλ‘œ 원본 μ΄λ―Έμ§€μ˜ 1/32, 1/16, 1/8 ν•΄μƒλ„μ˜ 닀쀑 μŠ€μΌ€μΌ νŠΉμ§•(저해상도 및 고해상도 νŠΉμ§• λͺ¨λ‘ 포함)을 μƒμ„±ν•©λ‹ˆλ‹€.

  3. μ΄λŸ¬ν•œ μ„œλ‘œ λ‹€λ₯Έ 크기의 νŠΉμ§• 맡은 고해상도 νŠΉμ§•μ—μ„œ μž‘μ€ 객체λ₯Ό ν¬μ°©ν•˜κΈ° μœ„ν•΄ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ Transformer 디코더 λ ˆμ΄μ–΄μ— μ—°μ†μ μœΌλ‘œ κ³΅κΈ‰λ©λ‹ˆλ‹€. Mask2Former의 핡심은 λ””μ½”λ”μ˜ 마슀크 μ–΄ν…μ…˜ λ©”μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€. 전체 이미지λ₯Ό μ°Έμ‘°ν•  수 μžˆλŠ” 크둜슀 μ–΄ν…μ…˜(cross-attention)κ³Ό 달리, 마슀크 μ–΄ν…μ…˜μ€ μ΄λ―Έμ§€μ˜ νŠΉμ • μ˜μ—­μ—λ§Œ μ§‘μ€‘ν•©λ‹ˆλ‹€. μ΄λŠ” μ΄λ―Έμ§€μ˜ 지역적 νŠΉμ§•λ§ŒμœΌλ‘œ λͺ¨λΈμ΄ μΆ©λΆ„νžˆ ν•™μŠ΅ν•  수 있기 λ•Œλ¬Έμ— 더 λΉ λ₯΄κ³  μ„±λŠ₯이 μš°μˆ˜ν•©λ‹ˆλ‹€.

  4. DETRκ³Ό 같이, Mask2FormerλŠ” ν•™μŠ΅λœ 객체 쿼리λ₯Ό μ‚¬μš©ν•˜κ³  이λ₯Ό ν”½μ…€ λ””μ½”λ”μ—μ„œμ˜ 이미지 νŠΉμ§•κ³Ό κ²°ν•©ν•˜μ—¬ 예츑 집합(클래슀 λ ˆμ΄λΈ”, 마슀크 예츑)을 μƒμ„±ν•©λ‹ˆλ‹€. λ””μ½”λ”μ˜ 은닉 μƒνƒœλŠ” μ„ ν˜• λ ˆμ΄μ–΄λ‘œ μ „λ‹¬λ˜μ–΄ 클래슀 λ ˆμ΄λΈ”μ— λŒ€ν•œ λ‘œμ§“μœΌλ‘œ λ³€ν™˜λ©λ‹ˆλ‹€. λ‘œμ§“κ³Ό 클래슀 λ ˆμ΄λΈ” μ‚¬μ΄μ˜ ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀을 κ³„μ‚°ν•˜μ—¬ κ°€μž₯ κ°€λŠ₯성이 높은 것을 μ°ΎμŠ΅λ‹ˆλ‹€.

    마슀크 μ˜ˆμΈ‘μ€ ν”½μ…€ μž„λ² λ”©κ³Ό μ΅œμ’… 디코더 은닉 μƒνƒœλ₯Ό κ²°ν•©ν•˜μ—¬ μƒμ„±λ©λ‹ˆλ‹€. μ‹œκ·Έλͺ¨μ΄λ“œ ꡐ차 μ—”νŠΈλ‘œν”Ό 및 Dice 손싀은 λ‘œμ§“κ³Ό μ‹€μ œ μ •λ‹΅ 마슀크(ground truth mask) μ‚¬μ΄μ—μ„œ κ³„μ‚°λ˜μ–΄ κ°€μž₯ κ°€λŠ₯성이 높은 마슀크λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

이미지 뢄할에 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ 이미지 λΆ„ν•  κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ SegFormerλ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

깊이 μΆ”μ •

GLPN, Global-Local Path NetworkλŠ” SegFormer 인코더와 κ²½λŸ‰ 디코더λ₯Ό κ²°ν•©ν•œ 깊이 좔정을 μœ„ν•œ Transformerμž…λ‹ˆλ‹€.

  1. ViT와 같이, μ΄λ―Έμ§€λŠ” 패치 μ‹œν€€μŠ€λ‘œ λΆ„ν• λ˜μ§€λ§Œ, 이미지 νŒ¨μΉ˜κ°€ 더 μž‘λ‹€λŠ” 점이 λ‹€λ¦…λ‹ˆλ‹€. μ΄λŠ” μ„Έκ·Έλ©˜ν…Œμ΄μ…˜μ΄λ‚˜ 깊이 μΆ”μ •κ³Ό 같은 밀도 예츑 μž‘μ—…μ— 더 μ ν•©ν•©λ‹ˆλ‹€. 이미지 νŒ¨μΉ˜λŠ” 패치 μž„λ² λ”©μœΌλ‘œ λ³€ν™˜λ˜μ–΄(패치 μž„λ² λ”©μ΄ μƒμ„±λ˜λŠ” 방법은 이미지 λΆ„λ₯˜ μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”), μΈμ½”λ”λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€.

  2. μΈμ½”λ”λŠ” 패치 μž„λ² λ”©μ„ λ°›μ•„, μ—¬λŸ¬ 인코더 블둝에 μ „λ‹¬ν•©λ‹ˆλ‹€. 각 블둝은 μ–΄ν…μ…˜ 및 Mix-FFN λ ˆμ΄μ–΄λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. ν›„μžμ˜ λͺ©μ μ€ μœ„μΉ˜ 정보λ₯Ό μ œκ³΅ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 각 인코더 λΈ”λ‘μ˜ λμ—λŠ” 계측적 ν‘œν˜„μ„ μƒμ„±ν•˜κΈ° μœ„ν•œ 패치 병합(patch merging) λ ˆμ΄μ–΄κ°€ μžˆμŠ΅λ‹ˆλ‹€. 각 μΈμ ‘ν•œ 패치 그룹의 νŠΉμ§•μ€ μ—°κ²°λ˜κ³ , μ—°κ²°λœ νŠΉμ§•μ— μ„ ν˜• λ ˆμ΄μ–΄κ°€ μ μš©λ˜μ–΄ 패치 수λ₯Ό 1/4의 ν•΄μƒλ„λ‘œ μ€„μž…λ‹ˆλ‹€. μ΄λŠ” λ‹€μŒ 인코더 λΈ”λ‘μ˜ μž…λ ₯이 되며, μ΄λŸ¬ν•œ 전체 ν”„λ‘œμ„ΈμŠ€λŠ” 1/8, 1/16, 1/32 ν•΄μƒλ„μ˜ 이미지 νŠΉμ§•μ„ κ°€μ§ˆ λ•ŒκΉŒμ§€ λ°˜λ³΅λ©λ‹ˆλ‹€.

  3. κ²½λŸ‰ λ””μ½”λ”λŠ” μΈμ½”λ”μ—μ„œ λ§ˆμ§€λ§‰ νŠΉμ§• 맡(1/32 크기)을 가져와 1/16 크기둜 μ—…μƒ˜ν”Œλ§ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ, νŠΉμ§•μ€ 선택적 νŠΉμ§• μœ΅ν•©(SFF, Selective Feature Fusion) λͺ¨λ“ˆλ‘œ μ „λ‹¬λ©λ‹ˆλ‹€. 이 λͺ¨λ“ˆμ€ 각 νŠΉμ§•μ— λŒ€ν•΄ μ–΄ν…μ…˜ λ§΅μ—μ„œ 둜컬 및 μ „μ—­ νŠΉμ§•μ„ μ„ νƒν•˜κ³  κ²°ν•©ν•œ λ‹€μŒ, 1/8둜 μ—…μƒ˜ν”Œλ§ν•©λ‹ˆλ‹€. 이 ν”„λ‘œμ„ΈμŠ€λŠ” λ””μ½”λ”©λœ νŠΉμ„±μ΄ 원본 이미지와 λ™μΌν•œ 크기가 될 λ•ŒκΉŒμ§€ λ°˜λ³΅λ©λ‹ˆλ‹€. 좜λ ₯은 두 개의 ν•©μ„±κ³± λ ˆμ΄μ–΄λ₯Ό 거친 λ‹€μŒ, μ‹œκ·Έλͺ¨μ΄λ“œ ν™œμ„±ν™”κ°€ μ μš©λ˜μ–΄ 각 ν”½μ…€μ˜ 깊이λ₯Ό μ˜ˆμΈ‘ν•©λ‹ˆλ‹€.

μžμ—°μ–΄μ²˜λ¦¬

TransformerλŠ” μ΄ˆκΈ°μ— 기계 λ²ˆμ—­μ„ μœ„ν•΄ μ„€κ³„λ˜μ—ˆκ³ , κ·Έ μ΄ν›„λ‘œλŠ” 사싀상 λͺ¨λ“  NLP μž‘μ—…μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ κΈ°λ³Έ μ•„ν‚€ν…μ²˜κ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ–΄λ–€ μž‘μ—…μ€ Transformer의 인코더 ꡬ쑰에 μ ν•©ν•˜λ©°, λ‹€λ₯Έ μž‘μ—…μ€ 디코더에 더 μ ν•©ν•©λ‹ˆλ‹€. 또 λ‹€λ₯Έ μž‘μ—…μ€ Transformer의 인코더-디코더 ꡬ쑰λ₯Ό λͺ¨λ‘ ν™œμš©ν•©λ‹ˆλ‹€.

ν…μŠ€νŠΈ λΆ„λ₯˜

BERTλŠ” 인코더 μ „μš© λͺ¨λΈμ΄λ©°, ν…μŠ€νŠΈμ˜ ν’λΆ€ν•œ ν‘œν˜„μ„ ν•™μŠ΅ν•˜κΈ° μœ„ν•΄ μ–‘λ°©ν–₯의 단어에 μ£Όλͺ©ν•¨μœΌλ‘œμ¨ 심측 μ–‘λ°©ν–₯μ„±(deep bidirectionality)을 효과적으둜 κ΅¬ν˜„ν•œ 졜초의 λͺ¨λΈμž…λ‹ˆλ‹€.

  1. BERTλŠ” WordPiece 토큰화λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμž₯의 토큰 μž„λ² λ”©μ„ μƒμ„±ν•©λ‹ˆλ‹€. 단일 λ¬Έμž₯κ³Ό ν•œ 쌍의 λ¬Έμž₯을 κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ νŠΉμˆ˜ν•œ [SEP] 토큰이 μΆ”κ°€λ©λ‹ˆλ‹€. λͺ¨λ“  ν…μŠ€νŠΈ μ‹œν€€μŠ€μ˜ μ‹œμž‘ λΆ€λΆ„μ—λŠ” νŠΉμˆ˜ν•œ [CLS] 토큰이 μΆ”κ°€λ©λ‹ˆλ‹€. [CLS] 토큰이 μžˆλŠ” μ΅œμ’… 좜λ ₯은 λΆ„λ₯˜ μž‘μ—…μ„ μœ„ν•œ λΆ„λ₯˜ ν—€λ“œλ‘œ μž…λ ₯에 μ‚¬μš©λ©λ‹ˆλ‹€. BERTλŠ” λ˜ν•œ ν•œ 쌍의 λ¬Έμž₯μ—μ„œ 각 토큰이 첫 번째 λ¬Έμž₯인지 두 번째 λ¬Έμž₯에 μ†ν•˜λŠ”μ§€ λ‚˜νƒ€λ‚΄λŠ” μ„Έκ·Έλ¨ΌνŠΈ μž„λ² λ”©(segment embedding)을 μΆ”κ°€ν•©λ‹ˆλ‹€.

  2. BERTλŠ” λ§ˆμŠ€ν¬λ“œ μ–Έμ–΄ λͺ¨λΈλ§κ³Ό λ‹€μŒ λ¬Έμž₯ 예츑, 두 가지 λͺ©μ μœΌλ‘œ μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. λ§ˆμŠ€ν¬λ“œ μ–Έμ–΄ λͺ¨λΈλ§μ—μ„œλŠ” μž…λ ₯ ν† ν°μ˜ 일뢀가 λ¬΄μž‘μœ„λ‘œ λ§ˆμŠ€ν‚Ήλ˜κ³ , λͺ¨λΈμ€ 이λ₯Ό μ˜ˆμΈ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈμ΄ λͺ¨λ“  단어λ₯Ό 보고 λ‹€μŒ 단어λ₯Ό β€œμ˜ˆμΈ‘β€ν•  수 μžˆλŠ” μ–‘λ°©ν–₯μ„± 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€. 예츑된 마슀크 ν† ν°μ˜ μ΅œμ’… 은닉 μƒνƒœλŠ” μ–΄νœ˜μ— λŒ€ν•œ μ†Œν”„νŠΈλ§₯μŠ€κ°€ μžˆλŠ” 순방ν–₯ λ„€νŠΈμ›Œν¬λ‘œ μ „λ‹¬λ˜μ–΄ 마슀크된 단어λ₯Ό μ˜ˆμΈ‘ν•©λ‹ˆλ‹€.

    두 번째 μ‚¬μ „ν›ˆλ ¨ λŒ€μƒμ€ λ‹€μŒ λ¬Έμž₯ μ˜ˆμΈ‘μž…λ‹ˆλ‹€. λͺ¨λΈμ€ λ¬Έμž₯ Bκ°€ λ¬Έμž₯ A λ‹€μŒμ— μ˜€λŠ”μ§€ μ˜ˆμΈ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ¬Έμž₯ Bκ°€ λ‹€μŒ λ¬Έμž₯인 κ²½μš°μ™€ λ¬΄μž‘μœ„ λ¬Έμž₯인 경우 각각 50%의 ν™•λ₯ λ‘œ λ°œμƒν•©λ‹ˆλ‹€. λ‹€μŒ λ¬Έμž₯인지 μ•„λ‹Œμ§€μ— λŒ€ν•œ μ˜ˆμΈ‘μ€ 두 개의 클래슀(IsNext 및 NotNext)에 λŒ€ν•œ μ†Œν”„νŠΈλ§₯μŠ€κ°€ μžˆλŠ” 순방ν–₯ λ„€νŠΈμ›Œν¬λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€.

  3. μž…λ ₯ μž„λ² λ”©μ€ μ—¬λŸ¬ 인코더 λ ˆμ΄μ–΄λ₯Ό κ±°μ³μ„œ μ΅œμ’… 은닉 μƒνƒœλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

μ‚¬μ „ν›ˆλ ¨λœ λͺ¨λΈμ„ ν…μŠ€νŠΈ λΆ„λ₯˜μ— μ‚¬μš©ν•˜λ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ 상단에 μ‹œν€€μŠ€ λΆ„λ₯˜ ν—€λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. μ‹œν€€μŠ€ λΆ„λ₯˜ ν—€λ“œλŠ” μ΅œμ’… 은닉 μƒνƒœλ₯Ό λ°›λŠ” μ„ ν˜• λ ˆμ΄μ–΄μ΄λ©°, λ‘œμ§“μœΌλ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•΄ μ„ ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀은 λ‘œμ§“κ³Ό νƒ€κ²Ÿ 간에 κ³„μ‚°λ˜μ–΄ κ°€μž₯ κ°€λŠ₯성이 높은 λ ˆμ΄λΈ”μ„ μ°ΎμŠ΅λ‹ˆλ‹€.

ν…μŠ€νŠΈ λΆ„λ₯˜μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ ν…μŠ€νŠΈ λΆ„λ₯˜ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ DistilBERTλ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

토큰 λΆ„λ₯˜

개체λͺ… 인식(Named Entity Recognition, NER)κ³Ό 같은 토큰 λΆ„λ₯˜ μž‘μ—…μ— BERTλ₯Ό μ‚¬μš©ν•˜λ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ 상단에 토큰 λΆ„λ₯˜ ν—€λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. 토큰 λΆ„λ₯˜ ν—€λ“œλŠ” μ΅œμ’… 은닉 μƒνƒœλ₯Ό λ°›λŠ” μ„ ν˜• λ ˆμ΄μ–΄μ΄λ©°, λ‘œμ§“μœΌλ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•΄ μ„ ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀은 λ‘œμ§“κ³Ό 각 토큰 간에 κ³„μ‚°λ˜μ–΄ κ°€μž₯ κ°€λŠ₯성이 높은 λ ˆμ΄λΈ”μ„ μ°ΎμŠ΅λ‹ˆλ‹€.

토큰 λΆ„λ₯˜μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ 토큰 λΆ„λ₯˜ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ DistilBERTλ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

μ§ˆμ˜μ‘λ‹΅

μ§ˆμ˜μ‘λ‹΅μ— BERTλ₯Ό μ‚¬μš©ν•˜λ €λ©΄, κΈ°λ³Έ BERT λͺ¨λΈ μœ„μ— 슀팬(span) λΆ„λ₯˜ ν—€λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. 이 μ„ ν˜• λ ˆμ΄μ–΄λŠ” μ΅œμ’… 은닉 μƒνƒœλ₯Ό λ°›κ³ , 닡변에 λŒ€μ‘ν•˜λŠ” 슀팬의 μ‹œμž‘κ³Ό 끝 둜그λ₯Ό κ³„μ‚°ν•˜κΈ° μœ„ν•΄ μ„ ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀은 λ‘œμ§“κ³Ό 각 λ ˆμ΄λΈ” μœ„μΉ˜ 간에 κ³„μ‚°λ˜μ–΄ 닡변에 λŒ€μ‘ν•˜λŠ” κ°€μž₯ κ°€λŠ₯성이 높은 ν…μŠ€νŠΈμ˜ μŠ€νŒ¬μ„ μ°ΎμŠ΅λ‹ˆλ‹€.

μ§ˆμ˜μ‘λ‹΅μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ μ§ˆμ˜μ‘λ‹΅ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ DistilBERTλ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

πŸ’‘ μ‚¬μ „ν›ˆλ ¨λœ BERTλ₯Ό λ‹€μ–‘ν•œ μž‘μ—…μ— μ‚¬μš©ν•˜λŠ” 것이 μ–Όλ§ˆλ‚˜ μ‰¬μš΄μ§€ μ£Όλͺ©ν•˜μ„Έμš”. μ‚¬μ „ν›ˆλ ¨λœ λͺ¨λΈμ— νŠΉμ • ν—€λ“œλ₯Ό μΆ”κ°€ν•˜κΈ°λ§Œ ν•˜λ©΄ 은닉 μƒνƒœλ₯Ό μ›ν•˜λŠ” 좜λ ₯으둜 μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€!

ν…μŠ€νŠΈ 생성

GPT-2λŠ” λŒ€λŸ‰μ˜ ν…μŠ€νŠΈμ— λŒ€ν•΄ μ‚¬μ „ν›ˆλ ¨λœ λ””μ½”λ”© μ „μš© λͺ¨λΈμž…λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈλ₯Ό 주어지면 섀득λ ₯ μžˆλŠ” (항상 사싀은 μ•„λ‹ˆμ§€λ§Œ!) ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•˜κ³  λͺ…μ‹œμ μœΌλ‘œ ν›ˆλ ¨λ˜μ§€ μ•Šμ•˜μŒμ—λ„ λΆˆκ΅¬ν•˜κ³  μ§ˆμ˜μ‘λ‹΅κ³Ό 같은 λ‹€λ₯Έ NLP μž‘μ—…μ„ μ™„μˆ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. GPT-2λŠ” 단어λ₯Ό ν† ν°ν™”ν•˜κ³  토큰 μž„λ² λ”©μ„ μƒμ„±ν•˜κΈ° μœ„ν•΄ λ°”μ΄νŠΈ νŽ˜μ–΄ 인코딩(BPE, byte pair encoding)을 μ‚¬μš©ν•©λ‹ˆλ‹€. μœ„μΉ˜ 인코딩은 μ‹œν€€μŠ€μ—μ„œ 각 ν† ν°μ˜ μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ 토큰 μž„λ² λ”©μ— μΆ”κ°€λ©λ‹ˆλ‹€. μž…λ ₯ μž„λ² λ”©μ€ μ—¬λŸ¬ 디코더 블둝을 거쳐 일뢀 μ΅œμ’… 은닉 μƒνƒœλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€. 각 디코더 블둝 λ‚΄μ—μ„œ GPT-2λŠ” λ§ˆμŠ€ν¬λ“œ μ…€ν”„ μ–΄ν…μ…˜(masked self-attention) λ ˆμ΄μ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λŠ” GPT-2κ°€ 이후 토큰(future tokens)에 주의λ₯Ό 기울일 수 없도둝 ν•©λ‹ˆλ‹€. μ™Όμͺ½μ— μžˆλŠ” ν† ν°μ—λ§Œ 주의λ₯Ό 기울일 수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμŠ€ν¬λ“œ μ…€ν”„ μ–΄ν…μ…˜μ—μ„œλŠ” μ–΄ν…μ…˜ 마슀크λ₯Ό μ‚¬μš©ν•˜μ—¬ 이후 토큰에 λŒ€ν•œ 점수(score)λ₯Ό 0으둜 μ„€μ •ν•˜κΈ° λ•Œλ¬Έμ— BERT의 mask 토큰과 λ‹€λ¦…λ‹ˆλ‹€.

  2. λ””μ½”λ”μ˜ 좜λ ₯은 μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œμ— μ „λ‹¬λ˜λ©°, μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œλŠ” 은닉 μƒνƒœλ₯Ό λ‘œμ§“μœΌλ‘œ μ„ ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. λ ˆμ΄λΈ”μ€ μ‹œν€€μŠ€μ˜ λ‹€μŒ ν† ν°μœΌλ‘œ, λ‘œμ§“μ„ 였λ₯Έμͺ½μœΌλ‘œ ν•˜λ‚˜μ”© μ΄λ™ν•˜μ—¬ μƒμ„±λ©λ‹ˆλ‹€. ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀은 μ΄λ™λœ λ‘œμ§“κ³Ό λ ˆμ΄λΈ” 간에 κ³„μ‚°λ˜μ–΄ κ°€μž₯ κ°€λŠ₯성이 높은 λ‹€μŒ 토큰을 좜λ ₯ν•©λ‹ˆλ‹€.

GPT-2의 μ‚¬μ „ν›ˆλ ¨ λͺ©μ μ€ μ „μ μœΌλ‘œ 인과적 μ–Έμ–΄ λͺ¨λΈλ§μ— κΈ°λ°˜ν•˜μ—¬, μ‹œν€€μŠ€μ—μ„œ λ‹€μŒ 단어λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” GPT-2κ°€ ν…μŠ€νŠΈ 생성에 κ΄€λ ¨λœ μž‘μ—…μ— 특히 μš°μˆ˜ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

ν…μŠ€νŠΈ 생성에 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ 인과적 μ–Έμ–΄ λͺ¨λΈλ§ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ DistilGPT-2λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

ν…μŠ€νŠΈ 생성에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ ν…μŠ€νŠΈ 생성 μ „λž΅ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ„Έμš”!

μš”μ•½

BART 및 T5와 같은 인코더-디코더 λͺ¨λΈμ€ μš”μ•½ μž‘μ—…μ˜ μ‹œν€€μŠ€-투-μ‹œν€€μŠ€ νŒ¨ν„΄μ„ μœ„ν•΄ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œ BART의 μž‘λ™ 방법을 μ„€λͺ…ν•œ λ‹€μŒ, λ§ˆμ§€λ§‰μ— T5λ₯Ό λ―Έμ„Έ μ‘°μ •ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. BART의 인코더 μ•„ν‚€ν…μ²˜λŠ” BERT와 맀우 μœ μ‚¬ν•˜λ©° ν…μŠ€νŠΈμ˜ 토큰 및 μœ„μΉ˜ μž„λ² λ”©μ„ λ°›μŠ΅λ‹ˆλ‹€. BARTλŠ” μž…λ ₯을 λ³€ν˜•μ‹œν‚€κ³  λ””μ½”λ”λ‘œ μž¬κ΅¬μ„±ν•˜μ—¬ μ‚¬μ „ν›ˆλ ¨λ©λ‹ˆλ‹€. νŠΉμ • λ³€ν˜• 기법이 μžˆλŠ” λ‹€λ₯Έ μΈμ½”λ”μ™€λŠ” 달리, BARTλŠ” λͺ¨λ“  μœ ν˜•μ˜ λ³€ν˜•μ„ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ text infilling λ³€ν˜• 기법이 κ°€μž₯ 잘 μž‘λ™ν•©λ‹ˆλ‹€. Text Infilingμ—μ„œλŠ” μ—¬λŸ¬ ν…μŠ€νŠΈ μŠ€νŒ¬μ„ 단일 mask ν† ν°μœΌλ‘œ λŒ€μ²΄ν•©λ‹ˆλ‹€. μ΄λŠ” λͺ¨λΈμ΄ 마슀크된 토큰을 μ˜ˆμΈ‘ν•΄μ•Ό ν•˜κ³ , λͺ¨λΈμ— λˆ„λ½λœ ν† ν°μ˜ 수λ₯Ό μ˜ˆμΈ‘ν•˜λ„λ‘ κ°€λ₯΄μΉ˜κΈ° λ•Œλ¬Έμ— μ€‘μš”ν•©λ‹ˆλ‹€. μž…λ ₯ μž„λ² λ”©κ³Ό 마슀크된 슀팬이 인코더λ₯Ό 거쳐 μ΅œμ’… 은닉 μƒνƒœλ₯Ό 좜λ ₯ν•˜μ§€λ§Œ, BERT와 달리 BARTλŠ” λ§ˆμ§€λ§‰μ— 단어λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 순방ν–₯ λ„€νŠΈμ›Œν¬λ₯Ό μΆ”κ°€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  2. μΈμ½”λ”μ˜ 좜λ ₯은 λ””μ½”λ”λ‘œ μ „λ‹¬λ˜λ©°, λ””μ½”λ”λŠ” μΈμ½”λ”μ˜ 좜λ ₯μ—μ„œ 마슀크 토큰과 λ³€ν˜•λ˜μ§€ μ•Šμ€ 토큰을 μ˜ˆμΈ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” 디코더가 원본 ν…μŠ€νŠΈλ₯Ό λ³΅μ›ν•˜λŠ” 데 도움이 λ˜λŠ” 좔가적인 λ¬Έλ§₯을 얻도둝 ν•©λ‹ˆλ‹€. λ””μ½”λ”μ˜ 좜λ ₯은 μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œμ— μ „λ‹¬λ˜λ©°, μ–Έμ–΄ λͺ¨λΈλ§ ν—€λ“œλŠ” 은닉 μƒνƒœλ₯Ό λ‘œμ§“μœΌλ‘œ μ„ ν˜• λ³€ν™˜μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. ꡐ차 μ—”νŠΈλ‘œν”Ό 손싀은 λ‘œμ§“κ³Ό 토큰이 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™λœ λ ˆμ΄λΈ” 간에 κ³„μ‚°λ©λ‹ˆλ‹€.

μš”μ•½μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ μš”μ•½ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ T5λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

ν…μŠ€νŠΈ 생성에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ ν…μŠ€νŠΈ 생성 μ „λž΅ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ„Έμš”!

λ²ˆμ—­

λ²ˆμ—­μ€ μ‹œν€€μŠ€-투-μ‹œν€€μŠ€ μž‘μ—…μ˜ 또 λ‹€λ₯Έ 예둜, BART λ˜λŠ” T5와 같은 인코더-디코더 λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ„Ήμ…˜μ—μ„œ BART의 μž‘λ™ 방법을 μ„€λͺ…ν•œ λ‹€μŒ, λ§ˆμ§€λ§‰μ— T5λ₯Ό λ―Έμ„Έ μ‘°μ •ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

BARTλŠ” μ›μ²œ μ–Έμ–΄λ₯Ό νƒ€κ²Ÿ μ–Έμ–΄λ‘œ λ””μ½”λ”©ν•  수 μžˆλŠ” μž…λ ₯에 λ§€ν•‘ν•˜κΈ° μœ„ν•΄ λ¬΄μž‘μœ„λ‘œ μ΄ˆκΈ°ν™”λœ λ³„λ„μ˜ 인코더λ₯Ό μΆ”κ°€ν•˜μ—¬ λ²ˆμ—­μ— μ μš©ν•©λ‹ˆλ‹€. 이 μƒˆλ‘œμš΄ μΈμ½”λ”μ˜ μž„λ² λ”©μ€ 원본 단어 μž„λ² λ”© λŒ€μ‹  μ‚¬μ „ν›ˆλ ¨λœ μΈμ½”λ”λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€. μ›μ²œ μΈμ½”λ”λŠ” λͺ¨λΈ 좜λ ₯의 ꡐ차 μ—”νŠΈλ‘œν”Ό μ†μ‹€λ‘œλΆ€ν„° μ›μ²œ 인코더, μœ„μΉ˜ μž„λ² λ”©, μž…λ ₯ μž„λ² λ”©μ„ κ°±μ‹ ν•˜μ—¬ ν›ˆλ ¨λ©λ‹ˆλ‹€. 첫 번째 λ‹¨κ³„μ—μ„œλŠ” λͺ¨λΈ νŒŒλΌλ―Έν„°κ°€ κ³ μ •λ˜κ³ , 두 번째 λ‹¨κ³„μ—μ„œλŠ” λͺ¨λ“  λͺ¨λΈ νŒŒλΌλ―Έν„°κ°€ ν•¨κ»˜ ν›ˆλ ¨λ©λ‹ˆλ‹€.

BARTλŠ” 이후 λ²ˆμ—­μ„ μœ„ν•΄ λ‹€μ–‘ν•œ μ–Έμ–΄λ‘œ μ‚¬μ „ν›ˆλ ¨λœ λ‹€κ΅­μ–΄ λ²„μ „μ˜ mBART둜 ν™•μž₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ²ˆμ—­μ— 직접 도전할 μ€€λΉ„κ°€ λ˜μ…¨λ‚˜μš”? μ™„μ „ν•œ λ²ˆμ—­ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ—¬ T5λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜κ³  좔둠에 μ‚¬μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•˜μ„Έμš”!

ν…μŠ€νŠΈ 생성에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ ν…μŠ€νŠΈ 생성 μ „λž΅ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ„Έμš”!