Veri Bilimi Projelerinde İleri Seviye Prompt Mühendisliği
0

Bir veri bilimci olarak muhtemelen iş akışlarınızı ( Prompt Mühendisliği ) nasıl geliştirebileceğinizi, görevlerinizi nasıl hızlandırabileceğinizi ve daha iyi sonuçlar nasıl elde edebileceğinizi defalarca merak etmişsinizdir.

Büyük Dil Modelleri (LLM) çağının başlaması, sayısız veri bilimcinin ve makine öğrenmesi mühendisinin sadece modellerini geliştirmekle kalmayıp, aynı zamanda daha hızlı iterasyon yapmalarına, öğrenmelerine ve gerçekten önemli olan görevlere odaklanmalarına yardımcı olmuştur.

Bu makalede, veri bilimi ve yapay zeka görevlerinde kullandığım favori prompt’ları ve prompt mühendisliği ipuçlarını sizinle paylaşıyorum.

Ayrıca, çok yakında Prompt Mühendisliği, neredeyse tüm veri bilimi ve makine öğrenmesi iş tanımlarında gerekli bir beceri haline gelecektir.

Bu rehber, makine öğrenmesi iş akışınızın her aşamasını hızlandıran (ve bazen otomatikleştiren) pratik, araştırma destekli prompt tekniklerini ele alır.

İyi Bir Prompt Mühendisliği Ne Yapar?

Yüksek Kaliteli Prompt’un Anatomisi

1. Rol ve Görev

LLM’ye kim olduğunu ve ne yapması gerektiğini söyleyerek başlayın:

"Sen özellik mühendisliği, veri temizleme ve model dağıtımında deneyimli senior bir veri bilimcisin"

2. Bağlam ve Kısıtlamalar

Bu kısım gerçekten önemlidir. Mümkün olduğunca fazla ayrıntı ve bağlam ekleyin.

Pro İpucu: Tüm ayrıntıları ve bağlamı aynı prompt’a ekleyin. Böyle çalışmasının en iyi olduğu kanıtlanmıştır.

Bu şunları içerir: veri türü ve formatı, veri kaynağı ve kökeni, örnek şema, çıktı formatı, ayrıntı seviyesi, yapı, ton ve stil, token limitleri, hesaplama kuralları, alan bilgisi vb.

3. Örnekler veya Testler

Takip edilecek birkaç örnek verin veya çıktıyı kontrol etmek için birim testler bile verin.

Örnek — Özet için formatlama stili:

**Giriş:**
Transaction: { "amount": 50.5, "currency": "USD", "type": "credit", "date": "2025-07-01" }

**İstenen Çıktı:**
- Tarih: 1 Temmuz 2025
- Tutar: $50.50
- Tür: Kredi

4. Değerlendirme Kancası

Kendi yanıtını değerlendirmesini, mantığını açıklamasını veya güven puanı çıkarmasını isteyin.

