Daha iyi benzerlik araması için yerleştirmelerinizde nasıl ince ayar yapılır?

In: Genel


Bu blog gönderisi, benzerlik öğrenmeyi kullanarak yaygın olarak bulunan bir veri kümesinde ince ayar cümle yerleştirmeleriyle ilgili deneyimimizi paylaşacak. Ek olarak, bunun etiketleme iş akışına nasıl fayda sağlayabileceğini araştırıyoruz. Kern AI rafinerisi. Bu gönderiyi anlamak için, yerleştirmelerin ne olduğunu ve nasıl oluşturulduklarını bilmelisiniz. İnce ayarın ne olduğuna dair kaba bir fikir de yardımcı olur. Bu gönderide atıfta bulunulan tüm kod ve veriler GitHub’da mevcut.


Daha iyi bir benzerlik aramasını ne oluşturur?

Etiketlemenin merkezi bir rol oynadığı çekirdek rafinerimizi sürekli olarak iyileştirmeye çalışıyoruz. Etiketleme sürecini geliştirmek için yerleştirmelerden nasıl yararlanabileceğimizin birkaç yolu vardır. Halihazırda uyguladığımız bir araç, herhangi bir kaydı seçebileceğiniz ve yerleştirmelerinin kosinüs benzerliğine dayalı olarak benzer kayıtları arayabileceğiniz benzerlik aramasıdır.

Benzerlik aramasını başlatma (solda) veya bir kayıtta özel etiketleme oturumu başlatma (sağda) seçenekleriyle çekirdek rafinerisi veri tarayıcısının ekran görüntüsü.

Bu, manuel etiketleme sırasında size sunulan kayıtların seçimi için yalnızca bir ad olan özel bir “etiketleme oturumu” ile birleştirilebilir. Bu, benzerlik aramasıyla en benzer 1000 kaydı toplayabileceğiniz ve bunları manuel olarak etiketlemeye başlayabileceğiniz anlamına gelir. Bir etiketleme oturumunda daha az bağlam anahtarınız varsa, etiketleme deneyiminin çok daha sorunsuz hale geldiğini gördük. Bu nedenle, yerleştirmelerimizde ince ayar yapmanın amacı, bir benzerlik etiketleme oturumu içinde aynı sınıfa ait daha fazla kayıt elde etmektir.


Gömmelerinizde neden ince ayar yapmalısınız?

Büyük dil modelleri (LLM), soru yanıtlama, bilgi çıkarma ve duygu analizi gibi çok çeşitli görevleri çözer. Onları bu görevlerde bu kadar iyi yapan şey, doğru mimarinin, iyi tasarlanmış bir eğitim prosedürünün ve eğitim verileri için tüm internetin kullanılabilirliğinin birleşimidir. Örneğin, Google’ın “LaMDA” adlı daha yeni bir LLM’si, halka açık forumlardan, öğreticilerden, Wikipedia’dan, web dokümanlarından ve diğer kaynaklardan alınan 1.56 trilyon kelimeyle eğitildi.

Bu büyük miktardaki mevcut verileri kullanarak, bir LLM, çeşitli alanlarda genelleme yapmak üzere eğitilir; bu, genellikle gerçekten iyi olan ancak alana özgü uzmanlıktan yoksun bir modelle sonuçlanır. Burada ince ayar devreye giriyor.

İnce ayar, dil modelinizi verilerinizin etki alanına daha iyi uyacak şekilde ayarlama işlemidir. Örneğin, bir açık deniz rüzgar çiftliğinin inşa süreciyle ilgili birçok yasal belgeyi işlemek istiyorsanız, LLM’nizi bu tür metinler üzerinde uzmanlaştırmak isteyebilirsiniz. Kendiniz ince ayar yapmadan önce, her zaman Hugging Face model veritabanına bakmalı ve birinin sizinkine benzer veriler üzerinde bir modelde ince ayar yapıp yapmadığını kontrol etmelisiniz.


Benzerlik Öğrenme

Deneye dalmadan önce bakmak istediğimiz son ön koşul “benzerlik öğrenimi”dir. Gömmelere ince ayar yapmak için çözmemiz gereken bir göreve ihtiyacımız var. Bu görev, denetimli sınıflandırmadan denetimsiz maskeli belirteç tahminine kadar herhangi bir şey olabilir. Etiketleme oturumlarımız için daha iyi benzerlik araması istediğimizden, sınıf bilgilerini içeren bir görevi seçeceğiz.

Benzerlik öğrenimi için açık kaynak çerçevesi. GitHub’a bağlantı.

Neyi denemek istediğimizi dahili olarak tartıştık ve benzerlik öğrenimine karar verdik, çünkü kurulumu kolay, eğitimi çok hızlı ve genellikle bizim için yeni olan bir şeyi kontrol etmek istedik. Benzerlik (bizim durumumuzda) sınıf etiketleri tarafından tanımlanır. Bu, aynı sınıf etiketini taşıyan iki kaydın benzer, aynı sınıf etiketini taşımayanların ise farklı olduğu anlamına gelir.


Veri

