Kurs
OpenAI’nin en gelişmiş modeli Generative Pre-trained Transformer 4 (GPT-4), Mart 2023’te piyasaya sürülerek yapay zekâda yeni bir eşiği temsil etti ve yetenekler için yeni bir ölçüt sundu. ChatGPT Plus, OpenAI API ve Microsoft Copilot üzerinden sunulan GPT-4, özellikle metinle birlikte görselleri de işleyebilen GPT-4V sayesinde çok kipli (multimodal) yetenekleriyle öne çıkarak pek çok alanda yenilikçi uygulamaların önünü açtı.
GPT-4’ün ilerlemesinin merkezinde; internetten ve lisanslı kaynaklardan derlenen geniş veri yığınları üzerinde yoğun biçimde önceden eğitilmiş, insan geri bildirimi ile yapay zekâ destekli pekiştirmeli öğrenmenin harmanıyla ince ayardan geçirilmiş dönüştürücü (transformer) tabanlı çerçevesi yer alır. Bu yaklaşım, modelin insanî etik standartlarla ve politikalara uyumla daha iyi hizalanmasını amaçlar.
GPT-4, selefi GPT-3e göre ilerleme kaydetse de, Büyük Dil Modelleri ve Üretken Yapay Zekâdaki karmaşık zorlukları vurgulayan bazı sınırlılıkları miras alır. Bu zorlukların bir kısmı, bu eğitimin de konusu olan ince ayar (Fine-tuning) süreciyle ele alınabilir. Bu eğitimin hedefleri şunlardır:
- İnce ayarın ne olduğunu ve ne zaman kullanılacağını anlamak
- İnce ayarın yaygın kullanım alanları
- OpenAI’nin ince ayar API’sinin Python’da adım adım uygulanması.
Bununla birlikte, GPT-4 için ince ayarın şu anda yalnızca deneysel erişimde olduğunu ve uygun geliştiricilerin fine-tuning arayüzü üzerinden erişim talep edebileceğini not etmek gerekir. Yine de, burada ele alınan ince ayar teknikleri tüm GPT modelleri için geçerlidir.
Fine-tuning (İnce Ayar) Nedir?
İnce ayar, önceden eğitilmiş modelleri (ör. GPT-4) belirli görevler veya alanlar için rafine eden gelişmiş bir süreçtir; modelin, çeşitli veri kümeleri üzerinde yapılan ilk eğitim sırasında edindiği kapsamlı temel bilgiden yararlanır. Bu süreç, göreve özgü veriler temelinde modelin parametrelerini ayarlayarak performansını artırır ve belirli uygulamaları daha yüksek doğruluk ve verimle ele almasını sağlar.
İnce ayarın etkisine dair açıklayıcı bir örnek, modelin uzmanlaşmış sorulara verdiği yanıtların zenginleştirilmesidir. Örneğin, önceden eğitilmiş bir model “Gökyüzü neden mavidir?” sorusuna temel bir açıklama sunabilir. İnce ayarla bu yanıt, ayrıntılı bilimsel bir bağlamla zenginleştirilerek eğitim platformları gibi uzman uygulamalar için daha uygun hale getirilebilir.
İnce ayar yöntemleri, istenen yanıtları örneklerle göstererek modellerin eğitildiği yönerge temelli ince ayardan, yalnızca parametrelerin bir alt kümesini güncelleyerek hesaplama kaynaklarını koruyan ve yıkıcı unutmayı önlemeye yardımcı olan parametre-etkin ince ayara (PEFT) kadar uzanır.
Buna karşılık, Retrieval Augmented Generation (RAG) farklı bir yaklaşımı temsil eder. RAG, üretim sürecinde haricî kaynaklardan alınan bilgileri entegre ederek üretilen içeriğin kalitesini artırmak için alıma dayalı ve üretken modellerin unsurlarını birleştirir.
İnce ayar, mevcut modelleri belirli görevlere optimize etmeye odaklanırken, RAG içerik üretim sürecini zenginleştirmek için dış bilgiyi entegre eder.
İnce ayar ile RAG arasında seçim, uygulamanın özel gereksinimlerine bağlıdır; güncel bilgi ihtiyacı, mevcut hesaplama kaynakları ve istenen görev uzmanlık düzeyi gibi etkenler belirleyicidir. İnce ayar, önceden eğitilmiş modellerin geniş bilgi tabanını belirli görevler için doğrudan kullanma olanağı sunarken; RAG, modelin kullandığı bilginin güncelliğini ve doğruluğunu dinamik biçimde sağlamaya odaklanır.
İnce Ayarı Ne Zaman Kullanmalı?
OpenAI’nin metin üretim modellerinde ince ayar, modelleri belirli ihtiyaçlara göre uyarlamak için güçlü bir yöntemdir; ancak ciddi zaman ve kaynak gerektirir. İnce ayara başlamadan önce, istem mühendisliği, istem zincirleme (karmaşık görevleri daha basit, sıralı istemlere bölmek) ve fonksiyon kullanımını deneyerek model performansını en üst düzeye çıkarmayı denemek tavsiye edilir. Bunun birkaç nedeni vardır:
- Modeller başlangıçta bazı görevlerde zorlanabilir; ancak doğru istemleri tasarlamak çıktıları ciddi ölçüde iyileştirebilir ve çoğu durumda ince ayarı gereksiz kılabilir.
- İstemleri ayarlamak ve istem zincirleme veya fonksiyon çağırma gibi stratejiler kullanmak anında geri bildirim sağlar ve hızlı yinelemeye olanak tanır. Buna karşın, ince ayar; veri kümeleri oluşturmayı ve modelleri eğitmeyi gerektirir ve daha uzun sürer.
- İnce ayar kaçınılmaz hale gelse dahi, istem mühendisliğiyle yapılan ön hazırlık boşa gitmez. İyi tasarlanmış istemleri ince ayar sürecine dahil etmek veya ince ayar teknikleriyle birleştirmek çoğu zaman en iyi sonuçları verir.
İnce Ayarın Yaygın Kullanım Alanları
İnce ayar özellikle şu senaryolarda faydalıdır:
- Çıktı özelliklerini özelleştirme. Modelin belirli bir üslup, ton, format veya diğer nitel özelliklere uymasını istediğinizde, ince ayar yanıtları buna göre şekillendirmeye yardımcı olur.
- Güvenilirliği artırma. Modelin sürekli olarak istenen türde çıktılar üretmesinin kritik olduğu uygulamalarda, ince ayar güvenilirliğini iyileştirebilir.
- Karmaşık istemleri ele alma. Model karmaşık talimatları izlemekte başarısız oluyorsa, ince ayar bu tür istemleri daha etkili anlamasına ve uygulamasına yardımcı olabilir.
- Kenar durumlarını yönetme. İnce ayar, modelin çok sayıda kenar durumunu belirli ve önceden tanımlanmış biçimlerde ele almasını sağlayarak esnekliğini artırır.
- Yeni beceri veya görevler öğrenme. Bir istemle anlatılması güç yeni bir beceri ya da görevi modele kazandırırken, ince ayar gerekli yetkinlikleri sağlayabilir.
Python Kullanarak OpenAI’nin GPT Modellerine İnce Ayar Uygulama: Adım Adım Rehber
OpenAI modellerinin tescilli yapısı nedeniyle, herhangi bir OpenAI modeline ince ayar uygulamak istiyorsanız OpenAI’nin ince ayar API’sini kullanmanız gerekir. Bu süreç, modeli eğitmek için verinizi OpenAI sunucularına yüklemeyi içerir.
Şu anda API üzerinden yalnızca aşağıdaki modeller ince ayarı desteklemektedir.
- gpt-3.5-turbo-0125,
- gpt-3.5-turbo-1106,
- gpt-3.5-turbo-0613,
- babbage-002,
- davinci-002
GPT-4 için ince ayar deneysel erişimdedir; uygun geliştiriciler fine-tuning arayüzü üzerinden erişim talep edebilir. Kullanılan modelden bağımsız olarak, ince ayar süreci ve bu eğitimdeki kod değişmez.
OpenAI GPT Modellerinde İnce Ayar İçin 6 Adım
1. Eğitim verisini hazırlama
Bu en önemli adımdır. İnce ayarlı bir modelin kalitesi, modeli ince ayarlamak için oluşturacağınız verilere doğrudan bağlıdır. OpenAI API için verinin jsonl formatında saklanması gerekir.
JSONL, her satırın ayrı bir JSON nesnesi olduğu metin tabanlı bir formattır; bu da büyük veri kümelerini satır satır işlemeye uygun hale getirir. Bu format, yapısını kaybetmeden kolayca tekil kayıtlara bölünebilen verileri işlemek için özellikle kullanışlıdır.
Örnek:
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
Bu eğitim için yalnızca beş örnek içeren örnek veriler oluşturdum. Veriler, makine öğrenimiyle ilgili çeşitli konulardaki sorulardan ve Shakespeare üslubunda yanıtlarından oluşuyor.
Bu eğitim için oluşturduğum örnek veri:
{"messages": [{"role": "system", "content": "You are teaching assistant for Machine Learning. You should help to user to answer on his question."}, {"role": "user", "content": "What is machine learning?"}, {"role": "assistant", "content": "'Tis but the art of teaching machines to think, to learn from data most fine, and decisions to link."}]}
{"messages": [{"role": "system", "content": "You are teaching assistant for Machine Learning. You should help to user to answer on his question."}, {"role": "user", "content": "How doth neural networks work?"}, {"role": "assistant", "content": "They're like the brains of yon digital beast, with layers many, and nodes that cease."}]}
2. openai kütüphanesini kurma ve bir API belirteci ayarlama
OpenAI API kullanarak bir ince ayar işi oluşturmanın ilk adımı dosyayı yüklemektir. Bu API’yi kullanmak için Python’da openai kütüphanesinin kurulu olması gerekir.
!pip install openai
Şimdi platform.openai.com hesabınıza giriş yapın ve bir API belirteci (token) üretin:

