fix: colab bench manifest — entities must be dicts with char spans

Bench clip failed in Colab because entity_retention calls ent.get() but
the manifest used plain strings -> AttributeError -> clip counted as
failure (failure_rate 1.0). Notebook now builds entities as
{canonical, surface, start_char, end_char} from the reference text and
writes a reference file for meaningful metrics.
This commit is contained in:
2026-08-12 17:40:08 +09:00
parent be5f505410
commit 457c67df2c
2 changed files with 19 additions and 4 deletions
+18 -3
View File
@@ -332,16 +332,31 @@ def cells() -> list[dict]:
),
code(
"# 13) 벤치마크 — 샘플 manifest 사용 (선택, 시간 소요)\n"
"# 간단 manifest 생성\n"
"# entities는 {canonical, surface, start_char, end_char} dict여야 한다\n"
"# (문자열이면 entity_retention이 .get() 호출에 실패해 clip이 실패 처리됨)\n"
"import yaml\n"
"\n"
"REF_TEXT = '오늘은 vLLM 서버를 Kubernetes 클러스터에 배포하는 방법을 설명합니다. GPU 가속 추론으로 대기 시간을 줄일 수 있습니다.'\n"
"with open('/content/reference.txt', 'w', encoding='utf-8') as f:\n"
" f.write(REF_TEXT)\n"
"\n"
"entities = []\n"
"for name in ('vLLM', 'Kubernetes', 'GPU'):\n"
" idx = REF_TEXT.index(name)\n"
" entities.append({\n"
" 'canonical': name, 'surface': name,\n"
" 'start_char': idx, 'end_char': idx + len(name),\n"
" })\n"
"\n"
"manifest = {\n"
" 'name': 'colab-quick',\n"
" 'dataset_version': '1.0',\n"
" 'language': 'ko',\n"
" 'targets': {'entity_preservation': 0.95, 'cer': 0.15},\n"
" 'clips': [\n"
" {'name': 'ko-en-tech', 'audio_path': 'samples/colab-ko-en.mp3',\n"
" 'duration_sec': 10.5, 'entities': ['vLLM', 'Kubernetes', 'GPU']},\n"
" {'id': 'ko-en-tech', 'audio_path': 'samples/colab-ko-en.mp3',\n"
" 'reference_path': '/content/reference.txt',\n"
" 'duration_sec': 10.5, 'entities': entities},\n"
" ],\n"
"}\n"
"yaml.safe_dump(manifest, open('/content/manifest.yaml', 'w'))\n"