Jev를 일본어로 판별해 보았으니, 그 검증 결과를 기록합니다.
Jev는 텍스트를 생성하지 않는 분류 전용 모델로, 질문에 대해 '예/아니오', '선택지', '스코어'를 확률과 함께 반환합니다.
검증 내용
상품 타이틀에 할인이나 판촉의 어필(訴求)이 포함되어 있는지 여부를 판별했습니다.
| 항목 | 내용 |
|---|
| 대상 | 일본어/영어 상품명 약 3,200건 |
| ... | |
1. 기존 정규표현식보다 정확도가 높았습니다
문맥에 따라 의미가 바뀌는 단어나 표현의 변화(言い回しの揺れ)가 큰 표현을 짧은 일본어 문장에서 찾아내는 판별에서는, 기존의 정규표현식 로직보다 정확도가 높은 결과를 얻었습니다.
- 정규표현식으로 '어필 있음'이라고 한 케이스는 전체 건수에서 스코어가 0.5를 초과했습니다.
- 정규표현식 어휘에 없는 어필 표현(어휘로 나열할 수 없는 말투)에도 0.5 이상의 스코어를 반환했습니다.
- 같은 단어라도 문맥에 따라 의미가 바뀌는 케이스에서는, 앞뒤 문맥에 따라 스코어가 달라졌습니다.
- 명백히 어필이 아닌 케이스는 0.2 미만이었습니다.
- 다만, 어필이 아닌 것임에도 불구하고 스코어가 0.5 이상이 되는 경우가 약간 존재했습니다.
문맥이나 표현의 변화가 관련된 판별이라면 정규표현식으로 대체할 가치가 높아 보이지만, 정해진 형태를 찾는 판별이라면 정규표현식이 더 확실합니다. 또한, 판별 이유가 반환되지 않기 때문에, 이유가 필요한 경우에는 별도로 고려해야 합니다.
공식에 따르면 학습의 주요 언어는 영어이며, 정확도 역시 영어가 가장 높다고 하지만, 이번 일본어 판별은 실용적인 수준의 정확도라고 느꼈습니다.
2. 같은 입력이라도 스코어는 흔들립니다
같은 입력과 같은 모델을 사용하더라도, 스코어는 매번 약간씩 달라집니다. 스코어가 중간(0.2~0.8)인 모호한 판별일수록 흔들리는 경향이 있었습니다.
- 스코어가 중간(0.2~0.8)인 110건을 20회씩 판별했을 때, 같은 입력에서의 스코어 최대와 최소의 차이는 최대 0.18이었습니다 (95%의 입력은 0.10 이내).
- 스코어가 0.05 미만이거나 0.95 초과인 입력은 크게 흔들리지 않았습니다 (3회 판별에서 최대 0.01).
모호한 스코어에 판별의 경계(임계값, しきい値)를 두면, 요청마다 판별 결과가 달라질 가능성이 있습니다. 그 전제 하에 결과를 저장하거나 사람의 확인을 거치는 설계가 필요할 것 같습니다.
3. 외부 API 실행
이번 검증에서는 약 3만 번의 API 실행을 했으며, 5xx 에러(HTTP 520)가 발생했습니다. 다른 LLM과 마찬가지로, 다음은 설계 시 고려해야 할 사항입니다.
- 재시도 제어 (Retry control)
- 속도 제한 제어 (Rate limit control) (1,200 요청/분)
- API를 사용할 수 없을 때의 폴백(Fallback)
한 번의 요청에는 같은 입력에 대한 질문을 여러 개 넣을 수 있습니다. 여러 질문을 모아서 요청하면 소비 토큰 수를 절약할 수 있고, 속도 제한 대책이 되기도 합니다. 모아서 요청했을 경우에도 스코어 차이는 '2. 같은 입력이라도 스코어는 흔들립니다'의 변동 범위 내에 머물렀습니다.
응답 속도는 12 병렬로 9,023건을 약 168초 만에 처리 완료했습니다. 건당 평균 약 200ms 정도였습니다 (공개 정보에서는 70~500ms).
4. 비용
입력/출력 합계 1M 토큰당 약 $0.04였습니다 (대시보드 실측값). API 응답에 포함된 usage를 로그로 출력해 두면, 정확한 사용 토큰 수를 계산할 수 있습니다.
판별이 목적이라면, 다른 LLM보다 상당히 비용을 절감할 수 있습니다 (LLM에서도 프롬프트 캐시가 작동하면 차이는 줄어들지만).
참고
Discussion