Ardından bu belirteci os kütüphanesini kullanarak bir ortam değişkeni olarak ayarlayabilirsiniz.
import os
# Set the OPENAI_API_KEY environment variable
os.environ['OPENAI_API_KEY'] = '...'
3. Eğitim dosyasını yükleme
Eğitim dosyanız jsonl formatında olmalıdır. Dosyayı yükledikten sonra işleme biraz zaman alabilir. Dosya yüklemeleri için maksimum boyut 1 GB’tır. OpenAI sunucusuna dosya yüklemek için:
from openai import OpenAI
client = OpenAI()
client.files.create(
file=open("train.jsonl", "rb"),
purpose="fine-tune"
)
Çıktı:
FileObject(id='file-rIua39sJX1O64gzxTYfpvJx7', bytes=11165, created_at=1709499930, filename='train.jsonl', object='file', purpose='fine-tune', status='processed', status_details=None)
4. İnce ayarlı bir model oluşturma
Dosyanın başarıyla yüklendiğinden emin olduktan sonra sıradaki adım, bir ince ayar işi oluşturmaktır. training_file, eğitim dosyası OpenAI API’ye yüklenirken döndürülen dosya kimliğidir. Bir ince ayar işini başlatmak için:
from openai import OpenAI
client = OpenAI()
client.fine_tuning.jobs.create(
training_file="file-rIua39sJX1O64gzxTYfpvJx7",
model="gpt-3.5-turbo" #change to gpt-4-0613 if you have access
)
Doğrulama dosyası veya hiperparametreler gibi ek ince ayar ayarlarını yapılandırmak için ince ayar API dokümantasyonuna bakın.
İnce ayar işlerinin tamamlanma süresi, modele ve veri kümesi boyutuna bağlı olarak dakikalardan saatlere değişir. Örneğin, train.jsonl veri setimizde yalnızca 50 örnek varken ve gpt-3.5-turbo modeli kullanılırken iş sadece 7 dakikada tamamlandı.
İş tamamlandığında e-posta ile bir onay da gönderilir.
Bir ince ayar işi başlatmanın yanı sıra, mevcut işleri listeleyebilir, belirli bir işin durumunu kontrol edebilir veya bir işi iptal edebilirsiniz.
from openai import OpenAI
client = OpenAI()
# List 10 fine-tuning jobs
client.fine_tuning.jobs.list(limit=10)
# Retrieve the state of a fine-tune
client.fine_tuning.jobs.retrieve("...")
# Cancel a job
client.fine_tuning.jobs.cancel("...")
# List up to 10 events from a fine-tuning job
client.fine_tuning.jobs.list_events(fine_tuning_job_id="...", limit=10)
# Delete a fine-tuned model (must be an owner of the org the model was created in)
client.models.delete("ft:gpt-3.5-turbo:xxx:xxx")\
5. İnce ayarlı modeli analiz etme
OpenAI; eğitim kaybı (training loss), eğitim için token doğruluğu, test kaybı ve test token doğruluğu gibi temel eğitim metrikleri sunar. Bu metrikler, kaybın azalması ve token doğruluğunun artmasıyla, eğitimin beklendiği gibi ilerlediğini doğrulamanıza yardımcı olur. Bu faydalı metrikleri, aktif bir ince ayar işi sırasında olay (event) nesnesinde görüntüleyebilirsiniz.
{
"object": "fine_tuning.job.event",
"id": "ftjob-Na7BnF5y91wwGJ4EgxtzVyDD",
"created_at": 1693582679,
"level": "info",
"message": "Step 100/100: training loss=0.00",
"data": {
"step": 100,
"train_loss": 1.805623287509661e-5,
"train_mean_token_accuracy": 1.0
},
"type": "metrics"
}
Bu bilgileri arayüzde de görebilirsiniz.

6. İnce ayarlı modeli kullanma
Bir iş başarıyla tamamlandığında, iş ayrıntılarında modelin adını gösteren fine_tuned_model alanı yer alır. Bu modele bir API çağrısı yapabilir ve az önce ince ayarını yaptığımız modelden yanıt alabilirsiniz.
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="ft:gpt-3.5-turbo-0613:personal::8k01tfYd",
messages=[
{"role": "system", "content": "You are a teaching assistant for Machine Learning. You should help to user to answer on his question."},
{"role": "user", "content": "What is a loss function?"}
]
)
print(completion.choices[0].message)
Çıktı:
ChatCompletionMessage(content="To measure how far we falter, it guides our way, our hope's defaulter.", role='assistant', function_call=None, tool_calls=None)
Sonuç
Bu eğitimde, OpenAI’nin GPT modeline ince ayar uygulama süreci anlatıldı; bu, LLM’in geniş yeteneklerini belirli alan uygulamaları için kullanmanın ileri bir adımıdır. İnce ayar, dil modelinin yanıtlarını rafine ederek belirli görevleri, üslupları veya alanları daha yüksek doğruluk ve verimle ele almasını sağlar.
Bu eğitimde bir modeli ince ayarlamak için OpenAI Python API’si kullanıldı. Aynı işlemi tek satır kod yazmadan bir arayüz üzerinden nasıl yapacağınızı öğrenmek isterseniz, Datacamp’teki How to Fine Tune GPT 3.5 eğitimine göz atabilirsiniz.
GPT açık kaynaklı bir model olmadığından, ince ayar süreci oldukça basittir ve esasen bir API çağrısı yapmayı içerir. Buna karşın, llama-2, Mistral, Stable Diffusion vb. açık kaynaklı modellerde ince ayar çok daha farklıdır. Çeşitli açık kaynaklı modellere nasıl ince ayar uygulayacağınızı öğrenmek ilginizi çekiyorsa, DataCamp’teki şu bloglara bakabilirsiniz:
- Fine-Tuning LLaMA 2: A Step-by-Step Guide to Customizing the Large Language Model
- FLAN-T5 Tutorial: Guide and Fine-Tuning
- Fine-tuning Stable Diffusion XL with DreamBooth and LoRA
LLM’lerde ince ayara yeni başlayanlar için, Datacamp’teki An Introductory Guide to Fine-Tuning LLMs yazısına göz atın.
