Phi-1: Tüm İhtiyacınız Olan Ders Kitapları Makalesi

Cahit Barkin Ozer
7 min readJan 10, 2024

--

“Textbooks are all you need” makalesinin Türkçe özeti.

Bu makale az ama kaliteli verili küçük modellerin dahi büyük modellere kafa tutabildiğini kod LLM’leri bağlamında göstermiştir.

For English:

Özet

Phi-1 kod llm, rakip modellerden önemli ölçüde daha küçüktür. 1.3B parametreye sahip bir modeldir ve 8 A100'de 4 gün boyunca çeşitli “ders kitapları” kullanılarak eğitilmiştir. İnternetten alınan “kaliteli” veriler (6B tokenli), sentetik olarak oluşturulmuş ders kitapları ve GPT-3.5 (1B tokenli) ile yapılmış alıştırmalardan oluşur. Bu küçük ölçek, HumanEval’de %50,6 ve MBPP’de %55,5 pass@1 doğruluğa ulaşabilmiştir. Yine de phi-1-base ile karşılaştırıldığında şaşırtıcı özellikler göstermektedir. Kodlama alıştırmalarından oluşan bir veri kümesinde ince ayar yapmadan önceki modelimiz ve phi-1-small, 350M parametreli ve HumanEval’de %45'e ulaşan phi-1 ile aynı hat üzerinden eğitilmiştir.

