Ana içeriğe atla

OpenAI API ve Python Kullanarak GPT-3’e İnce Ayar Yapma

GPT-3’ün tüm potansiyelini ince ayarla açığa çıkarın. OpenAI API’si ve Python kullanarak bu gelişmiş sinir ağı modelini özel kullanım senaryonuza uyarlamayı öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

GPT-3, üçüncü nesil Generative Pre-trained Transformer, OpenAI tarafından oluşturulmuş son teknoloji bir sinir ağı derin öğrenme modelidir. İnternetten elde edilen çok büyük miktarda veriyi kullanarak, GPT-3 çok az girdiden çeşitli ve güçlü makine üretimi metin oluşturabilir. GPT-3’ün kullanım alanı geniştir; özetleme, çeviri, sohbet botu geliştirme ve içerik üretimiyle sınırlı değildir.

Dayanıklılığına rağmen, GPT-3’ün performansı belirli bir kullanım senaryosunda ince ayar yapılarak daha da iyileştirilebilir.

Peki ince ayardan kastımız nedir?

Bu, önceden eğitilmiş GPT-3’ün özel bir kullanım senaryosuna ait veri kümesi üzerinde yeniden eğitilmesi sürecidir. Bu sayede model, o özel kullanım senaryosunun veya alanın nüanslarına daha iyi uyum sağlar ve daha doğru sonuçlar üretir.

İnce ayarı başarıyla gerçekleştirmek için önkoşullar şunlardır: (1) temel Python programlama bilgisi ve (2) makine öğrenimi ile doğal dil işleme konularına aşinalık.

Makine Öğreniminde Sınıflandırma: Bir Giriş yazımız, sınıflandırmanın ne olduğunu, nasıl kullanıldığını ve bazı sınıflandırma algoritmalarını örneklerle öğrenmenize yardımcı olur.

OpenAI’nin sunduğu openai Python paketini kullanarak API’lerini daha rahat kullanacak ve GPT-3’ün yeteneklerine erişeceğiz.

Bu makale, kullanıcıya ait veriler üzerinde Python ile GPT-3 modelini ince ayarlama sürecini adım adım ele alarak; API kimlik bilgilerinin alınmasından verilerin hazırlanmasına, modelin eğitilmesine ve doğrulanmasına kadar tüm adımları kapsayacaktır.

Hangi GPT Modelleri İnce Ayar Yapılabilir?

İnce ayar yapılabilen GPT modelleri Ada, Babbage, Curie ve Davinci’dir. Bu modeller GPT-3 ailesine aittir. Ayrıca, daha yeni GPT-3.5-turbo modelleri veya diğer GPT-4 için şu an ince ayarın mevcut olmadığını not etmek önemlidir.

Model hakkında daha fazla bilgi için başlangıç seviyesindeki GPT-3 rehberimizi okuyun.

GPT’yi İnce Ayar İçin Uygun Kullanım Senaryoları Nelerdir?

Sınıflandırma ve koşullu üretim, GPT-3 gibi bir dil modeline ince ayar yapmaktan fayda görebilecek iki problem türüdür. Her birini kısaca inceleyelim.

Sınıflandırma

Sınıflandırma problemlerinde, istemdeki her bir giriş önceden tanımlanmış sınıflardan birine atanır; bazı durumlar aşağıda gösterilmiştir:

  • Doğru beyanların sağlanması: Bir şirket, web sitelerindeki reklamların doğru ürünü ve şirketi andığını doğrulamak isterse, yanlış reklamları elemek için bir sınıflandırıcıya ince ayar yapılabilir; böylece modelin uydurma yapması engellenir.
  • Duygu analizi: Metnin olumlu, olumsuz veya nötr gibi duygu temelli sınıflara ayrılmasıdır.
  • E-posta önceliklendirme kategorilemesi: Gelen e-postaları önceden tanımlanmış çok sayıda kategoriye ayırmak için, bu kategoriler sayılara dönüştürülebilir; bu yaklaşım ~500 kategoriye kadar iyi çalışır.

