Transformer'in yeni sinir ağının makine çevirisinde uygulanması | milyonlarca insan yapay zekayı öğreniyor

Dingdong ~ Refah tarafından vuruldun! Şu andan itibaren, "2020 AI Developer Ten Thousands Conference" için 299 bilet ücretsiz olarak verilecek! Kayıt sayfasına girin [2020 AI Geliştirici On Bin Kişi Konferansı (Çevrimiçi Canlı Biletler) -IT Eğitimi Canlı-CSDN Akademisi], "Şimdi kaydolun" u tıklayın, ödeme sırasında "AIP1410" indirim kodunu kullanın ve fiyat "0" yuan olacaktır ! Kangman Beibi

Yu Heng: Merhaba, stüdyodaki arkadaşlar! AI Teknoloji Ana Kampının bu açık sınıfına herkese hoş geldiniz, bu sefer öğretim görevlisi Yu Heng benim.

Dersten önce kısaca kendimi tanıtacağım.Çin Bilimler Akademisi Bilgisayar Teknolojisi Enstitüsü'nden doktora derecesi ile mezun oldum. Makine çevirisi yönündeyim. Şu anda Alibaba çeviri platformunda, özellikle Alibaba için çeviri modeli grubunun başındayım. Sınır ötesi e-ticaret ticareti zengin dil desteği sağlar, böylece sınır ötesi ticaretin dil engelleri kalmaz.

Bugün, CSDN AI Technology Base Camp tarafından araştırmalarımı ve makine çevirisi çalışmalarımı paylaşmak üzere davet edilmekten çok memnunum. PPT'min altındaki logoları görebilirsiniz.Tercüme ekibimiz Alibaba Makine Zekası Teknoloji Laboratuvarı'na aittir. Ortada Ali tarafından çevrilen logo ve "Çevir ve Ötesi" sloganımız var.

Bu paylaşımın konusu "Transformer'in Yeni Sinir Ağının Makine Çevirisinde Uygulaması" dır.

Yapay zeka ile ilgilenen öğrenciler, son zamanlarda makine çevirisinin nispeten aktif bir alan olduğunu görmeli ve birçok büyük şirket, çeviri kalemleri gibi piyasaya sürülen bazı makine çeviri donanımları da dahil olmak üzere kendi makine çeviri hizmetlerini başlatmak için acele etti.

Endüstrinin refahı, arkasındaki teknolojinin muazzam ilerlemesinden ayrılamaz. Bugünün kursundan itibaren arkasındaki teknolojinin gizemini tanıtacağım ve ardından Transformer'in sinir ağının derinlemesine bir analizini yapacağım.

Sinir ağı makine çevirisi, mevcut ana makine çevirisi yöntemidir ve uçtan uca bir çeviri çerçevesi olan "Sıralamadan Sıraya" modelidir. Soldaki resimde gösterildiği gibi, çevrilecek bir cümle giriyoruz ve bu cümlenin bilgilerini bir ara duruma kodlamak için sinir ağı kodlayıcısını kullanıyoruz, bu resimdeki kırmızı kısım, gizli bir değerler katmanı ile temsil edilmektedir. Ara durum ve sinir ağı kod çözücüsü aracılığıyla karşılık gelen çeviriyi üretmek için kodlama ve kod çözme işlemidir. Çeviri bilgisi ve parametreleri, geleneksel yöntemden önce manuel müdahale modülünü ortadan kaldıran ve tüm çeviri sürecini birleşik ve özlü hale getiren sinir ağı tarafından otomatik olarak öğrenilir.

Derin öğrenmenin geliştirilmesinin getirdiği temettülerle, bu çeviri modelinin performansı önemli ölçüde iyileştirildi. Sağdaki şekilde gösterildiği gibi, bu Google Translate'in o zamanki sürüm verileridir.Geleneksel cümle tabanlı çeviri sistemi, çeviri performansı, yeşil çizgi olan sinir ağına dayalı olandan çok daha düşüktür. Ve sinir ağının çevirisi bazı açılardan insan düzeyine yakın. Ayrıca "İngilizceden İspanyolcaya", "İngilizceden Fransızcaya" çevirisinde ve aynı Latin dil ailesinde, sinir ağı çevirisinin ve insan boşluğunun nispeten küçük olduğunu ve "İngilizce'den Çince'ye" arasında bir dil farkı olduğunu fark edebiliriz. Nispeten büyük ve çevrilmesi zor dillerde boşluk nispeten büyüktür, bu nedenle sinir ağlarının iyileştirme için daha fazla yeri vardır. Bu, mevcut sinir ağı çevirisinin genel kalitesidir.

Arkasındaki teknoloji nedir ? Bu resimden, geleneksel RNN tabanlı "Sequece to Sequence" modelinin nasıl çalıştığını kabaca görebilirsiniz. Bu örnek, "İngilizce'den Çince'ye" çevirisidir ve bu RNN döngüsü aracılığıyla İngilizce "Ekonomik büyüme son yıllarda yavaşlamıştır". Sinir ağı, kaynak cümleyi kelime kelime okur ve son olarak kırmızı noktanın gizli katman bilgisine kodlar.Gizli katman bilgisine göre, diğer hedef uçtaki tekrarlayan sinir ağına girilir ve daha sonra Çince çeviri kelime kelime üretilir. Ekonomik gelişme 2015 yılında yavaşladı. < / s > "buraya < / s > Bu, bir cümlenin sonunun temsilidir.Üretme süreci, çeviri sürecinin bittiğini belirtmek için cümlenin sonuna böyle bir işaret ekler.

Geleneksel RNN sinir ağı yapısı herhangi bir uzunluktaki girdileri işleyebilir.Doğal dil modellemesi için çok uygundur, bu nedenle tüm sinir ağının ana akımını bir süre işgal etmiştir. Akademisyenlerin gelişmesiyle birlikte, RNN'nin bazı eksiklikleri olduğunu da göreceğiz, eksiklikleri esas olarak iki noktayı içermektedir: Birincisi, RNN dizilerinin özellikleri paralelleştirmeyi çok zorlaştırıyor Yukarıdaki şekilden de görülebileceği gibi, RNN sıralı bir ağa genişletilirse, örneğin X4'ün sonucunu almak istediğimde önce X0-X3'ün sonucunu hesaplamalıyım.Bu seri ilişki onu çok paralel kılar. düşük. Örneğin, Google'ın GNMT sinir ağı sistemi, bir modelin eğitimini tamamlamak için bir hafta boyunca eğitmek için 96 GPU kartı gerektirir. 96 GPU kartı, bir araştırma kurumu veya küçük bir şirket için büyük bir ek yüktür ve temelde karşılanamaz ve bir haftalık eğitim gerektirir.Bu nedenle, RNN özelliği genel model eğitimini çok yavaş ve maliyetli hale getirir.

Ek olarak, RNN eğitiminde, RNN ağ yapısının uzun mesafe ve hiyerarşik bağımlılık kurması zordur. Örneğin, sözdizimsel bilgi ile gönderen bilgi arasındaki ilişki, sadece tek bir dizi olduğu için, bu ilişkileri modellemek zordur. Örneğin, "Köpek çok yorgunduğu için karşıya geçmedi". "Yorgun" ifadesini gördüğümüzde bunun köpek anlamına geldiğini biliyoruz. Son kelimeyi değiştirirseniz, "Köpek çok geniş olduğu için caddeyi geçmedi", o zaman birisi bu cümleyi okursa, caddeye atıfta bulunduğunu bulmak kolaydır, çünkü cadde geniş olduğu için, Çok geniş köpek olamaz. İnsanlar için çok basit, ancak makinelerin referansları ayırt etmesi çok zor. Bu cümleyi Fransızca veya Almanca'ya çevirirseniz, Fransızca ve Almanca'da köpek ve sokak çevirisi için farklı durumlar vardır. Bu nedenle, GNMT'de veya geleneksel çeviri işlemede, bu durumlar temelde doğru yapılmaz, doğru yapılırsa aptalca olabilir.Bu, RNN'nin önemli bir sınırlamasıdır.

RNN'nin yukarıdaki eksikliklerine dayanarak, kesinlikle daha iyi bir sinir ağının onun yerini alacağını umuyoruz. Beklentimiz şudur: Birincisi, oldukça paralel bir ağ . RNN'nin özellikleri, RNN'nin yapısını terk etmemize ve katlanarak bir hız artışı elde etmemize neden oluyor. Ve hiyerarşik bilgileri yakalayabilmemiz gerekiyor, LSTM ağının tek bir katmanı yerine çok derin bir sinir ağı oluşturmamız gerekiyor. Ve Öz Dikkat ve Çok Başlı Dikkat gibi teknolojileri gerektiren bilgi açısından zengin bağlamı modelleyebilmemiz gerekiyor. . Soldaki gösterim Transformer'ın genel eğitim sürecini gösterir.Kodlama bölümünde her kelimenin çok paralel bir işlem süreci olduğunu kolayca görebilirsiniz. Kodlamadan sonra, Kod Çözme, derin sinir ağındaki girdiye göre sürekli olarak kelime kelime deşifre eder ve sonunda çeviriyi oluşturur.

Bu, bugünkü dersimizin konusuna götürür, Transformatör dört bölümde incelenecek :

  • İlk olarak, ağ yapısını analiz edin;
  • İkinci olarak, uygulamayı makine çevirisinde tanıtın;
  • Üçüncüsü, Ali'den tercüme ettiğim için, Transformer'ı endüstriyel pratik perspektifinden tanıtacağım. Yakın zamanda WMT2018 küresel makine çevirisi değerlendirmesine katıldık ve nispeten iyi sonuçlar aldık.
  • Son olarak, Transformer'in performansını değerlendirme sonuçlarından analiz edin.

Bir, ağ yapısını analiz edin

Transformer, ağın adıdır Transformer, İngilizce çeviride Transformers anlamına gelir. Yazarın, bu ağa daha fazla güç vermek için güçlü Transformers kullanmayı umduğunu düşünüyorum.

Bu ağı yüksek boyutlarda analiz etmek için bir büyüteç kullanırsak, söktükten sonra hala iki bölüme ayrılan "Sıraya Sırala" çerçevesi tarafından yürütülür: Kodlayıcı ve Kod Çözücü. Daha da hassaslaştırırsak, bu grafik pek çok bilgi içerir. Öncelikle, Encoder'ın 6 katmana sahip olduğunu ve Decoder'ın da 6 katmana sahip olduğunu görüyoruz.Neden birden fazla katmanımız var? Kodlayıcı perspektifinden, alt düzey Kodlayıcı yüzey düzeyindeki sözcük bilgisidir.Yukarı doğru kademeli soyutlamadan sonra, üst düzey soyut anlamsal bilgiyi temsil edecektir. Kodlayıcı parçası ayrıca her Kodlayıcının üst katmandaki kısmına birkaç çizgi bağlar , Bu şu anda Dikkat ile ilgili olan bölüm Dekoder ağı ve Encoder ayrıca bilgi aktarımına ve etkileşime sahiptir. Son özellik, Dekoder ve Kodlayıcı resimlerinin boyutlarının aynı olmasıdır, çünkü katmanlarının boyutları aynıdır. . Bu şekil yukarıdaki bilgileri ifade etmektedir.

Çok katmanlı sinir ağı yapısı, cümlelerin hiyerarşik bilgilerini modelleyebilir.Her katmanın yapısına daha dikkatli bakarsak, şu durumu bulacağız: Kodlama iki alt ağ parçasına bölünmüştür, ilki Öz Dikkattir. , İkinci bölüm İleri Beslemedir , Herkesin daha aşina olduğu, geleneksel ileri beslemeli sinir ağıdır.Geleneksel ileri beslemeli sinir ağını düşük paralelizasyonla ve nispeten basit ve oldukça paralelleştirilmiş şekilde terk ediyoruz.

