Encoder-Decoder (Kodlayıcı-Çözücü)

Girdiyi sıkıştırılmış bir ara temsile dönüştüren (encoder) ve bu temsilden hedef çıktıyı üreten (decoder) iki bileşenli sinir ağı mimarisi.

Encoder-decoder (kodlayıcı-çözücü), bir girdi dizisini veya veriyi sıkıştırılmış bir ara temsile dönüştüren (kodlama) ve ardından bu temsilden hedef çıktıyı yeniden üreten (çözme) iki bileşenli bir sinir ağı mimarisidir. Dizi-diziye (seq2seq) dönüşüm gerektiren görevlerde temel yapı taşı olan bu mimari, makine çevirisi, metin özetleme, konuşma tanıma ve görüntü açıklama gibi alanlarda geniş uygulama bulur. Encoder bileşeni, girdi dizisinin her öğesini işleyerek sabit boyutlu bir bağlam vektörü (context vector) veya dikkat ağırlıklı gizli durum kümesi üretir. RNN tabanlı encoder'larda bu çıktı son gizli durumdur; Transformer tabanlı mimarilerde ise her girdi tokenına karşılık gelen gizli durum vektörlerinin tamamı decoder'a aktarılır. Encoder, girdiyi sıkıştırırken semantik bilgiyi korumayı ve ilgisiz gürültüyü bastırmayı öğrenir. Decoder bileşeni, encoder çıktısını alarak hedef dizinin her adımını otoregresif biçimde üretir: bir önceki adımda üretilen token, sonraki token olasılığını hesaplamak için tekrar girdi olarak kullanılır. Eğitim sırasında "teacher forcing" yöntemiyle gerçek hedef tokenlar girdi olarak verilir; çıkarım (inference) aşamasında ise modelin kendi ürettiği tokenlar beslenir. Bu fark, "exposure bias" olarak adlandırılan ve beam search ile scheduled sampling yöntemleriyle azaltılmaya çalışılan bir eğitim-çıkarım uyumsuzluğuna yol açar. Dikkat mekanizması (attention mechanism) bu mimarinin kritik bir uzantısıdır. 2015 yılında Bahdanau ve ark. tarafından önerilen dikkat, decoder'ın her adımda encoder'ın farklı konumlarına farklı ağırlıklar atayarak odaklanmasını sağlar; bu sayede uzun dizilerdeki bilgi darboğazı önemli ölçüde azalır. Modern Transformer mimarisindeki çok başlı dikkat (multi-head attention), bu fikrin paralel ve güçlendirilmiş halidir; farklı temsil alt uzaylarında eş zamanlı dikkat hesaplanır. Günümüz büyük dil modellerinde BERT saf encoder, GPT ailesi saf decoder, T5 ve BART ise encoder-decoder modellerine örnektir. Görüntü işlemede U-Net, encoder-decoder prensibini piksel düzeyinde segmentasyon için atlama bağlantıları (skip connections) ile kullanır. Whisper (OpenAI) ise ses encoder ve metin decoder birleştirerek konuşma tanıma görevini büyük ölçekli eğitimle çözer.

Encoder ve Decoder Nasıl Çalışır?

Encoder, girdi dizisinin her öğesini sırayla işleyerek sabit boyutlu bir bağlam vektörü üretir. RNN tabanlı encoder'larda bu bağlam son gizli durumdur; Transformer tabanlı mimarilerde ise tüm girdi pozisyonlarına ait gizli durum vektörleri decoder'a aktarılır. Decoder ise bu temsili alarak çıktı dizisini otoregresif biçimde üretir: bir önceki adımda üretilen token, bir sonraki token olasılığını hesaplamak için tekrar girdi olarak beslenir.

Dikkat Mekanizmasının Rolü

Saf encoder-decoder mimarisinde uzun dizilerde bağlam vektörü bilgi darboğazı oluşturur. 2015 yılında Bahdanau ve ark. tarafından önerilen dikkat mekanizması, decoder'ın her adımda encoder'ın farklı konumlarına farklı ağırlıklar atayarak odaklanmasına olanak tanır. Bu sayede model hangi girdi tokenına ne ölçüde dikkat etmesi gerektiğini öğrenir. Transformer mimarisindeki çok başlı dikkat (multi-head attention) bu fikrin paralel ve güçlendirilmiş halidir: farklı temsil alt uzaylarında eş zamanlı dikkat hesaplanır.

Encoder-Decoder Modelleri

  • check_circle T5 (Google): Her NLP görevini metin → metin dönüşümü olarak çerçeveler; çeviri, özetleme, soru yanıtlama için aynı model kullanılır.
  • check_circle BART (Meta): Bozulmuş metin gürültüsünü gidermek için eğitilmiş encoder-decoder; özetleme ve metin üretiminde güçlü performans gösterir.
  • check_circle Whisper (OpenAI): Ses encoder + metin decoder; konuşma tanıma için büyük ölçekli eğitim yapılmıştır.
  • check_circle U-Net: Görüntü segmentasyonu için encoder-decoder; atlama bağlantıları (skip connections) yerel detayları korur.

Uygulama Alanları

  • check_circle Makine Çevirisi: Kaynak dil encoder'a, hedef dil decoder'a verilir; dikkat hangi kaynak kelimeye odaklanılacağını belirler.
  • check_circle Metin Özetleme: Uzun belge encoder'a verilir; decoder kısa özet üretir (abstractive summarization).
  • check_circle Konuşma Tanıma: Ses encoder akustik özellikleri kodlar; decoder fonem/kelime dizisi üretir.
  • check_circle Görüntü Açıklama: CNN encoder görüntü özelliklerini çıkarır; metin decoder açıklama cümlesi oluşturur.
  • check_circle Kod Üretimi: Doğal dil açıklama encoder'a, hedef kod decoder'a verilir (örn. Codex benzeri modeller).

Teacher Forcing ve Çıkarım

Eğitim sırasında teacher forcing kullanılır: decoder her adımda modelin önceki çıktısı yerine gerçek (ground-truth) hedef tokenı girdi olarak alır. Bu, eğitimi hızlandırır ve gradyanların daha kararlı akmasını sağlar; ancak çıkarım sırasında model kendi hatalarını gördüğünden 'exposure bias' adı verilen bir uyumsuzluk ortaya çıkabilir. Scheduled sampling ve beam search bu sorunu kısmen azaltmak için kullanılan tekniklerdir.

Sık Sorulan Sorular

  • check_circle Encoder-decoder ile sadece-decoder modeller arasındaki fark nedir? Sadece-decoder modeller (GPT) öz-dikkat ile otoregresif metin üretir; encoder-decoder modeller (T5) ayrı bir encoder bileşeni üzerinden farklı modalite/dil/göreve özel kodlama yapar.
  • check_circle Dikkat mekanizması olmadan encoder-decoder çalışır mı? Çalışır; ancak uzun dizilerde performans düşer. Sabit boyutlu bağlam vektörü tüm girdi bilgisini sıkıştırmakta yetersiz kalır.
  • check_circle U-Net neden encoder-decoder kategorisine girer? Piksel düzeyinde segmentasyon için görüntüyü küçülten (encoder) ve yeniden büyüten (decoder) simetrik yol; atlama bağlantıları yerel detayları korur.
  • check_circle Seq2seq modeli ile encoder-decoder aynı şey mi? Seq2seq, encoder-decoder mimarisinin dizi dönüşüm görevlerindeki adıdır; kavram özdeştir. Encoder-decoder terimi daha genel olup görüntü, ses, metin dışı modaliteleri de kapsar.