Koşullu üretim

Bu kategorideki problemler, verilen bir girdiye dayalı olarak içerik üretmeyi içerir. Uygulamalar arasında yeniden yazma (parafraz), özetleme, varlık çıkarımı, ürün açıklaması yazımı, sanal asistanlar (sohbet botları) ve daha fazlası yer alır. Örnekler:

  • Vikipedi maddelerinden ilgi çekici reklamlar oluşturma. Bu üretken kullanım senaryosunda, sağlanan örneklerin yüksek kaliteli olmasına dikkat edin; çünkü ince ayarlı model örneklerin üslubunu (ve hatalarını) taklit etmeye çalışacaktır.
  • Varlık çıkarımı. Bu görev bir dil dönüşüm problemine benzer. Çıkarılan varlıkları alfabetik olarak ya da orijinal metindeki göründükleri sıraya göre düzenleyerek performansı artırın.
  • Müşteri destek sohbet botu. Bir sohbet botu genellikle konuşmayla ilgili bağlamı (sipariş detayları), o ana kadarki konuşmanın bir özetini ve en son mesajları içerir.
  • Teknik özelliklere dayalı ürün açıklaması. Bu bağlamda üstün performans için girdi verisini doğal dile dönüştürün.

GPT-3’te İnce Ayarın Adım Adım Uygulanması

API anahtarına erişmek için bir OpenAI geliştirici hesabı oluşturmak zorunludur; adımlar aşağıda verilmiştir:

Önce OpenAI’nin resmi web sitesinden bir hesap oluşturun.

Ardından, sağ üst köşedeki kullanıcı profil simgesini seçin ve yeni bir API anahtarı oluşturmak veya mevcut birini kullanmak için “View API Keys” seçeneğine tıklayın.

OpenAI Platform Landing Page

“Create new secret key” sekmesinden anlamlı bir ad vererek (bu örnekte GPT3_fine_tuning_key) yeni bir gizli anahtar oluşturun; ardından API anahtarı otomatik olarak üretilir.

Creating a secret API key

API Key Generated

Zorlanıyorsanız veya sorun yaşıyorsanız, tüm kodların yer aldığı DataLab çalışma kitabına mutlaka göz atın.

Veri kümesi

Bu kullanım senaryosunda, modeli gerçekleştirmesi gereken görevi anlamasına yardımcı olmak için yapılandırılmış bir soru-cevap deseninden oluşan bir soru-cevap senaryosu için GPT-3 modeline ince ayar yapacağız. Eğitim ve test verilerinin tamamında her bir soru ve cevap çifti için tutarlı bir format korunur.

Soru-cevap veri kümesindeki bir örnek aşağıdaki biçimdedir:

{
"prompt": "my prompt ->",
"completion": "the answer of the prompt. \n"
}
  • “prompt”, model tarafından okunan ve işlenen girdi metnidir. Ana ayraç, istem ile beklenen yanıtı ayırmak için kullanılan ok işaretidir (->).
  • “completion”, isteme beklenen yanıttır. Cevabın sonunu belirtmek için durdurma dizisi olarak ters eğik çizgi “\n” kullanılır.

Veri kümesinin bu biçimini anladıktan sonra, aşağıda gösterildiği gibi hem eğitim hem doğrulama veri kümelerini üretebiliriz. Bu istemler ve tamamlamalar ChatGPT kullanılarak oluşturulmuştur.

Veri Bilimi için ChatGPT Cheat Sheet’imiz, kullanıcılara 60+ veri bilimi istemine erişim sağlar.

