지난 9월 20일, 제가 가진 두 개의 AI 어시스턴트에게 같은 질문을 했더니 동일한 서비스에 대해 서로 다른 두 가지 가격을 제시했습니다.
하나는 제 회사 영어 웹사이트의 방문자들에게 답변하고, 다른 하나는 루마니아어 웹사이트의 방문자들에게 답변했습니다. 둘 다 동일한 카탈로그를 받았습니다. 한 웹사이트 패키지에 대해 질문했을 때, 첫 번째 어시스턴트는 11,900 lei라고 말했고, 두 번째 어시스턴트는 9,800 lei라고 말했습니다.
카탈로그에는 11,900이 적혀 있었습니다. 두 번째 어시스턴트는 2,100 lei나 낮은 가격을 제시하고 있었는데, 이는 지난 8월 27일부터 실제로 구매하는 사람들에게 해당하는 금액이었습니다.
아무것도 잘못된 것은 없었습니다. 로그 라인도 없고, 오류 메시지도 없고, 경고 알림도 없었습니다. 그저 지식 기반(knowledge base) 안에 있는 오래된 카탈로그 사본이 자신감 넘치게 답변하고 있을 뿐이었습니다. 제가 그것을 발견할 수 있었던 건 우연히 두 번째 어시스턴트가 첫 번째 어시스턴트와 모순되었기 때문입니다. 하나의 어시스턴트는 스스로 자신이 틀렸다는 것을 알아차릴 수 없습니다.
주장이 한때는 옳았다
잘못된 가격은 만들어낸 것이 아니었습니다. 그것은 실제로 존재했던 것입니다. 저는 몇 주 전에 그 카탈로그를 해당 어시스턴트에 로드했었고, 이후 카탈로그가 변경되었지만 사본은 업데이트되지 않았습니다.
이것이 바로 에이전트(agents)들이 실제 운영 환경에서 잘못 작동하는 일반적인 방식입니다. 극적인 의미의 환각(hallucination)과는 다릅니다. 만들어진 날에는 정확했지만, 몇 주 후에 오늘인 것처럼 읽히는 사본과 같습니다.
따라서 해결책은 더 똑똑한 모델을 만드는 것이 아닙니다. 해결책은 모든 주장(claim)이 어디에서 왔는지 포인터로 가리키게 하여, 사람이든 검토 시스템이든 그 포인터를 따라가서 출처가 여전히 해당 내용을 말하는지 확인할 수 있도록 하는 것입니다.
표는 측정이 아니다
2주 전, 저 자신이 AI 모델 없이 같은 실수를 했습니다.
저는 실제 카탈로그를 다른 시스템에서 저장한 파일과 비교하여 깔끔한 표를 만들었습니다. 29개의 행, '판단(verdict)' 열, 백분율로 구성되어 있었습니다. 그 결과 18개 가격 중 어느 것도 일치하지 않는다고 나왔습니다. 마치 측정을 한 것처럼 보였습니다.
그 파일은 5일 전의 것이었습니다. 제가 직접 읽을 수 있는 두 개의 실제 페이지 모두 올바른 가격을 보여주고 있었습니다. 저는 자신이 틀렸다는 말을 듣고 나서야 그것들을 확인했습니다.
파일에서 만들어진 비교는, 아무리 설득력이 있어 보여도 그 파일의 나이를 물려받게 됩니다.
인용된 주장의 형태
주장(claim)은 단순한 문자열이 아닙니다. 그것은 출처와 그 출처 내에서 주장을 뒷받침하는 정확한 단어들을 포함합니다.
from dataclasses import dataclass
@dataclass
...
인용(quote)은 작성될 때가 아니라 사용되기 직전에 확인됩니다. 바로 이 점이 이전 가격을 포착할 수 있었던 이유입니다. 카탈로그에 더 이상 "9,800"이라는 내용이 포함되어 있지 않았기 때문입니다.
읽을 수 없는 출처는 근거(support)가 될 수 없습니다. 그리고 주장이 실패했다고 해서 모델이 그저 괜찮게 들릴 때까지 재작성하는 것도 아닙니다. 그것은 폐기되며, 사람들은 이것이 폐기되었다는 것을 알게 됩니다.
하나의 출처, 그리고 이에 맞춰 검증되는 복사본들
그날 이후로, 변경되는 모든 사실군(family of facts)에는 이름 붙여진 단일 출처가 생겼습니다. 제 가격의 경우도 마찬가지입니다. 파일이 하나입니다. 두 웹사이트, 두 어시스턴트, 그리고 모든 제공 정보는 이 파일을 기반으로 재구축된 복사본이며, 수동으로 편집된 적이 없습니다.
각 복사본에는 매일 출처와 비교하는 가드(guard)가 있습니다. 어시스턴트의 지식이 파일과 다를 경우, 가드가 이를 재구축하고, 어시스턴트를 재시작하며, 다시 확인합니다. 절반의 복사본만 커버하는 가드는 아예 없는 것보다 못한 것이었습니다. 제가 처음 사용했던 가드 중 하나는 두 사이트 중 한 곳만 검사했고, 모든 것이 괜찮다고 말했습니다. 그 결과 다른 사이트는 빌드가 실패한 후 70분 동안 이전 가격을 제공했습니다.
출처 없이 할 수 있는 말들
"안녕하세요"나 "연락하는 방법은 이렇습니다"와 같은 내용은 인용이 필요 없습니다. 고객이 행동에 옮기거나 저에게 책임을 물을 수 있는 모든 것—가격, 날짜, 기능, 상태, 숫자 등—은 출처가 필요합니다. 에이전트가 어디서 읽었는지 지적할 수 없다면, 모른다고 말하고 사람을 연결해 줍니다.
이러한 방식 덕분에 어시스턴트는 느린 날에는 덜 똑똑해 보일지라도 안전합니다. 그 이후로 잘못된 가격을 인용하는 적은 없습니다.
에이전트가 당신의 이름으로 무언가를 말하기 전에, 신중한 동료라면 무엇을 물어볼지 질문하세요. "그것을 어디서 읽었나요? 그리고 지금도 그렇게 나와 있나요?"라는 질문입니다.
이는 제가 현재 작업 중인 책 『Agents You Can Leave Alone』의 4장 내용을 요약한 것입니다. 이 책은 Leanpub에서 공개적으로 집필하고 있습니다: [https://leanpub.com/agents-you-can-leave-alone]
본문은 devaland.com에 최초 게재된 글이며, 원제는 '두 AI 어시스턴트, 두 가지 가격: 출처를 명시하거나 주장을 수정하라'입니다.