İnce Ayar Yaptığım Model OpenAI GPT-4’ü Geçti
(mlops.systems)- ISAF basın bültenlerinden yapılandırılmış veri çıkarma yapılan 724 testte, birden fazla ince ayarlı model GPT-4 ailesinden daha yüksek doğruluk elde etti
- Karşılaştırmaya GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo ile TinyLlama, Mistral, Llama3, Solar ve GPT-3.5 tabanlı ince ayarlı modeller dahil edildi
- OpenAI modelleri her zaman geçerli JSON üretti; Mistral ve Llama3 ince ayarları da kararlıydı, ancak TinyLlama’da şablona bağlı olarak eksik değerler ve JSON kalitesi büyük farklılık gösterdi
- Nihai toplamda OpenPipe ile ince ayar yapılmış Mistral-7B birinci oldu; Solar LLM ve Llama3-7B onu çok küçük farkla izledi
- İnce ayar; gizlilik, kontrol ve maliyet iyileştirme potansiyeli sunar, ancak farklı ortamlara dağılmış modellerin çıkarımını, değerlendirmesini ve yeniden üretilebilirliğini yönetmenin MLOps karmaşıklığını da artırır
Deneyin hedefi ve veri kümesi
- Hedef, ISAF basın bültenlerinden etkinlik bilgisi çıkarma görevinde ince ayarlı LLM doğruluğunu değerlendirmekti
- Veri Hugging Face Hub’daki herkese açık bir depoda bulunuyor; değerlendirme, modelin görmediği test split üzerinde yapıldı
- Test verisi 724 satırdan oluşuyor
- Alanlar arasında
name,eventrefnumber,text,StartDate,eventtype,province,targetgroup,minkilled,mincaptured,killq,captureq,killcaptureraid,airstrike,noshotsfired,minleaderskilled,minleaderscapturedvb. yer alıyor
- Her satır, doğrulamayı ve işlemeyi kolaylaştırmak için Pydantic nesnesine dönüştürüldü
- Model çıktısında aşağıdaki JSON yapısı bekleniyor
namestart_dateevent_typeprovincetarget_groupmin_killedmin_capturedkillqcaptureqkillcaptureraidairstrikenoshotsfiredmin_leaders_killedmin_leaders_captured
OpenAI referans modellerinin değerlendirme yöntemi
- Referans karşılaştırma olarak GPT-4o, GPT-4 Turbo ve GPT-3.5 Turbo kullanıldı
- GPT modelleri, ince ayarlı modellerle aynı prompt’u doğrudan kullanamadığı için daha uzun bir prompt gerekti
- Çıkarılacak alanların listesi açıkça belirtildi
- Etkinlik tipi, vilayet ve hedef grup için izin verilen değerler sağlandı
- Sayısal anotasyon kuralları dahil edildi
- Örnek basın bülteni ve beklenen JSON çıktısı birlikte eklendi
- Sayısal anotasyon kurallarında şu ölçütler kullanıldı
a couple2 olarak yorumlanırseveralen az 3 olarak yorumlanıra few,some,a group,a small group,multipleen az 3 olarak yorumlanırnumerous,a handfulen az 4 olarak yorumlanıra large numberen az 5 olarak yorumlanırfacilitatorleader değildir
- Toplu tahminler asenkron çalıştırıldı ve GPT-3.5 Turbo’nun rate limit’i nedeniyle yeniden deneme mantığı eklendi
- Tahmin sonuçları her etkinliğin
predictionsalanında model adına göre kaydedildi
İnce ayarlı model yapılandırması
- OpenAI referans model tahminlerinden sonra, daha önce ince ayar yapılmış yerel modellerin ve tek tıkla ince ayar hizmetlerine dayalı modellerin tahminleri aynı veri kümesine eklendi
- Dahil edilen ince ayarlı modeller şunlardı
tinyllama-templatefreetinyllama-sharegptmistral-lora-templatefreefinetuned-openai-gpt-3.5-turbo-1106finetuned-mistral-7b-optimised-openpipeft-solar-1-mini-chat-240612-predibasefinetuned-llama3-7b-32k-openpipe
- Mistral yerel ince ayarlı modeli yerelde çalıştırmak zor olduğu için çıkarım Modal’ın A100 ortamında yapıldı
- Sonraki değerlendirmede neredeyse tüm öğelerde başarısız oldu
- Grafikte
mistral-lora-templatefreeolarak gösteriliyor
- OpenAI’ın tek tıkla ince ayar hizmetiyle
gpt-3.5-turbo-1106modeline ince ayar yapıldı - OpenPipe ile Mistral 7B, Mistral 8x7B ve Llama3 model tahminleri oluşturuldu
- Predibase’de Upstage’in Solar LLM tabanlı modeli değerlendirildi
- Solar LLM, yapılandırılmış veri çıkarma gibi ince ayarın sık kullanıldığı görevlerde güçlü olacak şekilde eğitilmiş bir model olarak tanıtılıyor
- Temel modelin Hugging Face Hub’daki
upstage/SOLAR-10.7B-v1.0olduğu tahmin ediliyor
- Qwen2’nin Predibase çıkarımı çalışmadığı için bu değerlendirmeden çıkarıldı
- Nihai tahmin veri kümesi Hugging Face Hub’daki herkese açık veri kümesinde yayımlandı
JSON geçerliliği ve eksik değerler
- İlk değerlendirme, her model çıktısının geçerli JSON olup olmadığını kontrol ederek yapıldı
- OpenAI modelleri her seferinde geçerli JSON üretti
- İnce ayarlı Mistral ve Llama3 modelleri de kararlı biçimde geçerli JSON verdi
- TinyLlama’da şablon seçimine bağlı olarak sonuçlar büyük ölçüde değişti
tinyllama-sharegptte 38 eksik değer var- Eksik değerler olmasaydı 724 tahminin ve geçerli JSON’un tamamına sahip olacağı değerlendiriliyor
- Eksik değer dökümü şu şekilde
gpt-4o: 0gpt-4-turbo: 0gpt-3.5-turbo: 0tinyllama-templatefree: 0tinyllama-sharegpt: 38finetuned-openai-gpt-3.5-turbo-1106: 0finetuned-llama3-7b-32k-openpipe: 0mistral-lora-templatefree: 0finetuned-mistral-7b-optimised-openpipe: 0ft-solar-1-mini-chat-240612-predibase: 0
Alan bazında doğruluk
- Doğruluk değerlendirmesi toplam 13 özellik üzerinden yapıldı
start_dateprovincetarget_groupevent_typemin_killedmin_capturedkillqcaptureqkillcaptureraidairstrikenoshotsfiredmin_leaders_killedmin_leaders_captured
- Tüm grafiklerde toplam görev sayısı 724
-
start_datestart_datedoğruluğunda Solar ve ince ayarlı GPT-3.5 modeli en iyi performansı gösterdi- Skorlar şöyle
gpt-4o: 527gpt-4-turbo: 522gpt-3.5-turbo: 492tinyllama-templatefree: 231tinyllama-sharegpt: 479finetuned-openai-gpt-3.5-turbo-1106: 646finetuned-llama3-7b-32k-openpipe: 585mistral-lora-templatefree: 0finetuned-mistral-7b-optimised-openpipe: 636ft-solar-1-mini-chat-240612-predibase: 649
- En iyi model bile tarihi 75 kez yanlış çıkardı; tarih çıkarma hâlâ geliştirmeye açık
-
province- Vilayet (
province) tahmininde ince ayarlı modeller OpenAI modellerinin önüne geçti - Skorlar şöyle
gpt-4o: 649gpt-4-turbo: 645gpt-3.5-turbo: 595tinyllama-templatefree: 335tinyllama-sharegpt: 660finetuned-openai-gpt-3.5-turbo-1106: 704finetuned-llama3-7b-32k-openpipe: 707mistral-lora-templatefree: 0finetuned-mistral-7b-optimised-openpipe: 711ft-solar-1-mini-chat-240612-predibase: 704
- Vilayet (
-
target_groupveevent_typetarget_group, birden fazla grup içerebildiği için puan, modelin doğru gruplar içinde tutturduğu oranla hesaplandı- İnce ayarlı modeller hedef grup belirleme konusunda OpenAI modellerinden anlamlı ölçüde daha iyi performans gösterdi
- Ancak eğitim verisinde olmayan yeni bir grup eklenirse performans düşebilir
event_type, anlamsal olarak örtüşen kategoriler içerdiği için insan anotatörler açısından da zor bir öğe olarak ele alınıyor- İnce ayarlı modeller bu zor öğede de iyi performans gösterdi
-
Sayısal ve Boolean alanlar
min_killedgibi sayısal tahminlerde ince ayarlı modeller ile OpenAI modelleri arasındaki fark azaldı- Mistral en yüksek skoru aldı, ancak fark büyük değildi; OpenAI modelleri de bu öğede iyi performans gösterdi
- Uzun prompt’a eklenen sayısal anotasyon kurallarının yardımcı olmuş olması mümkün
killqgibi Boolean özelliklerde çoğu model yüksek doğruluk kaydetti- İnce ayarlı Mistral bu öğede de GPT-4o’nun en yüksek skorunu aştı
killcaptureraid, OpenAI modellerinin dezavantajlı göründüğü bir öğe oldukill-capture raid, etiketlemede belirli bir biçimde kullanılan uzmanlık terimiydi- OpenAI modelleri bu etiketleme karar ölçütünü bilmiyor
noshotsfired, belirli bir döneme ait basın bültenlerinin “ateş açılmadığı” olgusunu vurgulamasından ortaya çıkan bir alan- OpenAI modelleri beklenenin tersine bir performans sıralaması gösterdi; nedeni anlamak için ek inceleme gerekiyor
min_leaders_killedvemin_leaders_capturedalanlarında genel olarak yüksek skorlar elde edildi- LLM’lerin sayılarda zayıf olduğu yönündeki yaygın algının aksine, bu görevde yüksek performans görüldü; yine de en iyi sonuçları ince ayarlı modeller verdi
Nihai toplam sonuçlar
- 13 ayrı doğruluk skoru toplanıp ortalaması alınarak 0–100 ölçeğinde nihai toplam doğruluk hesaplandı
- Nihai sonuçlarda ince ayarlı modeller OpenAI GPT ailesi modellerini geçti
- TinyLlama bile GPT-3.5 Turbo’dan daha yüksek toplam doğruluk gösterdi
- En iyi performanslı model, OpenPipe üzerinde ince ayar yapılmış Mistral-7B oldu
- Solar LLM ve Llama3-7B, Mistral-7B’yi çok küçük farkla izledi
- Yapılandırılmış veri çıkarma ince ayarında Mistral-7B, Solar 7B ve Llama3-7B ile başlayıp hangi modelin en uygun olduğunu karşılaştırmak makul bir yaklaşım gibi görünüyor
- Yalnızca doğruluğa bakıldığında bu üç model neredeyse benzer olabilir
- Model sunumu, verimlilik ve gecikme süresinde ayrı trade-off’lar olabilir
İnce ayarın avantajları ve maliyetleri
- OpenAI modellerinin performansı da prompt’a daha fazla örnek ve kural eklenerek artırılabilir
- Ancak prompt uzadıkça istek başına maliyet artar
- Kendi ince ayarlı modeliniz şu avantajları sağlar
- Gizli bilgileri OpenAI’a göndermek zorunda kalmama sayesinde veri gizliliği
- Daha küçük modelden kaynaklanabilecek potansiyel performans iyileşmesi
- Daha fazla kontrol
- Maliyet iyileştirme olasılığı
- Maliyet karşılaştırması şu anda net biçimde kesinleştirilemez
- Büyük bulut sağlayıcıları ölçek ekonomisinden yararlanabilir
- Uzun vadede tekrarlı çıkarım yapılan gerçek kullanım senaryolarında kendi modelinin maliyet mantığı daha ikna edici olabilir
- OpenAI çağrılarını iyileştirmek için çok sayıda örnek ve açıklama eklemek gerektiğinden sorgu başına maliyet artabilir
Değerlendirme operasyonu ve MLOps karmaşıklığı
- İnce ayar, görece az ayarla GPT-4’ten daha iyi performans verdi
- Kullanılan modeller, eldeki verilerle oluşturulan ilk ince ayarlı modellerdi
- Çoğunlukla varsayılan ayarlar kullanıldı
- Bundan sonra Solar, Llama3 ve Mistral 7B modellerine odaklanma planı var
- Değerlendirme Jupyter notebook merkezli olarak uygulandı ve operasyon süreci zahmetliydi
- Bazı modeller yerelde çalışıyor
- Bazı modeller farklı hizmet ve ortamlara dağıtılmış durumda
- 724 satır üzerinde döngüyle ilerlemek yavaştı
- Bir sonraki iterasyonda değerlendirmeyi yerelde çalıştırılabilir hâle getirmek, önce verinin bazı dilimlerini değerlendirip ardından tüm veriye genişletmek gerekiyor
- Aynı projede birden fazla modelle çalışırken standart çıkarım arayüzü gerekiyor
- Modeller birden fazla konuma dağılmışsa, ince ayar ve güncellemeler tekrarlanıyorsa ve veri sürekli değişiyorsa, bunları yönetecek bir sisteme ihtiyaç var
- İnce ayarlı LLM’lerin başlıca trade-off’u, kararlı ve tekrarlanabilir operasyon için çok sayıda bileşeni yönetme gerekliliği
Değerlendirmenin sağladığı değer ve sonraki adımlar
- Değerlendirmeyi uygulamak zahmetliydi, ancak eğitim verisi veya model iyileştirmelerinin gerçekten ilerleme sağlayıp sağlamadığını görmek için göreve özgü bir ölçüt sundu
- Değerlendirme yoksa iyileşme olup olmadığını anlamak zor
- Birden fazla aşırı özelleşmiş modeli ayrı ayrı oluşturma fikri şu an için net bir sonraki adım değil
- Örneğin: yalnızca yakalanan kişi sayısını iyi tahmin eden ayrı bir model
- Mevcut model performansına bakıldığında bu yaklaşımın doğruluğu büyük ölçüde artırıp artırmayacağı belirsiz
- Öncelikli sonraki adım, doğruluk dışındaki değerlendirmeleri çalıştırmak
- Önceki yazıda bahsedilen out-of-domain veri değerlendirmesi buna örnek
- Tamamen farklı konudaki sahte verilerde nasıl davrandığını görmek istiyorum
- Bir başka sonraki adım, ilk 3 modelin LLM serving tarafını daha derinlemesine incelemek
- LLM serving, LLM olmayan model serving’den farklı araçlara, trade-off’lara ve tekniklere sahip
- Sorunun daha derinine inilecekse, yanlış örnekleri Lilac veya Argilla gibi web arayüzlerine yükleyip hata örüntülerini analiz etmek yararlı olur
- Hata senaryolarını anlamak, doğruluğu iyileştirmede ince ayar parametrelerini kurcalamaktan daha faydalı olabilir
Henüz yorum yok.