training_data = [
	{
    	"prompt": "What is the capital of France?->",
    	"completion": """ The capital of France is Paris.\n"""
	},
	{
    	"prompt": "What is the primary function of the heart?->",
    	"completion": """ The primary function of the heart is to pump blood throughout the body.\n"""
	},
	{
    	"prompt": "What is photosynthesis?->",
    	"completion": """ Photosynthesis is the process by which green plants and some other organisms convert sunlight into chemical energy stored in the form of glucose.\n"""
	},
	{
    	"prompt": "Who wrote the play 'Romeo and Juliet'?->",
    	"completion": """ William Shakespeare wrote the play 'Romeo and Juliet'.\n"""
	},
	{
    	"prompt": "Which element has the atomic number 1?->",
    	"completion": """ Hydrogen has the atomic number 1.\n"""
	},
	{
    	"prompt": "What is the largest planet in our solar system?->",
    	"completion": """ Jupiter is the largest planet in our solar system.\n"""
	},
	{
    	"prompt": "What is the freezing point of water in Celsius?->",
    	"completion": """ The freezing point of water in Celsius is 0 degrees.\n"""
	},
	{
    	"prompt": "What is the square root of 144?->",
    	"completion": """ The square root of 144 is 12.\n"""
	},
	{
    	"prompt": "Who is the author of 'To Kill a Mockingbird'?->",
    	"completion": """ The author of 'To Kill a Mockingbird' is Harper Lee.\n"""
	},
	{
    	"prompt": "What is the smallest unit of life?->",
    	"completion": """ The smallest unit of life is the cell.\n"""
	}
]

validation_data = [
	{
    	"prompt": "Which gas do plants use for photosynthesis?->",
    	"completion": """ Plants use carbon dioxide for photosynthesis.\n"""
	},
	{
    	"prompt": "What are the three primary colors of light?->",
    	"completion": """ The three primary colors of light are red, green, and blue.\n"""
	},
	{
    	"prompt": "Who discovered penicillin?->",
    	"completion": """ Sir Alexander Fleming discovered penicillin.\n"""
	},
	{
    	"prompt": "What is the chemical formula for water?->",
    	"completion": """ The chemical formula for water is H2O.\n"""
	},
	{
    	"prompt": "What is the largest country by land area?->",
    	"completion": """ Russia is the largest country by land area.\n"""
	},
	{
    	"prompt": "What is the speed of light in a vacuum?->",
    	"completion": """ The speed of light in a vacuum is approximately 299,792 kilometers per second.\n"""
	},
	{
    	"prompt": "What is the currency of Japan?->",
    	"completion": """ The currency of Japan is the Japanese Yen.\n"""
	},
	{
    	"prompt": "What is the smallest bone in the human body?->",
    	"completion": """ The stapes, located in the middle ear, is the smallest bone in the human body.\n"""
	}
]

Kurulum

Uygulamaya geçmeden önce, gerekli kütüphaneleri özellikle OpenAI Python kütüphanesini aşağıda gösterildiği gibi kurarak çalışma ortamını hazırlamamız gerekir:

pip install --upgrade openai

Artık kütüphaneyi içe aktarabiliriz.

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)

Veri kümesini hazırlayın

Yukarıda gösterildiği gibi liste formatıyla çalışmak küçük veri kümeleri için uygun olabilir. Ancak verileri JSONL (JSON Lines) formatında kaydetmenin çeşitli avantajları vardır. Bu avantajlar arasında ölçeklenebilirlik, birlikte çalışabilirlik, sadelik ve ayrıca ince ayar işleri oluştururken veriyi JSONL formatında gerektiren OpenAI API ile uyumluluk yer alır.

Aşağıdaki kod, hem eğitim hem doğrulama verilerini JSONL formatlarında oluşturmak için prepare_data yardımcı işlevinden yararlanır:

import json

training_file_name = "training_data.jsonl"
validation_file_name = "validation_data.jsonl"

def prepare_data(dictionary_data, final_file_name):
    with open(final_file_name, 'w') as outfile:
        for entry in dictionary_data:
        	json.dump(entry, outfile)
        	outfile.write('\n')

prepare_data(training_data, "training_data.jsonl")
prepare_data(validation_data, "validation_data.jsonl")

Son olarak iki veri kümesini aşağıdaki gibi OpenAI geliştirici hesabına yüklüyoruz:

training_file_id = client.files.create(
  file=open(training_file_name, "rb"),
  purpose="fine-tune"
)