Öz Dikkat, bir cümledeki farklı konumlarda yer alan kelimeler arasındaki ilişkiyi temsil eden ve daha önce bahsettiğimiz sokak ya da köpek arasındaki bağımlılığı temsil eden öz dikkat mekanizması katmanıdır. Kod çözücü katmanında, kaynaktan hedefe dikkat mekanizması olan Kodlayıcı-Kod Çözücü Dikkat ve kaynağın hedefe bağımlılığı değil, kaynaktan hedefe yardımcı mekanizma olan Kodlayıcı katmanından bir tane daha alt ağ vardır. Çeviri, kaynakta çevrilecek kelime ile kaynakta üretilen çevrilmiş kelime arasındaki bağımlılığı ifade eder.

Kodlayıcı bölümünü daha da iyileştirirsek, bu şekilde büyüyecek. "Düşünme Makineleri" zamir çeviri sözcüğünü girdik, önce sözcük vektörleri olarak ifade edilen bu iki sözcüğün biçimini arayacağız ve sonra Öz Dikkat katmanından Dikkatin çıktısını alacağız ve ardından Otomatik olarak Besleme İleri aracılığıyla Encoder1 ve Encoder1 çıktılarını oluşturacağız. Çıktı, Encoder2'nin girişi olarak kullanılır ve bu şekilde, 6. katman üstte bir araya getirilir. Tüm Encoder ağında, Feed Forward tanıdık bir bölümdür, ancak çoğu izleyici, diğer ağlarda yaygın olmayan, sinir ağı makine çevirisinde önerilen bir kavram olduğu için Dikkatini bilmiyor. .

Herkes için Dikkat kavramını daha detaylı inceleyelim Dikkat nedir? Dilbilim açısından, kelimeler ve kelimeler arasındaki ilişkiyi temsil eder.Aşağıdaki şekilde gösterildiği gibi, bu bir Öz Dikkat göstergesidir.Diğer konumlardaki kelimelerle ilgili olacaktır.Renk ne kadar koyu ise İlişki ne kadar yakınsa, şekilden, hayvanın gerçekte atıfta bulunduğu bir kelimeyle doğru bir şekilde ilişkili olduğunu görebilirsiniz.

Makine öğrenimi perspektifinden bakıldığında, bu Dikkat, sinir ağlarının gizli katmanları arasındaki benzerliğin bir temsilidir Kendine Dikkat Nedir? Burada olduğu gibi bir cümle içindeki sözcükler ve sözcükler arasındaki ilişki anlamına gelir; bu, çözüm gibi konulara atıfta bulunmak için kullanılabilir. "Encoder-DecoderAttention" nedir? Kodlama dizisinde ve kod çözmede kelimeler ve kelimeler arasındaki korelasyondur.Makine çevirisini örnek alırsak, kaynaktan hedefe olası çeviriler arasındaki yazışmayı temsil eder. Bunun anlaşılması da daha kolaydır.Örneğin, bir kelimeyi tercüme ederken, her kelimenin kaynak sonundaki katkısı farklıdır, bu da bu farklı dikkat ilişkisini gösterir. Geleneksel Dikkat, RNN ve LSTM ağlarında Dikkat vardır, ancak Dikkatin hesaplama yöntemi nispeten basittir.Mavi, kodlayıcının dizisidir ve kırmızı, kod çözücünün dizisidir. Kod çözücü dizisindeki gizli bir katman olduğunda Dikkat olduğunda, bu katman ile her Kodlayıcı katmanı arasındaki benzerliği hesaplayacak ve ardından bu benzerliği, tüm Dikkatin girdisi olan Ct'yi oluşturmak için her Kodlayıcı katmanını ağırlıklandırma konumu olarak kullanacaktır. Bu nispeten basit bir Dikkat hesaplamasıdır, ancak performans yetenekleri çok sınırlıdır.

Transformer'da daha ölçeklenebilir ve paralel bir Dikkat hesaplama yöntemi öneriyoruz.Dikkat'i içerik tabanlı bir sorgu süreci, içerik tabanlı bir sorgu olarak görüyor, 3 vektör ayarlayacak: QueryVector, Key Vector, Değer Vektörü . Ve her Vektör, girdi gömme ve ağırlık matrisi çarpılarak elde edilir. Bu Q, K ve V'yi çeşitli değerleri hesaplamak için kullanırız ve sonunda Attentionscore elde ederiz. Bu hesaplama süreci nispeten karmaşıktır.

Belirli Dikkatin nasıl hesaplandığını size göstermek için bir örnek kullanıyoruz. "Düşünme" kelimesini hesaplar ve Öz Dikkatini kullanırsak, önce Sorgu Vektörünü K vektörüyle çarparız.Eğer hesaplama ve dikkatin ikinci konumu T2 matrisi ile çarpılarak bir puan alınırsa, bu puan Boyutunun kareköküne bölün. Bu bölümün matematiksel anlamı vardır ve döndürdüğü gradyanı daha kararlı hale getirebilir. Bölmeden sonra softmax için bir değer elde edilir.Tüm Dikkat pozitiftir ve toplamın toplamı eşittir 1. Bu, matematiksel doğruluktan ele alınır ve nihai olasılık değeri, mevcut konumdaki her bir kelimenin açıklayıcılığını tanımlamaktır. Softmax'tan sonra, softmax ile elde edilen matrisi Değer matrisiyle çarparak aslında Dikkatin değerini elde edeceğiz ve son olarak farklı konumlardan Dikkat puanlarını ekleyerek mevcut konumun Vektörünü oluşturan Dikkat, artı kelime kelime ekleyeceğiz. Hesaplanırsa, tüm pozisyonların Dikkatine ulaşılır.

