Opencode를 사용한 Ollama 대 llama.cpp의 토큰 카운트 이상 현상
요약
Ollama와 llama.cpp를 사용하여 토큰 카운트의 이상 현상을 분석했습니다. Ollama는 컨텍스트 제한에 도달하면 생성을 중단하며, Opencode 인터페이스도 85k로 보고합니다. 반면, llama.cpp는 더 많은 토큰을 처리하는 경향이 있어, Ollama가 특정 상황에서 '컨텍스트 가지치기(context pruning)'를 수행할 가능성이 제기되었습니다.
핵심 포인트
- Ollama는 컨텍스트 제한 도달 시 생성을 중단합니다.
- Opencode 인터페이스는 85k로 토큰 크기를 보고하는 경향이 있습니다.
- llama.cpp는 Ollama보다 더 많은 토큰을 처리할 수 있습니다.
- Ollama가 보유 토큰 수에 따라 '컨텍스트 가지치기'를 수행할 가능성이 제기되었습니다.
저는 환경 변수를 통해 Ollama의 컨텍스트 제한을 85k로 설정했습니다. 예상대로 Opencode와 Ollama 모두 이 한계에 도달했다고 보고했을 때, Ollama가 생성을 중단했습니다. 프롬프트 처리(Ollama의 컨텍스트 제한을 86k처럼 조금 더 높임)를 할 때도, 완료된 후 보고되는 토큰 크기가 약 85k인 것을 확인할 수 있었고, 이는 Opencode가 알려주는 것과 일치합니다. 그래서 llama.cpp를 사용해 보기로 했습니다. 컨텍스트 제한을 120k로 설정했는데, 요청이 164k 토큰이라고 하는 오류가 발생했습니다. 이것은 이상한데, 제가 이전에 확인했듯이 85k여야 하는데, Opencode 인터페이스에서도 여전히 85k를 보여주기 때문입니다. 컨텍스트 창을 약 170k로 늘리자 프롬프트 처리가 164k로 진행되어, llama가 어딘가에서 어떻게든 더 많은 토큰을 처리했음을 확인했습니다. Opencode를 다시 확인해 보니, 컨텍스트는 여전히 85k로 보고되고 있습니다. Ollama가 토큰을 조용히 버리는 것이 아니라, 제가 언급했듯이 Ollama가 한계에 도달하여 멈추고, Opencode 자체도 85k를 보고하기 때문입니다. 그렇다면 왜 llama.cpp는 어떻게든 더 많은 토큰을 처리하는 것일까요? 수정: 추가 테스트를 해보니, Ollama는 보유한 토큰 수에 따라 일종의 컨텍스트 가지치기(context pruning)를 수행하는 것 같습니다. 만약 ollama max tokens를 높이면 실제로 더 많이 처리됩니다. 하지만 이것이 특정 메시지에만 국한된 것이어서, 더 이상 그렇게 할 수 없을 때 한계에 도달하여 멈추는 것일까요?
/u/RadianceTower 제출 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기