validation_file_id = client.files.create(
  file=open(validation_file_name, "rb"),
  purpose="fine-tune"
)

print(f"Training File ID: {training_file_id}")
print(f"Validation File ID: {validation_file_id}")

Önceki kodun başarıyla çalıştırılması, eğitim ve doğrulama verilerinin benzersiz tanımlayıcısını aşağıda gösterir.

Bu aşamada ince ayara devam etmek için gerekli tüm bilgilere sahibiz.

Bir ince ayar işi oluşturun

Bu ince ayar süreci, Microsoft Azure üzerinde ince ayar yapan openai-cookbook’tan büyük ölçüde ilham almıştır.

İnce ayarı gerçekleştirmek için iki adım kullanacağız: (1) hiperparametreleri tanımlamak ve (2) ince ayarı başlatmak.

Eğitim ve doğrulama veri kümelerini kullanarak davinci modelini 15 epoch boyunca, 3’lük batch size ve 0,3 öğrenme hızı çarpanı ile ince ayar yapacağız.

response = client.fine_tuning.jobs.create(
  training_file=training_file_id.id, 
  validation_file=validation_file_id.id,
  model="davinci-002", 
  hyperparameters={
    "n_epochs": 15,
	"batch_size": 3,
	"learning_rate_multiplier": 0.3
  }
)
job_id = response.id
status = response.status

print(f'Fine-tunning model with jobID: {job_id}.')
print(f"Training Response: {response}")
print(f"Training Status: {status}")

Yukarıdaki kod, iş kimliği (ftjob-WsCjQMEmSvRMFCbhdTqxZzOf), eğitim yanıtı ve eğitim durumu (beklemede) bilgilerini üretir.

Bu beklemede durumu herhangi bir anlamlı bilgi sağlamaz. Ancak, aşağıdaki kodu çalıştırarak eğitim süreci hakkında daha fazla içgörü elde edebiliriz:

import signal
import datetime


def signal_handler(sig, frame):
    status = client.fine_tuning.jobs.retrieve(job_id).status
    print(f"Stream interrupted. Job is still {status}.")
    return


print(f"Streaming events for the fine-tuning job: {job_id}")

signal.signal(signal.SIGINT, signal_handler)

events = client.fine_tuning.jobs.list_events(fine_tuning_job_id=job_id)
try:
    for event in events:
        print(
            f'{datetime.datetime.fromtimestamp(event.created_at)} {event.message}'
        )
except Exception:
    print("Stream interrupted (client disconnected).")

Tüm epoch’lar aşağıda, ince ayarın başarıyla tamamlandığı bilgisiyle birlikte üretilir.

İnce ayar işinin durumunu kontrol edin

İşlemin başarılı olduğunu doğrulayalım; ek olarak, listeleme işlemiyle tüm ince ayar işlemlerini de inceleyebiliriz.

import time

status = client.fine_tuning.jobs.retrieve(job_id).status
if status not in ["succeeded", "failed"]:
    print(f"Job not in terminal status: {status}. Waiting.")
    while status not in ["succeeded", "failed"]:
        time.sleep(2)
        status = client.fine_tuning.jobs.retrieve(job_id).status
        print(f"Status: {status}")
else:
    print(f"Finetune job {job_id} finished with status: {status}")
print("Checking other finetune jobs in the subscription.")
result = client.fine_tuning.jobs.list()
print(f"Found {len(result.data)} finetune jobs.")

Çalıştırmanın sonucu aşağıda verilmiştir:

Toplamda 2 ince ayar işi vardır.

Modelin doğrulanması

Son olarak, ince ayarlı model “fine_tuned_model” niteliğinden alınabilir. Aşağıdaki yazdırma ifadesi, nihai model adının şu olduğunu gösterir: ft:davinci-002:personal::8gKnyxn3

# Retrieve the finetuned model
fine_tuned_model = result.data[0].fine_tuned_model
print(fine_tuned_model)

Bu modelle, bir istem, model adı vererek ve openai.Completion.create() işleviyle bir sorgu oluşturarak sonuçlarını doğrulamak üzere sorgular çalıştırabiliriz. Sonuç, aşağıdaki gibi yanıt sözlüğünden alınır:

