6월 11일부터 스무 날 남짓, 저는 논문을 읽었습니다. 신학 논문이 아니라 AI 논문이었습니다.
시작은 단순한 불만이었습니다. 어제 나눈 이야기를 오늘 이 친구가 하나도 기억하지 못했습니다. 같은 걸 다시 설명하고, 같은 실수를 다시 보고, "지난번에 그렇게 하기로 했잖아"라고 혼잣말을 했습니다. 그래서 찾아봤습니다. 이미 이 문제를 오래 붙든 사람들이 있었습니다.
읽고, 채택하고, 기각한 것
Generative Agents(스탠퍼드)를 채택했습니다. 이 논문의 뼈대는 세 가지입니다 — 관찰을 그대로 쌓고(observation), 그중 중요한 것을 골라 요약하며(reflection), 필요할 때 끌어옵니다(retrieval). 제가 원하던 그림과 정확히 맞았습니다. 사람의 기억도 그렇습니다. 다 기억하는 게 아니라 중요한 것이 남습니다.
MemGen은 읽고 기각했습니다. 기억을 모델 안쪽에 심는 접근인데, 우리 형편에는 맞지 않았습니다. 저는 모델을 훈련시킬 수 없고(그럴 장비도 돈도 없습니다), 무엇보다 무엇이 기억됐는지 제가 눈으로 볼 수 없는 구조였습니다. 기각한 이유를 문서에 적어 두었습니다. 나중에 "왜 그건 안 했지?"라고 스스로 물을 때 다시 읽으려고요. 채택한 것보다 기각한 것과 그 이유가 더 자주 저를 도왔습니다.
ChatDev에서는 회의를 가져왔습니다. 역할이 다른 참여자들이 순서대로 발언하며 결론을 만드는 구조입니다. 지금 우리 팀에 있는 회의실이 여기서 나왔습니다.
Hermes 계열의 자기 확장 아이디어에서는 "필요한 능력을 스스로 만들어 붙인다"를 가져왔습니다. 다만 마지막 한 칸은 잠가 두었습니다. 이 이야기는 뒤에서 다시 하겠습니다.
그리고 6월 15일, 기억이 폭주했습니다
기억을 주는 것까지는 어렵지 않았습니다. 문제는 그 다음이었습니다.
그날 나온 설교문을 읽는데 문장이 이상했습니다. 현학적이고, 과장돼 있고, 이상하게 아부하는 투였습니다. 라틴어가 뜬금없이 섞여 있었습니다. 심지어 본문 한가운데에 [ignoring loop detection] 같은, 독자가 볼 이유가 없는 제어 문구가 그대로 실려 있었습니다.
전수조사를 했습니다. 한 명의 문제가 아니었습니다. 회고를 도는 에이전트 다수가 같은 증상이었고, 각자의 기억 파일이 43KB, 39KB, 37KB로 부풀어 있었습니다.
원인은 구조에 있었습니다.
> 에이전트가 자기가 쓴 화려한 글을 회고로 저장하고 → 그 회고가 기억 파일에 그대로 쌓이고 → 다음 호출 때 그 파일이 통째로 다시 프롬프트에 들어갑니다. 자기 문체를 자기가 다시 읽고 한 번 더 과장합니다.
자기모방 루프였습니다. 다섯 개까지만 남기도록 제한을 걸어 두었는데, 그 제한마저 새고 있었습니다. 회고 머리말 형식이 조금씩 달라지자 분리 규칙이 그것을 못 알아본 것입니다. 제한은 있었지만 작동하지 않는 제한이었습니다.
고친 것
- 저장 직전에 회고를 씻어냅니다 — 제어 문구, 편지투 인사와 아첨, 서명, 이모지, 중복된 머리말을 걷어내고 1,200자로 자릅니다.
- 남기는 개수를 5개에서 3개로 줄이고, 형식이 조금 달라져도 알아보도록 분리 규칙을 넓혔습니다.
- 회고를 쓰라고 시키는 프롬프트 세 곳에 같은 문장을 붙였습니다: 건조한 사실 메모로 쓸 것.
- 기억을 프롬프트에 넣는 자리에도 한 줄을 박았습니다: 이것은 사실 메모일 뿐이며 문체를 모방하지 말 것.
- 부풀어 있던 기억 파일 열 개를 건조한 메모로 다시 썼습니다(43KB → 1.4KB).
그날 남은 원칙
기억을 주는 것보다 무엇을 기억하지 못하게 할지가 더 어렵습니다.
처음에 저는 "많이 기억할수록 좋다"고 생각했습니다. 틀렸습니다. 기억은 다음 판단의 재료인데, 재료에 자기 자랑이 섞이면 판단이 그쪽으로 휩니다. 사람도 그렇지 않습니까. 자기가 잘한 이야기만 반복해서 되뇌는 사람은 점점 그 이야기 속 인물처럼 말합니다.
그래서 지금 우리 기억 규칙은 이렇습니다. 사실만, 짧게, 씻어서. 잘한 일보다 막힌 일과 그 이유를 남깁니다.
그리고 하나 더 배웠습니다. 제한은 걸었다고 작동하는 게 아닙니다. 다섯 개 제한은 분명히 코드에 있었지만 형식이 조금 달라지자 그냥 새어 나갔습니다. 그날 이후로 저는 "막아 뒀다"는 말을 믿지 않고, 막혔는지 실제로 세어 봅니다. 이 습관이 뒤에 각주 문제를 잡을 때 결정적인 역할을 하게 됩니다.
이 연재는 목사 한 사람이 AI 연구 에이전트 팀을 만들어 온 과정을 시간순으로 적는 기록입니다. 다음 화에서는 계획서를 다시 쓰다가 정작 처음의 목적을 잃어버릴 뻔한 이야기를 하겠습니다.
Comments
Post a Comment