EvalPort adapter for LangTest — exporting Harness.generated_results as a portable ResultSet #1256
Replies: 2 comments
|
Thanks, @adhabnr-ux. This looks like a good fit for LangTest, and I agree that Please go ahead with the PR under Thanks for contributing! |
|
Thanks for the quick yes — I'll build — Sahi |
Uh oh!
There was an error while loading. Please reload this page.
EvalPort (https://github.com/adhabnr-ux/evalport) is an open interchange spec + small SDK (
evalport-sdkon PyPI) for portable LLM evaluation datasets and results — a sharedEvalSuite/ResultSetJSON shape so results from one eval framework can be validated, diffed, or replayed by another instead of being locked into that framework's own report format.LangTest's own result model fits this well because it's already framework-agnostic on purpose — the README says as much: "one only needs to call access the
is_passproperty to assess whether theexpected_resultsand theactual_resultsare the same, regardless [of] the downstream task." Concretely, afterh.generated_resultsis a flatList[Sample], and every sample — NER, QA, robustness, bias, whatever task — is aBaseSample(langtest/utils/custom_types/sample.py) carryingoriginal,test_type,test_case,category,expected_results,actual_results, and anis_pass()check.langtest/utils/report_utils.py::model_report()then reduces that list into the DataFrameh.report()prints, grouped bytest_type/categorywithpass_count/fail_count/pass_rate/minimum_pass_rate/passcolumns. That's precisely a per-test-case pass/fail-with-scoring result set, computed by exactly one code path — a much easier adapter target than frameworks that only expose a rendered report.A
langtest-openeval-adapter(following the standalone-package, zero-footprint pattern used for the other 34 adapters in EvalPort — see Discussion #13 for the pyproject convention) would do:So a
bias/robustness/accuracyrun from LangTest becomes a portableResultSetany other EvalPort-compliant tool can read, diff across runs, or re-score — without touching anything in this repo.I'd like to build this and open it as a PR against
adapters/in the EvalPort repo (not against langtest) if that's welcome — happy to adjust the mapping if you think a different set ofBaseSamplefields belongs in the exported result instead.— Sahi, independent contributor, maintainer of EvalPort
All reactions