new_prompt = "Which part is the smallest bone in the entire human body?"
answer = client.completions.create(
  model=fine_tuned_model,
  prompt=new_prompt
)

print(answer.choices[0].text)

new_prompt = "Which type of gas is utilized by plants during the process of photosynthesis?"
answer = client.completions.create(
  model=fine_tuned_model,
  prompt=new_prompt
)

print(answer.choices[0].text)

İstemler doğrulama veri kümesindekiyle birebir aynı yazılmamış olsa da, model yine de doğru yanıtlara eşlemeyi başardı. Önceki isteklerin yanıtları aşağıda gösterilmiştir.

image1.png

Çok az sayıda eğitim örneğiyle bile makul bir ince ayarlı model elde etmeyi başardık. Daha büyük bir eğitim boyutuyla daha iyi sonuçlar elde edilebilir.

Sonuç

Bu makalede GPT-3’ün potansiyelini inceledik ve modelin belirli kullanım senaryolarında performansını artırmak amacıyla ince ayar sürecini tartıştık. Başarılı bir ince ayar için gerekli önkoşulları; temel Python programlama bilgisi ile makine öğrenimi ve doğal dil işlemeye aşinalığı ana hatlarıyla sunduk.

Ayrıca, OpenAI’nin API’si aracılığıyla GPT-3’ün yeteneklerine erişimi kolaylaştırmak için kullanılan openai Python paketini tanıttık. Makale, Python ve özel veri kümeleri kullanarak GPT-3 modeline ince ayar yapmanın tüm adımlarını; API kimlik bilgilerinin alınmasından verilerin hazırlanmasına, modelin eğitilmesine ve doğrulanmasına kadar ele aldı.

İnce ayarın faydalarını vurgulayıp sürece kapsamlı bir rehber sunarak, bu makale veri bilimciler, geliştiriciler ve diğer paydaşların ihtiyaç ve gereksinimlerine göre uyarlanmış, daha doğru ve verimli GPT-3 modelleri oluşturabilmeleri için gerekli araç ve bilgileri sağlamayı amaçlamaktadır.

GPT-4 Nedir ve Neden Önemlidir? konusunu ele alan bir makalemiz ve ayrıca Transformers ve Hugging Face Kullanımına Giriş başlıklı bir eğitimimiz var. Bilginizi bir üst seviyeye taşımak için mutlaka okuyun.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Bilgisini paylaşmaktan ve başkalarına katkı sunmaktan keyif alan, çok yönlü bir veri bilimci olan Zoumana, YouTube’da içerik üretiyor ve Medium’da önde gelen teknoloji yazarları arasında yer alıyor. Konuşmaktan, kod yazmaktan ve öğretmekten büyük zevk alıyor. Zoumana’nın iki yüksek lisans derecesi bulunuyor: İlki Fransa, Paris’te Makine Öğrenmesi odaklı Bilgisayar Bilimleri; ikincisi ise ABD’de Texas Tech University’den Veri Bilimi. Kariyerine Fransa’da Groupe OPEN’da Yazılım Geliştirici olarak başladı; ardından IBM’de Makine Öğrenmesi Danışmanı olarak çalıştı ve sigorta şirketleri için uçtan uca yapay zeka çözümleri geliştirdi. Paris ve Montreal merkezli ilk Sürdürülebilir YZ girişimi olan Axionable’a katıldı. Burada Veri Bilimci olarak görev yaptı ve çoğunlukla NLP kullanım örnekleri olmak üzere, Fransa, Montreal, Singapur ve İsviçre’den müşteriler için YZ ürünleri hayata geçirdi. Ayrıca zamanının %5’ini Araştırma ve Geliştirme’ye ayırdı. Hâlihazırda IFC – Dünya Bankası Grubu’nda Kıdemli Veri Bilimci olarak çalışmaktadır.

Konular
Yapay Zeka
Python
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

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.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

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!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör