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 :
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:
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:
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