Diğer Prompt İpuçları

  • Temiz sınırlayıcılar (##) bölümleri taranabilir hale getirir. Her zaman kullanın!
  • Talimatlarınızı veriden önce koyun ve bağlamı üçlü backtick gibi net sınırlayıcılarla sarın
  • Mümkün olduğunca spesifik olun. “Python listesi döndür” veya “sadece geçerli SQL çıkar” deyin
  • Tutarlı çıktı gerektiren görevler için sıcaklığı düşük (≤0.3) tutun, ancak özellik beyin fırtınası gibi yaratıcı görevler için artırabilirsiniz

Özellikler, Modelleme ve Değerlendirme için Prompt Mühendisliği

1. Metin Özellikleri

Doğru prompt ile bir LLM, anında çeşitli semantik, kural tabanlı veya dilbilimsel özellikler seti oluşturabilir.

Şablon: Tek Değişkenli Metin Özellik Beyin Fırtınası

## Talimatlar
Rol: Sen bir özellik mühendisliği asistanısın.
Görev: {target} tahmin etmek için 10 aday özellik öner.

## Bağlam
Metin kaynağı: """{doc_snippet}"""
Kısıtlamalar: Sadece pandas ve scikit-learn kullan. Tekrarlardan kaçın.

## Çıktı
Markdown tablosu: [ÖzellikAdı | ÖzellikTürü | PythonKodu | YenilikSkoru(0–1)]

## Kendini Kontrol Et
Kapsama güvenini (0–1) değerlendir ve ≤30 kelimeyle açıkla.

Pro İpuçları:

  • Bunu yoğun özellikler oluşturmak için embedding’lerle eşleştirin
  • Kullanmadan önce çıkarılan Python kodlarını sandbox ortamında doğrulayın

2. Tablo Özellikleri

Manuel özellik mühendisliği genellikle eğlenceli değildir. Özellikle tablo verisi için bu süreç günler alabilir ve genellikle çok öznel olur.

LLM-FE gibi araçlar farklı bir yaklaşım benimser. LLM’leri, performans iyileşene kadar iteratif olarak özellik icat eden ve iyileştiren evrimsel optimize ediciler olarak ele alır.

LLM-FE Tarzı Prompt:

## Talimatlar
Rol: Evrimsel özellik mühendisi.
Görev: {schema} şemasından BİR yeni özellik öner.
Uygunluk hedefi: {target} ile maksimum karşılıklı bilgi.

## Çıktı
JSON: { "feature_name": "...", "python_expression": "...", "reasoning": "... (≤40 kelime)" }

## Kendini Kontrol Et
Yenilik ve hedef korelasyonundaki beklenen etkiyi değerlendir (0–1).

3. Zaman Serisi Özellikleri

Zaman serisi verilerinizdeki mevsimsel trendler veya ani artışlarla mücadele ettiyseniz, tüm hareketli parçalarla başa çıkmanın zor olabileceğini biliyorsunuzdur.

Mevsimsellik Farkında Prompt:

## Talimatlar
Sistem: Sen temporal bir veri bilimcisin.
Görev: {y_t} zaman serisini bileşenlere ayır.

## Çıktı
Anahtarları olan sözlük: ["trend", "seasonal", "residual"]

## Ekstra
Tespit edilen değişim noktalarını ≤60 kelimeyle açıkla.
Kendini kontrol et: Ayrışımın toplamının ≈ y_t olduğunu doğrula (tolerans 1e-6).

4. Metin Embedding Özellikleri

## Talimatlar
Rol: NLP özellik mühendisi
Görev: Her döküman için sentiment_score, top3_keywords, reading_level döndür.

## Kısıtlamalar
- sentiment_score [-1,1] aralığında (neg→pos)
- top3_keywords: küçük harf, stopword/noktalama yok, tf-idf ile sıralı
- reading_level: Flesch–Kincaid Grade (sayı)

## Çıktı
Başlıklı CSV: doc_id,sentiment_score,top3_keywords,reading_level

## Kendini Kontrol Et
- Başlık mevcut (E/H)
- Satır sayısı == len(docs) (E/H)

Kod Üretimi ve AutoML

Doğru modeli seçmek, pipeline kurmak ve parametreleri ayarlamak—makine öğrenmesinin kutsal üçlüsü, ama aynı zamanda günlerce çalışma gerektirebilen kısım.

Model Seçimi Prompt Şablonu:

## Talimatlar
Sistem: Sen senior bir ML mühendisisin.
Görev: Önizleme verisi + metrik = {metric} analiz et.

## Adımlar
1. En iyi 5 aday modeli sırala.
2. En iyisi için scikit-learn Pipeline yaz.
3. 3 hiperparametre ızgarası öner.

## Çıktı
Bölümlerle Markdown: [Sıralama], [Kod], [Izgaralar]

## Kendini Kontrol Et
En iyi model seçimini ≤30 kelimeyle gerekçelendir.

Fine-Tuning için Prompt’lar

Büyük bir modeli fine-tune etmek her zaman sıfırdan yeniden eğitmek anlamına gelmez. Bunun yerine LoRA (Low-Rank Adaptation) ve PEFT (Parameter-Efficient Fine-Tuning) gibi hafif teknikler kullanabilirsiniz.

Fine-Tuning Diyalog Prompt’u:

## Talimatlar
Rol: AutoTunerGPT.
İmza: base_model, task_dataset → tuned_model_path.
Hedef: PEFT-LoRA kullanarak {base_model}'i {task_dataset} üzerinde fine-tune et.

## Kısıtlamalar
- batch_size ≤ 16, epochs ≤ 5
- ./lora-model'e kaydet
- Validasyonda F1 kullan; seed=42; early stopping aktif (2 epoch val artışı yok)

## Çıktı
JSON:
{
  "tuned_model_path": "./lora-model",
  "train_args": { "batch_size": ..., "epochs": ..., "learning_rate": ..., "lora_r": ..., "lora_alpha": ..., "lora_dropout": ... },
  "val_metrics": { "f1_before": ..., "f1_after": ... },
  "expected_f1_gain": ...
}

## Kendini Kontrol Et
- Kısıtlamalar saygı gösterildi mi (E/H).
- Eğer H, ≤20 kelimeyle açıkla.

LLM’lerin Modellerinizi Değerlendirmesine İzin Verin

Akıllı Değerlendirme Prompt’ları

Tek Örnek Değerlendirme Prompt’u:

## Talimatlar
Sistem: Değerlendirme asistanı.
Kullanıcı: Gerçek değer = {truth}; Tahmin = {pred}.

## Kriterler
- factual_accuracy ∈ [0,1]: Gerçekle semantik olarak eş değerse 1; çelişkiyse 0
- completeness ∈ [0,1]: Pred'de bulunan gerçekten gerekli fakta oranı

## Çıktı
JSON:
{ "accuracy": <float>, "completeness": <float>, "explanation": "<≤40 kelime>" }

## Kendini Kontrol Et
Hangi faktların eşleştiği/kaçırıldığını ≤15 kelimeyle belirt.

Çapraz Doğrulama Kodu:

## Talimatlar
Sen CodeGenGPT'sin.

## Görev
Python yaz:
- train.csv yükle
- Stratified 80/20 böl
- {feature_list} üzerinde LightGBM eğit
- ROC-AUC hesapla ve logla (validation)

## Kısıtlamalar
- Label sütunu varsay: "target"
- Split/metric için sklearn, lightgbm.LGBMClassifier kullan
- random_state=42, test_size=0.2
- SADECE Python kod bloğu döndür (açıklama yok)

## Çıktı
(sadece kod bloğu)

Regresyon Yargıcı:

## Talimatlar
Sistem: Regresyon değerlendirici
Giriş: Gerçek={y_true}; Tahmin={y_pred}

## Kurallar
abs_error = tüm noktalar üzerinde ortalama mutlak hata
R = max(y_true) - min(y_true) olsun
Kategori:
- "Mükemmel" eğer abs_error ≤ 0.05 * R
- "Kabul Edilebilir" eğer 0.05 * R < abs_error ≤ 0.15 * R
- "Zayıf" eğer abs_error > 0.15 * R

## Çıktı
{ "abs_error": <float>, "category": "Mükemmel/Kabul Edilebilir/Zayıf" }

## Kendini Kontrol Et (kısa)
len(y_true)==len(y_pred) doğrula (E/H)

Sorun Giderme Rehberi: Prompt Mühendisliği Sürümü

Bu 3 problemden birini bulursanız, işte nasıl düzeltebileceğiniz:

ProblemBelirtiDüzeltme
Hayali özelliklerVar olmayan sütunları kullanırPrompt’a şema + doğrulama ekle
Fazla “yaratıcı” kodGüvenilmez pipeline’larKütüphane limitleri + test parçacıkları ekle
Değerlendirme kaymasıTutarsız puanlamatemp=0 ayarla, prompt versiyonunu logla

Sonuç Olarak Prompt Mühendisliği

LLM’ler trend haline geldiğinden beri, prompt mühendisliği resmi olarak seviye atladı. Artık ML ve DS iş akışlarının her parçasına dokunan gerçek ve ciddi bir metodoloji haline geldi.

Sonuçta, daha iyi prompt mühendisliği daha iyi çıktılar ve çok fazla zaman tasarrufu anlamına gelir. Bu da sanırım her veri bilimcinin hayalidir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir