Lumaktaw sa pangunahing nilalaman

Eval Harness v2.0

Buod para sa Ehekutibo. Saklaw ng pahinang ito ang pag-install, pagsasaayos, at paggamit ng MT evaluation harness — ang tool na nagbe-benchmark ng mga pamamaraan ng pagsasalin laban sa mga pamantayang corpus at gumagawa ng mga scored run card. Para sa mga kanonikal na depinisyon ng mga metric, schema, at protocol ng pagsusuri, tingnan ang Benchmark Specification.

Pinapatakbo ng harness ang mga eksperimento sa pagsasalin at gumagawa ito ng mga run card. Pinangangasiwaan nito ang pagbuo ng prompt, mga API call, scoring, at serialization ng resulta — ibinibigay ninyo ang dataset at ang model.

Pag-install

Mga kinakailangan: Python 3.10+

pip install sacrebleu aiohttp

I-clone ang repository ng harness:

git clone https://github.com/gamedaysuits/arena.git
cd arena

Paggamit

mt-eval run --corpus path/to/dataset.json

Pinapatakbo nito ang bawat entry sa corpus sa pamamagitan ng naka-configure na model (o method plugin), nagbibigay ng score sa mga output, at nagsusulat ng run card JSON file sa output directory.

Mga CLI Flag

mt-eval run

FlagKinakailanganDefaultPaglalarawan
--corpusPath papunta sa corpus file (.json, .jsonl, .tsv)
--source-file / --reference-fileMga parallel text file (FLORES+, WMT format)
-m, --modelgemini-proModel slug (maikling pangalan o buong OpenRouter ID). Nire-resolve sa pamamagitan ng shared/model-aliases.json. Pinaghihiwalay ng kuwit para sa mga multi-model run
-d, --datasetallDataset filter: all, pangalan ng segment, o saklaw ng ID
--idsMga entry ID na pinaghihiwalay ng kuwit upang suriin
--source-langEnglishPangalan ng source language
--target-langPangalan ng target language
-p, --promptnaiveBersyon ng prompt (naive, custom, champollion)
--coaching-filePath papunta sa coaching prompt text file
--coachingInline coaching text (quoted string)
--methodPath papunta sa method plugin directory (naglalaman ng method.json + Python module)
--method-cardPath papunta sa method card JSON para sa leaderboard metadata
--fst-retries0Bilang ng mga pagtatangkang FST retry (default na LLM method lamang)
--skip-fstfalseLaktawan nang buo ang FST quality gate
--toolsfalsePaganahin ang tool-calling mode
--tools-listMga pangalan ng tool na pinaghihiwalay ng kuwit
--max-tool-rounds8Pinakamataas na bilang ng tool-calling rounds kada entry
--hooksMga pangalan ng post-translation hook
--style-profilePath papunta sa isang style profile JSON. Pinapagana ang mga metric para sa consistency ng writing style (impormatibo — kailanman ay hindi bahagi ng composite score; tingnan ang § Mga metric ng estilo ng pagsulat at rehistro)
-b, --batch-size25Mga entry kada API call
-c, --concurrency8Mga parallel API call
--max-tokens32768Pinakamataas na tokens kada API call
--temperature0.0Sampling temperature (0.0 = deterministic)
--no-cachefalseI-disable ang response caching
--cache-direval/cache/harnessPath ng cache directory
-o, --output-direval/logs/harnessOutput directory para sa mga run card at log
-n, --nameRun name na madaling basahin ng tao
--dry-runfalseI-validate ang configuration nang hindi gumagawa ng mga API call
--champollion-configPath papunta sa champollion.config.json
--champollion-cards-dirDirectory ng mga language card
--target-lang-codeBCP-47 language code

Iba Pang Subcommand

SubcommandPaglalarawan
mt-eval test <log_path>Suriin ang isang nakumpletong run log
mt-eval publish <report_path>Magsumite ng run card sa leaderboard
mt-eval compare <logs...>Ihambing ang maraming run nang magkatabi
mt-eval dashboard <logs...>Bumuo ng HTML dashboard mula sa mga run log
mt-eval list models|prompts|datasetsIlista ang mga available na resource
mt-eval exportI-package ang kasalukuyang setup bilang champollion method plugin
mt-eval export-configI-export ang resolved MethodConfig (lahat ng 8 kanonikal na field) bilang JSON

Mga Halimbawa

# Run with defaults (gemini-pro alias → google/gemini-3.1-pro-preview, naive prompt)
mt-eval run --corpus data/edtekla-dev-v1.json

# Coached experiment with coaching file
mt-eval run \
--corpus data/edtekla-dev-v1.json \
--model google/gemini-3.1-pro \
--coaching-file prompts/crk-coaching-v8.txt \
--temperature 0.0

# Run a custom method plugin with FST retries
mt-eval run \
--corpus data/edtekla-dev-v1.json \
--method ./methods/fst-gated-pipeline \
--fst-retries 3

Run Card Schema

Bawat eksperimento ay gumagawa ng run card — isang self-contained na JSON document. Ang top-level structure:

{
"run_id": "uuid-v4",
"harness_version": "2.0",
"model_slug": "google/gemini-3.1-pro",
"model_id": "gemini-3.1-pro-001",
"condition": "baseline",
"timestamp": "2026-06-01T03:22:41Z",
"elapsed_seconds": 142.7,
"dataset": { ... },
"config": { ... },
"method_card": { ... },
"system_prompt_sha256": "abc123...",
"system_prompt_used": "You are a translator...",
"fingerprint": { ... },
"scores": { ... },
"totals": { ... },
"environment": { ... },
"results": [ ... ],
"run_card_hash": "sha256-of-entire-card"
}

Tingnan ang Run Card Specification para sa buong schema na may dokumentasyon para sa bawat field.

:::info Awtoritatibong Schema Ang Benchmark Specification ang nag-iisang source of truth para sa run card schema. Para sa mga depinisyon ng metric, composite weights, at quality tiers, tingnan ang Scoring Specification. Idinodokumento ng pahinang ito kung paano gamitin ang harness; tinutukoy ng mga spec kung ano ang ibig sabihin ng mga output. :::

Mahahalagang Block

dataset — Tinutukoy kung aling dataset ang ginamit, kabilang ang content hash nito upang maikabit ang mga resulta sa isang partikular na bersyon:

// Example using master_corpus.json (62 gold + 342 textbook = 404)
{
"id": "edtekla-dev-v1",
"version": "1.0",
"language_pair": "EN→CRK",
"sha256": "...",
"entry_count": 404
}

scores — Mga aggregate metric para sa run:

// Counts reflect the dataset used (here: master_corpus.json, 404 entries)
{
"total": 404,
"exact_matches": 12,
"exact_match_rate": 0.0968,
"fst_accepted": 87,
"fst_acceptance_rate": 0.7016,
"chrf_plus_plus": 42.31,
"errors": 0,
"avg_latency_seconds": 1.15,
"median_latency_seconds": 1.02,
"p95_latency_seconds": 2.34,
"by_difficulty": { ... },
"by_provenance": { ... }
}

totals — Pagsubaybay sa paggamit ng token at gastos:

{
"prompt_tokens": 48200,
"completion_tokens": 3100,
"reasoning_tokens": 0,
"cached_tokens": 12000,
"total_cost_usd": 0.42,
"cost_per_entry_usd": 0.0034,
"reasoning_ratio": 0.0
}

Mga metric ng estilo ng pagsulat at rehistro (impormatibo)

Maaaring suriin ng harness kung tumutugma ang mga pagsasalin sa target na rehistro at writing style, sa pamamagitan ng WritingStyleConsistency metric plugin (mt_eval_harness/plugins/writing_style.py). Maaaring tama ang isang pagsasalin sa aspektong lingguwistiko ngunit nasa maling rehistro — impormal na pananalita sa isang legal na dokumento, pormal na boilerplate sa marketing copy — at hindi ito mapapansin ng mga string metric. Napapansin ito ng mga metric na ito.

Ano ang sinusukat (kada entry):

MetricScaleKahulugan
style_register_matchbooleanTumutugma ba ang output sa inaasahang rehistro? Nagmumula ang target sa field na register ng corpus entry (tingnan ang Benchmark Spec §2.6) o mula sa isang style profile
style_sentence_length_ratiofloatPredicted vs reference average sentence length (1.0 = tugma; divergence = style drift)
style_formality_score0.0–1.0Presensya ng mga pormal/impormal na marker (T–V pronouns, contractions, …) gamit ang per-language marker resources

Aggregate: style_consistency_rate — ang fraction ng mga entry na walang natukoy na register mismatch.

Paganahin ang custom target gamit ang --style-profile path/to/profile.json (hal. isang brand-voice profile); kung wala nito, babalik ang plugin sa metadata na register ng bawat corpus entry kung naroroon.

:::caution Matapat na saklaw Ang mga metric na ito ay impormatibo lamang — kailanman ay hindi sila bahagi ng composite score, at ang formality detection ay marker-based (isang heuristic), hindi isang learned judgment. Ituring ang mga ito bilang drift detector para sa pagsunod sa rehistro, hindi bilang hatol sa kalidad ng estilo. :::


Fingerprint vs Run Card Hash

Gumagawa ang harness ng dalawang magkahiwalay na hash. Magkaiba ang layunin ng mga ito:

Fingerprint

Sinasagot ng fingerprint ang: "Maaari bang ma-reproduce ang run na ito?"

Hina-hash nito ang kombinasyon ng mga input na tumutukoy sa configuration ng eksperimento — hindi ang mga output:

  • Dataset SHA-256
  • Model slug
  • Condition label
  • System prompt SHA-256
  • Temperature
  • Bersyon ng harness

Dalawang run na may magkaparehong fingerprint ang gumamit ng parehong setup. Dapat maihambing ang kanilang mga resulta (maliban sa API non-determinism).

Run Card Hash

Sinasagot ng run card hash ang: "Nabago ba nang hindi awtorisado ang partikular na result file na ito?"

Ito ang SHA-256 ng buong run card JSON (hindi kasama ang field na run_card_hash mismo). Kung may magbago sa alinmang field — isang score, isang timestamp, isang output — masisira ang hash.

:::info Kailan gagamitin ang alin Gamitin ang fingerprint upang ipangkat ang mga maihahambing na run (parehong eksperimento, magkakaibang execution). Gamitin ang run card hash upang i-verify ang integridad ng isang partikular na result file. :::


Pag-publish sa Leaderboard

Pagkatapos makumpleto ang isang run, gamitin ang mt-eval publish upang isumite ang run card:

mt-eval publish eval/logs/harness/your-run-card.json

Kung walang ibinigay na --method-card sa panahon ng run, maglulunsad ang mt-eval publish ng interactive wizard (method_card_wizard.py) na gagabay sa inyo sa paglalarawan ng inyong method (pangalan, klase, mga tool na ginamit, atbp.). Isinasama ang output ng wizard sa run card bago isumite.

Manu-manong pagsusumite

Sine-save ang mga run card bilang mga JSON file sa output directory. Maaari rin ninyong isumite ang anumang run card file sa pamamagitan ng leaderboard UI sa /leaderboard, o sa pamamagitan ng API:

curl -X POST https://champollion.dev/api/leaderboard/submit \
-H "Content-Type: application/json" \
-d @eval/logs/harness/your-run-card.json

:::warning Pag-validate ng leaderboard Vina-validate ng leaderboard ang mga isinumiteng run card laban sa dataset registry. Tinatanggihan ang mga submission na tumutukoy sa mga hindi kilalang dataset, o may sirang run_card_hash. :::

:::danger HUWAG MAG-TRAIN sa evaluation data Kung nakita na ng inyong method ang evaluation dataset sa panahon ng development — bilang training data, few-shot examples, dictionary entries, o prompt engineering material — ang inyong submission ay madidisqualify. Tingnan ang MT Evaluation para sa kung ano ang bumubuo sa mabuti vs. masamang method. :::


Tingnan Din