Az önce söylediğim şey vektörlere dayalı bir işlem, ancak Transformer sisteminin oldukça paralelleştirilmiş bir sistem olduğu belirtildiğinden, Vektör hesaplamalarını matris tabanlı işlemlere dönüştürmeye dayalı iyi bir paralel stratejimiz var. , Kodlayıcıdaki tüm kelimeler paralel olarak hesaplandığından, bir matris oluşturmak için tüm kelimelerin kelimelerini bir araya getiriyoruz ve bu matrisi Q, K, V ağırlık matrisini çarparak kolayca Q, K elde etmek için kullanıyoruz. , V matrix, Q, K, V matrix sayısal işlemi ifade etmek için bir formül kullanır ve Dikkat matrisi elde edilir.Bu, doğrudan tek adımda tamamlanabilen oldukça paralelleştirilmiş bir işlemdir. Bu, GPU'da kolay ve hızlıdır .

Bu, Dikkatin bir hesaplama yöntemidir. Hesaplama yöntemini genişlettik ve "çok başlı" olan "Çok başlı Dikkat" yöntemini önerdik. Dikkat , Q, K, V ve onun gerçek değerinden oluşan çoklu matrisler oluşturduk. Bu tasarımın iki avantajı vardır: İlk avantajı, daha eğitilebilir parametrelere sahip olması ve modelin farklı konumların dikkatini hesaba katma yeteneğini geliştirebilmesidir.Başka bir avantajı da bu ilgiye birden fazla alt uzay vermesidir. Makine öğrenimi açısından bakıldığında, her şeyden önce parametreler artmış ve verileri uydurma yeteneği güçlenmiştir. Dilbilim açısından, farklı alt uzaylar farklı ilişki ilişkilerini temsil edebilir.Örneğin, bir alt uzay referansın Dikkatini, diğer alt uzay bağımlılığın Dikkatini, diğer alt uzay ise diğer sözdizimsel bilginin Dikkatini temsil edebilir. , Dikkatin performans yeteneğini büyük ölçüde geliştiren çeşitli pozisyonlar arasındaki ilişkiyi kapsamlı bir şekilde ifade edebilir, Bu, geleneksel RNN ve LSTM sistemlerinde mevcut değildir ve aynı zamanda son deneyde performans üzerinde büyük etkisi olacak bir iştir. .

Örneğin, eğer 8 tane "Multi-head Attention" varsa, "X" girmek 8 weight Attention çıktısının matrisini hesaplayacaktır. Bu 8 matris nasıl kullanılır? Ayrıca 8 matrisi bir araya getirmemiz ve ardından üzerinde matris işlemleri gerçekleştirmek için bir boyut indirgeme matrisi kullanmalıyız, onu nispeten kabul edebileceğimiz bir boyuta sıkıştırmalı ve bilgiyi sıkıştırmalıyız, böylece sonraki matris işlemlerinin boyut olarak çok büyük olmasını ve bütüne neden olmasını engellemeliyiz. Genel gider nispeten büyüktür. Böylece sonunda daha küçük bir boyuta sıkıştırılacaktır.

Yukarıdaki, Transformatördeki Dikkat mekanizmasının hesaplanmasıdır.Büyük resimden, birkaç bölüme ayrılmıştır: ilk bölüm giriş cümlesini bulmak ve ikinci bölüm, kelime vektörü gösterimini oluşturmak ve onu hecelemek içindir. Birlikte matrisler oluşturun. Bu matrisler, Q, K ve V'nin üç matrisinin değerlerini elde etmek için Q, K ve V ağırlık matrisleriyle sayısal işlemler gerçekleştirir.Üç matrisin değerleri, önceki formül aracılığıyla Çok Başlı Dikkat değerini elde eder Çok başlıklı Dikkat, bir boyut azaltma matrisi aracılığıyla bir araya getirilir ve son olarak, Dikkat alt ağının çıktısı olarak daha uygun olduğunu düşündüğümüz bir boyuta sıkıştırılır.

Yukarıdakiler Dikkat'in ana içeriğidir.Elbette, Transformer'ın başka ağları var ve bunu size tanıtabilirim. "Konumsal Kodlama", dizideki her bir konumu modellemek içindir .

Tamamen paralel matris işlemlerinden bahsederken bir sorunuz olabilir: Bu bir referans model değil mi? Aradaki konum dikkate alınmaz, ancak çeviride farklı pozisyonlar çok önemlidir, yani hangi kelimenin hangi kelimenin önünde olduğu, bağlamın çok büyük bir anlamı vardır. Pozisyonu modellemek için bu "Konumsal Kodlamayı" kullanıyoruz. Belirli bir zaman ve yöntem, her bir kelimenin gömülmesine konum tabanlı bir yerleştirme ekleyeceğiz, S1 bir T1 ekleyecektir, bu T1 konumu ile ilgilidir ve konum, sırayla kodlamanın 0. konumu ve 1. konumu olacaktır. Vur onu. T, matematiksel olarak daha iyi bir formül olan bu formüle göre hesaplanır ve gerçek Konumla ilişkilidir. Örneğin, şekilde gösterildiği gibi, bu üç kelimelik cümlenin her pozisyonundaki positionEncoding değeri kabaca bu şekildedir, bu değer aracılığıyla orijinal gömülmeye eklenir, böylece gömme doğal olarak kendi pozisyon bilgisine sahiptir. Sonraki modelleme sürecinde her kelimenin konumunu dikkate alacağız.

Diğeri ise doğrudan bağlantı katmanı ağı "Artık bağlantı" Bunu bilen öğrenciler, "Artık bağlantı" nın daha derin sinir ağları üzerinde daha iyi bir etkiye sahip olduğunu bilirler. Örneğin, ağ katmanı derin olduğunda, değerlerin dağılımı ağırlık ile azalır. "Artık bağlantı", giriş kısmıdır. Şekildeki kesikli kısım aslında çıktı katmanının kısmına bağlıdır ve giriş bilgisi, bilgi kaybını azaltarak çıktı kısmına bozulmadan kopyalanır. "Katman normalleştirme" normalleştirme katmanı, bazı katmanlardaki bazı konumların çok büyük veya çok küçük olması nedeniyle değerin çok büyük veya çok küçük olmasını önlemektir ve eğitimi sağlamak için sinir ağı gradyanını döndürürken eğitim sorunları vardır. istikrar Bunlar, sinir ağı tasarımında yaygın olarak kullanılan iki durumdur. Temel olarak, her alt ağdan sonra "katman normalleştirme" ve "Artık bağlantı" eklenmelidir ve bu iki bölüm derin sinir ağı eğitimini daha sorunsuz hale getirebilir . Bu başka bir önemli ayrıntıdır.

Özetle, sinir ağını biraz daha ayrıntılı olarak açıkladım.Aşağıdaki şekilde gösterilmektedir.Şekilde iki kat Encoder ve Decoder vardır. Sözcüğün alt katmanının girişi, gömme girdisine girilir, X1, X2, artı "Konumsal "Kodlama" girişi, kendi kendine dikkat katmanı aracılığıyla ilk Kodlayıcıya doğrudan bağlanan "Artık bağlantı" ve normalleştirme katmanı aracılığıyla girilir ve elde edilen çıktı daha sonra ileri beslemeli sinir ağına girdidir ve ileri beslemeli sinir ağı çıkar Bundan sonra, doğrudan bağlantı katmanından ve normalizasyon katmanından geçer, böylece bir Kodlayıcı parçası tamamlanır.Bunu ikinci Kodlayıcıya girdikten sonra, ikinci Kodlayıcının çıkışını ilk Kod Çözücünün girişi olarak kullanır ve sırayla Yukarıdaki işlemi gerçekleştirin.

Bu resimde herkesin dikkatini gerektiren bir detay var: Hedef uçtaki Dikkat mekanizması maskelenmiş bir dikkat mekanizmasıdır. ,neden? Örneğin, makine çevirisinde tüm kelimeleri kaynak uçta görebilirsiniz, ancak hedef tarafınız çeviriyi sol ve sağ üst kısımdan oluşturuyorsa, çeviriyi oluştururken önceden oluşturulmuş kelimelerin bilgilerini görebilir ve aşağıdaki katmanları göremezsiniz. Bu, hedef uç Dikkat ve kaynak uç arasındaki büyük farktır Dikkat, bu nedenle hedef uçtaki tüm Dikkat maskelenir.Bu maskelenmiş, daha sonra görülmemesi gereken bilgileri korumaya eşdeğerdir.Bu, Transformer ağının özetidir.

2. Transformatör tabanlı makine çeviri sistemi

Transformer'in ağı makine çevirisini nasıl kullanır? Kodlayıcı sonu, kaynak ucun Fransızca cümlesidir ve hedef uç İngilizce cümledir. Dizi devam ederken, her kelime çevirisi oluşturulduğunda, sonunda bir tane oluşturacaktır. < EOS > Sembol, bu sembol, tüm kod çözme sürecinin bittiğini gösterir.

Her kelimenin çevirisini nasıl oluşturur? ? Çünkü Dekoderin üst katmanının girdisinin de gizli bir katman, 2048 veya 1024 gizli katman olduğunu biliyoruz. Peki bu gizli katman çıktı kelimesine nasıl karşılık geliyor? Arkasındaki ağ böyledir. Her şeyden önce, her dil için sabit bir kelime dağarcığımız olacak, örneğin dilde kaç kelime var, örneğin Çince'de 20.000 kelime, 30.000 kelime ve 50.000 kelime var. Ağın gizli katmanı için, bir kelime boyutu vektörü oluşturmak için önce onu bir kelime boyutu vektör boyutuna yansıtmak üzere doğrusal bir projeksiyon katmanı geçirilir.Bu vektöre göre softmax yapar ve onu bir olasılığa dönüştürürüz. Örneğin, 30.000 kelime ise, gerçek çıktımız olarak en yüksek olasılığa sahip kelimeyi seçeriz. Beşinci sıra en büyüktür ve gizli katmanın çıktısını Kodlayıcı aracılığıyla elde etmek için bir am çıktısı verir, böylece gerçekten bir Kelime çevirisinin etkisi.

Diğer kısım, sinir ağı optimizasyon hedefi Sinir ağı eğitimi sürecinde paralel korpusa ihtiyaç duyulur ve paralel korpus hem kaynak hem de hedef uçlar için gereklidir. Eğitimimizin amacı, sinir ağı tarafından üretilen bu çevirinin olasılık dağılımını gerçek referans cevabının olasılık dağılımına mümkün olduğunca yakın hale getirmektir. Sağdaki resimde, ürettiği olasılık dağılımını istiyoruz Bu cümle için, i olasılığının ilk Pozisyondaki en büyük, ikinci umudun da en büyük olmasını umuyoruz, vb. Ama bu iyi eğitilmiş bir şeydir.Olasılık dağılımı eğitimin başında rastgele işlenir On milyonlarca cümlenin sürekli eğitiminden sonra, bu kadar nispeten iyi bir dağılım elde edilecektir.

Eğitim optimizasyon hedefi çapraz entropi olasılıktır ve çapraz entropi gradyan güncellemesinin optimizasyon hedefi olarak kullanılır. . (Yukarıda) Soldaki şekildeki optimizasyon hedefinin kaybı, eğitiminin tur sayısına eşittir, entropi olduğu için sürekli bir düşüş sürecidir. Buna bağlı olarak, çeviri değerlendirme hedefinin Bleu değeri, eşleştirme derecesine göre ağırlıklandırılan bir puandır. Bleu değeri ne kadar yüksekse, o kadar iyidir ve eğitim süreci ilerledikçe kademeli olarak artacaktır. Eğitimin optimizasyon hedefi şu şekildedir: Bleu'ya ulaşmak için çapraz entropi optimizasyonu yoluyla, çeviri etkisini optimize etme işlemi gerçekleştirilebilir.

Bakalım Transformer sonucunun neye benzediğini ... İlk örneğe dönersek, cümlenin Dikkatini analiz etmek için Trans ağını kullandık. Daha ilginç bir sonuç aldım.Soldaki cümlede (aşağıda resmedilmiştir), son kelime çok yorgun olduğunda, ona karşılık gelen dikkat mekanizmasının en büyük kısmı, doğru kısma karşılık gelen hayvandır.Son kelime çok yorgunsa Bir kelime geniş olduğunda, en çok sokağa çıkar. Bu çok ilginç.Aslında, Dikkat aslında daha zor referans çözüm problemlerini modelleyebilir.Bu da daha iyidir.Önceki RNN ve STLM'nin ötesinde, Dikkat gösterme yeteneği daha güçlüdür.

(Yukarıda) Sağdaki tablo, Google tarafından yayınlanan verileri listeler. RNN'nin GNMT'si ile Transformer'in karşılaştırmasına göre, Transformer, bleu değerinde önemli bir iyileşmeye sahiptir ve eğitim süresinde yalnızca 8 GPU kartına ihtiyaç duyar. İyi bir model 4,5 günde elde edilebilirken, geleneksel RNN tabanlı RNN'nin 6 gün boyunca eğitilmesi için 90 GPU kartı gerekir ve etkisi Transformer'in çeviri sistemi kadar iyi değildir. Bu, orijinal RNN'ye göre çok önemli bir gelişmedir ve şu anda sektörde ve akademide makine çevirisi için en iyi akıllı ağdır.

Transformer'a ayrıntılı bir giriş yaptım, Transformer'in Ali çevirisindeki performansından bahsedelim.

Üç, Transformer'in Ali çeviride sanayileşme uygulaması

Sanayileşme pratiğinden biraz önce bahsetmiştim, en büyük sorun büyük veridir.Geleneksel laboratuvar ortamı yüz binlerce veya milyonlarca külliyattır, ancak Ali gibi büyük ölçekli e-ticaret senaryolarının makine çevirisi çok fazla külliyat gerektirir ve yüklenmesi gerekir. Milyarlarca paralel korpusun eğitimi, ancak tek bir GPU kartı ile bu kadar çok paralel korporanın eğitimi çok yavaştır ve temelde eğitilmesi imkansızdır.

Dağıtılmış eğitimin nasıl kullanılacağını çözmenin ilk ihtiyacı, Transformer'ı çok makineli ve çok kartlı bir şekilde eğitmektir. . Ancak Transformer, hiperparametrelerin eğitimi için çok hassas bir ağ ile karakterizedir. O zaman, çeşitli eğitim yöntemlerini denedik ve asenkron gradyan güncellemesi ve senkronize gradyan güncellemesi gibi farklı dağıtılmış eğitim stratejilerini denedik. Sonunda, birden çok makine ve birden çok kart için en kararlı güncelleme yöntemi olan Adam'ın senkronizasyonuna dayandığını bulduk. .

Bu şekilde, Google ve diğer görece açık kaynaklı Transformer sistemleri tarafından açık kaynaklı Transformer sisteminde, çoğu bu yöntemi çok makineli çoklu kart eğitimi için kullanır. Bunun Transformer için neden daha iyi olduğuna dair iyi bir teorik açıklama yoktur, esasen birçok deneyden elde edilen bir sonuçtur. Çok makineli çoklu kart eğitim ihtiyaçlarınız varsa, eşzamanlı gradyan güncellemesine dayalı Adam algoritmasını dikkate almak en iyisidir .

Diğer bir konu da makine çevirisi ile ilgilidir Genel olarak, GPU belleğinin sabit bir boyutu vardır.Zayıf bir kartın 4 G'si ve birkaç G'si vardır ve iyi bir kartın 12 G'si ve 24 G'si olabilir. Transformer için bazı insanlar deneyler yaptı.Eğitim sırasında daha büyük bir parti boyutu açarsanız, eğitim etkisi daha iyi olacaktır. Bu bir problemi beraberinde getirir.Batch boyutunu artırmak istiyorsanız, video belleğiniz çok büyük olduğu için cümlenin uzunluğu çok sınırlı olacaktır. Uzunluğun 40 olarak ayarlandığını varsayarsak, o zaman 400 veya 500 parti açabilirim. 800 parti açmak istersem, yerleştirilebilecek cümlelerin uzunluğu daha küçük olacaktır. Bu bir oyun sorunudur, çünkü donanım sınırlamaları bu Takas işlemini yapmanızı zorunlu kılar.

Daha önce TensorFlow'un düşük sürümünde desteklemiyorduk, bu yüzden yöntemi yalnızca şu anda kullanabiliriz. Ancak tensorflow1.5'ten bu yana, bir " Dinamik Gruplama "Mekanizması", bu, tensorflow güncellemesinin getirdiği değişikliktir. Orijinal sabit uzunluktaki grafiği, dinamik hesaplama grafiklerini destekleyebilmesi için bir grafik döngüsü ile ifade edecektir. Tensorflow'u anlayan öğrenciler daha net olacaktır. Bu mekanizmayı kullandıktan sonra, parti boyutunu dinamik olarak değiştirebiliriz.Avantajı, cümleyi daha uzun olacak şekilde eğittiğimizde, grup boyutunu dinamik olarak azaltabiliriz.Bu, eğitim sırasında daha uzun cümleleri kapsayabilir. , E-ticaret açıklamaları gibi çeviri durumlarında uzun cümleler mevcuttur veya haberlerin çok uzun cümleleri vardır, böylece daha fazla eğitim külliyatı alabiliyoruz, eğitim derlemi daha tam olarak kullanılıyor ve üretimdeki performansımız büyük ölçüde iyileştiriliyor Promosyon.

Diğeri "Hareketli ortalama" mekanizmasıdır Bu aynı zamanda daha profesyonel bir ifade olabilir, eğitimin istikrarını sağlayabilir. Ana yöntemi, eğitim sırasında bir modeli korumaktır, örneğin, 5000, ara modelin kayan bir penceresi vardır ve penceredeki tüm modellerin her hesaplama sırasında ortalaması alınır. Bu ortalamanın birkaç işlevi vardır: ilk işlev, kirli verilerin neden olduğu belirli bir noktada gradyan güncellemesinin zayıf olduğu durumdan kaçınmaktır.Her seferinde ortalamayı yapmak için birden çok model kullanır, böylece model daha kararlı olur. Uzman sistemin mekanizması sayesinde birden fazla modelin sonuçlarını bir araya getirerek elde ettiği performans da artacaktır. Dikkat edilmesi gereken bir şey, eğitimde bu stratejiyi kullanırsanız, modeli oluşturduktan sonra "Hareketli ortalama" kullandığınızda performansın tehlikeye atılacağıdır, çünkü bu bölümün performansının bir kısmını serbest bırakmak için eğitimde "Hareketli ortalama" mekanizması kullanılmıştır. Yukarı. Ancak genel olarak, tüm eğitimi daha istikrarlı hale getirecek olan "Hareketli ortalama" mekanizmasını kullanmanızı öneririz.

