PaddlePaddle'a Dayalı Makine Çevirisi Eğitimi | Derin Öğrenme Temel Görev Serisi

Bu makale PaddlePaddle'dan yeniden üretilmiştir

Qubit Düzenleyici | Genel Hesap QbitAI

Makine çevirisi (MT), farklı diller arasında çeviri yapmak için bilgisayarları kullanan bir teknolojidir. Çevrilecek dil genellikle kaynak dil olarak adlandırılır ve sonuçta ortaya çıkan çeviri dili hedef dil olarak adlandırılır. Makine çevirisi, kaynak dilden hedef dile dönüşümün gerçekleştirilmesi sürecidir ve doğal dil işlemenin önemli araştırma alanlarından biridir.

Bu makale, klasik uçtan uca sinir ağı makine çevirisi Seq2Seq modelini ve eğitim için PaddlePaddle'ı nasıl kullanacağınızı anlamanıza yardımcı olacaktır. Daha iyi bir çeviri modeli uygulamak istiyorsanız, lütfen GitHub model kitaplığındaki Transformer uygulamasına bakın.

Seq2Seq proje adresi: https://github.com/PaddlePaddle/book/blob/develop/08.machine_translation/README.cn.md

Transformatör proje adresi: https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/neural_machine_translation/transformer

Arka plan tanıtımı

İlk makine çevirisi sistemleri çoğunlukla kural tabanlı çeviri sistemleriydi ve dilbilimcilerin iki dil arasındaki dönüştürme kurallarını yazmaları ve ardından bu kuralları bilgisayara girmeleri gerekiyordu. Bu yöntem dilbilimciler için çok zahmetlidir ve iki veya daha fazla dili bırakın, bir dilin kullanacağı tüm kuralları neredeyse hiç özetleyemeyiz. Böylece istatistiksel makine çevirisi (İstatistiksel Makine Çevirisi, SMT) teknolojisi ortaya çıktı.

