Skip to content

fix(ai): Deepgram keywords 힌트 제거 — 한국어에서 효과가 없다 - #258

Merged
i3months merged 1 commit into
devfrom
fix/drop-deepgram-keywords-hint
Sep 27, 2026
Merged

i3months merged 1 commit into
devfrom
fix/drop-deepgram-keywords-hint

Conversation

@i3months

Copy link
Copy Markdown
Member

먼저, 앞선 판단을 정정한다

#255 에서 nova-2 로 바꾸며 keywords 힌트 경로가 깨어났다(whisper 는 400 이라 잠들어 있던
코드다). 그때 나는 "운영 키로 호출해 200 + 전사 동일 확인" 이라고 적고 안전하다고 판단했다.

그 근거는 부족했다. 비교 1회로는 "효과가 없다"와 "효과가 있는데 우연히 같았다"를 구분할 수
없고, 더 중요하게는 모델 자체의 비결정성과도 구분할 수 없다.
실제로 구분되지 않았다.

제대로 측정

같은 오디오(101/466.webm)로 힌트 유/무 5회씩:

조건 결과 분포
힌트 없음 297자 ×4, 285자 ×1
질문 전체를 keywords 로 297자 ×4, 285자 ×1

두 조건의 출력 분포가 동일하다. 차이처럼 보이던 것은 힌트가 아니라 nova-2 자체의
비결정성
이었다.

형식 문제도 아니다:

파라미터 결과
keywords=<질문 전체> 힌트 없음과 구분 불가
keywords=백오프:10 (단어+강도) 구분 불가
keywords=jitter:10 (영어 단어) 구분 불가
keyterm=<질문> 400 — only supported for Nova-3 and Flux

한국어에서 Deepgram keyword boosting 은 동작하지 않는다.

그래서 뺀다

효과가 0인데:

  • 매 호출마다 질문 본문 200자를 외부로 내보낸다
  • Deepgram 이 언젠가 이 값을 반영하기 시작하면 답변 전사가 질문 어휘 쪽으로 끌려간다.
    채점하는 서비스에서 그건 사용자가 하지 않은 말로 감점되는 것이다 — nova-3 를 환각 때문에
    제외한 것과 같은 이유다.

hint 인자 자체는 SttProvider 공통 인터페이스라 남겨 둔다(다른 제공자가 쓸 수 있다).
테스트는 "nova 에서 실린다"에서 "어떤 모델에서도 실리지 않는다" 로 뒤집었다.

덤으로 알게 된 것 — nova-2 는 비결정적이다

같은 파일 10회 중 2회가 답변의 마지막 문장을 빠뜨렸다:

297자판: … 이중 학습을 진행했습니다. 여기까지 하겠습니다.
285자판: … 이중 학습을 진행했습니다.            ← 끝 문장 누락

이건 이 PR 로 고칠 수 있는 게 아니다. 다만 재전사(retranscribe)가 다른 결과를 내는 것은
버그가 아니라 이 성질 때문
이고, STT 가 실패하지 않았어도 재전사가 도움이 될 수 있다는 뜻이다.
ai/CLAUDE.md 에 기록해 뒀다.

검증

AI pytest 418 passed / black clean / flake8 clean

#255 에서 nova-2 로 바꾸며 `keywords` 힌트 경로가 깨어났다. 그때는 "운영 키로
호출해 200 + 전사 동일"을 보고 안전하다고 적었는데, **비교 1회로는 '효과 없음'과
'비결정성'을 구분할 수 없었다.** 제대로 측정했다.

같은 오디오(101/466.webm)로 힌트 유/무 5회씩:

  힌트 없음      297자 x4, 285자 x1
  질문전체 힌트   297자 x4, 285자 x1

**두 조건의 출력 분포가 동일하다.** 차이처럼 보이던 것은 힌트가 아니라 nova-2
자체의 비결정성이었다. 단어 하나 + 강도(`백오프:10`)로 줄여도, 영어 단어
(`jitter:10`)로 바꿔도 같았다 — 한국어에서 Deepgram keyword boosting 은
동작하지 않는다. (`keyterm` 은 nova-2 에서 400: "only supported for Nova-3".)

그래서 params["keywords"] 를 뺀다. 효과가 없는데

  · 매 호출마다 질문 본문 200자를 외부로 보내고
  · Deepgram 이 언젠가 이 값을 반영하기 시작하면 답변 전사가 질문 어휘 쪽으로
    끌려간다 — 채점하는 서비스에서 그건 사용자가 하지 않은 말로 감점되는 것이다
    (nova-3 를 환각 때문에 뺀 것과 같은 이유)

hint 인자 자체는 SttProvider 공통 인터페이스라 남겨 둔다.

덤으로 알게 된 것: **nova-2 는 비결정적이다.** 같은 파일 10회 중 2회가 답변
마지막 문장("여기까지 하겠습니다.")을 빠뜨렸다. 재전사가 다른 결과를 내는 것은
버그가 아니라 이 성질 때문이고, 실패하지 않았어도 재전사가 도움이 될 수 있다는
뜻이다.
@i3months
i3months merged commit 50a625a into dev Sep 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant