01 기본 모델 선택
모듈 01 진행자 노트 — 타이밍, 토크 트랙, 흔한 실패, 리셋 절차.
학습자 수업 01 기본 모델 선택에 대한 진행자용 안내서입니다.
타이밍
권장 부분집합으로 ~20분. 전체 그리드를 라이브로 돌리면 45–60분.
- 8분 — Langfuse 평가자 설정(LLM Connection,
correctness코드 평가자,agent-arena-llm-judge를 내보내는 LLM-as-a-judge 평가자 정의llm_judge). README 링크만 주지 말고 본인 프로젝터에서 라이브로 함께 진행하세요. 세션에서 가장 손이 많이 가는 단계입니다. - 8분 — 모델 두 개, 프롬프트 하나의 부분집합 실행(기다리는 동안 이야기하세요. "왜 정답당 비용인가"를 설명하기 좋은 순간입니다). 전체 그리드는 보통 35–45분이 걸리므로 미리 실행해 두거나 자율 학습으로 남겨야 합니다.
- 4분 — Leaderboard를 열고 승자를 읽고
config_id를 말합니다.
토크 트랙
- 이것을 워크숍의 바로 그 토대가 되는 결정으로 프레이밍하세요. 어떤 모델이 에이전트를 구동할지를, 남이 다른 워크로드로 돌린 공개 리더보드가 아니라 근거로 결정하는 것입니다.
- 채점이 어디서 일어나는지 강조하세요. 하네스 내부가 아니라 Langfuse 안입니다. 하네스는 그리드를 조율하고 완전한 Experiment Item을 기록하며, 리더보드는 Langfuse Public API를 통해 그것을 읽습니다. 이것은 Module 00에서 연결한 같은 Langfuse 프로젝트입니다. 여기서 새 도구나 두 번째 결과 저장소가 등장하지 않습니다.
- 데이터셋 개수를 설명하세요. 저장소에는 YAML 질문이 20개 있지만
q019와q020은 few-shot holdout이므로, 깨끗한arena-goldenExperiment 데이터셋은 18개 항목입니다. - 대표 지표를 명시적으로 말하고, 왜 원시 정확도가 아닌지 설명하세요. 정답당
비용 — 이 특정 작업에 대한 비용당 품질입니다. 비용은 각 실행 시작 시 갱신되는 실시간
OpenRouter 가격으로 계산되며,
config.yaml에 박혀 있는 낡은 숫자가 아니라는 점을 짚어 주세요. - 그리드 용어를 화면에 보여주세요. 독점 대 오픈 웨이트로 나뉜 여섯 모델
(
claude-sonnet-5,gpt-5.6-luna,gemini-flash-lite/deepseek-v4-flash,qwen3.7-flash,glm-4.7-flash) × 프롬프트(P1_zeroshot…P3_dialect), 그리고config_id가<model>__<prompt>라는 것입니다. - Leaderboard 행에서 질문별 결과로, 다시 그 뒤의 Langfuse 트레이스로 라이브 클릭해 들어가세요. Module 02가 깊이 다루는 드릴다운 습관입니다.
- 승자에 도착해 그
config_id를 소리 내어 말하세요. 이후 모든 모듈이 그것을 참조합니다.
흔한 실패
- Langfuse 평가자가 설정되지 않음 — 하네스는
--eval-timeout(기본 180초)까지만 기다린 뒤 0이 아닌 코드로 종료하며 빠진 점수를 알려줍니다. 하네스가 기다리는 정확한 점수는 평가자 정의llm_judge가 내보내는agent-arena-llm-judge입니다. OpenRouter 기반 judge를 위해python -m scripts.provision_langfuse_evaluators를 실행하고, correctness 평가자의 target/필터를 고친 다음, 새--run-id로 모델 두 개, 프롬프트 하나의 작은 그리드를 실행하세요. Langfuse가 평가 저장소이므로 로컬 결과 대체 경로는 의도적으로 없습니다. - 자리표시자
OPENROUTER_API_KEY— 그리드의 모든 호출이401로 실패합니다. Module 00에서 확인해야 하지만, 놓쳤다면 여기서 드러납니다. 모든 구성에서 정답이 0개인 실행 전체로 나타납니다. - 모델 슬러그가 OpenRouter 카탈로그에서 어긋남 —
config.yaml의 모델id(예:anthropic/claude-sonnet-5)는 작성 당시 OpenRouter에서 살아 있던 것으로 고정되어 있고, OpenRouter는 슬러그를 폐기하거나 이름을 바꿉니다. 어떤 구성이 "model not found" 류의 실패로 즉시 오류가 난다면https://openrouter.ai/api/v1/models에서 현재 슬러그를 확인해config.yaml과 비교하세요. 대시보드의/api/models엔드포인트는 실시간 카탈로그를 반영하므로, 거기서의 불일치는 하네스를 돌리기 전에 이런 어긋남을 빠르게 발견하는 방법입니다. - ClickHouse가 시딩되지 않음 — Module 00이 깔끔하게 끝나지 않았다면 하네스의
v_*뷰 질의가 빈 결과나 오류를 반환하고, 모든 구성이 같은outcome으로 돌아옵니다.scripts/arena.sh up을 다시 실행하세요. - 실행이 멈춘 것처럼 보임 — 그리드는
models × prompts(기본 6 × 3 = 18개 구성)이므로 처음부터 끝까지 몇 분 걸릴 수 있습니다. 라이브 데모에서는--models/--prompts로 줄이세요 (리셋 절차 참고).
리셋 절차
- ClickHouse가 시딩되었는지 확인:
scripts/arena.sh up(멱등하며 재실행해도 안전). - 전체 그리드 대신 저렴한 부분집합 재실행:
python -m eval.harness --run-id demo2 --models qwen3.7-flash,gpt-5.6-luna --prompts P1_zeroshot,P3_dialect - 새로 실행할 때는 항상 새
--run-id(예:demo2,demo3)를 주어, 이전 실행에 합쳐지지 않고 Leaderboard에서 자체 행 묶음으로, Langfuse에서 자체 Experiment로 보이게 하세요. - Langfuse 평가자가 막고 있다면, 둘 모두 Experiments를 대상으로 하고 dataset
필터가
arena-golden인지 확인한 뒤 새--run-id로 위의 저렴한 부분집합을 다시 실행하세요. - 하네스가 아니라 대시보드 자체가 멈춘 것처럼 보이면,
scripts/arena.sh stop다음scripts/arena.sh serve로 시딩된 데이터를 건드리지 않고 로컬 서버만 재시작하세요.