Laya에 system1을 모델로 넘기면 ValueError가 나는 이유
PyPI 0.4.3에 올라온 Laya의 요약은 Fast, non-autoregressive System 1 decision engine with calibrated probabilities입니다. 이 문구 때문에 System 1을 체크포인트 이름으로 넣기 쉬운데, 그 호출은 가중치를 읽기 전에 ValueError로 멈춥니다. 한국어 고객 메일을 부서별로 나누는 파이프라인을 운영에 올리려면 GPU 없는 Debian 서버에서 Laya 호출이 이름 단계부터 통과해야 하므로, 이 오류를 출발점으로 삼았습니다.
Debian에서 laya 0.4.3으로 재현 스크립트로 그 오류를 일으킨 뒤, 모델 인자를 비운 자동 라우팅과 별칭 laya-multilingual로 한국어 메일 12통을 predict_batch에 돌려 분류했습니다. 이어서 별칭 laya의 route, 영어·한국어·일본어 자동 route, choice:3 버킷 오류와 choice:3-5 보류 표시까지 같은 환경에서 확인했습니다. 어느 서버에 올리든 요청 이름과 실제 체크포인트가 어긋나면 같은 증상이 나니, 로컬에서 이름과 route부터 못 박아 두는 편이 안전합니다.
model=’system1’은 가중치를 읽기도 전에 ValueError
GPU 없는 Debian 서버의 실행 환경입니다. 표의 값은 아래 재현·분류·점검 스크립트를 실행한 그 서버에서 기록한 것이고, 시각의 시분초는 재실행마다 달라지므로 표에는 날짜만 둡니다.
| 항목 | 값 | 출력 |
|---|---|---|
| 실행일 | 2026-10-14 | 재현·분류·점검 출력의 date |
| OS | Debian GNU/Linux 13 (trixie) | os-release PRETTY_NAME |
| 커널 | Linux 6.12.94+ x86_64 | uname -srm |
| nproc | 8 | nproc |
| GPU | cuda False | torch.cuda.is_available() |
| Python | 3.12.15 | python –version |
| laya | 0.4.3, license Apache-2.0 | importlib 메타데이터 |
| PyPI 요구 | requires_python >=3.10, version 0.4.3 | PyPI JSON |
| torch | 2.14.1+cu130 | torch.__version__ |
| transformers | 5.19.0 | transformers.__version__ |
| 모델 API | hf_id convaiinnovations/laya, hf_sha12 7b928d828b7b, hf_license apache-2.0, hf_file_count 39 | Hugging Face 모델 API |
| 로컬 가중치 | 643835514바이트, route_repo models/multilingual | stat · route_repo |
PyPI 프로젝트 페이지와 모델 API의 HEAD 상태 줄은 둘 다 HTTP/2 200입니다. 버전 JSON의 pypi_version은 0.4.3이고, hf_has_multilingual_weights는 True입니다. 설치 메타데이터의 license는 Apache-2.0이고, 카드의 license는 apache-2.0입니다. 표기는 출력이 그렇게 다릅니다.
default_models는 english가 ('convaiinnovations/laya', None), multilingual이 ('convaiinnovations/laya', 'multilingual'), typed-decisions가 ('convaiinnovations/laya', 'typed-decisions')입니다. 재현 스크립트는 이 레지스트리에 없는 이름으로 한국어 결제 문장 한 통을 넣습니다.
from laya import Router
router = Router()
mail = "카드 결제가 두 번 됐어요. 한 건 취소해 주세요."
questions = {
"department": {
"type": "choice",
"instructions": "이 메일을 처리할 부서는?",
"criteria": {
"billing": "결제, 환불, 청구서",
"technical": "버그, 장애, 오류",
"other": "그 외",
},
}
}
router.predict(mail, questions, model="system1")
위 코드는 laya를 설치한 가상환경의 파이썬으로 그대로 실행합니다.
"${PY}" -u src/repro_system1.py
실행하면 가중치를 내려받기도 전에 멈춥니다. 출력에서 repro_exit=1이고 예외 종류는 ValueError입니다. System 1이라는 제품 설명을 체크포인트 키로 넣으면, 추론에 들어가기도 전에 이름 검사에서 거절된다는 뜻입니다.
=== reproduce model=system1 ===
+ date --iso-8601=seconds
2026-10-14T15:14:42+09:00
+ grep ^PRETTY_NAME= /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
+ uname -srm
Linux 6.12.94+ x86_64
+ nproc
8
+ command -v nvidia-smi || echo nvidia-smi: command not found
nvidia-smi: command not found
+ /tmp/laya-venv/bin/python --version
Python 3.12.15
+ cat > src/versions.py << 'PY'
+ /tmp/laya-venv/bin/python -u src/versions.py
laya 0.4.3
license Apache-2.0
default_models {'english': ('convaiinnovations/laya', None), 'multilingual': ('convaiinnovations/laya', 'multilingual'), 'typed-decisions': ('convaiinnovations/laya', 'typed-decisions')}
+ curl -sI --max-time 20 https://pypi.org/project/laya/0.4.3/
HTTP/2 200
+ curl -sS --max-time 20 https://pypi.org/pypi/laya/0.4.3/json
pypi_version 0.4.3
pypi_requires_python >=3.10
pypi_summary Fast, non-autoregressive System 1 decision engine with calibrated probabilities
+ curl -sI --max-time 20 https://huggingface.co/api/models/convaiinnovations/laya
HTTP/2 200
+ curl -sS --max-time 20 https://huggingface.co/api/models/convaiinnovations/laya
hf_id convaiinnovations/laya
hf_sha12 7b928d828b7b
hf_license apache-2.0
hf_file_count 39
hf_has_multilingual_weights True
+ cat > src/repro_system1.py << 'PY'
+ /tmp/laya-venv/bin/python -u src/repro_system1.py
Traceback (most recent call last):
File "/home/user/laya/run/src/repro_system1.py", line 16, in <module>
router.predict(mail, questions, model="system1")
File "/tmp/laya-venv/lib/python3.12/site-packages/laya/router.py", line 1352, in predict
decision = self.route(state, questions, model=model, task=task, lang=lang,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/laya-venv/lib/python3.12/site-packages/laya/router.py", line 1195, in route
decision = self._route(state, questions, model=model, task=task, lang=lang, lang_guess=lang_guess)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/laya-venv/lib/python3.12/site-packages/laya/router.py", line 1227, in _route
key = self.resolve(model)
^^^^^^^^^^^^^^^^^^^
File "/tmp/laya-venv/lib/python3.12/site-packages/laya/router.py", line 788, in resolve
raise ValueError("unknown model %r; choose one of %s (or an alias: %s)"
ValueError: unknown model 'system1'; choose one of ['english', 'multilingual', 'typed-decisions'] (or an alias: ['decisions', 'default', 'en', 'laya', 'laya-multilingual', 'laya-typed-decisions', 'ml', 'multi', 'typed', 'typed_decisions'])
repro_exit=1

이 캡처의 트레이스백 경로에는 작업 폴더 이름이 그대로 보이는데, 본문에서는 앞부분을 /home/user/laya로 줄였습니다. 줄 번호와 예외 메시지는 같습니다.
System 1은 제품 설명이지 체크포인트 이름이 아니다
traceback은 Router.predict에서 route, _route, resolve로 내려갑니다. 마지막 메시지는 unknown model ‘system1’이며, 고를 수 있는 이름은 english, multilingual, typed-decisions입니다. 함께 찍힌 별칭은 decisions, default, en, laya, laya-multilingual, laya-typed-decisions, ml, multi, typed, typed_decisions입니다. system1은 그 목록에 없습니다.
System 1은 패키지 요약에 쓰인 제품 설명일 뿐, 체크포인트 키가 아닙니다. 별칭 laya도 묶음 전체를 뜻하지 않습니다. 뒤의 route 출력을 보면 이 별칭은 english로 풀립니다. 한국어 메일에 그 별칭을 박아 두면, 이름을 비웠을 때 한글을 보고 고르던 것과 다른 체크포인트가 선택됩니다.
이름을 비우거나 laya-multilingual로 한국어 메일 분류
두 해결책 모두 model="system1"을 넣지 않는다는 데서 출발합니다. 체크포인트 파일은 이 서버 캐시에 이미 있던 스냅샷을 로컬 경로 models/multilingual로 연결했습니다. 디렉터리 이름에 7b928d828b7b0e022f929d9bd2e44165aa270148이 들어 있고, API의 hf_sha12 7b928d828b7b가 그 이름의 앞부분과 같습니다. model.safetensors의 바이트 수는 643835514입니다.
SNAP="/home/user/.cache/huggingface/hub/models--convaiinnovations--laya/snapshots/7b928d828b7b0e022f929d9bd2e44165aa270148/multilingual"
분류 코드는 Router의 multilingual 항목을 그 로컬 디렉터리로 바꿔 끼웁니다. device="cpu", max_loaded=1입니다. 질문은 재현 때와 같은 department choice이고 기준은 billing, technical, other 세 개입니다. 문장 열두 통과 라벨은 기존 점검에서 쓰던 세트이고, predict_batch에는 model 인자를 주지 않습니다.
local = "models/multilingual"
router = Router(models={"multilingual": local}, max_loaded=1, device="cpu")
questions = {
"department": {
"type": "choice",
"instructions": "이 메일을 처리할 부서는?",
"criteria": {
"billing": "결제, 환불, 청구서",
"technical": "버그, 장애, 오류",
"other": "그 외",
},
}
}
mails = [
("카드 결제가 두 번 됐어요. 한 건 취소해 주세요.", "billing"),
("이번 달 청구서 금액이 계약과 달라요.", "billing"),
("환불 요청한 지 열흘이 지났습니다.", "billing"),
("세금계산서를 다시 발행해 주실 수 있나요?", "billing"),
("앱이 실행하자마자 꺼집니다.", "technical"),
("로그인하면 500 오류가 납니다.", "technical"),
("API 응답이 30초 넘게 걸려요.", "technical"),
("비밀번호 재설정 메일이 오지 않습니다.", "technical"),
("다음 달 세미나 일정이 궁금합니다.", "other"),
("채용 공고에 지원하고 싶습니다.", "other"),
("지난번 상담 친절하게 해 주셔서 감사합니다.", "other"),
("사무실 주소를 알려 주세요.", "other"),
]
requests = [{"state": text, "questions": questions} for text, _gold in mails]
results = router.predict_batch(requests)
분류 스크립트도 같은 가상환경에서 돌립니다.
"${PY}" -u src/classify12.py
배치를 돌린 결과입니다. 요약 줄은 accuracy 9/12, classify_exit=0입니다. 이름 오류는 사라졌지만, other 라벨이 섞이는 받은편지함이라면 이 정확도만 보고 자동 배정을 정하기는 어렵다는 신호로 읽었습니다.
=== classify korean mail on multilingual ===
+ date --iso-8601=seconds
2026-10-14T15:14:47+09:00
+ test -d /home/user/.cache/huggingface/hub/models--convaiinnovations--laya/snapshots/7b928d828b7b0e022f929d9bd2e44165aa270148/multilingual
+ link local multilingual snapshot
+ ln -sfn /home/user/.cache/huggingface/hub/blobs/53/53499790a05bdabd4023a797e9e2776d39efd3bac72d6ddaed70495da40c6eb0 models/multilingual/model.safetensors
+ ln -sfn /home/user/.cache/huggingface/hub/models--convaiinnovations--laya/blobs/00e35f88bb731bb9126a914666ab1cdac8a204c8 models/multilingual/rl_agent_config.json
+ ln -sfn /home/user/.cache/huggingface/hub/models--convaiinnovations--laya/blobs/0de0e2d30638873790cf962def52e2acf4db3eef models/multilingual/encoder/config.json
+ ln -sfn /home/user/.cache/huggingface/hub/blobs/8f/8fdbdb0307b65058d3b81a88cba0082cd1bbe8e85d34295d2271d6fa85a31c7a models/multilingual/tokenizer/tokenizer.json
+ ln -sfn /home/user/.cache/huggingface/hub/models--convaiinnovations--laya/blobs/c255ac0c8cb34a37d066cd0dafe313fd769d27ae models/multilingual/tokenizer/tokenizer_config.json
+ stat -c %s $(readlink -f models/multilingual/model.safetensors)
643835514
+ cat > src/torch_versions.py << 'PY'
+ /tmp/laya-venv/bin/python -u src/torch_versions.py
torch 2.14.1+cu130
transformers 5.19.0
cuda False
+ cat > src/classify12.py << 'PY'
+ /tmp/laya-venv/bin/python -u src/classify12.py
O gold=billing pred=billing confidence=0.791 answer_confidence=0.9511 routing=multilingual
O gold=billing pred=billing confidence=0.971 answer_confidence=0.9954 routing=multilingual
O gold=billing pred=billing confidence=0.573 answer_confidence=0.8724 routing=multilingual
O gold=billing pred=billing confidence=0.410 answer_confidence=0.7751 routing=multilingual
O gold=technical pred=technical confidence=0.846 answer_confidence=0.9637 routing=multilingual
O gold=technical pred=technical confidence=0.946 answer_confidence=0.9900 routing=multilingual
O gold=technical pred=technical confidence=0.848 answer_confidence=0.9670 routing=multilingual
O gold=technical pred=technical confidence=0.782 answer_confidence=0.9483 routing=multilingual
O gold=other pred=other confidence=0.113 answer_confidence=0.4636 routing=multilingual
X gold=other pred=technical confidence=0.565 answer_confidence=0.8599 routing=multilingual
X gold=other pred=billing confidence=0.087 answer_confidence=0.4956 routing=multilingual
X gold=other pred=technical confidence=0.136 answer_confidence=0.5727 routing=multilingual
accuracy 9/12
label_hits billing 4/4
label_hits technical 4/4
label_hits other 1/4
route_reason_count 2
route_reason non-Latin script (hangul, 100% of letters); the English checkpoint cannot read it
route_reason non-Latin script (hangul, 75% of letters); the English checkpoint cannot read it
route_repo models/multilingual
explicit_alias multilingual billing 0.9511
saved 12
classify_exit=0

열두 줄의 routing은 모두 multilingual이고 route_repo는 models/multilingual입니다. route_reason_count는 2이며, 두 reason 모두 한글 스크립트를 이유로 영어 체크포인트를 쓰지 않는다고 적혀 있습니다. 문장 안의 한글 비율은 출력의 두 줄에 있습니다.
label_hits는 billing 4/4, technical 4/4, other 1/4입니다. 맞는 other는 세미나 일정 한 통이고 confidence는 0.113, answer_confidence는 0.4636입니다. 어긋난 세 통도 라벨은 other입니다. 채용 문장은 technical, confidence 0.565, answer_confidence 0.8599입니다. 감사 문장은 billing, confidence 0.087, answer_confidence 0.4956입니다. 사무실 주소 문장은 technical, confidence 0.136, answer_confidence 0.5727입니다. confidence와 answer_confidence는 같은 줄에서도 숫자가 다릅니다.
model을 비우고 자동 라우팅에 맡기기
model 인자를 비우면 system1이 resolve로 들어가지 않으니 그 ValueError도 나지 않습니다. 이번 열두 통은 그 경로로 multilingual에 올라갔습니다.
이번 배치에서는 모델 이름 때문에 생기는 ValueError가 없었고, 한글 메일의 routing도 출력대로 multilingual이었습니다. 걸리는 것은 정확도입니다. 이 열두 통에서 other는 1/4만 맞았으니, accuracy 9/12만 믿고 other가 섞인 메일을 자동으로 배정하기는 어렵습니다.
별칭 laya-multilingual로 체크포인트 고정하기
같은 분류 실행에서 첫 통만 model="laya-multilingual"로 다시 불렀습니다. 출력 줄은 explicit_alias multilingual billing 0.9511이고, 배치 첫 줄도 pred=billing, answer_confidence=0.9511입니다. 별칭이 가리키는 체크포인트, 부서, answer_confidence가 모두 배치와 같습니다.
laya-multilingual 호출도 모델 이름 때문에 생기는 ValueError가 없었고, 첫 통의 부서와 answer_confidence가 자동 배치와 같았습니다. 다만 이름을 고정하면 그 요청에서는 자동 언어 판정보다 명시한 인자가 우선합니다. 한국어에 별칭 laya를 주면 english로 풀린다는 것이 다음 절의 route 출력에 나옵니다.
이름이 비슷한 별칭, 언어별 route, choice:3 버킷 키
분류가 된 뒤에도 이름이 비슷해서 다시 막히는 곳이 세 군데 있습니다. 별칭을 습관처럼 붙이는 경우, 언어마다 체크포인트가 갈리는 경우, 세 선택지 질문의 min_confidence 키를 choice:3으로 적는 경우입니다. 아래 코드는 체크포인트를 새로 올리지 않고, route와 버킷 검사, 저장해 둔 배치 결과에 대한 보류 표시만 합니다.
samples = [
("en", "Please refund my last payment, it was charged twice."),
("ko", "지난 결제가 두 번 됐으니 환불해 주세요."),
("ja", "前回の支払いが二重になりました。返金してください。"),
]
router = Router()
for name, text in samples:
decision = router.route(text, questions)
print("auto", name, decision["model"], decision["reason"])
ko = samples[1][1]
pinned_en = router.route(ko, questions, model="laya")
pinned_ml = router.route(ko, questions, model="laya-multilingual")
print("alias_laya", pinned_en["model"], pinned_en["reason"])
print("alias_laya_multilingual", pinned_ml["model"], pinned_ml["reason"])
try:
check_min_confidence({"choice:3": 0.85})
print("bad_bucket_unexpected")
except ValueError as exc:
print("bad_bucket_error", exc)
print("good_bucket", check_min_confidence({"choice:3-5": 0.85}))
이 점검도 같은 가상환경의 파이썬으로 실행합니다.
"${PY}" -u src/options.py
별칭·언어 route와 버킷 키를 이어서 점검한 출력이고, 보류 처리 결과 뒤에 gate_exit=0이 붙어 있습니다. 이름을 비운 경로와 별칭을 고정한 경로가 같은 한국어 문장에서 서로 다른 체크포인트를 고른다는 점이 실무에서 가장 헷갈리는 대목입니다.
=== routing aliases and confidence gate ===
+ date --iso-8601=seconds
2026-10-14T15:15:05+09:00
+ test -f dept_results.json
+ cat > src/options.py << 'PY'
+ /tmp/laya-venv/bin/python -u src/options.py
auto en english English Latin text
auto ko multilingual non-Latin script (hangul, 100% of letters); the English checkpoint cannot read it
auto ja multilingual non-Latin script (kana, 100% of letters); the English checkpoint cannot read it
alias_laya english explicit model='laya'
alias_laya_multilingual multilingual explicit model='laya-multilingual'
bad_bucket_error min_confidence map keys must be a bucket like 'choice:3-5' or 'default', got 'choice:3'
good_bucket {'choice:3-5': 0.85}
email_state_field body
email_qids category,is_phishing,is_spam,needs_reply,urgency
email_state_keys body,from,subject
email_body 카드 결제가 두 번 됐어요. 한 건 취소해 주세요.
cleaned_body 카드 결제가 두 번 됐어요.
gate gold=billing pred=billing confidence=0.791 answer_confidence=0.9511 abstention=passed low_confidence=False threshold=0.85
gate gold=billing pred=billing confidence=0.971 answer_confidence=0.9954 abstention=passed low_confidence=False threshold=0.85
gate gold=billing pred=billing confidence=0.573 answer_confidence=0.8724 abstention=passed low_confidence=False threshold=0.85
gate gold=billing pred=billing confidence=0.410 answer_confidence=0.7751 abstention=abstained low_confidence=True threshold=0.85
gate gold=technical pred=technical confidence=0.846 answer_confidence=0.9637 abstention=passed low_confidence=False threshold=0.85
gate gold=technical pred=technical confidence=0.946 answer_confidence=0.9900 abstention=passed low_confidence=False threshold=0.85
gate gold=technical pred=technical confidence=0.848 answer_confidence=0.9670 abstention=passed low_confidence=False threshold=0.85
gate gold=technical pred=technical confidence=0.782 answer_confidence=0.9483 abstention=passed low_confidence=False threshold=0.85
gate gold=other pred=other confidence=0.113 answer_confidence=0.4636 abstention=abstained low_confidence=True threshold=0.85
gate gold=other pred=technical confidence=0.565 answer_confidence=0.8599 abstention=passed low_confidence=False threshold=0.85
gate gold=other pred=billing confidence=0.087 answer_confidence=0.4956 abstention=abstained low_confidence=True threshold=0.85
gate gold=other pred=technical confidence=0.136 answer_confidence=0.5727 abstention=abstained low_confidence=True threshold=0.85
gate_passed 8
gate_abstained 4
gate_exit=0
+ curl -sI --max-time 20 https://github.com/NandhaKishorM/laya
HTTP/2 200
+ curl -sI --max-time 20 https://huggingface.co/convaiinnovations/laya
HTTP/2 200
+ curl -sI --max-time 20 https://nandhakishorm.github.io/laya/
HTTP/2 200
+ curl -sI --max-time 20 https://pypi.org/project/laya/
HTTP/2 200

이름을 비운 route는 영어 문장 english, 한국어 환불 문장 multilingual, 일본어 문장 multilingual입니다. 영어 reason은 English Latin text입니다. 한국어 reason은 hangul, 일본어 reason은 kana라고 적혀 있습니다. 같은 한국어 문장에 model="laya"를 주면 alias_laya는 english이고 reason은 explicit model=’laya’입니다. model="laya-multilingual"이면 multilingual이고 reason은 explicit model=’laya-multilingual’입니다. 제품 이름처럼 보이는 laya가 영어 체크포인트라는 점이, system1 오류와 같은 종류의 이름 문제입니다.
세 선택지 질문에 맞는 버킷 키
{"choice:3": 0.85}는 추론 전에 거절됩니다. 출력 문장은 min_confidence map keys must be a bucket like ‘choice:3-5’ or ‘default’, got ‘choice:3’입니다. 세 라벨 department 질문에 맞는 키는 choice:3-5이고, good_bucket은 {'choice:3-5': 0.85}입니다. 0.85는 이 호출에 넣은 인자이며, 패키지가 이 표본에 맞춰 준 컷은 아닙니다.
그 맵을 배치 JSON에 apply_confidence_gate로 적용하면 선택지는 그대로이고 보류 표시가 붙습니다. gate_passed는 8, gate_abstained는 4입니다. 보류된 줄은 세금계산서 메일(정답 billing, confidence 0.410, answer_confidence 0.7751), 세미나 메일(정답 other, 0.113, 0.4636), 감사 메일(오답 billing, 0.087, 0.4956), 주소 메일(오답 technical, 0.136, 0.5727)입니다. 채용 메일(오답 technical, confidence 0.565, answer_confidence 0.8599)은 abstention=passed, low_confidence=False입니다.
오분류 세 통 가운데 보류된 것은 감사와 주소 두 통입니다. 채용 오분류는 통과합니다. 맞는 세금계산서 메일도 보류됩니다. confidence 0.410인 정답이 confidence 0.565인 오답보다 먼저 걸리고, answer_confidence도 0.7751이 0.8599보다 낮습니다. 통과한 여덟 통에는 오답이 한 통 남아 있습니다.
없는 버킷 키는 ValueError로 먼저 멈추고, 있는 키는 선택지와 확률을 지우지 않은 채 passed와 abstained만 나눠 준다는 점은 믿을 만합니다. 그러나 이번 0.85에서는 채용 오분류가 통과했습니다. gate_passed 8을 자동 전송 목록으로 삼기에는 이 표본과 맞지 않습니다.
email 프리셋은 body 칸만 읽는다
부서 분류에 쓴 질문 문장에는 백틱 필드가 없습니다. 그래서 문자열 state 전체가 메일 본문입니다. email_questions()는 다릅니다. email_state_field는 body이고, 질문 id는 category, is_phishing, is_spam, needs_reply, urgency입니다. email_state에 제목 중복 결제, 본문, 보낸 사람을 넣으면 키는 body, from, subject이고 email_body는 입력한 한국어 문장과 같습니다.
같은 본문 뒤에 영어 회신 머리글을 붙인 입력에서는 cleaned_body에 한국어 결제 문장만 남습니다. 인용으로 넘긴 이전 안내 줄은 그 출력에 없습니다. 프리셋으로 질문을 바꿀 때는 본문을 body에 두어야 질문이 읽는 칸과 입력이 맞습니다.
문서 링크의 HEAD 상태 줄도 HTTP/2 200입니다. 저장소는 NandhaKishorM/laya, 모델 카드는 convaiinnovations/laya, 문서 사이트는 nandhakishorm.github.io/laya, 패키지 페이지는 pypi.org/project/laya와 0.4.3, API는 모델 API입니다.
model은 비우거나 laya-multilingual로, 한국어 메일에 별칭 laya는 빼기
표에는 이 글에서 출력 블록에 결과가 남은 선택지만 넣었습니다. 분류, route, 보류 표시를 한곳에 모아 두었으니 상황에 맞는 행을 고르면 됩니다.
| 선택 | 이번 실행 결과 | 쓸 때 |
|---|---|---|
| model=”system1″ | ValueError, repro_exit=1 | 체크포인트 이름으로 쓰지 않습니다 |
| model 생략, predict_batch | routing=multilingual, accuracy 9/12, classify_exit=0 | 한국어 메일 분류의 기본 경로입니다 |
| model=”laya-multilingual” | explicit_alias multilingual billing 0.9511 | 다국어 체크포인트를 고정할 때입니다 |
| model=”laya” route | english, explicit model=’laya’ | 한국어 문장에는 이 별칭을 고정하지 않습니다 |
| 자동 route 영어, 한국어, 일본어 | english, multilingual, multilingual | 가중치를 올리기 전에 분기를 볼 때입니다 |
| min_confidence choice:3 | ValueError, got ‘choice:3’ | 세 선택지 키로 쓰지 않습니다 |
| 사후 게이트 choice:3-5 = 0.85 | gate_passed 8, gate_abstained 4, gate_exit=0 | 선택지를 유지한 채 보류 표시만 할 때입니다 |
호출이 unknown model ‘system1’으로 멈춘 경우에는 그 인자를 지우는 것이 첫 조치입니다. 한국어 메일이면 model을 비워 자동 라우팅에 맡기거나, 다국어 체크포인트를 명시할 때 laya-multilingual을 씁니다. 별칭 laya는 이번 route에서 english로 풀렸으므로, 한글 메일을 그 이름으로 고정하는 선택은 권하지 않습니다. 배포 전 헬스체크에는 한국어 한 통과 영어 한 통의 route 결과를 함께 넣어, 별칭이 의도한 체크포인트를 가리키는지 확인하는 구성을 추천합니다.
부서 라벨을 자동으로 넣을지 고를 때는 accuracy 9/12와 함께 라벨별 줄을 봅니다. billing과 technical은 각 4/4였고 other는 1/4였습니다. other가 섞일 수 있는 받은편지함이라면, 이 열두 통만 보고 자동 배정하지 않는 쪽을 추천합니다.
보류 표시를 더할 경우에는 키가 choice:3-5인지 먼저 확인합니다. choice:3은 이번 실행에서 ValueError였습니다. 0.85를 이 표본에 적용하면 채용 오분류가 passed로 남고, 맞는 세금계산서 메일은 abstained가 됩니다. 통과 목록을 그대로 보내는 기준으로 쓰려면 여러분의 라벨로 컷을 다시 잡아야 합니다. 이번 출력은 그 컷이 오답만 골라 주지 않는다는 것을 보여 줍니다.






