AI Observability

Braintrust ile LLM Geri Dönüş Testlerini Otomatikleştirme: Bir CI/CD Hattı Entegrasyon Kılavuzu

Büyük Dil Modellerini (LLM) üretim ortamına dağıtmak artık yalnızca doğruluk ölçütleriyle ilgili değil; zaman içinde tutarlı davranışı sürdürmekle ilgilidir. Geleneksel yazılımda kod değişiklikleri deterministikken, LLM çıktıları model güncellemeleri, prompt mühendisliğindeki küçük farklılıklar veya altta yatan altyapı değişiklikleri nedeniyle sapabilir. Bu deterministik olmayan doğa, geri dönüş testlerini kritik hale getirir. Bu kılavuzda, Braintrust'u CI/CD hattınıza entegre ederek LLM geri dönüş testlerini nasıl otomatikleştirebileceğinizi ve her dağıtımda yapay zeka uygulamanızın güvenilir kalmasını nasıl sağlayabileceğinizi inceliyoruz.

Neden Geleneksel Testler LLM'ler İçin İşe Yaramaz?

Geleneksel yazılım geliştirmede, birim testleri belirli beklenen çıktıları doğrular. LLM'ler için bu yaklaşım kırılgandır çünkü ifade biçimindeki küçük farklılıklar mutlaka bir hatayı göstermez. Bunun yerine, değerlendirmeye dayalı testlere ihtiyacımız var. Braintrust, paradigmayı ikili geçme/kalma kontrollerinden puan tabanlı değerlendirmelere kaydırır. Özel değerlendirme işlevlerini (LLM-as-a-judge veya anlamsal benzerlik puanları gibi) kullanarak, zararsız sözdizimsel farklılıklara takılmadan kalitedeki ince bozulmaları tespit edebiliriz.

Braintrust Değerlendirme Setini Kurma

Öncelikle, test setinizi tanımlamanız gerekir. Braintrust'ta bir set, bir değerlendirme işleviyle birlikte giriş/çıkış çiftlerinin bir koleksiyonudur. Testleriniz için bir dizin oluşturun ve bir Braintrust deneyi başlatın.

import braintrust
from openai import OpenAI

# LLM istemcinizi başlatın
client = OpenAI(api_key="YOUR_API_KEY")

# Değerlendirme işlevini tanımlayın
def evaluate(input, output, expected_output):
    # Örnek: Basit anahtar kelime kontrolü veya LLM-as-a-judge mantığı
    if expected_output.lower() in output.lower():
        return {"score": 1.0}
    return {"score": 0.0}

# Braintrust'u başlatın
braintrust.init("my-llm-suite")

# Test verilerini yükleyin (örn., JSON'dan veya bir veritabanından)
test_cases = [
    {"input": "Summarize this text", "expected_output": "summary"},
    {"input": "Translate to French", "expected_output": "traduction"}
]

# Değerlendirmeyi çalıştırın
braintrust.run(
    name="baseline-v1",
    data=test_cases,
    task=lambda x: client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": x["input"]}]
    ).choices[0].message.content,
    evaluate=evaluate
)

GitHub Actions'a Entegrasyon

Otomasyonun çekirdeği, bu testleri her çekme isteğinde (pull request) tetiklemektir. Braintrust CLI'ını çalıştırmak ve ortalama puan tanımlanan eşiğin altına düşerse derlemeyi başarısız saymak için GitHub Actions kullanabiliriz.

name: LLM Regression Test

on:
  pull_request:
    branches: [ main ]

jobs:
  braintrust-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'

      - name: Install dependencies
        run: |
          pip install braintrust openai

      - name: Run Braintrust Evaluation
        env:
          BRAINTRUST_API_KEY: ${{ secrets.BRAINTRUST_API_KEY }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          braintrust eval my-llm-suite --threshold 0.85

      - name: Check for Regression
        if: ${{ failure() }}
        run: |
          echo "LLM Regression Detected: Score dropped below threshold. Please review the logs in Braintrust."

Üretim Ortamında Sapmayı İzleme

Sonuç

Braintrust ile LLM geri dönüş testlerini otomatikleştirmek, geleneksel CI/CD hatlarının eksik bıraktığı bir güvenlik ağı sağlar. LLM çıktılarını olasılıksal sonuçlar olarak ele alarak ve puan tabanlı değerlendirmeler kullanarak özgüvenle ilerleyebilirsiniz. İster promptları ince ayarlayın ister model sağlayıcılarını değiştirin, bu entegrasyon kalitenin gözden kaçmasını önler. Bir taban seti oluşturarak başlayın, bunu iş akışınıza entegre edin ve yapay zeka geliştirme sürecinizi veriyle yönlendirin.

Share: