0Pricing
AI Engineering Academy · Ders

İstemleri Yineleme ve Hata Ayıklama

İstemleri sistematik olarak sınamak ve geliştirmek için bir iş akışı oluşturun, başarısızlık biçimlerini belirleyin ve üretim kodu yazmadan önce hızlı yinelemeler yapmak için OpenAI Playground'ı kullanın.

İstemleri Yineleme ve Hata Ayıklama, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.

İstem Yazımı Deneysel Bir Disiplindir

Etkili istem mühendisliği sihirli bir formül bulmakla ilgili değildir; yazmaktan çok hata ayıklamaya benzeyen, deneysel ve yinelemeli bir süreçtir. Bir istem yazarsınız, bunu test girdileriyle çalıştırırsınız, nerede başarısız olduğunu gözlemlersiniz, neden başarısız olduğuna dair bir varsayım oluşturursunuz ve düzeltmek için istemi değiştirirsiniz. Yalnızca sezgiye güvenmek güvenilir değildir; veriye ihtiyacınız vardır.

Birçok geliştirici, istemini özenle hazırlanmış bir veya iki örnek üzerinde test edip iyi sonuçlar gördükten sonra üretime alma hatasına düşer; ardından istemin gerçek girdilerin %30'unda başarısız olduğunu keşfeder. Sistematik bir değerlendirme iş akışı, isteminizi canlıya almadan önce çeşitli ve temsili örneklere maruz bırakarak bunu önler.

Önce Bir Test Kümesi Oluşturma

İsteminizi yazmadan önce bir altın test kümesi oluşturun: beklenen çıktı veya geçme ölçütleriyle eşleştirilmiş 20-100 temsili girdi örneğinden oluşan bir koleksiyon. Bu test kümesi, herhangi bir istem değişikliğini değerlendirmek için gerçeği temsil eden temel ölçütünüz olur.

İyi test kümeleri şunları içerir: tipik girdiler, sınır durumlar (boş dizeler, çok uzun girdiler, belirsiz durumlar), istemi bozmak için tasarlanmış hasmane girdiler ve kullanıcı topluluğunuzun farklı kesimlerinden gelen girdiler. Test kümeniz ne kadar çeşitli olursa istem değişikliğinin, aklınızdaki birkaç örneğe aşırı uyum sağlamak yerine gerçekten bir iyileştirme olduğundan o kadar emin olabilirsiniz.

Basit Bir Değerlendirme Düzeneği

Basit bir değerlendirme betiği yazmak bir saat sürer ve üretim sorunlarında günlerce hata ayıklamaktan kurtarır. Betik, isteminizi her test durumunda çalıştırır, çıktıyı beklenen sonuçla karşılaştırır ve geçme oranını bildirir. Ardından istem üzerinde yineleme yapabilir ve değişikliklerinizin genel puanı iyileştirip iyileştirmediğini hemen görebilirsiniz.

import openai

client = openai.OpenAI()

# Golden test set: (input, expected_output)
test_cases = [
    ('The product is excellent and very fast.', 'Positive'),
    ('Arrived damaged and customer service ignored me.', 'Negative'),
    ('Delivery was on time.', 'Neutral'),
    ('Worst purchase of my life. Never again!', 'Negative'),
    ('Good value for the price.', 'Positive'),
]

def evaluate_prompt(system_prompt):
    correct = 0
    for text, expected in test_cases:
        resp = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=[
                {'role': 'system', 'content': system_prompt},
                {'role': 'user', 'content': text}
            ],
            max_tokens=10
        )
        prediction = resp.choices[0].message.content.strip()
        if expected.lower() in prediction.lower():
            correct += 1
        else:
            print(f'FAIL: "{text}" -> got "{prediction}", expected "{expected}"')
    return correct / len(test_cases)

score = evaluate_prompt('Classify sentiment as Positive, Negative, or Neutral. Reply with one word only.')
print(f'Score: {score:.0%}')

Başarısızlık Türlerini Sınıflandırma

İsteminiz test durumlarında başarısız olduğunda örüntüleri belirlemek için başarısızlıkları türlerine göre gruplayın. Yaygın başarısızlık türleri şunlardır:

  • Biçim başarısızlıkları: model doğru yanıtı üretir ancak yanlış biçimde sunar
  • Belirsizlik başarısızlıkları: model görevi amaçladığınızdan farklı yorumlar
  • Sınır durumu başarısızlıkları: model tipik girdilerde çalışır ancak alışılmadık girdilerde başarısız olur
  • Halüsinasyon başarısızlıkları: model yanlış olgusal içeriği güvenle üretir
  • Yönergeleri yok sayma: model yönergeleri kısmen izler ancak belirli kısıtlamaları gözden kaçırır