Geniş Özet

  • 1.3B parametreli bir transformer tabanlı kod llm’i olan Phi-1 tanıtılmaktadır.
  • HumanEval’de %50,6 ve MBPP’de %55,5 pass@1 doğruluğu Phi-1 tarafından elde edilmiştir.
  • Büyük yapay sinir ağlarının eğitimi ile ilgili araştırmalar çok sınırlıdır.
  • Ölçeklendirme yasaları, bilgi işlem veya ağ boyutu arttıkça performansın arttığını göstermektedir.
  • Eldan ve Li’nin TinyStories üzerindeki çalışması, yüksek kaliteli verilerin performansı ve ölçeklendirme kurallarını değiştirebileceğini göstermiştir.
  • Büyük dil modellerinin en yeni teknolojileri, yüksek kaliteli verileri kullanarak eğitim hesaplamalarını ve veri kümesi boyutlarını azaltabilir.
  • LLM’ler eğitilirken kodlama ve Python metodlarını yazma konusuna odaklanılmıştır.
  • Mevcut ölçeklendirme yasaları, yüksek kaliteli verilerin kullanılmasını yasaklamaktadır.
  • phi-1 rakip modellerden daha düşük olmasına rağmen yüksek doğruluk gösterir.
  • Phi-1'in eğitim sürecinin ayrıntıları, verilerin nasıl seçildiği ve ortaya çıkan özellikler hakkında konuşulmaktadır.
  • Toplumun kullanması ve değerlendirmesi için model yayınlanmıştır.
  • Kodlama ders kitabı kalitesinde eğitim verilerinin önemi: Çok sayıda standart kod veri seti, kodlamanın temellerini öğretmek için yeterli değildir.
  • Kendi kendine yetmeme, anlamlı hesaplama eksikliği, karmaşıklık veya yetersiz dokümantasyon ve kodlama kavramlarının dengesiz dağılımı, standart kod veri kümelerindeki sorunlardan bazılarıdır.
  • Dil modelleri, açık, kendi kendine yeten, öğretici ve dengeli bir eğitim setinden fayda sağlayacaktır.
  • Eğitim için kullanılan üç ana veri kümesi vardır: filtrelenmiş kod dili, sentetik ders kitapları ve sentetik alıştırmalar.
  • “Kod Ders Kitabı”, filtrelenmiş kod dili ve sentetik ders kitabı veri kümelerinin bir kombinasyonudur.
  • Modele ince ayar yapmak için küçük sentetik alıştırmalar verilerinin toplanması gerekir.
  • Kod örneklerinin bir alt kümesinin kalitesini değerlendirmek için GPT-4 kullanılır.
  • Model performansı, filtreleme metodolojisi kullanılarak önemli ölçüde artırılabilir.
  • Modeli çeşitli kodlama fikirlerine maruz bırakmak ve genellemeyi ve sağlamlığı artırmak için örneklerdeki çeşitlilik önemlidir.Dil modelleri, yedekli ve homojen veri kümeleri oluşturmaya eğilimlidir.
  • Bilgi istemine rastgelelik eklemek, oluşturulan metinde farklılık yaratabilir.
  • Farklı konular ve hedef kitle kısıtlamaları, sentetik ders kitaplarının oluşturulmasına yardımcı oldu.
  • Python’ın sentetik egzersiz veri seti, egzersizleri ve çözümlerini içerir.
  • FlashAttention uygulaması için yalnızca kod çözücü transformatör modeli kullanıldı.
  • Modellerin mimari detayları (phi-1 ve phi1-small)
    sıra uzunluğu, optimize edici, öğrenme oranı çizelgesi vb. gibi eğitim bilgileri.
  • CodeExercises veri kümesinde ve CodeTextbook veri kümesinde ön eğitim yapmak.
  • İnce ayar veri kümesinde olmayan görevlerin yürütülmesinde iyileştirme.
  • Modelin performansının nitel analizi: Metin, ince ayarlı phi-1 modeli ile önceden eğitilmiş temel phi-1-base modeli arasındaki yetenekleri karşılaştırır.
  • Phi-1'in, ince ayar uygulandıktan sonra talimatlara daha iyi anlama ve uyum gösterdiğini belirtiyor.
  • Phi-1-base, istemlerdeki mantıksal ilişkileri yorumlar ve üretir, ancak phi-1 doğru yanıtları yorumlar ve üretir.
  • Sorunların daha küçük olan phi-1-small modeli bile anlaşıldığını gösteriyor, ancak çözümleri yanlış.
  • Metinde, CodeExercises üzerinde yapılan küçük değişiklikler, modelin dış kitaplıkları kullanma yeteneğini artırdığını söylüyor.
  • phi-1'in PyGame işlevlerini doğru bir şekilde uyguladığı ve phi-1-base ve phi-1-small’ın alakasız işlev çağrıları ürettiği bir PyGame programının bir örneğini sağlar.
  • Bir başka örnek, TKinter uygulamasında phi-1'in kullanıcı girişine dayalı olarak bir metin alanını doğru bir şekilde güncellediği ve phi-1-base ve phi-1-smael’in görev mantığıyla mücadele ettiğidir. — Kod, Tkinter GUI’deki düğmeleri ve işlevleri içermektedir.
  • Phi-1-base, phi-1-small ve phi-1 GUI’yi doğru bir şekilde uygularken, diğer iki model Tkinter API’lerini doğru bir şekilde kullanmıyor.
  • Bir asistan ve bir öğrenci arasında çözünürlüğü artırmak ve Python pyplot’unu döndürmek için bir tartışma sağlanır.
  • Veri kümesinin ezberlenmesi ve kirlenmesi ile ilgili endişeler ortadan kaldırılmıştır.
  • Kodlama çözümlerini değerlendirmek için GPT-4 ile yeni bir değerlendirme yöntemi geliştirildi.
  • Sonuçlar, phi-1'in alışılmadık sorularda StarCoder’dan daha iyi çalıştığını gösteriyor.
  • Performansı değerlendirmek için veri budama deneyleri uygulanır.
    HumanEval, CodeExercises’ın normal bir kontaminasyon deneyine göre zarar vermemiştir.
  • Veri seti, N-gram örtüşme analizine tabi tutulur. — HumanEval kullanarak minimum harf çakışması
  • HumanEval, frekansı sıfırdan büyük ve tam sayının değerinden büyük veya ona eşit olan en büyük tam sayıyı döndürür.
  • CodeExercises: Bir tamsayı listesinin toplam güç frekansı analizini hesaplar.
  • HumanEval ve CodeExercises’in benzer kod parçacıklarını bulmak için yerleştirme ve söz dizimi tabanlı mesafeleri kullanın.
    Benzer kod semantiğine sahip kod çiftleri, gömme mesafe kullanılarak yakalanır.
  • Kod parçacıklarının soyut sözdizimi ağaçları (AST’ler) arasındaki düzenleme mesafesini bulmak için sözdizimine dayalı mesafe kullanılır.
    CodeExercises, yerleştirme mesafesi ve farklı AST eşleşme oranları için eşiklere dayalı olarak budanıyor.
  • Budanmış veri kümeleri, StarCoder-Prompted üzerinde yeniden eğitilen phi-1 ve orijinal phi-1'in performanslarını karşılaştırır.
  • HumanEval problemlerinin alt gruplarına ilişkin modellerin doğruluğu.
    Kodlama görevlerinde dil modeli yeterliliğini geliştirmede yüksek kaliteli verilerin önemi
  • kodlama için daha büyük modellerle karşılaştırıldığında phi-1'in sınırlamaları
  • GPT-4 ile sentetik veri oluşturma potansiyeli.
  • Yüksek kaliteli veri kümeleri oluşturmak, içeriğin kapsamı, çeşitliliği ve artıklığını içerir.
  • Verilerdeki fazlalığı ve çeşitliliği ölçmek ve değerlendirmek için yöntemler eksikliği.
  • Dil modellerinin eğitimi ve gelecekteki modeller için veri düzenlemenin sosyal ve ahlaki etkileri
  • ince ayar öncesinde model için zorlu ifade örneği ve ince ayar sonrası performans artışı. İlk kod parçacığı, belirli koşulları karşılayan bir sayısal matris D’deki endeksleri arıyor.
  • Bir modelin parametreleri üzerinde değiştirilmiş bir degrade güncellemesi gerçekleştiren bir PyTorch işlevi, ikinci kod parçacığı olarak bilinir.
  • Bir çizgi grafiğini canlandıran Pyplot uygulaması, üçüncü kod parçacığı ile gösterilir.
  • Belirli bir istemin phi-1-small ve phi-1-base modelleri tarafından farklı şekillerde tamamlanması, dördüncü kod parçacığı olarak bilinir.
  • Modelin sınırlamalarının ve zayıf yönlerinin yanı sıra anlık değişikliklere karşı hassasiyet, beşinci kod parçacığı tarafından ele alınmaktadır.
  • Altıncı kod parçacığı, PyTorch’ta üç katmanlı bir sinir ağı sınıfı oluşturmanızı ve “rr” olarak bilinen yeni bir yöntem kullanmanızı ister.
  • Yedinci kod pasajı, üç yerine dört katmandan oluşan benzer bir istemdir.- Pytorch ile dört katmandan oluşan bir sinir ağı sınıfı oluşturun.
  • Mekansal akıl yürütme ve sayısal görevleri için anlamsız kodlar oluşturulabilmektedir.

Görseller

Tablo 1: Mümkün olduğunca kişisel olarak bildirilen puanları kullanırız. HumanEval ve MBPP’de rakip modellerden daha iyi olmasına rağmen phi-1, GPT-4 hariç (WizardCoder daha iyi HumanEval ancak daha kötü MBPP elde ediyor).
Şekil 2.1, HumanEval’de Pass@1 doğruluğu (%) göstermektedir. Çubuk grafiklerinin gruplandırılması, normal ölçeklendirmenin bir sonucu olarak ya hesaplama süresini (örneğin, burada 26B token’dan 76B’ye) ya da modelin parametrelerini (örneğin, burada 350M’den 1,3B’ye) büyütüyor. Bir gruptaki her sütun, farklı eğitim veri kümelerine karşılık gelir. Turuncu sütun, Stack’teki tekilleştirilmiş Python dosyalarının standart veri kümesi üzerinde eğitilen modellerin performansını gösterir (artı 1.3B parametre modeli için StackOverflow), açık yeşil sütun ise yeni veri kümesi kompozisyonumuz CodeTextbook ile eğitilen modellerin performansını gösterir.Son olarak, koyu yeşil renkli üçüncü sütun, yeni geliştirdiğimiz CodeExercises veri kümemizde yer alan ilgili ikinci sütun modellerini temsil eder. 1.3B modelleri için phi-1 ve phi-1-base, 51B token (770 GPU saati) üzerinde eğitim sonrası kontrol noktalarıdır; Stack+ modeli ise 76B token ve 1090 GPU saati için eğitilmiştir. CodeTextbook veri seti üzerinde eğitilen phi-1-base modelimizin yalnızca 1,3B parametre modeliyle %29 HumanEval performansına ulaştığını vurguluyoruz. Herhangi bir ince ayar yapılmadan. Replit-Finetuned modeli, bizden 100 kat daha fazla eğitim tokenı ile eğitilmiş 2,7B parametrelerde HumanEval’de %30'a yakın performans gösterdi [Rep23]. Bunun da ötesinde, phi-1'i elde etmek için CodeExercises veri setimizde ince ayar yapmak, bize HumanEval’de %51 daha iyi performans sağlamanın yanı sıra beklenmedik kodlama yeteneklerinin kilidini açıyor.
Aşağıda tartışılan sentetik veri kümeleri olmadan bile, filtreleme metodolojimiz model performansımızı önemli ölçüde artırır: Filtrelenmemiş Stack (tekilleştirilmiş python) ve StackOverflow üzerinde eğitilen 350 milyon parametre modeli için HumanEval performansı 96 bin adım (∼ 200B jeton) için eğitimden sonra bile %12,19'a ulaşır. 36 bin adımın ardından filtrelenmiş alt küme eğitimi HumanEval’de %17,68'e ulaşır. Aşağıda tartışılan filtrelenmiş veri seti ve sentetik ders kitabı veri setinin bir kombinasyonu üzerinde eğitim alarak bunu %20,12'ye daha da iyileştiriyoruz (Şekil 2.1'de rapor edilmiştir).
Şekil 3.1, CodeExercises’teki 880.000'den fazla alıştırma arasındaki içe aktarma sayısını göstermektedir. Bu, on defadan az içe aktarılan kitaplıkları göz ardı eder. Phi-1, çizim kodunu oluşturmak için şu komut ister: “Bir sözlüğüm var, önce değeri kullanarak sözlüğü en büyükten en küçüğe doğru sıralayın.” Daha sonra bir pyplot çubuk grafiği yapın. Yazı tipi boyutunu önce 7 olarak ayarlayın ve ardından döndürün. X ekseni anahtardır ve y ekseni sözlüğün değeridir; etiket 90 derece açılmalıdır. Y ekseni için log ölçeğini kullanabilirsiniz. Ek olarak, y ekseni etiketini “Log Number of Times” olarak değiştirin. ve x ekseni etiketinin “İçe Aktarımlar” olduğundan emin olun. Dpi’yi 1000'e ayarlayın.”
Tablo 2: LLM, elli yeni ve alışılmadık kodlama sorununa ilişkin anlama puanlarını değerlendirdi.
Tablo 3, farklı modeller tarafından doğru şekilde çözülen HumanEval sorunlarının yüzdesini göstermektedir. Karşılık gelen HumanEval sorununun belirli bir τ için CodeExercises veri kümesi içinde herhangi bir yakın eşleşmeye sahip olup olmadığına bakılır. HumanEval sorunlarının her bir alt kümedeki miktarı sorun sayısıyla gösterilir. Bu durumda, AST tabanlı eşleşme oranı, benzerlik kontrolü için kodlar arasındaki eşleşme oranına ilişkin eşiktir.

Sonuç

Bir ders kitabının kapsamlı ve iyi hazırlanmış bir şekilde hazırlanması gibi, bizim çalışmamız da yüksek kaliteli verilerin bir dil modelinin kod oluşturma görevlerinde yeterliliğini geliştirmedeki dikkate değer etkisini göstermektedir. “Ders kitabı kalitesinde” veriler oluşturarak, HumanEval ve MBPP gibi kodlama kriterlerinde neredeyse tüm açık kaynak modellerini geride bırakan bir model eğitmeyi başardık. Bu, model boyutunda on kat ve veri kümesi boyutunda yüz kat daha küçük olmasına rağmen gerçekleşti. Bu tür yüksek kaliteli verilerin, kodlama kavramları ve becerilerine ilişkin açık, bağımsız, öğretici ve dengeli örnekler sağladıklarından, kodlama dil modellerinin öğrenme verimliliğini önemli ölçüde artırdığını düşünüyoruz. Kodlama için daha büyük modellerle karşılaştırıldığında, modelimiz bazı kısıtlamalarla karşı karşıyadır. İlk olarak, çok dilli modellerle karşılaştırıldığında, phi-1 Python kodlama yeteneği sınırlıdır.

İkinci olarak, phi-1 belirli API’lerle programlama veya daha az yaygın paketlerin kullanılması gibi daha büyük modellere ilişkin özel bilgiye sahip değildir. Son olarak, phi-1, veri kümelerinin yapılandırılmış doğası ve dil ve stil açısından çeşitlilik eksikliği nedeniyle stilistik değişikliklere veya bilgi istemindeki hatalara daha az dayanıklıdır. Dilbilgisi hataları performansını önemli ölçüde azaltır. arzusu). Bu sınırlamaları genişleteceğiz ve phi-1'in başarısızlık modlarına örnekler vereceğiz. Ek B’de ayrıca bu sınırlamaları genişleteceğiz. Bu sınırlamaların hiçbiri temel görünmüyor ve daha fazla çalışmayla yaklaşımımız bunların üstesinden gelmek için kullanılabilir. Ancak, hangi ölçeklendirmenin yapılabileceği belirsizdir. Bunların üstesinden gelmek gerekebilir çünkü hem model hem de veri kümesi büyük olabilir.

