Claude 2가 100K context를 뽐내고 다니는데, 실제 100K를 다 쓸 수 있는지는 또 별개 얘기. 며칠 테스트해봤다.
Needle in a haystack
Greg Kamradt가 제안한 테스트 방식. 긴 문서 중간에 "가장 좋아하는 음식은 돈까스다" 같은 문장을 끼워넣고 "가장 좋아하는 음식은?" 물어보는 것. 위치별 recall을 히트맵으로 찍어본다.
- context 10K 이하: 거의 100% 맞춤.
- context 30~60K: 가운데 영역에서 누락이 생김. 특히 20~40% 위치.
- context 90K+: 앞쪽/뒤쪽은 잘 찾는데 중간 구간 recall이 70%대로 떨어짐.
이른바 "lost in the middle" 현상. Liu et al. (2023) 페이퍼에서 나온 그대로 재현됨.
실전 팁
단순히 문서 10개 덤프해서 "답 찾아" 하면 안 됨. 다음을 같이 쓰니 개선됨:
- 질문을 context 앞과 뒤에 모두 배치. 앞에선 "이 답을 찾아라", 뒤에선 "위 문서에서 답하라".
- 각 문서 앞에
<doc title="..." section="...">같은 태그로 구분. Claude는 XML 구조를 특히 잘 따른다(Anthropic 공식 권장). - 여전히 10K 이내로 들어가게 사전 retrieval 하는 게 답. 100K를 이용하는 최선은 "필요하면 늘릴 수 있는 버퍼"로 두는 것.
비용
Claude 2 pricing이 input $8/M, output $24/M. 90K context를 매번 태우면 한 요청당 $0.72. gpt-4-32k보다 저렴하지만 여전히 "모든 쿼리에 전체 문서"는 비현실적.
결국 RAG + 긴 context의 하이브리드가 맞다. retrieval로 top-k 30~50개 모아서 20~30K에 넣고, 그걸 Claude에게 reasoning 맡기는 패턴이 제일 잘 먹혔다.
댓글 없음:
댓글 쓰기