우리의 AI를 검증하기 위해 AI가 아닌 산술(Arithmetic)을 사용하는 이유
요약
AI 시스템은 전통적인 소프트웨어와 달리 오류를 발생시키지 않고도 잘못된 결과를 생성할 수 있습니다. Trustample은 이를 방지하기 위해 음성 데이터의 속도와 같은 산술적 특징을 활용하여 출력물의 품질을 자체 검증하는 안전장치를 구축했습니다.
핵심 포인트
- AI 모델은 기술적 오류 없이도 잘못된 추측을 결과로 반환할 수 있음
- 전통적인 예외 처리(Exception) 방식으로는 AI의 논리적 오류를 잡기 어려움
- 시스템이 스스로 출력물의 품질을 검증하는 설계가 필수적임
- 음성 속도와 같은 산술적 데이터를 활용해 검증 로직을 구현할 수 있음
단 하나의 파일이 우리가 구축하는 방식을 바꾸어 놓았습니다. 한 사용자가 녹음 파일을 업로드했고, 우리 시스템은 이를 처리했으며, 작업은 완료로 표시되었습니다. 하지만 전사(Transcript) 결과에는 내용이 거의 없었습니다.
그 단 한 번의 사건은 Trustample의 AI 전사(Transcription) 제품에 있어 가장 값진 교훈 중 하나가 되었습니다. 왜냐하면 기존 소프트웨어가 대비해 주지 못하는 AI 시스템에 관한 진실을 드러냈기 때문입니다. 또한, 이것이 오늘날 우리 플랫폼이 사용자가 확인하기 전에 자체 출력물을 검증하는 이유이기도 합니다. 이것은 그 안전장치가 어떻게 존재하게 되었는지에 대한 이야기입니다.
Trustample은 오디오 및 비디오 녹음 파일을 편집 가능한 텍스트로 변환합니다. 16개의 언어를 지원하며, 사용자가 녹음 파일의 언어를 지정하지 않으면 시스템이 자동으로 언어를 식별하려고 시도합니다. 이야기는 바로 그 기능에서 시작됩니다.
실제로 일어난 일
언어가 지정되지 않으면, 음성 인식(Speech Recognition) 모델은 정보에 기반한 추측을 합니다. 대부분의 경우 그 추측은 정확하지만, 때로는 그렇지 않으며, 때로는 스페인어 음성 녹음이 마치 영어인 것처럼 처리되기도 합니다.
이 상황에서 제가 기대했던 것은 오류(Error), 실패 코드(Failure code), 또는 우리의 모니터링 시스템에 도달하여 작업이 잘못되었음을 알려주는 무언가였습니다.
하지만 실제로는 그런 일이 일어나지 않습니다.
모델은 요청받은 일을 정확히 수행합니다. 스페인어 음성을 마치 영어인 것처럼 듣고, 가능한 한 가장 유사한 영어 단어들을 만들어냅니다. 그리고 완전히 정상적으로 보이는 응답을 반환합니다. 파이프라인(Pipeline)은 그 응답을 받고, 오류가 없음을 확인한 뒤, 결과를 저장하고 파일을 완료 상태로 표시합니다. 사용자는 전사 내용을 열어보지만 텍스트가 거의 없음을 발견합니다. 대시보드에는 작업이 완료된 것으로 표시됩니다. 오류 추적(Error tracking)에는 아무것도 나타나지 않습니다. 소프트웨어의 관점에서는 아무런 잘못도 일어나지 않았기 때문입니다.
우리의 설계를 바꾼 깨달음
저는 많은 시스템이 겪고 있는 이 흔한 버그를 해결하는 방법에 대해 시간을 보냈습니다.
전통적인 소프트웨어의 경우, 실패는 요란하게 발생합니다. 무언가가 예외(Exception)를 던지거나, 요청이 500 에러를 반환하거나, 큐(Queue)가 쌓이거나, 알림(Alert)이 울립니다. 시스템은 자신이 문제가 있음을 당신에게 알리고, 당신의 역할은 이를 인지하고 대응하는 것입니다.
AI 시스템은 다르게 동작합니다. 이들은 항상 답변을 생성하도록 설계되었습니다. 전사를 요청받은 음성 모델(Speech model)은 무엇인가를 전사할 것입니다. 빈 문서를 전달받은 요약기(Summariser)는 그것을 요약할 것입니다. 한 번도 접해보지 못한 입력을 보여주는 분류기(Classifier)는 여전히 신뢰도 점수(Confidence score)와 함께 카테고리를 반환할 것입니다. 이 중 그 어떤 것도 기술적인 의미에서의 오류는 아닙니다. 이것들은 출력값(Outputs)이며, 정답과 정확히 동일한 어조와 형태로 전달됩니다.
당신이 설계해야 하는 실패 모드(Failure mode)는 시스템의 충돌(Crash)이 아닙니다. 이러한 오류를 적절하게 처리할 수 있는 정확한 흐름(Flow)이어야 합니다.
검증(Verification)이 없다면, 그러한 결과를 가장 먼저 발견하는 사람은 대개 고객입니다. 검증이 있다면, 시스템이 먼저 발견합니다. 우리는 시스템이 먼저 발견하도록 만드는 길을 택했습니다.
보호 장치는 예상보다 간단했습니다
저는 상당히 간단한 수준의 업그레이드된 기능을 찾아 나섰습니다.
인간의 음성에는 유용한 특징이 하나 있습니다. 그것은 상당히 예측 가능한 속도로 발생한다는 점입니다. 사람들은 일반적인 대화에서 분당 약 120~150단어 정도로 말합니다. 신중한 인터뷰에서는 더 느리고, 흥분한 상태에서는 더 빠르지만, 일반적으로는 그 넓은 범위 안에 있습니다. 이는 30단어만을 생성하는 10분짜리 녹음 파일의 경우, 단순히 수용할 수 없으며 플래그(Flag)를 지정해야 하는 출력값을 제공했다는 의미입니다. 그것은 사람이 조용히 말하는 것이 아닙니다. 아마도 잘못된 모델을 사용했을 가능성이 높습니다.
그래서 우리는 AI와 전혀 상관없는 체크 로직을 추가했습니다. 전사(Transcription) 후에 반환된 단어 수를 오디오 길이와 비교하며, 결과가 분당 약 24단어라는 하한선 아래로 떨어지면 해당 전사를 완료된 것으로 간주하는 대신 의심스러운 것으로 취급합니다.
// AI 출력에 대한 단순 산술(Arithmetic) 체크. 모델은 관여하지 않음.
function looksTooSparse(wordCount: number, audioSeconds: number): boolean { const minutes = Math.max(1, audioSeconds / 60); return wordCount < Math.max(10, minutes * 24); }
...
이 검사에서 정말 중요한 두 가지 세부 사항이 있습니다. 첫 번째는 임계값이 의도적으로 낮게 설정되었다는 점입니다. 일반적인 말하기 속도는 이보다 다섯 배 빠르므로, 저희는 가장 느린 현실적인 대화 속도보다 훨씬 낮은 기준을 설정하여 실제 녹취록을 오인식하는 일이 없도록 했습니다. 조용한 녹음, 망설이는 화자, 치료 세션에서의 긴 침묵 등 이 모든 것이 편안하게 기준을 통과합니다. 진정한 실패 사례만 걸러지게 됩니다.
두 번째는 최소 단어 수입니다. 이것이 없다면, '예'라는 단어 하나를 정확히 포함하고 있는 5초짜리 음성 메모도 실패로 간주될 것입니다. 짧은 클립에는 자체적인 기준선이 필요합니다. 결과가 걸러지더라도 시스템은 오류를 표시하지 않습니다. 대신 다른 언어로 다시 시도하고, 더 많은 음성을 생성하는 시도를 유지하며, 그 후에야 작업을 완료합니다. 재시도 목록은 스페인어부터 시작하는데, 이는 사용자들이 다른 지역보다 미국에 더 많이 거주하기 때문에 스페인어가 영어 다음으로 가장 흔한 언어이기 때문입니다.
사용자는 이 모든 것을 전혀 알지 못합니다. 사용자들은 정확하게 읽히는 녹취록을 보게 되며, 배경에서 작동하는 작은 산술 계산이 그 이유입니다.
저희가 현재 모든 사용자에게 권장하는 사항
안전 장치는 조용히 작동하지만, 이 사건은 또한 사람들에게 제공하는 가이드라인을 변경시켰습니다. 왜냐하면 잘못된 추측에 대한 최고의 해결책은 아예 추측할 필요가 없기 때문입니다.
자동 감지에 의존하기보다는 오디오 또는 비디오의 발화 언어를 명시적으로 선택하세요. 한 번의 신중한 클릭이 피할 수 있는 실수에서 가장 큰 원인을 제거합니다.
다른 언어로 번역이나 요약을 원한다면, 그 목표 언어도 의도적으로 선택하여 파이프라인의 모든 단계가 무엇을 해야 하는지 정확히 알도록 하세요.
업로드하기 전에 어휘 필드에 이름, 조직명, 기술 용어를 추가하세요. 고유 명사는 AI 모델이 가장 먼저 놓치는 단어입니다.
사용하는 AI 도구가 무엇이든 간에, 추측하게 만드는 것을 적게 할수록 출력 결과가 더 좋아집니다.
제가 이것이 일반화된다고 생각하는 이유
여러분이 출시하는 모든 AI 기능에는 정답이 존재할 수 있는 타당한 범위가 있으며, 여러분은 거의 확실히 그것이 무엇인지 알고 있습니다. 2,000단어 분량의 문서 요약이 9단어 길이라서는 안 됩니다. 보통 5개에서 15개의 개체(Entity)를 찾아내는 추출(Extraction) 단계에서 결과가 0개라면 의심을 품어야 합니다. 번역은 원문과 대략 비슷한 길이를 유지해야 합니다. 분류기(Classifier)도 마찬가지입니다. 역사적으로 트래픽의 3%를 차지하던 카테고리가 갑자기 80%를 차지한다면, 개별 답변 하나하나가 그 자체로 합리적으로 보일지라도 상류(Upstream) 단계에서 무언가 변했다는 뜻입니다.
새로운 점은 우리가 그 시선을 어디로 돌리느냐 하는 것입니다. 바로 답변 그 자체에 집중하는 것입니다. 답변들은 너무나 완성된 것처럼 보여서 그것을 검증하는 것이 불필요하게 느껴지기 때문입니다.
따라서 직접적인 경험을 통해 배운 제가 제안하는 규칙은 다음과 같습니다: 성공적인 응답(Response)을 성공적인 결과(Result)로 취급하지 마십시오. 실행하는 각 AI 단계에 대해 건전한 출력(Output)이 수치상으로 어떤 모습이어야 하는지 기록하고, 위에서 권장한 대로 그 단계들을 따르십시오.
AI는 자신이 무언가 틀렸다는 사실을 알리기 위해 손을 들고 말해주지 않는다는 점을 기억하십시오. AI는 자신이 틀렸다는 사실조차 모릅니다. 누군가가 그 사실을 알게 만드는 것은 여전히 여러분의 몫입니다.
Anubhav Jain은 AI 전사(Transcription) 플랫폼인 Trustample의 설립자입니다. 위의 모든 내용은 이 플랫폼을 구축하며 얻은 경험에서 나왔습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기