Her başarısızlık türü farklı bir düzeltme gerektirir. Biçim başarısızlıkları daha açık çıktı yönergeleri gerektirir; belirsizlik başarısızlıkları ise daha net görev tanımı veya örnekler gerektirir.

Hızlı Yineleme için OpenAI Playground

OpenAI Playground (platform.openai.com/playground), kod yazmadan istemler üzerinde yineleme yapmak için en hızlı araçtır. Modeller arasında geçiş yapmanıza, parametreleri kaydırıcılarla ayarlamanıza, istem sürümlerini kaydetmenize ve çıktıları yan yana karşılaştırmanıza olanak tanır.

İstem geliştirme sürecinin keşif aşamasında Playground'u kullanın: farklı ifadeleri deneyin, sınır durumları etkileşimli olarak test edin ve neyin işe yaradığına dair sezgi geliştirin. Gelecek vadeden bir istem üzerinde karar kıldığınızda, üretime almadan önce tam test kümenizde sistematik olarak doğrulamak için değerlendirme düzeneği kullanarak koda geçin.

İstem Sürümleme

İstemler koddur. Uygulama koduyla aynı titizlikle sürüm denetimine alınmalı, incelenmeli ve dağıtılmalıdır. En temel yaklaşım, istem şablonlarınızı deponuzdaki bir sabitler dosyasında dize olarak saklamaktır; böylece değişiklikler git'te izlenir ve kod incelemesi gerektirir.

Daha gelişmiş yaklaşımlar arasında istemleri özel bir istem yönetimi veritabanında (LangSmith, PromptLayer veya basit bir Supabase tablosu) saklamak, sürümleri etiketlemek ve üretimde istem sürümleri arasında A/B testleri çalıştırmak bulunur. Bu, özellikle birden fazla ekip üyesi aynı istemler üzerinde çalışırken veya üretim kalitesini düşüren bir istem değişikliğini geri almanız gerektiğinde önemlidir.

# prompts/sentiment.py
# Version 2.1 - Added explicit tie-breaking rule for mixed reviews
SENTIMENT_V2_1 = '''You are a sentiment classification assistant.
Classify the customer review sentiment as exactly one of: Positive, Negative, or Neutral.

Rules:
- Positive: overall satisfaction, praise, or recommendation
- Negative: disappointment, complaint, or warning to others
- Neutral: factual statements without strong sentiment, or equal positive and negative content
- If the review contains both positive and negative elements, choose based on the DOMINANT tone

Respond with ONLY the single word classification. No explanation.'''

# Usage:
# from prompts.sentiment import SENTIMENT_V2_1

İstem Varyantlarını Sistematik Olarak Karşılaştırma

Birbiriyle yarışan iki istem sürümünüz olduğunda, ikisini de tüm test kümenizde çalıştırın ve puanları karşılaştırın. Günde binlerce isteği işleyen bir üretim sisteminde doğrulukta yalnızca %5'lik bir artış bile değerlendirme için harcanan çabaya değer. Bir istemi asla elle test edilmiş bir veya iki örneğe dayanarak seçmeyin — her zaman tüm test kümesinde karşılaştırma yapın.

Tek bir doğru yanıtın bulunmadığı öznel kalite ölçütleri (üslup, faydalılık veya yaratıcılık gibi) için LLM ile değerlendirme kullanabilirsiniz: GPT-4o gibi güçlü bir modeli, iki yanıttan hangisinin kalite ölçütlerinizi daha iyi karşıladığını puanlaması için yönlendirin. Böylece değerlendirme, insanların inceleyebileceği kapsamın ötesine taşınabilir.

Tutarsız Çıktıların Hatalarını Ayıklama

LLM çıktıları varsayılan olarak belirlenimli değildir. temperature=0 ayarı, her adımda en olası belirtecin seçilmesini sağlayarak çıktıları neredeyse belirlenimli hâle getirir. Bu, aynı istemi iki kez çalıştırıp aynı çıktıyı almanızı sağladığı için hataları ayıklamada zorunludur. Hataları ayıklarken, çıktının değişmesine istemdeki bir değişikliğin mi neden olduğunu yoksa bunun yalnızca rastgele bir farklılık mı olduğunu ayırt edebilmek için sıcaklığı her zaman 0 olarak ayarlayın.

İstemi düzelttikten sonra, kullanım alanınız çeşitlilikten yararlanıyorsa (yaratıcı yazma, beyin fırtınası) üretimde bir miktar sıcaklığı yeniden etkinleştirin. Ancak tutarlı ve tekrarlanabilir çıktılar istediğiniz yapılandırılmış çıkarma ve sınıflandırma görevlerinde sıcaklığı 0 olarak bırakın.

import openai

client = openai.OpenAI()

