본문 바로가기
C.W.K.
Stream
Lesson 03 of 07 · published

Braintrust: 관측 가능성과 평가 플랫폼

~22 min · frameworks, braintrust, observability, platform

Level 0추측자
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

평가, 추적, 화면, 데이터셋을 한 플랫폼에서

Braintrust는 LLM 평가와 관측 가능성을 제공하는 호스팅형 플랫폼이야. 자체 호스팅도 선택할 수 있어. 실험 추적, 데이터셋 버전 관리, 나란히 비교하는 화면, 프롬프트 실험 공간, 운영 환경의 온라인 평가, CI/CD 통합을 한데 결합해. 팀에 공유 작업 공간이 필요하지만 대시보드를 직접 만들고 싶지는 않을 때 특히 잘 맞아.

기본으로 제공하는 기능

  • 실험 — 평가를 실행할 때마다 모든 입력, 출력, 점수를 포함한 실험 기록을 남겨.
  • 데이터셋 — 버전을 관리할 수 있고 화면에서 직접 편집하거나 JSONL 파일에서 가져올 수 있어.
  • 실험 간 차이 비교 — 두 실험을 사례별로 나란히 비교해. "이 프롬프트 변경이 실제로 도움이 됐어?"라는 질문에 답할 때 결정적인 기능이야.
  • 온라인 평가 — 운영 환경의 요청을 기록하고 비동기로 채점해 회귀가 발생하면 알려줘.
  • 프롬프트 실험 공간 — 평가 신호를 확인하면서 화면에서 프롬프트를 반복해서 개선해.
  • SDK — TypeScript와 Python을 지원하며 promptfoo, OpenAI, Anthropic과 통합할 수 있어.

특히 잘 맞는 경우

여러 사람이 협업하는 팀에서 특히 강해. 공유 작업 공간 자체가 핵심 기능이야. 엔지니어 A가 프롬프트를 개선하면 개발자 B가 10분 뒤 실험을 열어 무엇이 왜 바뀌었는지 확인할 수 있어. 시각적 화면 덕분에 평가 노트북이 한 사람의 컴퓨터에만 갇히는 문제도 피할 수 있어.

잘 맞지 않는 경우

혼자서 빠르게 반복 개선하는 개발자에게는 SaaS 계층이 지나친 선택일 수 있어. 규모가 커지면 호출당 과금도 중요한 고려 사항이 돼. 자체 호스팅을 선택할 수 있지만 운영 부담이 작지는 않아.

원칙: 팀에 "공유 평가 작업 공간이 있다"는 사실이 "평가가 저장소에 있다"는 사실보다 더 중요하다면 Braintrust가 올바른 선택이야. 두 방식은 서로 배타적이지 않아서 함께 사용하는 팀도 많아.

Code

설치하고 Python에서 실험 실행하기·python
# pip install braintrust
from braintrust import Eval
from autoevals import LevenshteinScorer

def task(input):
    return your_app(input)

Eval(
    "my-app-eval",
    data=lambda: [
        {"input": "hello", "expected": "hi"},
        {"input": "good morning", "expected": "good day"},
    ],
    task=task,
    scores=[LevenshteinScorer],
)
운영 환경 요청에 온라인 평가 적용하기·python
from braintrust import init_logger, current_logger

logger = init_logger(project="production-app")

def handle_request(req):
    output = your_app(req.input)
    # Log to Braintrust — async scoring runs in the background
    current_logger().log(
        input=req.input,
        output=output,
        metadata={"user_id": req.user_id, "model": "gpt-4o"},
    )
    return output
SDK로 실험 간 차이 비교하기·typescript
import { compareExperiments } from "braintrust";

const diff = await compareExperiments({
  baseExperimentId: "exp_v3_baseline",
  candidateExperimentId: "exp_v4_new_prompt",
});

console.log(`improved: ${diff.improved.length}, regressed: ${diff.regressed.length}`);
console.log("top regressions:", diff.regressed.slice(0, 5));

External links

Exercise

Braintrust 프로젝트를 설정하고 실험 두 개를 실행해. 하나는 기준선으로, 다른 하나는 프롬프트를 조금 변경한 버전으로 만들어. 차이 비교 화면을 열고 변경의 영향을 크게 받은 사례 세 개를 찾은 뒤 출시 여부를 결정해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.