Ek olarak, GPT-3.5 verilerinin yüksek hata oranına sahip olduğunu fark ettiğimizden, GPT-4 yerine GPT-3.5 kullanmanın sentetik verileri oluşturmak için büyük fayda sağlayabileceğine inanıyoruz. Phi-1'in bu hatalara rağmen bu kadar iyi kodlama yeteneğine sahip olması ilgi çekicidir (benzer bir durum [AZL23]’te bir dil modelinin veriler üzerinde %100 hata oranıyla eğitilebildiği ve yine de test sırasında doğru yanıtlar verdiği görülmüştür). Genel olarak, çalışmamız, yüksek kaliteli veri kümeleri oluşturmak için iyi bir teknik geliştirmenin, doğal dil işleme ve ilgili alanları geliştirmeye yönelik araştırmaların önemli bir bileşeni olduğunu göstermektedir (daha fazla bilgi için bkz. [JWJ+23]). Bununla birlikte, yüksek kaliteli veri kümeleri oluşturmak zorlu bir görevdir ve ele alınması gereken çok sayıda sorunla birlikte gelir.

Veri kümesinin modelin öğrenmesini istediği tüm ilgili içerik ve kavramları kapsaması ve bunu dengeli ve temsili bir şekilde yapması zordur. Veri kümesinin gerçekten çeşitli olmasını ve tekrarlanmamasını sağlamak, modelin verilere aşırı uyum sağlamasını veya belirli kalıpları veya çözümleri ezberlemesini engelleyen diğer bir engeldir. Bu, örneklerin kalitesini ve tutarlılığını korumanın yanı sıra veri oluşturma sürecine yaratıcılık ve rastgelelik eklemenin yollarını bulmak gerekir. Bu tür veri kümelerini oluşturduktan sonra bile, verilerdeki çeşitliliği ve fazlalığı ölçmek ve değerlendirmek için uygun bir yöntemimiz yok. Örneğin, kodlama alıştırmaları içeren bir veri kümemiz varsa, her alıştırmanın kaç farklı varyasyonu olduğunu ve bunların veri kümesine nasıl dağıtıldığını bulmak zordur.

Son olarak, gelecekteki dil modellerine yönelik verileri düzenlemek için dil modellerinin kendisi kullanılacağından, bu tür modellerin eğitiminin şeffaflığı, hesap verebilirliği ve veri ve modellerin önyargısı gibi etik ve sosyal sonuçları daha da önemlidir. bu işleme katılanlar.

Kaynak

[1] Suriya Gunasekar, Yi Zhang, Jyoti Aneja, Caio César Teodoro Mendes, Allie Del Giorno, 2 Oct 2023, Textbooks Are All You Need:

arXiv:2306.11644

--

--

Cahit Barkin Ozer
Cahit Barkin Ozer

Written by Cahit Barkin Ozer

Üretken YZ başta olmak üzere teknoloji alanındaki yenilikleri öğrenip sizlerle paylaşıyorum. Youtube Kanalım: https://www.youtube.com/@cbarkinozer

No responses yet