# Deterministic mode for debugging
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': 'Classify sentiment: Positive, Negative, or Neutral.'},
        {'role': 'user', 'content': 'The product looks nice but broke after two days.'}
    ],
    temperature=0,   # deterministic
    seed=42          # optional reproducibility seed
)
print(response.choices[0].message.content)

Varsanıların Hatalarını Ayıklama

İsteminiz varsayılmış gerçekler üretiyorsa, varsanı üretmeyi zorlaştıran kısıtlamalar ekleyin. Etkili varsanı önleme teknikleri şunlardır:

  • Kaynakları belirtin: 'Yalnızca sağlanan bağlama dayanarak yanıt verin. Yanıt bağlamda yoksa bilmiyorum deyin.'
  • Güveni nicel olarak ifade edin: 'Güveninizi 1 ile 5 arasında puanlayın. 3'ün altındaysa yanıt vermeyin.'
  • Doğrulama adımı: 'Yanıtlamadan önce, kullanmayı planladığınız her bilginin sağlanan belgede bulunduğunu doğrulayın.'

Hiçbir teknik varsanıları tamamen ortadan kaldırmaz; ancak erişim (RAG) ile güçlü istem kısıtlamalarının birleştirilmesi, bilgi yoğun uygulamalarda bunları büyük ölçüde azaltır.

İstem Uzunluğu ve Talimatların Yerleştirilmesi

Araştırmalar, LLM'lerin bir istemin başındaki ve sonundaki talimatlara ortasındakilerden daha fazla dikkat ettiğini göstermiştir. Buna ortada kaybolma sorunu denir. Önemli talimatların bağlamla çevrelenmiş şekilde uzun bir istemin ortasına gömülmesi durumunda model bunları güvenilir biçimde izlemeyebilir.

En iyi uygulama şudur: en önemli talimatlarınızı (görev tanımı ve kritik kısıtlamalar) sistem isteminin en başına koyun ve temel kısıtlamaları sonda yineleyin. Bağlam olarak eklenen uzun belgelerde, model en yakın tarihli içeriğe daha fazla ağırlık vereceğinden kullanıcı sorusunu belgeden önce değil, sonra yerleştirin.

Keşiften Üretime

İstem geliştirme yaşam döngüsünün üç aşaması vardır:

  • Keşif: Serbestçe denemeler yapmak için Playground'u kullanın. Kusursuz çıktıya değil, kavramsal olarak neyin işe yaradığını anlamaya odaklanın.
  • Değerlendirme: Bir test kümesi ve değerlendirme düzeneği oluşturun. Aday istemleri tüm test kümesinde çalıştırıp başarı oranlarını ölçün. Kalite eşiğinize ulaşana kadar yineleyin.
  • Üretim: Son istemi sürüm denetimine alın, üretimdeki kalite ölçütlerini izlemek için gözlemleme ekleyin ve kalite düşüşleri için uyarılar ayarlayın. Model sürümleri değiştiğinde yapılacak gelecekteki yinelemeleri planlayın.

Değerlendirme aşamasını atlamak, üretimde istem kalitesinin gerilemesinin en yaygın nedenidir. Uygun bir test kümesine yapılan zaman yatırımı kendini defalarca amorti eder.

Hızlı Kontrol

Bu dersteki yapay zekâ mühendisliği kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: istem mühendisliğinde iyileştirmeleri güvenilir biçimde ölçmek için bir altın test kümesi ve değerlendirme düzeneği gerekir, her tür için doğru düzeltmeyi belirlemek üzere hata türleri kategorilere ayrılmalıdır ve hataları ayıklamak için sıcaklığın 0 olması zorunludur; istem sürümleme ile üretim izleme de kalite döngüsünü tamamlar. Sırada LLM'lerin metni belirteçler aracılığıyla nasıl işlediğini ve belirteç sayılarının maliyet ile bağlam açısından neden önemli olduğunu inceleyeceğiz.

Sıkça Sorulan Sorular

“İstemleri Yineleme ve Hata Ayıklama” dersi ücretsiz mi?

Evet — “İstemleri Yineleme ve Hata Ayıklama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.

“İstemleri Yineleme ve Hata Ayıklama” dersinde ne öğreneceğim?

İstemleri sistematik olarak sınamak ve geliştirmek için bir iş akışı oluşturun, başarısızlık biçimlerini belirleyin ve üretim kodu yazmadan önce hızlı yinelemeler yapmak için OpenAI Playground'ı kull… AI Engineering Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“İstemleri Yineleme ve Hata Ayıklama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Engineering Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Engineering Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Sıfır Örnekli ve Az Örnekli İstem Oluşturma
  2. Düşünce Zinciri ve Adım Adım Akıl Yürütme
  3. Sistem İstemleri ve Persona Tanımlama
  4. İstemleri Yineleme ve Hata Ayıklama
← AI Engineering Academy Sayfasına Dön