로드 중

직접 해보기: 작업 메모리

강의 910분

컨텍스트 저하

더 많은 컨텍스트가 오히려 상황을 악화시킬 때

AI를 사용할 때 자연스럽게 드는 본능은 모든 것을 제공하는 것입니다. 전체 문서를 붙여넣습니다. 모든 메시지를 포함시킵니다. 찾을 수 있는 모든 컨텍스트를 추가합니다. 정보가 많을수록 더 나은 답변이 나오지 않을까요?

항상 그렇지는 않습니다. 시험을 위해 벼락치기 공부를 해본 사람이라면 직관적으로 알고 있는 현상이 있습니다: 한 번에 마음속에 담을 수 있는 양에는 한계가 있습니다. 그리고 중간에 있는 것들이 가장 먼저 사라지는 경향이 있습니다.

이것이 AI 모델에 어떤 영향을 미치는지 이야기하기 전에, 이것이 여러분에게 어떤 영향을 미치는지 먼저 살펴보겠습니다.

메모리 테스트

로드 중

U자형 곡선

여러분이 방금 경험한 것에는 이름이 있습니다: 직렬 위치 효과(serial position effect)입니다. 심리학자들은 한 세기 넘게 이를 연구해 왔습니다. 목록의 시작 부분에 있는 항목들은 초두 효과(primacy)의 이점을 얻고(더 많이 반복 연습되기 때문입니다), 끝 부분에 있는 항목들은 최신 효과(recency)의 이점을 얻습니다(여전히 기억이 생생하기 때문입니다). 중간 부분은 어느 쪽의 이점도 얻지 못합니다.

로드 중

흥미로운 점은: 대규모 언어 모델도 동일한 패턴을 보인다는 것입니다. 2023년, Stanford의 연구자들은 긴 컨텍스트 윈도우 내의 서로 다른 위치에 핵심 사실을 배치했을 때 어떤 일이 일어나는지 테스트했습니다. 정확도는 해당 사실이 맨 처음이나 맨 끝에 있을 때 가장 높았으며, 중간에 묻혀 있을 때는 30% 이상 떨어졌습니다.

이것은 단순한 특이 현상이 아닙니다. 구조적인 문제입니다. Transformer의 어텐션 패턴은 자연스럽게 컨텍스트 윈도우의 양쪽 끝에 더 많은 가중치를 둡니다.

이것이 프롬프팅에 의미하는 것

20페이지짜리 문서를 프롬프트에 붙여넣고 11페이지에 있는 내용에 대해 질문한다면, 모델은 1페이지나 20페이지에 있는 내용보다 이를 놓칠 가능성이 더 높습니다. 이는 컨텍스트를 구성하는 방식에 실질적인 영향을 미칩니다.

로드 중

실용적인 조언은 간단합니다: 가장 중요한 지시사항을 컨텍스트의 시작과 끝에 배치하세요. 반드시 지켜져야 하는 제약 조건이 있다면, 시스템 프롬프트 초반에 명시하고 끝부분 근처에서 다시 한번 언급하세요. 모델이 그 사이에 있는 모든 것에 동일한 가중치를 둘 것이라고 기대하지 마세요.

이것은 출발점일 뿐, 한계가 아닙니다. 더 숙련될수록 모델이 무엇이 중요한지 확실히 이해하도록 컨텍스트를 구성하는 점점 더 정교한 방법들을 발견하게 될 것입니다 — 윈도우 내에서 정보가 위치하는 곳을 활용하고, 무엇을 포함하고 무엇을 잘라낼지 결정하며, 중요한 지시사항이 죽은 영역으로 미끄러져 들어가지 않도록 유지하는 방법 등입니다. 목표는 항상 동일합니다: Claude가 실제로 필요한 것을 명확하게 알 수 있도록 만드는 것입니다.

더 큰 그림

컨텍스트 저하는 "그냥 더 많은 컨텍스트를 주면 된다"가 항상 정답이 아닌 이유입니다. 추가하는 모든 컨텍스트 조각은 다른 조각들을 중간으로, 즉 어텐션 죽은 영역으로 더 밀어냅니다. 이것이 컨텍스트 엔지니어링의 핵심 긴장입니다: 무엇을 포함할지뿐만 아니라, 어디에 배치하고 무엇을 제외할지가 중요합니다.

여러분 자신의 메모리 테스트가 이미 이것을 알려주었습니다. 중간에 있던 단어들은 사라졌습니다. 동일한 일이 모든 긴 대화, 모든 붙여넣은 문서, 가득 채워진 모든 컨텍스트 윈도우 내부에서 일어납니다. 해결책은 더 많이 주는 것이 아니라 — 더 똑똑하게 주는 것입니다.