AI 튜터 성능 개선 및 비용 절감을 위한 광범위한 실험 진행
원본 영상 1:50Towards AI 팀은 자신들의 AI 튜터의 성능을 개선하고 운영 비용을 절감하기 위해 다양한 실험을 수행했다. 이들은 문맥 손실(context rot) 문제를 해결하고 AI 튜터를 최대한 개선하며 동시에 비용을 줄이는 방법을 찾고자 했다. 초기 가설과 달리, 특정 문맥 관리 기법들이 예상치 못한 결과를 가져왔다.
프롬프트 캐싱을 활용한 AI 튜터 실험 결과, 문맥 압축보다 전체 컨텍스트를 전송하는 것이 비용과 성능 면에서 더 효율적인 것으로 나타났다.
이 채널 새 영상도 이렇게 정리해 드릴까요?
Towards AI 팀은 자신들의 AI 튜터의 성능을 개선하고 운영 비용을 절감하기 위해 다양한 실험을 수행했다. 이들은 문맥 손실(context rot) 문제를 해결하고 AI 튜터를 최대한 개선하며 동시에 비용을 줄이는 방법을 찾고자 했다. 초기 가설과 달리, 특정 문맥 관리 기법들이 예상치 못한 결과를 가져왔다.
AI 튜터 개발 초기, 팀은 챗봇이 반드시 따라야 할 다섯 가지 핵심 요구사항을 설정했다. 첫째는 챗봇의 답변이 자체 지식이 아닌 제공된 콘텐츠에 근거해야 한다는 점이었다. 둘째는 정확한 답변이 가능해야 한다는 것이며, 셋째는 응답 속도 최적화, 넷째는 사용 편의성, 마지막 다섯째는 비용 효율성을 확보하는 것이었다.
AI 모델이 처리하는 모든 정보, 즉 지침, 강의 내용, 코드 등은 제한된 동일한 공간에 존재한다. 이 공간에 더 많은 정보를 쌓을수록 결과는 악화되고 더 많은 토큰에 대한 비용을 지불해야 하므로 비용이 증가한다. 이는 모델이 이전 대화를 기억하고 반응하는 데 중요한 문맥을 유지하는 것과, 각 상호작용을 독립적인(stateless) 요청으로 처리하여 비용을 절감하려는 시도 사이의 딜레마를 야기한다. 결국 모델의 성능과 비용 효율성 사이의 균형점을 찾는 것이 중요하다는 점이 강조되었다.
문맥 압축은 질문에 답하는 데 필요한 최소한의 정보를 포함하도록 문맥의 크기를 줄이는 간단한 아이디어에서 출발한다. 나머지 정보는 삭제하거나 다른 곳에 저장하는 방식이다. 압축을 위한 다양한 전략에는 전체 대화 요약, 특정 기간의 대화 요약, 과거 대화에서 가장 유사한 부분만 검색하는 것, 중요하지 않은 부분을 제거하거나 오래된 정보를 제거하는 것 등이 포함된다. 이러한 기법들은 모델의 제한된 문맥 창에 더 많은 정보를 담고 비용을 줄이기 위해 고안되었다.
팀은 검색 증강 생성(RAG)과 그래프 RAG를 비교하는 실험을 진행했다. 그래프 RAG는 문맥을 그래프 형태로 구성하여 더 정교한 정보 검색을 목표로 한다. 그러나 실제 사용자 평가를 기반으로 한 실험 결과, 그래프 RAG는 설정 비용이 훨씬 더 많이 들었고 결과 면에서는 RAG와 거의 동일한 수준을 보였다. 이는 더 복잡한 시스템이 항상 더 나은 성능이나 비용 효율성을 보장하지 않음을 시사한다.
이 팀은 프롬프트 캐싱이라는 새로운 요소를 도입하면서 요약 전략에 대한 근본적인 의문을 제기하게 되었다. 캐싱은 이전에 전송된 토큰을 저장하고 재사용하여 비용을 크게 절감하는 기술이다. 문제는 문맥을 요약하면 기존 캐시가 무효화되어 매번 새로운 토큰을 전송해야 한다는 점이다. 이로 인해 요약이 오히려 비용 효율성을 떨어뜨리고 성능에 부정적인 영향을 미칠 수 있음이 드러났다. 따라서 요약은 특별한 경우에만 신중하게 사용해야 하며, 심지어 전혀 사용하지 않는 것이 더 나을 수도 있다는 결론에 도달했다.
문맥 최적화를 위해서는 모든 것을 기록하는 로깅 전략이 가장 중요하다. 대부분의 사람들이 간과하지만, 챗봇과 사용자 간의 모든 상호작용을 로깅해야 한다. 이는 모델에 전송된 프롬프트, 모델의 응답, 관련 비용 등 모든 관련 정보를 포함한다. 이러한 상세한 로깅은 문제 발생 시 원인을 파악하고, 모델의 성능을 개선하며, 다양한 문맥 관리 전략의 효과를 정량적으로 평가하는 데 필수적인 데이터를 제공한다.
Most importantly, and what the majority of people don't do, you want to log everything.
AI 튜터는 10만 토큰의 컨텍스트 윈도우 제한을 설정하여 관리하고 있다. 이는 모델이 한 번에 처리할 수 있는 최대 정보량을 의미한다. 만약 대화가 이 제한을 초과하게 되면, 가장 최근의 대화 청크(chunks)를 제거하여 토큰 수가 임계값을 넘지 않도록 조정한다. 이 접근 방식은 중요한 초기 컨텍스트를 유지하면서도 시스템이 안정적으로 작동하도록 돕는다.
팀은 AI 에이전트가 지식 베이스를 직접 탐색할 수 있도록 '지식 베이스 명령'이라는 두 번째 도구를 개발했다. 이 도구를 통해 에이전트는 bash 명령어를 사용하여 파일 시스템을 탐색하고 필요한 정보를 검색할 수 있다. 예를 들어, 특정 폴더의 파일을 나열하거나 파일 내용을 읽는 등의 작업을 수행할 수 있다. 이 기능은 에이전트가 질문에 답변하기 위해 필요한 정보를 능동적으로 찾을 수 있게 하여, RAG 시스템의 효율성을 크게 향상시킨다. 이는 단순히 정보를 검색하는 것을 넘어, 에이전트가 더 복잡한 추론과 문제 해결 과정을 수행할 수 있도록 돕는다.
초기에 팀은 컨텍스트 설정에 대한 깊은 측정 없이 직관에 의존하여 결정을 내렸다. 특정 설정이 빠르고 좋아 보인다는 이유만으로 채택되었으며, 실제 성능이나 비용 효율성에 대한 정량적인 데이터는 부족했다. 이는 많은 개발팀이 저지르기 쉬운 실수로, 초기 단계에서 충분한 실험과 측정이 이루어지지 않을 경우, 나중에 예상치 못한 비효율성이나 문제를 야기할 수 있음을 보여준다. 이후 실험을 통해 이러한 직관적 판단이 항상 최적의 결과를 가져오지는 않는다는 것이 밝혀졌다.
팀의 실험 결과, 컨텍스트 압축과 같은 엔지니어링 기법들이 예상과는 달리 성능 저하를 일으킬 수 있음이 밝혀졌다. 이는 API가 토큰을 캐시하는 방식 때문에 발생한다. 문맥을 압축하거나 재작성하면 기존 캐시가 무효화되어 매번 새로운 토큰으로 처리될 가능성이 높다. 또한, 어떤 압축 기법이 최적인지 미리 알기 어렵다는 점도 문제로 지적되었다. 이러한 발견은 복잡한 최적화 기법이 항상 긍정적인 결과를 가져오는 것은 아니며, 시스템의 내부 동작 방식, 특히 캐싱 메커니즘을 이해하는 것이 중요함을 보여준다.
팀은 실험을 통해 매우 예상치 못한 결과를 얻었다. 여러 메시지에 걸쳐 특정 사실을 기억하고 복구하는 데 있어서, 컨텍스트를 전혀 건드리지 않고 그대로 유지하는 것이 실제로 가장 좋은 전략으로 밝혀진 것이다. 이는 기존의 문맥 압축이나 요약 기술이 더 효율적일 것이라는 일반적인 가정과는 정반대의 결과이다. 이 결과는 특히 프롬프트 캐싱 메커니즘과 맞물려 나타났는데, 기존 캐시를 무효화하지 않고 동일한 컨텍스트를 계속 전송하는 것이 오히려 비용 효율성과 성능 면에서 우위를 점하는 이유가 되었다. 이 발견은 AI 시스템의 문맥 관리에 대한 새로운 접근 방식을 제시한다.
프롬프트 캐싱은 AI 모델 API 사용 비용을 획기적으로 낮추는 핵심 요소로 부상했다. DeepSeek의 경우 캐시 할인이 50배에 달했으며, Gemini에서도 유사한 경향을 보였다. 이러한 캐시 할인이 적용되면, 문맥을 압축하여 매번 새로운 토큰을 전송하는 것보다 전체 컨텍스트를 그대로 전송하여 캐시를 활용하는 것이 훨씬 저렴해진다. 캐싱을 통해 동일한 문맥을 여러 번 재전송할 때 추가 비용이 거의 들지 않으므로, 컨텍스트를 그대로 유지하는 전략이 비용 효율성 면에서 압축 기법을 능가하게 된다.
The cash discount on DeepSeek was 50x as compared to Gemini and even in this setting we saw that keeping all of the context still won.
팀의 실험에서 가장 놀라운 결과 중 하나는 가장 많은 토큰을 전송하는 설정이 실제로 운영 비용이 가장 저렴했다는 점이다. 이는 전체 토큰의 97%가 캐시에서 처리되었기 때문에 가능했다. 캐시된 토큰은 매우 저렴하므로, 문맥을 압축하느라 캐시를 무효화하고 새로운 토큰을 생성하는 것보다, 전체 컨텍스트를 그대로 보내 캐시를 활용하는 것이 비용 효율성 측면에서 훨씬 유리했다. 이 발견은 AI 시스템 설계 시 캐싱 메커니즘을 깊이 고려해야 함을 시사한다.
로컬 모델 환경에서는 학습 자료가 종종 32k 컨텍스트 윈도우보다 클 수 있다. 이러한 상황에서 대화가 모델의 윈도우 크기를 초과하게 되면 캐싱은 더 이상 효과를 발휘할 수 없다. 즉, 대화 내용이 윈도우를 넘어서는 순간, 캐시된 이전 정보는 모델에게 더 이상 유효한 문맥이 되지 못한다. 이 경우, 모델은 필요한 정보를 파악하기 위해 문맥을 압축하거나, 대화 기록에서 가장 중요한 부분을 검색하는 등 추가적인 전략을 사용해야 한다. 이는 클라우드 기반 API와 로컬 모델 환경 간의 캐싱 효율성 차이를 명확히 보여준다.
이론적으로 가장 저렴한 실행 방식은 실제로는 가장 많은 토큰을 전송하는 방식이다. 이는 프롬프트 캐싱 덕분에 가능하다. 캐싱을 사용하면 이전에 보냈던 동일한 문맥을 다시 전송하는 데 드는 비용이 매우 저렴해지기 때문이다. 따라서 문맥을 압축하거나 변경하여 캐시를 무효화하는 것보다, 전체 컨텍스트를 그대로 유지하고 캐시를 활용하는 것이 총 비용을 절감하는 가장 효과적인 전략이 된다. 이러한 전략은 AI 시스템의 장기적인 운영 비용을 최적화하는 데 핵심적인 역할을 한다.
자막에서 근거가 되는 대목을 찾아 답합니다.
이 채널 새 영상도 이렇게 정리해 드릴까요?
AI Engineer에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 24편 올렸어요.
숏츠는 빼고 보내 드려요. 메일이 필요 없어지면 언제든 구독을 끄실 수 있어요.
KV Cache-Aware Routing and P/D Disaggregation on KubernetesAI Engineer1시간 전 게시 · 21:47 · 조회 93 · 1시간 전 생성
The Death of Developer Advocates: How AI Agents Are Reshaping DevRelAI Engineer22시간 전 게시 · 18:16 · 조회 88 · 22시간 전 생성
Cloudflare Leverages AI Agents to Double GTM Team EfficiencyAI Engineer22시간 전 게시 · 19:15 · 조회 12 · 22시간 전 생성