OpenAI'nin damıtma aracıyla LLM'leri nasıl damıtacağınızı öğrenin. Bu eğitim, Git komutları üretmek için GPT-4o ve GPT-4o-mini kullanılarak adım adım bir rehber sunar.
Bu eğitimde, OpenAI’nin model damıtma aracıyla başlamanıza yardımcı olacağım. Önce model damıtmanın temellerini ele alacağız, ardından OpenAI API’sini kullanarak örnek bir damıtma projesi yapacağız.
Model Damıtma Nedir?
Yetenekli, iyi eğitimli bir öğretmenin düşünme sürecini ve bilgisini bir öğrenciye aktardığını hayal edin. Model damıtmanın çalışma prensibi temelde budur.
Bu teknikte öğretmen, önceden eğitilmiş büyük bir modeldir; öğrenci ise öğretmenin çıktısını taklit etmeyi öğrenen daha küçük bir modeldir. Bu sayede öğrenci, daha az kaynakla öğretmene yakın bir düzeyde belirli görevleri yerine getirebilir.
Model damıtma, her birinin farklı yöntem ve hedefleri olan birçok biçimde gelir. Bazı durumlarda öğrencinin yalnızca daha büyük bir modelin çıktısını taklit etmesi gerekir. Başka durumlarda ise öğretmenin sorun çözme yaklaşımını daha küçük modele aşılamak isteriz. Nihayetinde amaç, büyük bir modelin yeteneklerinden verimli bir model kullanarak yararlanmaktır.
Bilgi damıtma
"Öğretmen" modelden "öğrenci" modele bilgi aktarmanın yaygın bir yolu, öğrenciyi öğretmen tarafından üretilmiş girişler ve bunlara karşılık gelen çıktılardan oluşan bir veri kümesi üzerinde ince ayar yapmaktır.
Bu denetimli öğrenme sürecinde, öğrenci model benzer girdilerle karşılaştığında öğretmenin yanıtlarını çoğaltmayı öğrenir.
Model damıtmanın faydaları
Damıtma süreci birçok avantajla birlikte gelir:
Düşük maliyet: Daha küçük modellerin kullanımı daha ucuzdur.
Daha hızlı yanıt: Küçük modellerin daha hızlı çıktılar üretmesi kullanıcı deneyimini iyileştirir.
Erişilebilirlik: Model, uç platformlar veya mobil cihazlar gibi sınırlı hesaplama kaynağına sahip ortamlarda kullanılabilir.
Damıtma hakkında daha fazla bilgi için şu makaleyi okuyabilirsiniz: LLM Damıtma Açıklaması.
OpenAI API ile Model Damıtma Nasıl Uygulanır
Bu bölümde, OpenAI platformunu kullanarak model damıtma örneğini inceleyeceğiz. Birincil odağımız kullanıcının talebine yönelik Git komutları üretmek olacak.
Önce OpenAI’nin küçük GPT-4o mini (öğrenci) modelinin bir veri kümesini oluşturacak ve çıktıları değerlendireceğiz.
Sonra aynı cümleleri çevirmek için GPT-4o (öğretmen) kullanacak ve öğretmenin ürettiği veri kümesiyle öğrenci modeli ince ayar yapacağız.
Son olarak, öğrenci modeli değerlendirmemiz ve gelişimi ölçmemiz gerekiyor.
Özetle şu adımları uygulayacağız:
Öğretmen ve öğrenci modelleri seçin
Veri kümenizi hazırlayın
Öğrenci için girdi/çıktı çiftleri üretin
Öğrencinin performansını değerlendirin
Öğretmen için girdi/çıktı çiftleri üretin
Öğrenciyi öğretmenin veri kümesiyle ince ayar yapın
İnce ayarlı modeli değerlendirin
Adım 1: Öğretmen ve öğrenci modelleri seçin
Model damıtmanın ilk adımı, hedeflenen göreve ve hesaplama bütçenize göre belirlenen öğretmeni ve öğrenciyi seçmektir.
Açık kaynak modellerle çalışırken farklı yetenek ve boyutlara sahip çeşitli LLM’ler bulunur. OpenAI’nin platformunda ise seçenekler sınırlıdır.
Örneğimizde daha küçük öğrenci modeli olarak GPT-4o miniyi ve öğretmen modeli olarak GPT-4oyu seçeceğiz.
GPT-4o-mini nispeten küçük bir modeldir ve öğrenci rolü için iyi bir adaydır. GPT-4o ise nispeten daha büyüktür ancak çok daha yeteneklidir ve öğrenci için verimli bir öğretmen olarak çalışabilir.
Başka seçenekler de mevcuttur ve modelleri değiştirmek damıtma projemizde minimum çaba gerektirecektir.
Adım 2: Veri kümenizi hazırlayın
Bu görev için veri kümeniz, öğrenci model için yeterince zorlayıcı ama öğretmen için o kadar zorlayıcı olmayacak nitelikte olmalıdır. Çeşitlilik, temsiliyet veya doğruluk gibi iyi bir veri kümesinin nitelikleri, model damıtmada da geçerlidir.
Öğrenci model üzerinde etkili olacak kadar büyük bir veri kümesine sahip olmak çok önemlidir. “Damıtma veri kümesi ne kadar büyük olmalı?” sorusunun net bir cevabı yoktur; hedef görevinizin karmaşıklığına ve öğretmen ile öğrenci olarak seçtiğiniz modellere bağlıdır.
OpenAI belgelerine göre, birkaç yüz örnek yeterli olabilirken, daha çeşitli binlerce örnek bazen daha iyi sonuçlar verebilir.
Bu yazıdaki veri kümemiz, bir JSON dosyasında saklanan 386 kullanıcı isteğinden oluşuyor (aynı şekilde bir Python listesi halinde de saklayabilirsiniz).
{
"requests": [
"Initialize a new Git repository in the current directory.",
"Clone the repository from GitHub to my local machine.",
"Create a new branch called 'feature-login'.",
...
"Show the differences between the working directory and the staging area.",
"Stage all modified and deleted files for commit.",
]
}Altyapı:
Adım 3: Öğrenci için girdi/çıktı çiftleri üretin (isteğe bağlı)
Veri kümemiz şu anda yalnızca girdilerden oluşuyor ve çıktı da üretmeliyiz. Öğrencinin çıktıları damıtma için gerekli değildir, ancak öğrenci modelin doğruluğu için bir başlangıç düzeyi (adım 4) elde etmemiz gerekir.
Aşağıdaki kodu, girdi veri kümesi üzerinde yineleme yapıp her biri için çıktı üretmek üzere kullanıyoruz:
defgenerate_responses():withopen(JSON_PATH,'r')asfile:
user_messages = json.load(file)for sentence in user_messages['requests']:# Call the OpenAI model gpt-4o-mini and store the response
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"system","content": system_prompt},{"role":"user","content": sentence
},],
store=True,
metadata={"task":"git"})
generate_responses()Altyapı:
OpenAI modelini çağırırken store=True kullandığımıza dikkat edin. Bu argüman, girdi/çıktı çiftlerini OpenAI panomuzda kaydedecek, böylece çıktıları kodla saklamamız gerekmeyecek.
Bu sohbet tamamlamalarını daha sonra tanımlayıp filtreleyebilmek için, client.chat.completions.create fonksiyonunu çağırırken meta verileri eklemeyi unutmayın. Bu meta verinin argümanları serbesttir.
Oluşturulan çıktıları OpenAI panomuzdaki Chat Completions bölümünde bulabilirsiniz.
Adım 4: Öğrencinin performansını değerlendirin (isteğe bağlı)
Model damıtma için kullanışlı bir başka OpenAI aracı da Evaluations aracıdır. Bu aracı, eğitimden önce öğrenci modelin performansını bir başlangıç ölçütü olarak değerlendirmek için kullanıyoruz. İnce ayarlı öğrenci modeli değerlendirirken de yine kullanacağız.
Bir önceki adımın sohbet tamamlamalarını filtreledikten sonra Evaluate düğmesine tıklayın. Şimdi test kriterleri eklememiz gerekiyor.
Girdi/çıktı çiftlerini değerlendirmek için çeşitli yöntemler vardır. Mevcut veri kümemizin OpenAI’nin sohbet tamamlamalarıyla otomatik olarak üretildiğini ve yalnızca girdiler ile çıktıları içerdiğini unutmayın. Ancak bu kriterlerden bazıları karşılaştırma için bir referans da gerektirir.
Bu referans, GPT-4o veya o1-preview gibi daha gelişmiş bir model tarafından üretilen çıktılar olabilir. Sohbetleri OpenAI’ye otomatik kaydetmek böyle bir referans sağlamamıza izin vermediğinden, yalnızca girdi ve çıktı gerektiren Criteria match veya Custom prompt yöntemleriyle sınırlıyız.
Diğer yöntemleri kullanmanız gerekiyorsa, OpenAI’nin sohbet tamamlamalarını kullanamaz ve kodla kendi JSON dosyanızı oluşturmanız gerekir. Bu karmaşık değildir, ancak bu yazıda buna girmeyeceğiz.
Değerlendirmeleri çalıştırdıktan kısa süre sonra sonuçlarınızı alacaksınız.
Adım 5: Öğretmen için girdi/çıktı çiftleri üretin
Öğrenci modeli ince ayar yapmak için öğretmen tarafından üretilmiş yüksek kaliteli bir veri kümesine ihtiyacımız var. Bu adım, adım 3 ile neredeyse aynıdır—yalnızca model argümanını gpt-4o-miniden gpt-4oya değiştirmeniz yeterlidir.
Adım 6: Öğrenciyi ince ayar yapın
Yine Chat Completions’ta, öğretmen model ve meta verilere göre filtreleyin. Ardından Distill düğmesini seçin. OpenAI’nin damıtma aracı özünde ince ayar aracıdır.
Temel model olarak öğrenciyi seçiyoruz. En iyi sonuçları elde etmek için hiperparametrelerle deney yapmak ve test etmek gerekir—otomatik olarak ayarlayın. Son olarak Create seçeneğini seçin ve ince ayarın tamamlanmasını bekleyin.
Adım 7: İnce ayarlı modeli değerlendirin
Tamamlandığında, bu kez model argümanı olarak ince ayarlı modeli kullanarak adım 3’teki kodu tekrar kullanacağız. İnce ayarlı modelin adı, ince ayar sayfanızda “Output model” olarak görüntülenir.
defgenerate_responses():withopen(JSON_PATH,'r')asfile:
user_messages = json.load(file)for sentence in user_messages['requests']:# Call the OpenAI model gpt-4o-mini and store the response
response = client.chat.completions.create(
model="ft:gpt-4o-mini-2024-07-18:personal:git:AF7QSF0m",
messages=[{"role":"system","content": system_prompt},{"role":"user","content": sentence
},],
store=True,
metadata={"task":"git"})
generate_responses()Altyapı:
Çıktıları üretmeyi tamamladıktan sonra, girdiler üzerinde yeni modelinizin yeteneğini değerlendirmek için değerlendirmeleri kullanın.
Sonuç
OpenAI’nin damıtma tarifi basit ama nettir. Özellikle, modelleri kendiniz ince ayarlama veya sonuçları değerlendirmek için kod kullanma derdi olmadan çalışmanıza yardımcı olur.
OpenAI’nin modelleri, küçük olanları bile, zaten oldukça gelişmiştir. Modeli ince ayar yapmadan önce hiperparametrelerle denemeler yapın, hem öğretmen hem de öğrenci için yeterli ve zorlayıcı istemler hazırlayın ve ince ayarlı değerlendirmeyi başlangıç değerlendirmesiyle karşılaştırın.
Yapay Zeka alanında yüksek lisans öğrencisi ve yapay zeka teknik yazarı. En yeni yapay zeka teknolojilerine dair içgörüler paylaşıyorum, ML araştırmalarını erişilebilir kılıyor ve sizi ön planda tutmak için karmaşık YZ konularını sadeleştiriyorum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
OpenAI API, Hugging Face ve LangChain dahil olmak üzere en yeni yapay zeka geliştirici araçlarıyla yapay zeka destekli uygulamalar oluşturmayı öğrenin.
API'leri ve açık kaynak kütüphanelerini kullanarak yapay zekayı yazılım uygulamalarına nasıl entegre edeceğinizi öğrenin. Yapay Zeka Mühendisi olma yolculuğunuza bugün başlayın!
OpenAI’nin yeni OpenAI model damıtma aracını denedim—minimum kodlama gerektiriyor ve veri kümesi oluşturmadan modelleri ince ayarlamaya ve performanslarını değerlendirmeye kadar tüm damıtma sürecini tek bir platformda yönetmemizi sağlıyor.
Bu eğitimde, OpenAI’nin model damıtma aracıyla başlamanıza yardımcı olacağım. Önce model damıtmanın temellerini ele alacağız, ardından OpenAI API’sini kullanarak örnek bir damıtma projesi yapacağız.
Model Damıtma Nedir?
Yetenekli, iyi eğitimli bir öğretmenin düşünme sürecini ve bilgisini bir öğrenciye aktardığını hayal edin. Model damıtmanın çalışma prensibi temelde budur.
Bu teknikte öğretmen, önceden eğitilmiş büyük bir modeldir; öğrenci ise öğretmenin çıktısını taklit etmeyi öğrenen daha küçük bir modeldir. Bu sayede öğrenci, daha az kaynakla öğretmene yakın bir düzeyde belirli görevleri yerine getirebilir.
Model damıtma, her birinin farklı yöntem ve hedefleri olan birçok biçimde gelir. Bazı durumlarda öğrencinin yalnızca daha büyük bir modelin çıktısını taklit etmesi gerekir. Başka durumlarda ise öğretmenin sorun çözme yaklaşımını daha küçük modele aşılamak isteriz. Nihayetinde amaç, büyük bir modelin yeteneklerinden verimli bir model kullanarak yararlanmaktır.
Bilgi damıtma
"Öğretmen" modelden "öğrenci" modele bilgi aktarmanın yaygın bir yolu, öğrenciyi öğretmen tarafından üretilmiş girişler ve bunlara karşılık gelen çıktılardan oluşan bir veri kümesi üzerinde ince ayar yapmaktır.
Bu denetimli öğrenme sürecinde, öğrenci model benzer girdilerle karşılaştığında öğretmenin yanıtlarını çoğaltmayı öğrenir.
Model damıtmanın faydaları
Damıtma süreci birçok avantajla birlikte gelir:
Damıtma hakkında daha fazla bilgi için şu makaleyi okuyabilirsiniz: LLM Damıtma Açıklaması.
OpenAI API ile Model Damıtma Nasıl Uygulanır
Bu bölümde, OpenAI platformunu kullanarak model damıtma örneğini inceleyeceğiz. Birincil odağımız kullanıcının talebine yönelik Git komutları üretmek olacak.
Önce OpenAI’nin küçük GPT-4o mini (öğrenci) modelinin bir veri kümesini oluşturacak ve çıktıları değerlendireceğiz.
Sonra aynı cümleleri çevirmek için GPT-4o (öğretmen) kullanacak ve öğretmenin ürettiği veri kümesiyle öğrenci modeli ince ayar yapacağız.
Son olarak, öğrenci modeli değerlendirmemiz ve gelişimi ölçmemiz gerekiyor.
Özetle şu adımları uygulayacağız:
Adım 1: Öğretmen ve öğrenci modelleri seçin
Model damıtmanın ilk adımı, hedeflenen göreve ve hesaplama bütçenize göre belirlenen öğretmeni ve öğrenciyi seçmektir.
Açık kaynak modellerle çalışırken farklı yetenek ve boyutlara sahip çeşitli LLM’ler bulunur. OpenAI’nin platformunda ise seçenekler sınırlıdır.
Örneğimizde daha küçük öğrenci modeli olarak GPT-4o miniyi ve öğretmen modeli olarak GPT-4oyu seçeceğiz.
GPT-4o-mini nispeten küçük bir modeldir ve öğrenci rolü için iyi bir adaydır. GPT-4o ise nispeten daha büyüktür ancak çok daha yeteneklidir ve öğrenci için verimli bir öğretmen olarak çalışabilir.
Başka seçenekler de mevcuttur ve modelleri değiştirmek damıtma projemizde minimum çaba gerektirecektir.
Adım 2: Veri kümenizi hazırlayın
Bu görev için veri kümeniz, öğrenci model için yeterince zorlayıcı ama öğretmen için o kadar zorlayıcı olmayacak nitelikte olmalıdır. Çeşitlilik, temsiliyet veya doğruluk gibi iyi bir veri kümesinin nitelikleri, model damıtmada da geçerlidir.
Öğrenci model üzerinde etkili olacak kadar büyük bir veri kümesine sahip olmak çok önemlidir. “Damıtma veri kümesi ne kadar büyük olmalı?” sorusunun net bir cevabı yoktur; hedef görevinizin karmaşıklığına ve öğretmen ile öğrenci olarak seçtiğiniz modellere bağlıdır.
OpenAI belgelerine göre, birkaç yüz örnek yeterli olabilirken, daha çeşitli binlerce örnek bazen daha iyi sonuçlar verebilir.
Bu yazıdaki veri kümemiz, bir JSON dosyasında saklanan 386 kullanıcı isteğinden oluşuyor (aynı şekilde bir Python listesi halinde de saklayabilirsiniz).
Adım 3: Öğrenci için girdi/çıktı çiftleri üretin (isteğe bağlı)
Veri kümemiz şu anda yalnızca girdilerden oluşuyor ve çıktı da üretmeliyiz. Öğrencinin çıktıları damıtma için gerekli değildir, ancak öğrenci modelin doğruluğu için bir başlangıç düzeyi (adım 4) elde etmemiz gerekir.
Aşağıdaki kodu, girdi veri kümesi üzerinde yineleme yapıp her biri için çıktı üretmek üzere kullanıyoruz:
OpenAI modelini çağırırken
store=Truekullandığımıza dikkat edin. Bu argüman, girdi/çıktı çiftlerini OpenAI panomuzda kaydedecek, böylece çıktıları kodla saklamamız gerekmeyecek.Bu sohbet tamamlamalarını daha sonra tanımlayıp filtreleyebilmek için,
client.chat.completions.createfonksiyonunu çağırırken meta verileri eklemeyi unutmayın. Bu meta verinin argümanları serbesttir.Oluşturulan çıktıları OpenAI panomuzdaki Chat Completions bölümünde bulabilirsiniz.
Adım 4: Öğrencinin performansını değerlendirin (isteğe bağlı)
Model damıtma için kullanışlı bir başka OpenAI aracı da Evaluations aracıdır. Bu aracı, eğitimden önce öğrenci modelin performansını bir başlangıç ölçütü olarak değerlendirmek için kullanıyoruz. İnce ayarlı öğrenci modeli değerlendirirken de yine kullanacağız.
Bir önceki adımın sohbet tamamlamalarını filtreledikten sonra Evaluate düğmesine tıklayın. Şimdi test kriterleri eklememiz gerekiyor.
Girdi/çıktı çiftlerini değerlendirmek için çeşitli yöntemler vardır. Mevcut veri kümemizin OpenAI’nin sohbet tamamlamalarıyla otomatik olarak üretildiğini ve yalnızca girdiler ile çıktıları içerdiğini unutmayın. Ancak bu kriterlerden bazıları karşılaştırma için bir referans da gerektirir.
Bu referans, GPT-4o veya o1-preview gibi daha gelişmiş bir model tarafından üretilen çıktılar olabilir. Sohbetleri OpenAI’ye otomatik kaydetmek böyle bir referans sağlamamıza izin vermediğinden, yalnızca girdi ve çıktı gerektiren Criteria match veya Custom prompt yöntemleriyle sınırlıyız.
Diğer yöntemleri kullanmanız gerekiyorsa, OpenAI’nin sohbet tamamlamalarını kullanamaz ve kodla kendi JSON dosyanızı oluşturmanız gerekir. Bu karmaşık değildir, ancak bu yazıda buna girmeyeceğiz.
Değerlendirmeleri çalıştırdıktan kısa süre sonra sonuçlarınızı alacaksınız.
Adım 5: Öğretmen için girdi/çıktı çiftleri üretin
Öğrenci modeli ince ayar yapmak için öğretmen tarafından üretilmiş yüksek kaliteli bir veri kümesine ihtiyacımız var. Bu adım, adım 3 ile neredeyse aynıdır—yalnızca
modelargümanını gpt-4o-miniden gpt-4oya değiştirmeniz yeterlidir.Adım 6: Öğrenciyi ince ayar yapın
Yine Chat Completions’ta, öğretmen model ve meta verilere göre filtreleyin. Ardından Distill düğmesini seçin. OpenAI’nin damıtma aracı özünde ince ayar aracıdır.
Temel model olarak öğrenciyi seçiyoruz. En iyi sonuçları elde etmek için hiperparametrelerle deney yapmak ve test etmek gerekir—otomatik olarak ayarlayın. Son olarak Create seçeneğini seçin ve ince ayarın tamamlanmasını bekleyin.
Adım 7: İnce ayarlı modeli değerlendirin
Tamamlandığında, bu kez
modelargümanı olarak ince ayarlı modeli kullanarak adım 3’teki kodu tekrar kullanacağız. İnce ayarlı modelin adı, ince ayar sayfanızda “Output model” olarak görüntülenir.Çıktıları üretmeyi tamamladıktan sonra, girdiler üzerinde yeni modelinizin yeteneğini değerlendirmek için değerlendirmeleri kullanın.
Sonuç
OpenAI’nin damıtma tarifi basit ama nettir. Özellikle, modelleri kendiniz ince ayarlama veya sonuçları değerlendirmek için kod kullanma derdi olmadan çalışmanıza yardımcı olur.
OpenAI’nin modelleri, küçük olanları bile, zaten oldukça gelişmiştir. Modeli ince ayar yapmadan önce hiperparametrelerle denemeler yapın, hem öğretmen hem de öğrenci için yeterli ve zorlayıcı istemler hazırlayın ve ince ayarlı değerlendirmeyi başlangıç değerlendirmesiyle karşılaştırın.
Kendi model damıtmanızla işe başlamadan önce şu iki OpenAI kaynağını okumanızı tavsiye ederim: API’de OpenAI Model Damıtma ve Model Damıtma Dokümanı.