İstatistiksel makine çevirisi teknolojisinde, dönüşüm kuralları bizim tarafımızdan sağlanmak yerine otomatik olarak makine tarafından büyük ölçekli külliyattan öğrenilir. Bu nedenle, kural tabanlı çeviri sistemlerinin karşılaştığı bilgi edinme darboğazı sorununun üstesinden gelir, ancak yine de birçok zorluk vardır:

  • Birçok özellik yapay olarak tasarlanmıştır, ancak hiçbir zaman tüm dil olaylarını kapsayamazlar;
  • Global özellikleri kullanmak zor;
  • Kelime hizalama, kelime segmentasyonu veya simgeselleştirme, kural çıkarma ve sözdizimsel analiz gibi birçok ön işleme adımına dayanır.Her adımdaki hatalar kademeli olarak birikecek ve çeviri üzerindeki etkisi de daha büyük hale gelecektir.
  • Son yıllarda, derin öğrenme teknolojisinin gelişimi, yukarıdaki zorlukları çözmek için yeni fikirler sağlamıştır. Derin öğrenmeyi makine çevirisi görevlerine uygulama yöntemleri kabaca iki kategoriye ayrılabilir:

  • İstatistiksel makine çeviri sistemi hala çerçeve olarak kullanılmaktadır, ancak sinir ağı dil modeli, sıralama modeli vb. Gibi anahtar modülleri iyileştirmek için kullanılmaktadır (Şekil 1'in sol yarısına bakınız);
  • İstatistiksel makine çeviri sistemi artık çerçeve olarak kullanılmamaktadır, ancak kaynak dili doğrudan hedef dile, yani Uçtan Uca Nöral Makine Çevirisi (Uçtan Uca Nöral Makine Çevirisi, Uçtan Uca NMT) ile doğrudan eşlemek için bir sinir ağı kullanılır ( NMT modeli olarak anılan (Şekil 1'in sağ yarısına bakın). Klasik modelin gerçekleştirilmesi, herkesin makine çevirisini daha iyi anlamasına yardımcı olabilir.
  • Şekil 1: Sinir ağına dayalı makine çeviri sistemi
  • Sonuçları göster

    Örnek olarak Çince-İngilizce çeviri (Çince'den İngilizceye) modelini ele alalım. Model eğitildiğinde, aşağıdaki parçalı Çince cümleyi girerseniz:

    Görüntülenen çeviri sonuçlarının sayısı 3 olarak ayarlanmışsa, oluşturulan İngilizce cümleler aşağıdaki gibidir:

    Soldan ilk sütun, oluşturulan cümlenin sıra numarasıdır; soldan ikinci sütun cümlenin puanıdır (büyükten küçüğe), puan ne kadar yüksekse o kadar iyidir; soldan üçüncü sütun, oluşturulan İngilizce cümledir.

    Ayrıca iki özel işaret vardır: cümlenin sonu anlamına gelir, bilinmeyen kelime, yani eğitim sözlüğünde görünmeyen kelime anlamına gelir.

    Modele genel bakış

    Bu bölüm Çift Yönlü Tekrarlayan Sinir Ağını, NMT modelindeki tipik Kodlayıcı-Kod Çözücü çerçevesini ve sırayla ışın arama algoritmasını tanıtır.

    Çift yönlü tekrarlayan sinir ağı

    Burada gazetede Bengio ekibi tarafından önerilen başka bir yapıyı tanıtıyoruz. Bu yapının amacı, bir diziyi girmek ve her an onun karakteristik gösterimini elde etmektir, yani her çıktı anı, o ana kadar bağlamsal anlamsal bilgiyi temsil etmek için sabit uzunlukta bir vektör kullanır.

    Spesifik olarak, iki yönlü tekrarlayan sinir ağı, giriş sırasını zaman boyutunda sırayla ve ters sırada, yani sırasıyla ileri ve geri işler ve her zaman adımında RNN'nin çıktısını sonuncuya ekler. Çıktı katmanı. Bu şekilde, her zaman adımının çıkış düğümü, giriş dizisindeki geçerli anın tam geçmiş ve gelecek bağlam bilgisini içerir. Aşağıdaki şekil, zaman adımlarında açılan çift yönlü bir döngüsel sinir ağını göstermektedir. Ağ, altı ağırlık matrisine sahip bir ileri ve bir geri RNN içerir: ileri gizli katmana giriş ve geri gizli katman ağırlık matrisi (W1, W3), gizli katman kendi ağırlık matrisine gizli katman (W2 , W5), ileri gizli katmandan ve geriye gizli katmandan çıktı katmanına (W4, W6) ağırlık matrisi. Ağın ileri gizli katmanı ile geriye dönük gizli katmanı arasında bağlantı olmadığını unutmayın.

    Şekil 2: Zaman adımlarında ortaya çıkan çift yönlü tekrarlayan sinir ağı

    Kodlayıcı-kod çözücü çerçevesi

    Kodlayıcı-Kod Çözücü çerçevesi, gelişigüzel uzunluktaki bir kaynak dizinin rasgele uzunluktaki başka bir hedef diziye dönüştürülmesi sorununu çözmek için kullanılır. Yani, kodlama aşaması, tüm kaynak dizisini bir vektöre kodlar ve kod çözme aşaması, tahmin edilen dizinin olasılığını maksimize ederek tüm hedef dizinin kodunu çözer. Kodlama ve kod çözme işlemleri genellikle RNN kullanılarak gerçekleştirilir.

    Şekil 3: Kodlayıcı-kod çözücü çerçevesi

    Kodlayıcı

    Kodlama aşaması üç adıma bölünmüştür:

  • Tek sıcak vektör şu anlama gelir: kaynak dil cümlesindeki her xi kelimesini x = {x1, x2, ..., xt} bir sütun vektörü olarak ifade edin
  • , I = 1,2, ..., T. Bu Wi vektörünün boyutu kelime boyutu | V | ile aynıdır ve yalnızca bir boyut 1 değerine sahiptir (bu konum, kelimenin kelime haznesindeki konumuna karşılık gelir) ve geri kalanı 0'dır.
  • Düşük boyutlu semantik uzaya eşlenen kelime vektörü: tek sıcak vektör iki problem olduğunu gösterir.1) Oluşturulan vektörün büyük bir boyutu vardır, bu da boyutsal felakete neden olabilir; 2) Kelimeler arasındaki ilişkiyi (anlambilim gibi) tanımlamak zordur. Benzerlik, yani anlambilimin iyi ifade edilememesi). Bu nedenle, tek sıcak vektörün, sabit bir boyutun yoğun bir vektörü (kelime vektörü olarak adlandırılır) ile temsil edilen düşük boyutlu bir anlamsal alana eşlenmesi gerekir. Eşleme matrisi olsun
  • , kullan
  • İ-inci kelimenin kelime vektörünü temsil eder ve K vektör boyutudur.
  • Kaynak dil kelime dizisini kodlamak için RNN kullanın: bu işlem için hesaplama formülü
  • , Burada h0, tüm sıfırların bir vektörü, linear doğrusal olmayan bir aktivasyon fonksiyonudur ve son h = {h1, ..., hT}, sırayla RNN tarafından kaynak dile okunan T kelimelerinin durum kodu dizisidir. Tüm cümlenin vektör temsili, son T adımındaki h durumu ile veya zaman boyutunda havuzlamanın sonucu olarak kodlanabilir.
  • Üçüncü adımda, iki yönlü tekrarlayan sinir ağı, iki yönlü GRU'larla uygulanabilen daha karmaşık cümle kodlama temsillerini uygulamak için de kullanılabilir. İleri GRU, kaynak dil son kelimelerini kelime dizisi sırasına göre (x1, ..., xT) kodlar ve bir dizi gizli katman durumu elde eder

    . Benzer şekilde, geriye dönük GRU, kaynak dil son sözcüklerini (xT, ..., x1) sırasına göre kodlar.

    . Son olarak, xi kelimesi için gizli durumu, iki GRU'nun sonuçlarının birleştirilmesiyle elde edilir, yani hi =

    .

    Şekil 4: Çift yönlü GRU kullanan kodlayıcı

    kod çözücü

    Makine çevirisi görevinin eğitim sürecinde, kod çözme aşamasının amacı, bir sonraki doğru hedef dil kelimesinin olasılığını en üst düzeye çıkarmaktır. Fikir şudur:

    Her an, kaynak dil cümlesinin kodlama bilgisine (bağlam vektörü olarak da adlandırılır) c, gerçek hedef dil dizisinin i-inci kelime ui'sine ve i zamanında RNN'nin gizli katman durumu zi'ye göre, bir sonraki gizli katman durumu zi hesaplanır. +1. Aşağıdaki şekilde hesaplanmıştır:

    'doğrusal olmayan bir etkinleştirme işlevi olduğunda; c, kaynak dil cümlesinin bağlam vektörüdür. Dikkat mekanizması kullanılmadığında, kodlayıcının çıktısı kaynak dil cümlesini kodladıktan sonra son öğe ise, c = ht tanımlanabilir ; Ui, hedef dil dizisindeki i-inci kelimedir, u0, hedef dil dizisinin başlangıç etiketidir < s > , Kod çözmenin başlangıcını belirtir; zi, i zamanında kodu çözülen RNN'nin gizli durumudur ve z0, tümü sıfırların bir vektörüdür.

  • Hedef dil dizisinin i + 1'inci kelimesinin olasılık dağılımını pi + 1 elde etmek için zi + 1'i softmax ile normalize edin. Olasılık dağılımı formülü aşağıdaki gibidir:
  • Bunlar arasında, WsZi + 1 + bz olası her çıktı sözcüğünü puanlamak ve ardından i + 1'inci sözcüğün pi + 1 olasılığını elde etmek için softmax ile normalize etmektir.
  • Pi + 1 ve ui + 1'e göre maliyeti hesaplayın.
  • Hedef dil dizisindeki tüm kelimeler işlenene kadar 1 ~ 2 adımlarını tekrarlayın.
  • Makine çevirisi görevinin oluşturma süreci, genel olarak, kaynak dil cümlesini önceden eğitilmiş modele göre çevirmektir. Oluşturma sürecindeki kod çözme aşaması, yukarıdaki eğitim sürecinden farklıdır.Ayrıntılar için lütfen sütun arama algoritmasına bakın.

    Çubuk arama algoritması

    Işın arama, bir grafik veya ağaçta sınırlı bir kümede optimum genişletme düğümünü aramak için kullanılan sezgisel bir grafik arama algoritmasıdır. Genellikle çok büyük çözüm alanlarına (makine çevirisi, konuşma tanıma gibi) sahip sistemlerde kullanılır. Bunun nedeni, belleğin aşağıdaki şekil veya ağaçtaki tüm genişletilmiş çözümleri tutamamasıdır. Bir makine çevirisi görevinde çeviri yapmak istiyorsanız " < s > selam < e > ", hedef dil sözlüğünde yalnızca 3 kelime olsa bile ( < s > , < e > , merhaba), sonsuz cümle oluşturmak da mümkündür (merhaba döngülerinin sayısı değişkendir) Daha iyi bir çeviri sonucu bulmak için sütun arama algoritmasını kullanabiliriz.

    Sütun arama algoritması, bir arama ağacı oluşturmak için genişlikte bir strateji kullanır.Ağacın her seviyesinde, düğümler sezgisel maliyete (bu eğiticide, oluşturulan kelimelerin günlük olasılıklarının toplamı) ve ardından yalnızca önceden belirlenmiş Düğüm sayısı (literatürde genellikle kiriş genişliği, kiriş boyutu, sütun genişliği vb. Olarak adlandırılır). Sadece bu düğümler bir sonraki katmanda genişlemeye devam edecek ve diğer düğümler budanacak, yani daha yüksek kaliteli düğümler korunacak ve düşük kaliteli düğümler budanacak. Bu nedenle, aramanın kapladığı alan ve zaman büyük ölçüde azalır, ancak dezavantaj, optimum çözümün garanti edilememesidir.

    Sütun arama algoritmasının kod çözme aşamasını kullanarak, amaç bir dizi oluşturma olasılığını en üst düzeye çıkarmaktır. Fikir şudur:

  • Her an, kaynak dil cümlesinin kodlama bilgisine cc, üretilen ii. Hedef dil dizisi kelimesi ui'ye ve i zamanında RNN'nin gizli katman durumu zi'ye göre, bir sonraki gizli katman durumu zi + 1 hesaplanır.
  • Hedef dil dizisinin i + 1'inci kelimesinin olasılık dağılımını pi + 1 elde etmek için zi + 1'i softmax ile normalize edin.
  • Ui + 1 kelimesi pi + 1'e göre örneklenmiştir.
  • Cümlenin sonu etiketini alana kadar 1 ~ 3 arasındaki adımları tekrarlayın < e > Veya maksimum cümle uzunluğu aşılana kadar.
  • Not: zi + 1 ve pi + 1'in hesaplama formülleri, kod çözücüdekilerle aynıdır. Ve neslin her adımı açgözlü yöntemle gerçekleştirildiğinden, küresel olarak en uygun çözümü elde etmek garanti edilmez.

    Veri girişi

    Bu öğretici, eğitim seti olarak WMT-14 veri setindeki biteksleri (seçildikten sonra) ve test seti ve üretim seti olarak dev + test verilerini kullanır.

    Veri ön işleme

    Ön işlem sürecimiz iki adımdan oluşur:

    Her paralel topluluk dosyasını kaynak dilden hedef dile tek bir dosyada birleştirin:

    Her bir XXX.src ve XXX.trg dosyasını XXX olarak birleştirin.

    XXX'deki i'inci satırın içeriği, XXX.src'deki i'inci satır ile XXX.trg'deki i'inci satır arasındaki, '' ile ayrılmış bağlantıdır.

    Eğitim verilerinin "kaynak sözlüğünü" ve "hedef sözlüğünü" oluşturun. Her sözlüğün DICTSIZE kelimeleri vardır, bunlara şunlar dahildir: korpustaki en yüksek kelime sıklığına (DICTSIZE-3) sahip kelimeler ve 3 özel sembol < s > (Sıranın başlangıcı), < e > (Sıranın sonu) ve < unk > (Kayıtsız kelime).

    Örnek veri

    Tam veri seti büyük miktarda veriye sahip olduğundan, eğitim sürecini doğrulamak için PaddlePaddle arabirimi paddle.dataset.wmt14 varsayılan olarak önceden işlenmiş, daha küçük ölçekli bir veri kümesi sağlar.

    Veri setinde 193.319 eğitim verisi, 6003 test verisi ve sözlük uzunluğu 30.000'dir. Veri boyutunun sınırlandırılması nedeniyle, bu veri seti kullanılarak eğitilen modelin etkisi garanti edilemez.

    Model yapılandırma talimatları

    Daha sonra modeli giriş verilerinin şekline göre yapılandırmaya başlarız. Önce gerekli kütüphane işlevlerini tanıtın ve genel değişkenleri tanımlayın.

    Ardından kodlayıcı çerçevesini aşağıdaki gibi uygulayın:

    Ardından kod çözücüyü eğitim modunda uygulayın:

    Kod çözücüyü spekülatif modda uygulayın:

    Ayrıca, inference_program ile hesaplanan sonucu kullanmak için bir train_program tanımlıyoruz ve etiketli veriler yardımıyla hatayı hesaplıyoruz. Ayrıca optimize ediciyi tanımlamak için bir optimizer_func tanımlarız.

    Eğitim modeli

    Eğitim ortamını tanımlayın

    Eğitim ortamınızı tanımlayın, eğitimin CPU'da mı yoksa GPU'da mı yapılacağını belirtebilirsiniz.

    Veri sağlayıcıyı tanımlayın

    Sonraki adım, eğitim ve test için veri sağlayıcıları tanımlamaktır. Sağlayıcı BATCH_SIZE verisini okur. paddle.dataset.wmt.train, her seferinde karıştırıldıktan sonra BATCH_SIZE veri boyutu sağlar ve karıştırma boyutu buf_size arabellek boyutudur.

    Bir eğitmen oluşturun (eğitmen)

    Eğitmenin bir eğitim programına ve eğitim optimizasyon işlevine ihtiyacı vardır.

    veri sağlamak

    feed_order, üretilen her veri parçası ile paddle.layer.data arasındaki eşleme ilişkisini tanımlamak için kullanılır. Örneğin, wmt14.train tarafından oluşturulan ilk veri sütunu src_word_id özelliğine karşılık gelir.

    Olay işleyicisi

    Geri çağırma işlevi event_handler önceden tanımlanmış bir olay meydana geldikten sonra çağrılacaktır. Örneğin, her eğitim adımından sonra hatayı kontrol edebiliriz.

    Antrenmana başla

    Son olarak, eğitim döngülerinin sayısını (num_epoch) ve diğer bazı parametreleri aktarıyoruz ve eğitime başlamak için trainer.train'i çağırıyoruz.

    Uygulama modeli

    Kod çözme bölümünü tanımlayın

    Çeviriden sonra karşılık gelen kimliği ve puanı tahmin etmek için yukarıda tanımlanan kodlayıcı ve kod çözücü işlevlerini kullanın.

    Verileri tanımlayın

    İlk olarak, giriş verisi olarak tensörleri oluşturmak için id ve skoru başlatıyoruz. Bu tahmin örneğinde, bir tahmin yapmak için wmt14.test verilerindeki ilk kaydı kullanıyoruz ve son olarak da karşılık gelen cümle sonuçlarını yazdırmak için "kaynak sözlüğü" ve "hedef sözlüğü" kullanıyoruz.

    Ölçek

    Şimdi tahminlerde bulunabiliriz. İd ve skor sonuçlarını almak için feed_order içinde karşılık gelen parametreleri sağlamamız ve yürütücü üzerinde çalıştırmamız gerekir.

    sonuç olarak

    Uçtan uca sinir ağı makine çevirisi, son yıllarda ortaya çıkan yepyeni bir makine çevirisi yöntemidir. Bu makalede, NMT'de tipik bir "kodlayıcı-kod çözücü" çerçevesi tanıttık. NMT tipik bir Seq2Seq (Sıradan Sıraya) öğrenme problemi olduğundan, Sorgu yeniden yazma, özetleme, tek turlu diyalog ve Seq2Seq'teki diğer problemlerin tümü bu öğreticinin modeliyle çözülebilir.

    Referanslar

  • Koehn P. İstatistiksel makine çevirisi. Cambridge University Press, 2009.
  • Cho K, Van Merriënboer B, Gulcehre C, ve diğerleri.İstatistiksel makine çevirisi için RNN kodlayıcı-kod çözücüyü kullanarak ifade temsillerini öğrenmek // Doğal Dil İşlemede Ampirik Yöntemler (EMNLP) 2014 Konferansı Bildirileri, 2014: 1724-1734.
  • Chung J, Gulcehre C, Cho K H, et al.Sekans modellemede kapılı tekrarlayan sinir ağlarının ampirik değerlendirmesi. ArXiv preprint arXiv: 1412.3555, 2014.
  • Bahdanau D, Cho K, Bengio Y. Hizalama ve tercüme etmeyi birlikte öğrenerek nöral makine çevirisi // ICLR 2015, 2015 Bildirileri.
  • Papineni K, Roukos S, Ward T, ve diğerleri BLEU: makine çevirisinin otomatik olarak değerlendirilmesi için bir yöntem // Hesaplamalı dilbilim için ilişki üzerine 40. yıllık toplantının bildirileri. Hesaplamalı Dilbilim Derneği, 2002: 311-318.
  • - Bitiş -

    Samimi işe alım

    Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! Ayrıntılar için, lütfen QbitAI diyalog arayüzünde "işe alım" kelimesiyle yanıt verin.

    Qubit QbitAI · Toutiao İmzalama Yazarı

    ' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin

    King of Glory: 300 mor yıldız parasına ücretsiz karaciğer, hangi yıldız değiştirilmeli? Akıllı insanlar onu seçer
    önceki
    Zhuzhou Koleji Giriş Sınavında "On Kişi" Arkadaşların Anlarını Uzatıyor
    Sonraki
    TVB, çekimlerden sonra, üçüncü üçün rolünü oynamak için görevlendirildiğini hatırladı: Çok travma geçirdim
    Haftanın Steam etkinliği: üç krallığın en pahalı rakibi, listenin en pahalı RPG'si
    Eski TVB Xiaosheng, önümüzdeki hafta bir anakara filmi çekiyor ve netizenler tarafından cidden kutsanıyor
    Google, stopaj itirafını Huawei'ye "geri verdi": İhtiyati tedbirden muafiyet için lobi yaptığı ortaya çıktı
    King of Glory: On dakikadan fazla bir süre kazanamazsanız kaybedersiniz! Bu kahramanlar, onurlandırılmazlarsa onlara dokunmayın
    Zhangjiajie: Dragon Boat Festivalinin Keyfini Çıkarın, Mutlu Sürüklenmeler
    Hisse senetleri "zamanlamayı seçmek, bireysel hisse senetlerini seçmekten daha önemlidir"
    "Biyokimya 2: Yeniden Yapım" Kral Ada, Lyon Cos'un yarık kırmızı elbisesi son derece büyüleyici
    Waymo insansız kamyon, otoyolların ve ana yolların yol testlerine odaklanarak yüksek profilli Phoenix'e geri dönüyor, ilk fırsat kaybedildi
    A hisseleri için son umut! Nadir toprak kalıcı mıknatıs stokları nasıl seçilir?
    King of Glory: Oyuncu tek bir sırada puan almak için kızı reddetti, ancak bahane çok açık.
    PlayerUnknown's Battlegrounds'ın ada haritasının yeniden yapımı PC test sunucusunda olacak, yeni araçlar piyasaya sürülecek
    To Top