Bu kullanım durumu için anlaşılması kolay ve yaygın olarak bulunan verileri almak istedik, bu nedenle dört sınıfa sahip “AG News” sınıflandırma veri setine karar verdik: Dünya, Spor, İşletme ve Bilim/Tekn. Zaten etiketlenmiş olmasına rağmen, daha sonraki değerlendirmede bize yardımcı olur, tüm süreci göstermek için etiketlenmemiş bir veri kümesi gibi davranacağız.

Bir panda veri çerçevesindeki örnek veriler.

Her kaydın bir başlığı, açıklaması ve ilişkili etiketi vardır. Rastgele 20.000 kayıt seçtik, bunları çekirdek rafinerisine yükledik ve 261’i manuel olarak etiketledik. Bazı etiketleme işlevleri ve aktif öğrenenler oluşturduktan sonra, zayıf denetimi çalıştırdık ve 17.361 zayıf denetlenen kayıtla sonuçlandık. 0,7’den büyük bir güven puanı için filtre uyguladık, manuel olarak etiketlenen verileri ekledik ve ince ayar hattımız için 10.854 kullanılabilir kayıt elde ettik. Geriye kalan 9.156 kayıt (orijinal etiketleriyle birlikte) daha sonra yapılacak değerlendirmede test seti olarak kullanılacaktır. Etiketleme sürecine veya verilerin kendisine daha yakından bakmak isterseniz, her şeyi belgelediğimiz GitHub deposunu ziyaret edebilirsiniz.


Quaterion ile ince ayar

Quaterion, yerleştirmelere ince ayar yapmak için farklı türde benzerlik bilgilerini kullanabilir. Bir benzerlik puanı, önceden oluşturulmuş üçlüler veya benzerlik grupları kullanabiliriz (grubun sınıf tarafından tanımlandığı yerlerde). Sınıf bilgisi sahip olduğumuz tek benzerlik ölçüsü olduğundan, SimilarityGroupSamples’ı kullanırız.

benzerlik grupları için veri biçimini gösteren kod parçacığı

Artık veriler hazır olduğuna göre, eğitmek için bir modele ihtiyacımız var. Unutmayın, amaç bir gömmeden diğerine bir eşleme öğrenmektir. Bunun için kodlayıcı olarak önceden eğitilmiş bir LLM kullanacağız ve üstüne bir SkipConnectionHead ekleyeceğiz (okuyun burada neden bu sadece doğrusal bir katmana tercih edilir). Lineer katman, 384 boyutlu gömmeler üreten temel modelimiz olarak “all-MiniLM-L6-v2” kullandığımız için, bizim durumumuzda 384 olan, sahip olduğu özellikler kadar çok sayıda iç özelliğe sahiptir.

model mimarisinin başını gösteren kod parçası

Normalde, örneğin sınıflandırmada, sınıf sayısı kadar dış özelliği olan bir sınıflandırma başlığı kullanırsınız. Ağı eğitmek için gereken gradyanları elde etmek için çapraz entropi kaybı işlevinin bir uygulamasını kullanabilirsiniz.

Gömme uzayında benzerliği öğrenmek istediğimiz için, farklı bir kayıp fonksiyonu kullanmalıyız: mesafe ölçüsü olarak kosinüs mesafesi olan bir üçlü kayıp.

Gömme alanında üçlü kaybın neyi başarmaya çalıştığının görselleştirilmesi. Bir çapanın pozitif örneğe olan mesafesini azaltmak ve negatif olana olan mesafesini arttırmak.

Eğitim ayrıntılarının çoğu, kaputun altında PyTorch Lightning kullanan Quaterion’da yer alıyor. Optimize edici (Adam’ı seçtik) modelin kendisinde belirtilir, sadece Quaterion’un fit yöntemini çağırmamız ve eğitim ve doğrulama için veri yükleyicileri belirtmemiz yeterlidir.

dördey modelinin eğitimini açıklayan kod parçası


Değerlendirme

Bu blog gönderisinin başında, çekirdek rafinerisinde benzerlik aramasını geliştirmek istediğimizden bahsetmiştik. Bunu ölçmek çok zor olduğu için, elde etmeye çalıştığımız şeyi yakalayan bir metrik düşündük: “top_1k” metriği olarak adlandıracağımız en benzer 1000 kayıtta aynı sınıfa ait kayıtların miktarını artırmak. Herkes tek bir oturumda bin kaydı etiketlemeyeceğinden, bu ince ayarın faydalı olabilmesi için etiketlenmesi gereken kayıt miktarını da belirleyebiliriz. Ek olarak, ince ayarımızın yan taraftaki sınıflandırma doğruluğunu da iyileştirip iyileştirmediğini kontrol edebiliriz.

Test verileri, eğitim veya doğrulama adımlarında kullanılmayan 9.156 (zaten etiketlenmiş) kayıttan oluşur.


Top_1k

top_1k metriği için test verilerinden 250 rastgele örnek alıyoruz, her biri için en yakın 1000 komşuyu hesaplıyoruz ve bunların yüzde kaçının orijinal örnekle aynı etikete sahip olduğunu kontrol ediyoruz. Bunun ardından, top_1k metriğini almak için 250 örneğin ortalaması alınacaktır.

“Ham” yerleştirmeler, aynı temel dil modeli (“all-MiniLM-L6-v2”) kullanılırken, ancak yerleştirmelerin öğrenilen dönüşümünü uygulamadan oluşturulan yerleştirmeleri ifade eder.

Bir keman grafiği olarak top_1k metriğin dağılımı

Bu metriğin dağılımına baktığımızda, ince ayarın çok yardımcı olduğunu görebiliriz. Keman grafikleri, ince ayarlı yerleştirmelerle, benzerlik araması yönlendirmeli etiketleme oturumunuzda aynı sınıfları alma olasılığınız daha yüksek olduğunu gösteriyor, bu da daha az bağlam değiştirme ve dolayısıyla daha sorunsuz bir deneyim anlamına geliyor. Bu 250 değerin ortalamasını alırken, ham gömmeler için %49.96 aynı sınıf ve ince ayarlı olanlar için %58.60, %10’a yakın bir iyileştirme elde ediyoruz.


Top_k

Etiketleme oturumları her zaman 1000 kayda çekilmediğinden, k için farklı değerler için top_k metriğinin nasıl davrandığını merak ettik (diğer parametreler önceki deneye eşit kalır).

ham ve ince ayarlanmış top_k metriğinin çizgi grafiği

Gömmelerinizde ince ayar yapmanın faydaları, yalnızca 25 kayıt içeren oturumları etiketleme üzerinde zaten bir etkiye sahip gibi görünüyor, bu iyi bir haber çünkü bu çok fazla değil. O andan itibaren, ince ayarlı gömmeler, ham gömmelerden sürekli olarak daha iyi performans gösterir.


sınıflandırma

Sınıf bilgileriyle ince ayarlı bir yerleştirme, bu veriler üzerinde eğitilmiş bir sınıflandırıcıya da fayda sağlayabilir. Bu nedenle, eğitim verilerimizin gömmelerine ilişkin bir LogisticRegression eğitiminden sonra, sklearn’den gelen sınıflandırma raporuyla test verileri üzerindeki performanslarını değerlendirdik.

metin olarak sklearn sınıflandırma raporunun ekran görüntüsü

İlginç bir şekilde, ince ayar pek bir fark yaratmadı. Yine de önemli olmayan ham yerleştirmelere kıyasla küçük bir miktar performans bile kaybettik. Bu, komşu tabanlı benzerliğimizin wrt sınıflandırmasını iyileştirdiği, ancak bu doğrusal sınıflandırma modelinin sınıfları birbirinden ayırmayı daha kolay bulmadığı anlamına gelir. Bunu yakın gelecekte daha ayrıntılı olarak inceleyeceğiz.


Bundan ne çıkarmalı

Gömmelere ince ayar yapmak için benzerlik öğrenimini kullanma deneyimimizi paylaşarak, sizi bunu kendiniz denemeye teşvik etmek istiyoruz! Quaterion, başlamayı gerçekten kolaylaştırdı ve herhangi bir zorlukla karşılaşırsanız çok fazla destek sunuyorlar.

Bu boru hattını, iyi ayarlanmış bir benzerlik gerektiren projelerinize uygulayın! Basit bir sınıflandırma veri seti aldık, ancak benzerlik öğrenmenin parladığı birçok farklı alan var. Örneğin, ürünlerin bir vektör uzayına eşlendiği e-ticarette. Burada, ince ayarlanmış bir benzerlik, kullanıcı deneyimini büyük ölçüde iyileştirebilir!

Sunduğumuz her şey açık kaynaklıdır. Ham verilerinizden başlayabilir, açık kaynaklı çekirdek rafinerisine yükleyebilir, etiketleyebilir ve dışa aktarabilir ve ardından Quaterion boru hattında işleyebilirsiniz.


Sonraki: 2B alanda daha iyi ayırma

Verileri görselleştirmek ve etiketlemek için sürekli olarak daha iyi yollar arıyoruz. Şu anda, kullanıcının etiketlenmesi gereken noktaların etrafına şekiller çizerek verileri etiketleyebileceği, yerleştirmelerin iki boyutlu bir grafiğini içeren açıklama yöntemlerini araştırıyoruz.

Temel PCA’yı kullanırken, gömmelerin genellikle sadece iki boyutta iyi ayrılmadığını ve bu tür açıklama sürecini zorlaştırdığını gördük. Bu nedenle, şu anda 2B uzayda sınıfların daha iyi ayrılmasına yol açan yerleştirmelerde ince ayar yapmak için yöntemler üzerinde çalışıyoruz.

AG Haber kayıtlarını yerleştirdikten ve boyutlarını PCA ile küçülttükten sonra rastgele örnek. Sınıflar örtüşüyor ve bu nedenle bu arsaya kolayca açıklama eklenemez.

Gelecekteki blog yazılarına dikkat edin, çünkü bununla ilgili deneyimlerimizi sizinle paylaşacağız! Ayrıca yapabilirdin anlaşmazlığımıza katıl NLP, yerleştirmeler, LLM’ler, etiketleme veya genel olarak veri merkezli yapay zeka olsun.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]