Benchgen

Yirmi Soru Oyunu Kıyaslaması

1 phaseActive

LLM ajanlarını RL ödülleri ve GRPO puanlaması kullanarak Yirmi Soru oyununda değerlendirin

Nasıl Katılınır

Nasıl Katılınır

Kıyaslama Nedir?

Bu kıyaslama, LLM'nizin klasik Yirmi Soru oyununu ne kadar iyi oynayabildiğini ölçer. Modeliniz soru soran oyuncu rolünü üstlenir; soruları "Evet"/"Hayır" ile yanıtlayan cevaplayıcı ise deterministik bir sistem yanıtlayıcısıdır (LLM kullanmaz). Amaç: gizli kelimeyi 20 soru veya daha azında tahmin etmek.

Modeliniz yalnızca soru sorar. Cevaplayıcı (SystemAnswerer) kural tabanlı örüntü eşleme ile çalışır — tüm katılımcılar tam olarak aynı koşullarla değerlendirilir.


Hızlı Başlangıç

  1. model.py şablonunu indirin — Dosyalar sekmesinden solution/ klasöründe bulabilirsiniz
  2. LLM API bilgilerinizi girinmodel.py içindeki api_url, api_key ve model_name alanlarını düzenleyin
  3. ZIP oluşturup gönderin — Platforma yükleyin
  4. Sonuçları inceleyin — Lider tablosu ve detaylı HTML gösterge paneli otomatik oluşturulur

Gerekli Dosyalar

Gönderiminiz şunları içermelidir:

submission.zip
├── model.py          # TwentyQuestionsModel sınıfınız (zorunlu)
└── requirements.txt  # Python bağımlılıkları (isteğe bağlı)

Model Arayüzü

Modelinizin uygulaması gereken arayüz çok basittir — tek bir metot:

class TwentyQuestionsModel:
    def __init__(self):
        """LLM API ayarlarınızı burada yapılandırın."""
        self.api_url = "https://your-api-url/v1/chat/completions"
        self.api_key = "YOUR_API_KEY"
        self.model_name = "your-model-name"

    def call_llm(self, prompt: str) -> str:
        """
        Metin istemi alır, metin yanıtı döndürür.

        Kıyaslama bu metodu oyuncu rolünde çağırır:
        - "Soru sor veya tahmin yap" gibi bir istem alırsınız
        - Cevaplayıcı rolünü SystemAnswerer (deterministik) üstlenir,
          modeliniz bu rolde kullanılmaz

        Args:
            prompt: LLM'inize gönderilecek metin istemi

        Returns:
            LLM'inizden dönen metin yanıtı
        """
        # LLM API çağrınızı burada yapın
        ...

Önemli: Siz yalnızca call_llm() metodunu yazarsınız. Soru stratejisi, tahmin formatı, istem oluşturma ve oyun döngüsü gibi her şeyi kıyaslamanın besleme programı (ingestion.py) otomatik olarak yönetir.

Nasıl Çalışır?

Besleme programı modelinizi aşağıdaki şekilde kullanır:

RolNe yaparModelinizin görevi
Oyuncu (PlayerStrategy)Konuşma geçmişinden istem oluşturur, call_llm() çağırır, çıktıyı soru veya tahmine dönüştürürcall_llm(istem) → metin döndür
Cevaplayıcı (SystemAnswerer)Deterministik örüntü eşleme ile "Evet"/"Hayır" yanıtı verir (LLM kullanmaz)— (modeliniz bu rolde kullanılmaz)

Konuşma Geçmişi Yapısı

Her oyun turunda konuşma geçmişi şu formatta büyür:

[
    {"role": "player",   "content": "Canlı bir varlık mı?"},
    {"role": "answerer", "content": "Evet"},
    {"role": "player",   "content": "Hayvan mı?"},
    {"role": "answerer", "content": "Hayır"},
    {"role": "player",   "content": "Tahmin: elma"},
]

Tahmin Formatı

Tahmin yapmak için yanıtınızda şu formatı kullanın:

Tahmin: kelime

Örnek: Tahmin: elma, Tahmin: bilgisayar

Sistem Tahmin: önekini regex ile tanır. Tahmin: olmayan yanıtlar normal soru olarak işlenir.


Gönderim

  1. ZIP dosyası oluşturun:
    zip -r submission.zip model.py requirements.txt
  2. Yarışma sayfasında "Gönder" butonuyla yükleyin
  3. Değerlendirme otomatik olarak başlar
  4. Tamamlandığında puanınız lider tablosunda görünür ve detaylı HTML gösterge paneli sonuçlar sayfasından indirilebilir

Değerlendirme Sonrası Ne Görürsünüz?

Lider Tablosu

Gönderiminiz değerlendirildikten sonra puanınız lider tablosunda aşağıdaki metriklerle görünür:

MetrikAçıklama
Genel PuanBileşik puan (0–100) — kazanma oranı ve verimlilik toplamı
Kazanma Oranı (%)Doğru tahmin yapılan oyunların yüzdesi
Ort. Soru SayısıOyun başına ortalama tur
Kazanma / Verimlilik PuanıPuanın iki bileşeni ayrı ayrı
GRPO PuanıGrup göreli avantaj
Süre (sn)Toplam yürütme süresi

Detaylı HTML Gösterge Paneli

Sonuçlar sayfasından indirilebilen scores.html dosyası, modelinizin performansını derinlemesine analiz eder:

  • 🎯 Karar başlığı — Genel puan, performans rozeti, referans modellerle karşılaştırma (GPT-4, Claude Sonnet)
  • 📊 Davranış analizi — Soru çeşitliliği, bilgi kazanımı, zaman ve kaynak kullanımı
  • 🔍 Bölüm gezgini — Her oyunun detayı, tam konuşma geçmişlerini tur tur inceleme
  • Başarısızlık analizi — Kaybedilen oyunların nedenleri: zaman aşımı, tekrarlayan sorular, zayıf daralma vb.
  • 📈 Gelişmiş metrikler — Performans trendi, GRPO kelime analizi, radar grafik

Her metrik etiketinin yanındaki ? simgesine gelerek kısa açıklamalar görebilirsiniz.

Puanlama formülü ve detaylar için Puanlama Sistemi sayfasına bakın.


İpuçları

  • İndirdiğiniz model.py şablonu çalışan bir OpenAI uyumlu API örneği içerir — sadece API bilgilerinizi girin
  • Modelinizin Türkçe soru sorma ve strateji geliştirme yeteneğine sahip olduğundan emin olun (cevaplayıcı rolü modeliniz tarafından yönetilmez)
  • İlk gönderiminizde düşük puan alırsanız, HTML gösterge panelindeki başarısızlık analizini inceleyin — neden kaybettiğinizi ve nasıl geliştirebileceğinizi gösterir
  • Forumda sorularınızı paylaşmaktan çekinmeyin

İyi şanslar! 🎮