Continue Dev에서 contextLength 늘리기.
LLM 모델이 학습 과정에서 습득한 정보는 수억~수십억개에 달하는 파라메터 값이라는 형태로 장기 기억으로 저장되어 있다.
그리고, 이를 이용해서 데이터를 처리할 때 '컨텍스트'( context : 직역하면 문맥??)이라는 단기 기억 공간을 이용한다.
처리하는 데이터의 용량이 '컨텍스트'를 초과하면 앞부분의 내용은 기억을 못한다.
예를 들면, 기나긴 소스 코드 파일을 순차적으로 분석하다가 중간 어느 지점에서 '컨텍스트'용량을 초과하면, 이후 파일의 앞부분 내용은 순차적으로 AI의 기억 공간에서 사라지며 답변 결과에 파일 앞부분 관련 내용이 사라진다.
그래서, 소스 코드 리뷰를 시켰는 데, 파일 앞부분에 정의된 함수나 자료형에 대한 언급이 아예 없다면 컨텍스트 용량 부족을 의심해야 한다.
이 문제는 '컨텍스트' 단기 기억 공간을 늘려주면 된다.
Ollama의 기본 컨텍스트 용량의 기본값은 (모델에 무관하게) 2048이며, 이것은 코드가 조금만 길어져도 금방 넘쳐버리는 매우 부족한 값이다.
Continue Dev 플러그인 설정 화일에서 contextLength 값으로 컨텍스트 용량을 지정할 수 있다.
llama3:70b 모델의 컨텍스트를 8192로 늘리려면 다음과 같이 'contextLength' 값을 지정해 주면된다.
"models": [
{
"title": "Llama3-70b",
"model": "llama3:70b",
"provider": "ollama",
"contextLength": 8192
},
(... 중간 생략 ...)
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
}
],
(... 이하 생략 ...)
AI 모델마다 최대값이 다르므로, 인터넷에서 각 AI 모델의 최대 컨텍스트 용량을 검색해서 알아내어야 한다.
또, 컨텍스트 용량을 늘리면 VRAM 소모량도 늘어난다.
ollama의 경우 'ollama ps'를 실행하면, 현재 실행 중인 AI 모델과 GPU/CPU 메모리 사용 분담 비율이 나온다.
가능하면 GPU 100%를 유지하는 범위 이내에서 컨텍스트 용량을 늘리는 게 좋다.
(CPU가 분담 처리하기 시작하면 실행 속도가 급격하게 낮아진다.)