Feedback That Backfires: Why Small Language Model Agents Repeat the Call They Just Watched Fail
이 논문은 소규모 언어 모델 에이전트가 실패한 도구 호출이 기록에 있는 그대로(verbatim) 남겨질 때 해당 호출을 반복할 가능성이 현저히 높다는 점을 밝혀냈는데, 이는 오류 메시지보다는 실패한 동작의 표면 형태(surface form)에 의해 주로 발생하는 역효선적인 효과이며, 이는 원본 호출을 런타임에서 생성된 실패 설명으로 대체함으로써 효과적으로 완화될 수 있다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
디지털 비서가 연락처를 찾아보거나, 달력을 확인하거나, 코드를 작성하는 것처럼 문제를 해결하기 위해 도구를 사용할 수 있다고 상상해 보십시오. 이를 위해 비서는 단순한 루프를 따릅니다. 행동을 생각하고, 그 행동을 실행해 보고, 그 결과를 읽는 것입니다. 만약 행동이 실패하면, 시스템은 비서가 무엇을 시도했는지와 받은 오류 메시지를 정확히 기록한 뒤, 비서에게 다시 시도하도록 요청합니다. '에이전트 루프(agent loop)'라고 알려진 이 방식은 이러한 시스템이 실수로부터 배우는 표준적인 방법입니다. 논리는 타당해 보입니다. 만약 당신에게 "잠긴 문을 열려고 시도했지만 실패했다"라고 말한다면, 당신은 똑같은 잠긴 문을 다시 시도하지 않을 것입니다. 대신 다른 열쇠나 다른 문을 찾을 것입니다. 수년간 엔지니어들은 이러한 비서를 구동하는 많은 작은 컴퓨터 모델들도 이와 똑같이 행동할 것이라고 가정해 왔습니다. 오류 메시지를 보여주면 모델이 특정 실수를 피하도록 가르칠 수 있다고 믿었습니다.
독일 파사우 대학교의 한 연구자는 극도로 정밀하게 이 가정을 테스트하기로 했습니다. 그는 단순히 비서가 성공하고 실패하는 것을 관찰하는 데 그치지 않고, 오류를 본 전과 후의 모델이 동일한 잘못된 행동을 선택할 수학적 확률을 정확히 측정했습니다. 그는 매우 작은 규모부터 중간 크기에 이르는 6가지 서로 다른 소형 컴퓨터 모델을 대상으로, 시뮬레이션된 사무용 도구를 사용하려는 환경과 고장 난 컴퓨터 프로그램을 수정하려는 환경이라는 두 가지 서로 다른 환경에서 테스트를 수행했습니다. 연구자는 오류 메시지가 실제로 모델의 행동을 교정하는지 알고 싶었습니다.
그들이 발견한 것은 모두의 예상과는 정반대였습니다. 실패로부터 배우는 대신, 모델은 동일한 실수를 반복할 가능성이 현저히 높아졌습니다. 시스템이 실패한 시도와 오류 메시지를 보여주자, 모델이 동일한 잘못된 행동을 선택할 내부 확률이 급격히 치솟았습니다. 도구 호출 테스트에서는 실패한 호출을 반복할 확률이 낮은 6%에서 50% 이상으로 상승했습니다. 연구자가 테스트한 거의 모든 사례에서 오류 메시지는 경고 역할을 하는 것이 아니라, 모델을 방금 실패했던 바로 그 행동으로 끌어당기는 자석 역할을 했습니다.
연구자는 왜 이런 일이 발생하는지 질문했습니다. 그는 모델이 오류를 이해하기에는 너무 작기 때문이라고 의심했습니다. 그러나 그의 조사 결과, 문제는 오류의 의미가 아니라 텍스트의 존재 자체에 있다는 것이 밝혀졌습니다. 실패한 행동이 기록에 쓰였을 때, 패턴을 복제하도록 설계된 모델의 내부 메커니즘이 실패한 행동의 텍스트에 달라붙었습니다. 이 복제 효과는 너무 강력해서 실제 실패에 대한 메시지마저 압도했습니다. 연구자가 길고 상세한 오류 메시지를 "이것은 실패했습니다"라는 간단한 메모로 대체했을 때도 모델은 여전히 실수를 반복했습니다. 하지만 실패한 행동의 텍스트를 완전히 제거하고 대신 무엇이 잘못되었는지에 대한 설명으로 대체하자, 모델은 더 이상 실수를 반복하지 않았습니다.
이 발견은 이러한 시스템이 구축되는 표준적인 방식을 뒤엎었습니다. 갇힌 에이전트를 해결하기 위한 일반적인 조언은 실패한 시도를 기록에서 삭제하여 "오염"을 제거하고 모델이 새로 시작하게 만드는 것이었습니다. 연구자는 이것이 사실 최악의 방법이라는 것을 발견했습니다. 실패를 삭제함으로써 시스템은 실수를 유발했던 정확한 조건을 복원하여, 모델이 동일한 오류를 저지를 것을 보장하게 된 것입니다. 그가 발견한 해결책은 기록을 삭제하는 것이 아니라, 기록을 바꾸는 것이었습니다. 만약 시스템이 실패의 기록은 유지하되 실패한 명령의 원문 텍스트를 시스템이 생성한 설명으로 대체한다면, 반복은 멈췄습니다.
연구는 더 명백한 해결책도 테스트했습니다. 바로 모델의 지침에 실패한 행동을 반복하지 말라고 단순히 말하는 것입니다. 이는 인간에게는 논리적으로 들리지만, 모델에게는 눈앞에 놓인 특정 문자열을 무시하라는 규칙을 따르게 하는 데 거의 효과가 없었습니다. 모델은 바로 앞에 놓여 있는 특정 텍스트를 무시하라는 규칙을 쉽게 따를 수 없었습니다. 연구자는 이 문제가 모델의 지능 부족이 아니라, 정보가 제시되는 방식의 결함 때문이라고 결론지었습니다. 실패한 행동을 오류 메시지와 함께 보여주는 표준적인 방식은, 실수를 통해 배우려는 욕구보다 복제하려는 욕구를 더 강하게 자극하는 강력한 충동을 만들어냅니다.
연구자는 특수 그래픽 카드가 없는 표준 컴퓨터 프로세서에서 실험을 수행함으로써, 이러한 행동이 막대한 컴퓨팅 파워가 필요한 글리치가 아니라 소형 모델들이 작동하는 방식의 근본적인 속성임을 증명했습니다. 그의 연구는 신뢰할 수 있는 디지털 비서를 구축하려면, 엔지니어들이 실패한 행동을 읽어야 할 유익한 교훈으로 취급하는 것을 멈추고, 숨겨야 할 위험한 패턴으로 취급해야 한다는 점을 시사합니다. 해결책은 구조적입니다. 실패 이후의 맥락은 실패 전의 맥락과 달라야 하지만, 그 차이가 실패한 행동 자체여서는 안 됩니다. 실수의 원문을 제거하고 진단 내용만을 남김으로써, 시스템은 반복의 굴레를 끊고 모델이 실제로 앞으로 나아갈 수 있게 할 수 있습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.