DEV Community

finaltype
finaltype

Posted on Originally published at finaltype.github.io

[260713] AI가 자신 있게 틀렸던 순간을 목격했다

리포트를 검토해준 AI가 실제 실적을 "있을 수 없는 수치"라며 오염이라 판정했는데, 확인해보니 진짜였다

오늘은 마침 느슨한 재택 교육이 있는 날이라, 평소 평일보다 여유 있게 작업 시간을 낼 수 있었습니다. 그래서 그런지 유독 건질 게 많은 하루였습니다.

AI가 자신 있게 틀렸던 순간을 목격했다

리포트 검토를 도와주던 AI가, 어떤 종목의 재무 수치가 특정 지표 기준으로 지나치게 높게 나온 걸 보고 "이 정도 수치는 이 업종/이 회사 규모에서 역대 어느 시점에도 나온 적이 없다"며 아주 자신 있게 "데이터가 오염된 것"이라고 판정했습니다.

그런데 실제로 확인해보니 아니었습니다. 그 정도로 실적이 진짜 좋았던 겁니다 — 최근 관련 업종에 큰 호황이 와서, 예전 기준으로는 "있을 수 없는" 수치가 지금은 현실이 되어 있었습니다. AI에게 왜 그렇게 판단했냐고 물어보니, 결국 "그런 수치는 역대 없었다"는 근거가 AI 자신의 학습 데이터가 끝나는 시점까지의 세상 지식에 불과했다는 게 드러났습니다. 그 이후에 실제로 벌어진 변화는 전혀 모르고 있었던 거죠.

돌이켜보니 비슷한 일이 최근에도 있었습니다 — 다른 AI에게 "이 리포트 내용이 진짜냐 가짜냐" 검증을 맡겼는데, 실제로 있었던 최신 사건을 "그런 일은 없었다"고 잘못 판정한 적이 있었습니다. 오늘 일도 결국 같은 함정이었습니다. "이 숫자는 너무 커서 말이 안 된다" 같은 판단은 겉보기엔 논리적으로 단단해 보여도, 사실은 그 AI가 아는 과거 데이터 범위 안에서만 성립하는 주장이라는 걸 다시 확인한 셈입니다. 진짜 믿을 수 있는 지적은 "문서 안에서 숫자끼리 서로 안 맞는다" 같은, 세상 지식과 무관하게 확인 가능한 것들이고, "이런 건 세상에 없다"는 식의 판단은 AI가 아무리 자신 있게 말해도 직접 검증하기 전엔 곧이곧대로 믿지 않기로 했습니다.

회사 이름을 잘못 부르고 있던 버그

리포트 하나를 자세히 들여다보다가, 재무 분석을 담당하는 부분이 종목 코드는 정확히 조회하면서 회사 이름만 완전히 다른 회사로 잘못 표기하고 있는 걸 발견했습니다. 숫자 자체는 맞는 회사 걸 가져왔는데, 그 위에 붙는 이름표만 엉뚱했던 겁니다.

원인을 파보니 단순했습니다 — 종목 코드로 재무 데이터를 조회하는 부분과, 사람이 읽는 회사 이름을 붙여주는 부분이 따로 놀고 있었는데, 이름을 붙여주는 로직이 국내 종목 코드 형식을 인식하지 못해서 조용히 실패하고 있었습니다. 숫자가 정확하니 언뜻 보면 멀쩡해 보이지만, 실제로는 "맞는 데이터에 틀린 이름표"가 붙어서 나가고 있었던 거라 발견하기 까다로웠습니다. 이름을 제대로 주입하도록 고치고, 혹시 몰라 회사 이름이 하나도 안 잡히는데 극단적인 판정이 나오면 일단 중립으로 처리하는 안전장치도 하나 더 얹었습니다.

더 똑똑한 모델로 바꿨더니 생긴 딜레마

리포트 작성에 쓰는 로컬 모델을 더 크고 똑똑한 것으로 바꿔봤습니다. 깨끗한 입력에서는 확실히 나아졌습니다 — 예전 모델은 애매하면 그냥 "보류"로 도망가는 경향이 있었는데, 새 모델은 근거를 들어 확실하게 결론을 냅니다.

그런데 여기서 딜레마가 하나 생겼습니다. 위에서 발견한 "이름표 잘못 붙는" 버그가 섞인 입력을 줬을 때, 예전 모델은 애매하게 "보류"로 뭉개고 넘어가서 오히려 피해가 작았는데, 새 모델은 틀린 정보를 자신 있게 근거로 삼아서 극단적인 판정(강한 매도 의견 등)까지 내려버렸습니다. 똑똑한 모델이 더 위험할 수 있다는 걸 확인한 셈입니다 — 판단력이 좋아질수록, 입력이 잘못됐을 때 그 잘못을 더 그럴듯하게 포장해서 밀어붙이는 위험도 같이 커집니다. 그래서 이름표 버그를 먼저 고친 다음에야 새 모델을 실제로 투입했고, 당분간은 이상하게 극단적인 판정이 나오면 사람이 다시 보기 전까지 리포트에서 자동으로 빼는 감시 장치도 켜뒀습니다.

그 밖에

  • 하루에 여러 번 나가던 정기 리포트 중 일부를 없애고, 그 역할(이상 급등락 종목 감시)을 실시간 감시 쪽으로 옮겼습니다. 정해진 시각마다 훑는 대신, 이상이 생기는 즉시 알아채는 방식으로 바꾼 셈입니다.
  • 리포트 맨 아래에 "이 데이터가 얼마나 최신인지"를 보여주는 상태 표시도 추가했습니다. 예전에 데이터가 며칠씩 밀린 채로 조용히 돌아간 사고가 몇 번 있었는데, 이제는 리포트만 봐도 바로 알아챌 수 있게 됐습니다.

오늘 가장 크게 남은 교훈은, AI에게 뭔가를 검증시킬 때 "그건 말이 안 된다"는 자신감 있는 대답일수록 오히려 한 번 더 의심해봐야 한다는 겁니다. 그 확신은 AI가 실제로 확인해서가 아니라, 그저 자기가 아는 낡은 세상 안에서만 논리가 맞아떨어지는 것일 수 있습니다.

Top comments (0)