Model sağlamlığını iyileştirmek için "Dropout" algoritması , Bu, makine öğreniminde veya sinir ağlarında nispeten yaygın bir mekanizmadır, ancak gerçek senaryolarda çok faydalı olan bir mekanizmadır. Bırakma, sinir ağının her katmanındaki bazı birimlerin sinir girişini rastgele korumaktır. Genellikle Droput 0,1'dir. Girişin% 10'unu koruyacağız. Bilginin% 10'u korumalı olduğundan, modelin daha iyi öğrenmesi gerekir. Sağlamdır. Seks daha iyidir. Ayrıca ilgili deneyler yaptık. Sarı çizgi temel sistemdir ve mavi çizgi Dropout'tur. Bırakma eklendiğinde, model eğitimi ilk başta daha yavaştır, ancak uzun bir eğitim süresinden sonra sağlamlıktaki artış nedeniyle son Eğri bunun üzerinde olacak ve nihai yakınsama performansı bundan daha iyi olacaktır.

Bu, eğitim sürecindeki küçük bir iyileştirmedir. Esas olarak, büyük veri üretimi sırasında, yüz milyonlarca külçe ölçeğine sahip Transformatörlerin nasıl eğitileceğinin önemli bir yoludur.

Dört, Transformer'in WMT2018 küresel makine çevirisi değerlendirmesindeki performansı

Bu değerlendirmeyi bilmiyorsanız veya makine çevirisine aşina değilseniz, size tanıtabilirim. Bu değerlendirme, uluslararası düzeyde tanınan en iyi çeviri yarışmalarından biridir.Aynı zamanda büyük teknoloji şirketlerinin ve akademik yapıların çeviri yeteneklerini göstermeleri için bir platformdur. 2018'de birçok Hopkins Üniversitesi, Edinburgh Üniversitesi, Aachen Teknoloji Üniversitesi, Maryland Üniversitesi, Microsoft , Tencent ve diğer birçok kurum katıldı ve biz de nispeten iyi sonuçlar elde ettik. Alibaba çeviri ekibi, WMT2018'de "İngilizce'den Çince'ye", "İngilizce'den Rusça'ya" ve "İngilizce'den Türkçe'ye" olmak üzere beş dilde birinciliği elde etti ve bu resim aynı zamanda final yarışmasının şampiyon fotoğrafı oldu.

Bu yarışmadan bir özellik yansıtılabilir, yani Transformer 2018 yarışmasında yaygın olarak tanınmıştır.Sistemlerin% 80'den fazlası Transformer kullanıyor.Bu çok şaşırtıcı bir değişiklik. . 2017'deki WMT değerlendirmesi sırasında, çoğu sistem, şampiyonluğu kazanan sistem dahil olmak üzere RNN ve LSTM'ye dayanıyordu. Yalnızca bir yıl sonra, büyük kurumlar Transformer'ı kullanmak için yarışıyor. Bu, sistem açıklamasının bir resmidir.Katılımcı sistemlerin çoğu Transformer anahtar kelimelerine sahiptir ve RNN'ye dayalı diğer bazı sistemler nadirdir. Bu nedenle, Transformer ağı, makine çevirisi alanında geniş çapta kabul görmüştür.

İşte herkes için birkaç tane daha yararlı açık kaynak tabanlı makine çevirisi Transformer sistemleri , Açık kaynak çağında, herkesin daha iyi öğrenmesi uygundur.Yeterli külliyatınız varsa, bu açık kaynak makine çevirisi araçlarıyla daha iyi performansa sahip bir makine çevirisi motoru da oluşturabilirsiniz. Temelde üç tane önerin, Birincisi, kullanımı çok kolay olan Edinburgh Üniversitesi tarafından açık kaynak kodlu bir araç olan Marian; ikincisi yine Edinburgh Üniversitesi tarafından geliştirilen Nematus; üçüncüsü Amazon tarafından başlatılan bir makine çevirisi aracı olan Sockeye. . İlgilenen öğrenciler, öğrenmek için bu araçları indirmek ve kullanmak için İnternet'e gidebilir ve içindeki kodun nasıl uygulandığını görebilir.

Yarışma kısmına geri dönelim, Transformer'ın rekabet açısından nasıl bir deneyimi var? Burada birkaç noktayı paylaştım. Değerlendirme yapmak, mühendislik yapmaktan çok farklı. Değerlendirme sınırlı bir veri seviyesinde. Sınırlı veri seviyesinde nihai etkiye ulaşıyor. Sanırım dört nokta var:

  • İlk olarak, hassas veri filtreleme ve filtreleme , Temel külliyat setini belirlemek için çok fazla enerji harcamayacak, düzenleyici size bir külliyat seti verecek, ancak bu külliyat setinde bazı gürültü veya kötü külliyat var, çeşitli kurallar, sınıflandırma modelleri veya n- daha iyi bir teknik külliyat seçmek için gram filtreleme, vb., bu büyük bir çaba ile yapılır, çünkü temelde yatan teknoloji iyi değilse, eğitimli üstyapı kesinlikle çalışmayacaktır.
  • İkincisi, istatistiklerin gücüne inanın . Bu, sinir ağı modelinin yeni bir özelliğidir.Daha iyi puanlara sahip birimler birçok modeli eğitir ve farklı modelleri eğitmek için birçok strateji kullanır.Son olarak, bu farklı modeller Ensemble öğrenimi veya kombinasyonu için kullanılır ve son olarak en iyi sistem çıktıdır. . Örneğin Ali, Ensemble öğrenimini kullanarak 100'den fazla sistem kurabilir. Bu aynı zamanda maliyetleri artırma sorunudur.Daha iyi performans elde etmek için, daha fazla modelin eğitimini desteklemek için daha fazla GPU kaynağı kullanmamız ve son olarak bu kadar küçük bir performans iyileştirme noktasına ulaşmamız gerekiyor.
  • Üçüncüsü, verileri ve alanları birleştirmek için daha fazla parametre kullanmayı deneyin , Verileri ve alanları çok sınırlı olduğundan, Model ince ayar stratejileri, ince ayar stratejileri gibi stratejilere uymak için daha fazla yöntem ve daha fazla strateji kullanmanız gerekir, bunun için daha uygun filtre uygulayabilirsiniz. Bu geliştirme test setinin verilerine sahada veya daha iyi uyuyorsanız, modelinize ince ayar yapın. Ayrıca, Yeniden sıralama yapmak için global özellikleri de kullanabilirsiniz.Yeniden sıralama, performansı da bir dereceye kadar iyileştirir.Tercüme sırasında bilginin sadece bir kısmını görebilirsiniz, ancak çeviriniz oluşturulduktan sonra, daha fazla iki dilli çıkartabilirsiniz. Bilgi, geliştirme setine daha iyi bir model ayarlamak için.
  • Dördüncüsü, olabildiğince çok bilgi kullanın , Çünkü düzenleyici, iki dilli materyaller sağlarken çok sayıda tek dilli materyal sağlayacaktır. Tek dilli materyaller, geri çevirmek için Geri Çeviri'yi kullanmak ve ardından onu sözde külliyat, sözde nesil olarak modelinize eklemek gibi farklı şekillerde çevrilebilir. İki dilli külliyat eğitim için çeviri sistemine eklenir ve büyük ölçekli bir n-gram dil modeli veya sinir ağı modeli de eğitilebilir ve sonunda performansı ayarlamak için Yeniden sıralama modülüne eklenebilir.

Başta bu dört noktada, diğer bilgiler de WMT tarafından daha sonra yayımlanan makaleyi dört gözle bekliyor, bunları makalede ayrıntılı olarak tanıtacağız. Bugün tüm girişi bitirdik.

Beş, özet

Transformer'in yeni sinir ağının temel özellikleri:

  • İlk olarak paralelleştirme. Paralelleştirme derecesi çok yüksektir.
  • İkincisi, derin sinir ağları hiyerarşik bilgiyi temsil edebilir.
  • Üçüncüsü, referans çözümlemeyi veya farklı kelimeler arasındaki bağımlılığı karakterize edebilen karmaşık bir Dikkat mekanizması vardır.
  • Dördüncüsü, performans çok iyi.

Endüstriyel uygulama : Senkron Adam, Dinamik harmanlama, Hareketli ortalama, Bırakma. Dört tane daha pratik ve değerli yön.

Rekabet deneyimi : Çok modelli topluluk, İnce ayar, yeniden sıralama, geri çeviri ve diğer rekabet yöntemleri daha uygulanabilirdir. Ayrıca size Transformer'in tüm resmini birden fazla boyuttan gösterir.

Transformer

ilk soru bleu .MRTACL2015bleuNAACL2018GAN

.Unsupervised neural machineTranslationFacebookdual learningdual learning

beam searchbeam searchAlphaGorewardbeam searchrewardreward

TransformerAttentionAttention .AverageAttention NetworkZhangACL2018AttentionAttention2-3Transformer

QA

QConv Seq2Seq Self-Attention

A: Conv Seq2SeqCNNFacebookCNNSelf-AttentionAttentionTransformer

FacebookTransformer612

QTransformerAttention

A: MissAttentionEncoderSelf-AttentiondecoderSelf-AttentionDecoder AttentionEncoderPositional Encodingword embeddingSelf-Attention,zFeed Forward network

DecoderPositionalEncodingSelf-AttentionEncoderSelf-Attention

Q

A:n-gram

Q

Deep Learning in Natural Language Processing2018

Sezgisel diyalogda bilgi yönetiminin ayrıntılı açıklaması | Bir milyon insan AI öğreniyor
önceki
GitHub etkin noktalarına hızlı bir genel bakış: inanılmaz tarayıcı Browser-2020 Weekly, Star'ı 3000'in üzerine çıkarıyor
Sonraki
Bu makaleyi okuduktan sonra, Spring Security | The Force Project hakkında bir fikir edinebilirsiniz.
Taş çekiç! Python bu yıl zorlanacak mı? Programcı: Ben deliyim
Sayısız Java GC makalesi okudunuz, bu 5 soruyu bilmiyor olabilirsiniz
Veri analisti ve algoritma mühendisi, Python'da doğan programcılar nasıl seçim yapar?
Üç büyük operatör, yeni ve eski kullanıcı paketlerinde farklı haklar sorununu çözecek; Luo Yonghao, Douyin ile işbirliği yapıyor; Git 2.26 yayınlandı | Geek Headlines
İnsan-Bilgisayar Etkileşimi İnsan Hayatını Nasıl Değiştirir | Milyonlarca İnsan Yapay Zekayı Öğreniyor
Bir SIM kart nedeniyle Bitcoin Cash'te 30 milyon dolar mı kaybettiniz?
Zuckerberg tarafından yok edilen defter, Facebook'un tüm başarılarını ve başarısızlıklarını gizliyor
Sishui İlçesi Halk Kongresi Parti Şubesi "Bir Marka Şovu Stili Oluşturmak, Yoksulluğu Kalp ve Sevgiyle Azaltmaya Yardımcı Olmak"
"Şaheser" yalnızlık içinde gelişir
Wuhan'daki Fransız gönüllülerle diyalog: Korumayı artırmak için Çin tıbbı içmek ve bir kase sıcak kuru erişte yemek yeterli
Jingzhou, Hubei'den 900'den fazla çalışan Dongguan'a geldi ve belediye parti komitesi sekreteri ve belediye başkanı onları yerinde aldı.
To Top