From c12eb5d8f28d682657a549f930b5458c7f0ad505 Mon Sep 17 00:00:00 2001 From: Yigit Sever Date: Tue, 29 Dec 2020 20:50:38 +0300 Subject: [PATCH] Add Turkish translation of 12-2 --- docs/tr/week12/12-2.md | 721 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 721 insertions(+) create mode 100644 docs/tr/week12/12-2.md diff --git a/docs/tr/week12/12-2.md b/docs/tr/week12/12-2.md new file mode 100644 index 000000000..99d0fe3a0 --- /dev/null +++ b/docs/tr/week12/12-2.md @@ -0,0 +1,721 @@ +--- +lang-ref: ch.12-2 +title: Dil Modellerinin Şifresini Çözmek +lecturer: Mike Lewis +authors: Trevor Mitchell, Andrii Dobroshynskyi, Shreyas Chandrakaladharan, Ben Wolfson +date: 20 Apr 2020 +lang: tr +translation-date: 29 Dec 2020 +translator: Yigit Sever +--- + + + +## [Işın Araması](https://www.youtube.com/watch?v=6D4EWKJgNn0&t=2732s) + + + +Işın araması, bir dil modeli çıkartmak ve o dilde metin üretmek için kullanılan başka bir tekniktir. Algoritma her adımda $k$ adet en olası (en iyi) kısmi çevirinin (hipotezlerin) kaydını tutar. Her hipotezin puanı olasılığının loguna eşitlenir. + + + +Algoritma, en iyi puana sahip hipotezi seçer. + +
+
+Fig. 1: Işın Araması +
+ + + +Işınlar ağacı ne kadar derine dallabilir? + + + +Işın ağacı, cümle sonu terimine gelinene kadar devam eder. Hipotez, cümle sonu terimine gelindiği zaman tamamlanmış olur. + + + +Neden (Nöral Makine Çevirisinde) çok büyük boyuttaki ışınlar genellikle boş çevirilerle sonuçlanır? + + + +Işın kullanmak çok pahalı olduğu için algoritma eğitim sırasında genellikle ışın kullanmaz. Onun yerine otomatik gerileyen çarpanlara ayırma kullanır (önceki doğru çıktılar verilip, $n + 1$ adet ilk kelime tahmin edilir). Eğitim sırasında model kendi hatalarına maruz bırakılmaz, bu nedenle ışında "saçmalık" görülmesi mümkündür. + + + +Özet: Bütün $k$ hipotezleri bitiş terimi üretene kadar ya da maksimum model çıkartma limiti T ulaşılana kadar ışın aramasına devam edilir. + + + +### Örnekleme + + + +En olası sırayı istemeyebiliriz. Bunun yerine modelin dağılımından örnekler alabiliriz. + + + +Ancak, model dağılımından örnekler almak da kendince problemlere yol açar. "Kötü" denilebilecek bir örnek alındığında model eğitim sırasında hiç karşılaşmadığı bir durumun içinde kalır ve arka arkaya kötü değerlendirme alma olasılığı artar. Böyle durumlarda algoritma korkunç geri bildirim döngüleri içinde sıkışıp kalabilir. + + + +### İlk-K Örnekleme + + + +Dağılımın $k$ en iyi elemana sınırlandırılıp tekrar normalleştirilmesinden sonra yeniden örneklendiği bir saf örnekleme yöntemidir. + +
+
+Fig. 2: İlk-K Örnekleme +
+ + + + +#### Soru: Neden İlk-K örnekleme oldukça iyi çalışıyor + + + +Bu teknik iyi çalışıyor çünkü kısaca yaptığı iş kötü bir şey örneklendiğinde dağılımın kuyruğunu kesip yalnızca basını kullanarak iyi dilin manifolddan düşmesini engellemek. + + + +## Metin Oluşturmayı Değerlendirme + + + +Dil modelini değerlendirmek için yalnızca kenara ayrılmış verinin log benzerliğini almak yeterlidir. Ancak metin değerlendirmek zor bir iştir. Genellikle kelime örtüşme ölçütleri bir referansa dayandırılarak (BLEU, ROUGE vb.) kullanılır, ancak bu yöntemlerin de kendince sorunları vardır. + + + + +## Diziden Diziye Modeller + + + + +### Koşullu Dil Modelleri + + + +Koşullu Dil Modelleri, rastgele İngilizce metin oluşturmak için kullanışlı değildir, ancak verilen girdi üzerinden metin üretmek için işlevseldirler. + + + +Örnekler: + +- Verilen Fransızca bir cümle üzerinden İngilizce çeviriyi oluşturmak +- Verilen bir belge üzerinden özet çıkarmak +- Verilen bir diyalog üzerinden, bir sonraki yanıtı oluşturmak +- Verilen bir soru üzerinden cevabı oluşturmak + + + + +### Diziden Diziye Modeller + + + +Genellikle giriş metni kodlanır. Ortaya çıkan bu temsile "düşünce vektörü" denir ve daha sonra sözcük sözcük terim oluşturmak için kod çözücüye iletilir. + +
+
+Fig. 3: Düşünce Vektörü +
+ + + +### Diziden Diziye Dönüştürücü + + + +Diziden diziye dönüştürücülerin iki yığını vardır: + +1. Kodlayıcı Yığını - Öz dikkat maskelenmez, bu nedenle girdideki her terim diğer tüm terimlere bakabilir + +2. Kod Çözücü Yığını - Dikkati kendi üzerinde kullanmanın yanı sıra bütün girdi üzerinde de dikkati kullanır + +
+
+Fig. 4: Diziden Diziye Dönüştürücü +
+ + + +Çıktıdaki her terimin önceki bütün terimlere ve ayrıca girdideki her sözcüğe doğrudan bağlantısı vardır. Bu bağlantılar ile modeller kendini güçlü bir şekilde iyi ifade edebilir. Bu dönüştürücüler önceki tekrarlayan ve evrişimli modellere kıyasla çeviri puanında iyileştirmeler yaptı. + + + + +## [Geri Çeviri](https://www.youtube.com/watch?v=6D4EWKJgNn0&t=3811s) + + + + +Bu modelleri eğitirken genellikle büyük miktarlarda, etiketlenmiş metin kullanırız. Avrupa Parlamentosu tutanakları bu iş için iyi bir veri kaynağıdır - metin elle farklı dillere çevrilmiş olarak gelir, daha sonra bu metinleri modelin girdileri ve çıktıları olarak kullanabiliriz. + + + +### Sorunlar + + + +- Avrupa parlamentosunda tüm diller temsil edilmiyor, bu da ilgimizi çekebilecek tüm diller için çeviri çifti alamayacağımız anlamına geliyor. Veri elde edemediğimiz bir dilde model eğitmek için nasıl metin bulabiliriz? +- Dönüştürücüler gibi modeller daha fazla veriyle çok daha iyi performans gösterdiğinden, girdi/çıktı çifti *olmayan* tek dilli metinleri nasıl verimli bir şekilde kullanabiliriz? + + + +Almanca'dan İngilizce'ye çeviri yapmak için bir model eğittiğimizi varsayalım. Geri çevirinin mantığına göre öncelikle tersine bir modeli İngilizce'den Almanca'ya eğitmemiz gerekir. + + + +- Sınırlı iki dilde metinleri kullanarak aynı cümleleri 2 farklı dilde elde edebiliriz +- İngilizce'den Almanca'ya bir modelimiz olduğunda, birçok tek dildeki kelimeyi İngilizce'den Almanca'ya çeviririz. + + + +Son olarak, önceki adımda 'geri çevrilmiş' Almanca sözcükleri kullanarak Almanca'dan İngilizce'ye çeviri yapacak modeli eğitin. Önemli noktalar: + + + +- Tersine modelin ne kadar iyi olduğu önemli değil - gürültülü Almanca çevirilerimiz olabilir ama sonunda temiz İngilizce çeviriler alabiliriz. +- İngilizce'yi, (zaten çevrilmiş) İngilizce / Almanca çiftlerinden de iyi anlamayı öğrenmemiz gerekiyor - büyük miktarda tek dilde İngilizce kullanın + + + + +### Yinelemeli Geri Çeviri + + + +- Daha fazla iki dilde metin verisi oluşturmak ve çok daha iyi performansa ulaşmak için geri çeviri prosedürünü yineleyebiliriz - tek dilli verileri kullanarak eğitime devam etmeniz yeterli. +- Çok fazla paralel veri olmadığında çok yardımcı olur + + + + +## Büyük çok dilli Makine Çevirisi (Machine Translation - MT) + +
+
+Fig. 5: Çok Dilli MT +
+ + + +- Bir dilden diğerine çeviri yapmayı öğrenmeye çalışmak yerine, birden çok dil çevirisini yapmayı öğrenmek için bir yapay sinir ağı oluşturmaya çalışın. +- Model, dilden bağımsız bazı genel bilgileri öğrenir. + +
+
+Fig. 6: Çok Dilli NN (Neural Network - Yapay Sinir Ağı) Sonuçları +
+ + + +Harika sonuçlar veriyor, özellikle eğer çok fazla veri bulamadığımız bir dile (düşük kaynaklı diller) çeviri yapmak üzere bir model model eğitmek istiyorsak. + + + +## Doğal Dil İşleme (Natural Language Processing - NLP) için Denetimsiz Öğrenme + + + +Herhangi bir etiketi olmayan büyük miktarda metin ve çok az denetlenen veri var. Sadece etiketlenmemiş metinleri okuyarak bir dil hakkında ne kadar şey öğrenebiliriz? + +### `word2vec` + + + +Sezgi - eğer kelimeler metinde birbirine yakın yerlerde geçiyorlarsa, muhtemelen birbirleriyle ilişkili olurlar, bu yüzden sadece etiketsiz İngilizce metne bakarak ne anlama geldiklerini öğrenebileceğimizi umuyoruz. + + + +- Amaç, kelimelerin vektör uzayındaki konumlarını öğrenmek (temsilleri öğrenmek) + + + +Ön eğitim görevi - bazı kelimelerin üstlerini kapatın ve boşlukları doldurmak için komşu kelimeleri kullanın. + +
+
+Fig. 7: word2vec maskeleme görseli +
+ + + +Örneğin, buradaki fikir, "horned" ("boynuzlu") ve "silver-haired" ("gümüş saçlı") kelimelerinin diğer bazı hayvanlara göre "unicorn" ("tek boynuzlu at") bağlamında görülme olasılığının daha yüksek olmasıdır. + + + +Kelimeleri alın ve doğrusal bir projeksiyon uygulayın + +
+
+Fig. 8: word2vec temsilleri +
+ + + +Bulmaya çalıştığımız + +$$ +p(\texttt{unicorn} \mid \texttt{These silver-haired ??? were previously unknown}) +$$ + +$$ +p(x_n \mid x_{-n}) = \text{softmax}(\text{E}f(x_{-n}))) +$$ + + + +Kelime temsilleri uzayda bazı özelliklerini korur + +
+
+Fig. 9: Temsil Yapısı Örneği +
+ + + +- Buradaki fikir, eğitim bittikten sonra eğer "king" ("kral") kelimesinin temsilini alıp üzerine "female" ("dişi") kelimesinin temsilini eklersek elde ettiğimiz temsil "queen" ("kraliçe") kelimesinin öğrenilmiş temsiline oldukça yakın oluyor +- Vektörler arası anlamlı farklılıklar gösteriyor + + + +#### Soru: Kelime temsilleri bağlamdan bağımsız mı yoksa bağımlı mı? + + + +Bağımsızdır ve diğer kelimelerle nasıl ilişkili olduklarına dair hiçbir fikirleri yoktur + + + +#### Soru: Bu modelin zorlanacağı bir duruma ne örnek verebiliriz? + + + +Kelimelerin kastedilen anlamları büyük ölçüde bağlama bağlıdır. Dolayısıyla, belirsiz sözcükler söz konusu olduğunda - birden fazla anlama gelebilecek sözcükler - model zorlanacaktır çünkü temsil vektörleri sözcüğü doğru bir şekilde anlamak için gereken bağlamı yakalayamayacaktır. + + +### GPT + + + +Bağlam eklemek için koşullu bir dil modeli eğitebiliriz. Her adımda bir kelimeyi tahmin eden bu modeli ele alıp modelin her çıktısını başka bir özellikle değiştirebiliriz. + + + +- Ön eğitim - sonraki kelimeyi tahmin et +- İnce ayar - başka bir göreve geçin. Örnekler: + - İsim mi sıfat mı olduğunu tahmin edin + - Bir Amazon ürün incelemesini içeren bir metin verildiğinde, incelemenin yaklaşım puanını tahmin edin + + + +Bu yaklaşım modeli yeniden kullanabildiğimiz için iyidir. Büyük bir modeli önceden eğitip diğer görevler için ince ayar yapıyoruz. + + +### ELMo + + + +GPT yalnızca sola yönelik bağlamı dikkate alır, bu da modelin gelecekteki kelimeleri dikkate alamayacağı anlamına gelir - bu da modelin yapabildiklerini oldukça kısıtlar. + + + +Buradaki yaklaşımımız _iki_ dil modeli eğitmek + + + +- Metin üzerinde soldan sağa bir tane +- Metin üzerinde sağdan sola bir tane +- Kelime temsillerini elde etmek için iki modelin çıktısını birleştirin. Şimdi hem sağa hem de sola doğru bağlamda koşullandırılabilir. + + + +Bu hala "sığ" bir kombinasyon ve sola doğru ile sağa doğru bağlam arasında biraz daha detaylı bir etkileşim istiyoruz. + + +### BERT + + + +BERT, boşluk doldurma görevi olması açısından word2vec'e benzer. Bununla birlikte, word2vec'te doğrusal işdüşümler kullanılırken, BERT'de daha fazla bağlama bakabilen büyük bir dönüştürücü var. Eğitmek için terimlerin %15'ini maskeleyip boşlukta kalan terimi tahmin etmeye çalışıyoruz. + + + +BERT'i buyutebiliriz (RoBERTa): + +- BERT'in ön eğitim hedefini basitleştirin +- Toptan sayısını arttırın +- Büyük miktarda GPU ile eğitin +- Daha bile fazla metin üzerinden eğitin + +BERT'in performansından bile daha iyi - soru cevaplama işinde insan üstü performans alıyoruz. + + + + +## [NLP için ön eğitim] (https://www.youtube.com/watch?v=6D4EWKJgNn0&t=4963s) + + + +NLP konusunda araştırılan farklı özdenetimli ön eğitim yaklaşımlarına hızlıca bir göz atalım. + +- XLNet: + + + +XLNet tüm maskelenmiş terimleri ayrı ayrı koşullu olarak tahmin etmek yerine, rastgele sırayla otomatik olarak gerileyerek tahmin eder. + + +- SpanBERT + + + +Maskeleme terimler yerine ardisik sözcük dizilerini kapsar + +- ELECTRA: + + + +Kelimeleri maskelemek yerine, terimleri benzerleriyle değiştiririz. Sonrasında terimlerin aslında değişip değişmediğini tahmin etme problemini ikili bir sınıflandırma problemi olarak çözeriz. + +- ALBERT: + + + +A Lite Bert (Hafif Bert): BERT'i değiştirip katmanların ağırlıklarını sabitleyerek daha hafif hale getiriyoruz. Böylece modelin değişkenlerini ve hesaplamaları azaltıyoruz. İlginç bir şekilde, ALBERT'i tasarlayanların doğruluktan çok fazla taviz vermeleri gerekmedi. + + +- XLM: + + + +Çok Dilli BERT: İngilizce metinler beslemek yerine birçok dilden metinler besliyoruz. Beklediğimiz gibi diller arası bağlantıları daha iyi öğrendi. + + + +Yukarıda belirtilen farklı modellerden çıkartabileceğimiz temel dersler şunlardır: + +- Pek çok farklı ön eğitim yöntemi ise yarıyor! + +- Kelimeler arasındaki derin, çift yönlü etkileşimleri modellemek çok önemlidir + +- Henüz net sınırlar çizemesek de on eğitimi büyüterek büyük kazanımlar alabiliyoruz + + + +Yukarıda anlatılan modellerin çoğu metin sınıflandırma problemini çözmek için tasarlanmıştır. Ancak, çıktıyı `seq2seq` modeli gibi sıralı olarak yarattığımız metin üretme problemini çözmek için ön eğitime başka bir açıdan yaklaşmaya ihtiyacımız var. + + + + +#### Koşullu Üretim için Ön Eğitim: BART ve T5 + + + +BART: `seq2seq` modellerinin gürültü giderme ile ön eğitimi + + + +BART'ta ön eğitim için bir cümleyi, terimleri rastgele maskeleyerek bozuyoruz. Maskelenen terimleri tahmin etmek yerine (BERT'te olduğu gibi), bozulmuş dizinin tamamını besleyip bütün cümlenin doğrusunu tahmin etmeye çalışıyoruz. + + + +Bu `seq2seq` ön eğitim yaklaşımı bize cümle bozma tekniklerimizi tasarlamada esneklik sağlar. Cümleleri karıştırabilir, sözcük gruplarını çıkarabilir, yeni ifadeler ekleyebiliriz. + + + +BART ile SQUAD ve GLUE ölçütlerinde RoBERTa'nın seviyesine ulaşmayı başardı. Ancak özet çıkartma, karşılıklı konuşma ve soyut soru cevap veritabanlarında alanının en iyisi oldu. Bu sonuçlar BART için beklentimizi destekliyor, metin üretmede BERT/RoBERTa'dan daha iyi olmak. + + + + +### NLP'de yanıt bekleyen sorular + + + +- Genel kültürü nasıl dahil etmeliyiz +- Uzun belgeleri nasıl modelleriz? (BERT tabanlı modeller genellikle 512 terim kullanıyor) +- Çok görevli öğrenmeyi en iyi nasıl yaparız? +- Daha az veriyle ince ayar yapabilir miyiz? +- Bu modeller dili gerçekten anlıyor mu? + + + + +### Özet + + + +- Çok fazla veri üzerinde eğitilen modeller dil yapısını elle modellemekten daha iyi sonuç veriyor. + + + +Farklı önyargılar açısından Dönüştürücüler düşük önyargıya sahip (oldukça kendini ifade etme gücü yüksek) modellerdir. Bu modelleri fazlaca metinle beslemek dil yapısını elle modellemekten daha iyidir (yüksek önyargı). Mimariler dizileri darboğazdan geçirmek için sıkıştırmalıdır + + + +- Modeller, etiketlenmemiş metinlerdeki kelimeleri tahmin ederek dil hakkında çok şey öğrenebilir. Bunun harika bir denetimsiz öğrenme yöntemi olduğunu artık biliyoruz. Sonrasında belirli görevler için ince ayar yapmak çok kolay + + + +- Çift yönlü bağlam çok önemlidir + + + + +### Dersten sonraki sorulardan edindiğimiz ek bilgiler + + + +'Dili anlamayı' ölçmenin bazı yolları nelerdir? Bu modellerin dili gerçekten anladığını nereden bilebiliriz? + + + +"Kupa, çok büyük olduğu için bavula sığmadı": Bu cümlede "çok büyük" olan şeyi bulmak makineler için zordur. İnsanlar ise bu işte iyidir. Böyle zor örneklerden oluşan bir veri kümesi var ve insanlar o veri kümesinde %95 başarı gösterdi. Bilgisayar programları, Dönüştürücülerin getirdiği devrimden önce yalnızca yaklaşık %60'lık başarı gösterebiliyordu. Günümüzdeki Dönüştürücü modelleri o veri kümesinde %90'dan fazla başarı göstermeyi başardı. Bu da modellerin yalnızca ezberlemediğini / veriden faydalanmadığını ancak verilerdeki istatistiksel yapılar üzerinden kavramları ve nesneleri öğrendiğini gösteriyor. + + + +Dahası, BERT ve RoBERTa, SQUAD ve Glue'da insanüstü performans elde ediyor. BART tarafından oluşturulan metin özetleri insanlara çok gerçekçi görünüyor (yüksek BLEU puanları). Bu unsurlar modellerin bir açıdan dili öğrendiğinin kanıtıdır. + + + + +#### Temellendirilmiş Dil + + + +İlginç bir şekilde, dersi veren hoca (Mike Lewis, Araştırmacı Bilim İnsanı, FAIR) 'Temellendirilmiş Dil' denilen bir kavram üzerinde çalışıyor. Bu araştırma alanının amacı, sohbet edebilen veya tartışabilen konuşma özneleri oluşturmaktır. Sohbet etmek ve tartışmak, metin sınıflandırması veya metin özetlemeye kıyasla belirsiz hedefleri olan soyut görevlerdir. + + + + +#### Modelin zaten genel kültüre sahip olup olmadığını değerlendirebilir miyiz? + + + +"Genel kültür" soyut bir kavramdır. Modelleri, istediğimiz kavramlar hakkında basit sorular sorarak, genel kültür açısından en temel düzeyde test edebiliriz. BERT, RoBERTa ve T5 gibi modellerin milyarlarca parametresi vardır. Bu modellerin Wikipedia gibi büyük bir ansiklopedi üzerinden eğitildiği düşünüldüğünde, parametrelerini kullanarak bilgileri ezberlemişlerdir ve sorularımızı cevaplayabilirler. Ek olarak, bazı görevlerde bir modele ince ayar yapmadan önce ve sonra aynı bilgi testini yapmayı da düşünebiliriz. Bu, bize modelin ne kadar bilgisini 'unuttuğuna' dair bir fikir verecektir.