paint-brush
Sadece Birkaç Satır Kodla Herhangi Bir LLM Nasıl Daha Doğru Hale Getirilir?ile@FrederikBussler
7,012 okumalar
7,012 okumalar

Sadece Birkaç Satır Kodla Herhangi Bir LLM Nasıl Daha Doğru Hale Getirilir?

ile Frederik Bussler5m2023/08/14
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Yapay zeka devrimi, ChatGPT gibi Büyük Dil Modellerinin (LLM'ler) ortaya çıkmasıyla değişti ve bu, veri karmaşıklığına karşı kazanılan zafere işaret ediyor. Bu LLM'ler, devasa veri kümeleri (bir petabayta kadar) ve insan dilinin karmaşık doğası nedeniyle zorluklarla karşı karşıyadır. Cleanlab gibi veri merkezli araçlar, yapay zeka veri işlemede devrim yarattı, veri iyileştirme süreçlerini otomatikleştirdi ve ilerlemeleri demokratikleştirdi. Gerçek dünyadaki veri kümelerindeki açıklama hatalarından (%7-50) dolayı veri merkezli yapay zeka hayati önem taşıyor ve eğitime engel oluyor. OpenAI ve Cleanlab gibi araçlar veri kalitesine öncelik vererek model doğruluğunda önemli iyileştirmelere olanak tanır. Python demosu, Cleanlab'in etiket sorunlarını nasıl tespit ettiğini, verileri nasıl filtrelediğini ve modelleri yeniden eğittiğini göstererek %63'ten %66'nın üzerine kayda değer bir doğruluk artışı sağladı. Bu veri merkezli yaklaşım, GPT-5 gibi gelecekteki Yüksek Lisanslar için umut vaat ediyor.
featured image - Sadece Birkaç Satır Kodla Herhangi Bir LLM Nasıl Daha Doğru Hale Getirilir?
Frederik Bussler HackerNoon profile picture
0-item
1-item
2-item

Yapay zeka devrimi onlarca yıldır yapım aşamasındaydı. Heyecanla dolu, ancak sıklıkla hayal kırıklıkları ve " Yapay Zeka kışları " ile noktalanan bir alandı. Ancak son zamanlarda bir şeyler değişti. ChatGPT, Claude ve Bard gibi Büyük Dil Modelleri (LLM'ler) yapay zekayı laboratuvar merakından ana akıma fırlattı.


Bu değişim yalnızca yapay zekanın bir zaferi değildi, aynı zamanda büyük ve karmaşık verilerin karmaşıklığına karşı da bir zaferdi. Deyim yerindeyse, “çöp içeri, çöp dışarı”. Temel verileri iyileştirmeye, dolayısıyla yüksek lisans eğitimlerini iyileştirmeye odaklanan yeni araçlar ortaya çıkıyor.


Yüksek Lisans'ın Çifte Mücadelesi

"Geniş Dil Modelleri" terimi iki büyük zorluğu bünyesinde barındırmaktadır. İlk olarak, çok büyük miktarda veri. Milyonlarca kitabı, blogu, sosyal medya gönderisini, video transkriptini ve daha fazlasını kapsayan GPT-4 için bir petabayttan (bir milyon gigabayt) fazla veriden bahsediyoruz. Bu devasa ölçek, büyük bir potansiyel sunuyor ancak aynı zamanda önemli lojistik hususları da beraberinde getiriyor.


İkincisi, doğal dilin karmaşıklığı. Bağlama bağlı, belirsiz ve çeşitli dil verileri, en iyi algoritmaların bile evcilleştirmeye çalıştığı vahşi bir canavardır. Tüm bu verileri doğru bir şekilde etiketlemek imkansızdır; bu, kaçınılmaz olarak, en son teknolojiye sahip LLM'lerin bile tonlarca yanlış etiketlenmiş veri üzerinde eğitildiği anlamına gelir.


Bu zorluklarla yüzleşirken, yapay zekanın yapabilecekleri konusunda gerçek bir sıçramayı mümkün kılan yeni veri merkezli araçlar ve metodolojiler ortaya çıktı. Cleanlab ve diğerleri gibi çözümler, çeşitli verileri toplamanın, kalite kontrolünü otomatikleştirmenin ve dili yapay zeka modellerine uygun bir biçimde işlemenin yollarını sunmaya başladı.


Bu araçlar yalnızca artan iyileştirmeler sunmakla kalmıyordu; Yapay zeka veri işleme yaklaşımını temelden yeniden şekillendirdiler. Büyük ölçekli dil verilerinin işlenmesi görevini manuel, hataya açık bir süreçten otomatik, hassas bir sürece dönüştürdüler, alanı demokratikleştirdiler ve ilerlemelerin benzeri görülmemiş bir hızda ilerlemesini sağladılar.


Veri Merkezli Yapay Zeka Neden Gerekli? (Python Demosu ile)

Yapay zekada, gerçek dünyadaki veri kümeleri %7-50 arasında değişen açıklama hataları içerir. Bu kusurlar eğitim ve değerlendirmeyi önemli ölçüde engellemektedir. Veri merkezli yapay zeka, veri kümesinin kalitesinin iyileştirilmesini vurguluyor.


Örneğin OpenAI'nin stratejisi bu vurguyu gösteriyor: “Tüm iyi verileri bırakmak yerine tüm kötü verileri filtrelemeye öncelik verdik. Bunun nedeni, modelimize yeni şeyler öğretmek için daha sonra her zaman daha fazla veriyle ince ayar yapabilmemizdir, ancak modelin zaten öğrendiği bir şeyi unutmasını sağlamak çok daha zordur."


Ancak verileri manuel olarak filtreleme yaklaşımı zaman alıcı ve pahalıdır. Cleanlab paketi, günümüzde veri merkezli yapay zeka uygulamaları için popüler olan açık kaynaklı bir çerçevedir. Etiket hataları, aykırı değerler, sapmalar ve daha fazlası gibi yaygın veri kümesi sorunlarını tespit etmek için eğitimli makine öğrenimi modelinizin çıktıları üzerinde veri kalitesi algoritmaları çalıştırmanıza olanak tanır.


Yalnızca birkaç satır kodla resim, metin, tablo ve ses gibi çeşitli veri türlerindeki sorunları otomatik olarak bulabilir ve tanımlayabilirsiniz. Cleanlab paketini kullanarak veri kümenizi ve modelinizi nasıl geliştireceğinize karar verebilir, ML modelinizi yeniden eğitebilir ve mevcut kodunuzda herhangi bir değişiklik yapmadan performansının arttığını görebilirsiniz.


Cleanlab Studio ise Cleanlab paketinin bir uzantısından daha fazlasıdır; gerçek dünyadaki veri kümelerindeki sorunları bulmak ve düzeltmek için tasarlanmış kodsuz bir platformdur. Yalnızca sorunları tespit etmekle kalmıyor, aynı zamanda veri iyileştirme ve düzeltme işlemlerini de daha da ileri götürüyor ve hatta ham verileri güvenilir ML veya Analytics'e dönüştürmenin neredeyse tüm zorlu kısımlarını otomatikleştiriyor.


Veri merkezli yapay zekanın gücünü göstermek için Cleanlab paketini kullanalım.


1. Verilerin hazırlanması ve ince ayar yapılması

Stanford Nezaket Veri Kümesiyle başlıyoruz. Eğitim ve test setlerinin yüklü olduğundan emin olun. Bu demoda, önce Cleanlab olmadan Davinci LLM'ye 3 sınıflı sınıflandırma için ince ayar yapacağız ve ardından veri merkezlilikle doğruluğu nasıl geliştirebileceğimizi göreceğiz. Bir modeli eğitmek için basit bir bash komutu çalıştırabiliriz.


!openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline"


Bu tamamlandığında, testin doğruluğunu görmek için fine_tunes.results uç noktasını sorgulayabiliriz.


!openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv

`df = pd.read_csv('baseline.csv')

baseline_acc = df.iloc[-1]['sınıflandırma/doğruluk']`


%63 doğrulukta sonuç alıyoruz. Bakalım bunu geliştirebilecek miyiz?


2. Tahmin Edilen Sınıf Olasılıklarını Elde Edin

Şimdi, yerleştirmeleri hesaplamak için OpenAI'nin API'sini kullanalım ve örnek dışı tahmin edilen sınıf olasılıklarını elde etmek için bir lojistik regresyon modeli uyduralım.


# Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding

embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values

# Get out-of-sample predicted class probabilities via cross-validation.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba")


Cleanlab, yalnızca bir satır kodla eğitim veri kümemizde hangi örneklerin etiket sorunlarına sahip olduğunu tahmin eder.


from cleanlab.filter import find_label_issues

Artık etiket sorunları olduğu tahmin edilen örneklerin indekslerini alabiliriz:


issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error


3. Etiket Sorunlarını Filtreleyin ve Yeniden Eğitin

Artık potansiyel olarak yanlış etiketlenmiş örneklerin indekslerini otomatik olarak çıkardık, böylece bunları kaldırabilir ve yeni bir sınıflandırıcı eğitebiliriz.


# Remove the label errors

train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl")


Şimdi daha iyi verilerle daha sağlam bir sınıflandırıcıyı eğitelim.


!openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped"


# Evaluate model on test data

!openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy']


Yalnızca veri kümesini herhangi bir değişiklik yapmadan otomatik olarak iyileştirerek son teknoloji ürünü ince ayar yapılabilir modeli (GPT-3, çünkü GPT-4'e ince ayar yapamayacağınız için) geliştirerek %66'nın üzerinde bir doğruluk elde ediyoruz. modele.


Cleanlab Studio ile yanlış etiketleri doğrudan kaldırmak yerine otomatik olarak düzeltmek de mümkündür, bu da doğruluğu daha da artırır. Cleanlab'ın bir kılavuzu bunun %77'ye kadar doğruluk gerektirdiğini gösteriyor.


Paket servis

Cleanlab gibi veri merkezli araçları kullanarak, verileri ve etiket sorunlarını etkili bir şekilde bulup düzeltebilir, böylece Davinci gibi Yüksek Lisans'ların performansında önemli iyileşmeler sağlayabilirsiniz. Bu yaklaşım, model mimarisini veya hiperparametreleri değiştirmez ve yalnızca eğitim verilerinin kalitesini artırmaya odaklanır.


Bu kılavuzda ana hatlarıyla belirtilen yaklaşım, GPT-5 gibi gelecekteki gelişmiş LLM'lerde bile yapay zeka modellerinde daha fazla doğruluk ve sağlamlığın kilidini açmanın anahtarı olabilir.