AI VIDEO BRIEFING

Ollama 추론 속도 2배 올리는 환경 변수 4가지: 병렬 처리·플래시 어텐션·KV 캐시 양자화·모델 유지 설정법

올라마를 기본 설정 그대로 쓰면 손해다. 병렬 처리, 플래시 어텐션, KV 캐시 양자화, 모델 메모리 유지 시간까지 환경 변수 네 개를 상황에 맞게 조정해 로컬 LLM 추론 속도를 끌어올리는 방법과 각각의 주의점을 정리했다.

올라마 추론 속도 두 배로: 환경 변수 네 개로 로컬 LLM 성능 끌어올리기 영상 대표 이미지

핵심 메시지

  • 올라마는 기본 설정이 순차 처리이며, 환경 변수 네 개만 조정해도 발표자 환경 기준 평균 두 배가량 처리 속도가 빨라졌다.
  • OLLAMA_NUM_PARALLEL 은 병렬 요청 처리를 열어 주지만, 병렬 처리를 지원하지 않는 모델이 있고 VRAM 여유가 없으면 오히려 느려진다.
  • OLLAMA_FLASH_ATTENTION 은 어텐션 연산을 최적화해 메모리 사용량을 줄이며, 최신 버전에서는 자동으로 켜지지만 이전 버전에서는 직접 켜야 한다.
  • OLLAMA_KV_CACHE_TYPE 은 KV 캐시를 양자화해 메모리를 아끼지만 압축률이 높을수록 답변 품질이 떨어질 수 있어 긴 컨텍스트 작업에 적합하다.
  • OLLAMA_KEEP_ALIVE 를 -1 로 두면 모델이 메모리에 계속 남아, 장기간 돌리는 서비스에서 재로딩 지연을 없앨 수 있다.

쉽게 이해하기

로컬에서 대형 언어 모델을 돌릴 때 가장 흔히 쓰이는 도구가 올라마(Ollama)다. 그런데 설치 직후의 기본값을 그대로 두고 쓰면 하드웨어가 가진 성능을 다 쓰지 못하는 경우가 많다. 영상은 시스템 환경 변수 네 개를 상황에 맞게 조정하는 것만으로 처리량을 크게 끌어올릴 수 있다고 말하며, 발표자 본인의 환경에서는 평균적으로 속도가 약 두 배 빨라졌다고 밝힌다. 다만 네 가지를 무작정 전부 켠다고 항상 빨라지는 것은 아니라는 단서도 함께 붙는다.

첫 번째는 요청을 동시에 처리하도록 만드는 병렬 처리 설정이다. 올라마는 이 값의 기본값이 1이어서 요청을 하나씩 순차적으로 처리한다. 개인용 에이전트에서 여러 워크플로를 동시에 굴려야 한다면 이 값을 올려야 한다. 주의할 점은 두 가지다. 일부 모델 계열은 애초에 병렬 처리를 지원하지 않는데 올라마가 명령창에 이를 친절하게 알려 주지 않으므로 서버 로그를 확인해야 하고, 병렬 처리 수만큼 컨텍스트 영역이 VRAM 을 더 잡아먹기 때문에 값을 과하게 올리면 CPU 오프로딩이 잦아져 오히려 느려진다.

두 번째와 세 번째는 메모리를 아끼는 쪽이다. 플래시 어텐션은 어텐션 연산을 최적화해 메모리 사용량을 줄이고 속도를 높이는 기능으로, VRAM 이 부족해 CPU 오프로딩 때문에 답답함을 겪었다면 특히 효과가 있다. 최신 버전 올라마는 이 기능을 자동으로 켜 주지만 그 이전 버전을 쓰고 있다면 값을 1로 직접 추가해야 한다. KV 캐시 양자화는 요청별 컨텍스트 길이에 비례해 커지는 KV 캐시를 압축하는 설정인데, 반드시 플래시 어텐션이 켜져 있어야 동작하고 압축률이 높을수록 답변 품질이 떨어질 수 있다. VRAM 이 넉넉하다면 굳이 쓸 이유가 없고, 긴 컨텍스트를 다룰수록 이득이 커진다.

마지막은 처리를 끝낸 모델을 메모리에 얼마나 붙잡아 둘지 정하는 설정이다. 올라마는 한 번 올린 모델을 영구히 유지하지 않고 정해진 시간이 지나면 내려 버리기 때문에, 요청이 뜸한 환경에서는 모델을 다시 올리는 지연이 반복된다. 값을 -1 로 지정하면 모델이 무기한 메모리에 남는다. 네 가지 모두 시스템 환경 변수에 추가한 뒤 올라마 프로세스를 다시 시작해야 적용된다는 점도 잊지 말아야 한다.

주요 인사이트

  • 속도 개선의 핵심은 더 좋은 하드웨어가 아니라 VRAM 예산을 어디에 쓸지 정하는 문제다. 병렬 처리는 VRAM 을 더 쓰고, 플래시 어텐션과 KV 캐시 양자화는 VRAM 을 아끼는 방향이라 둘을 함께 조율해야 한다.
  • CPU 오프로딩은 성능 저하의 주된 신호다. 병렬 처리 값을 올렸는데 오히려 느려졌다면 VRAM 이 모자라 연산이 CPU 로 넘어갔을 가능성을 먼저 의심해야 한다.
  • 설정이 먹히지 않을 때 명령창 메시지만 보고 판단하면 안 된다. 병렬 처리 미지원 모델처럼 조용히 무시되는 경우가 있어 서버 로그를 확인하는 습관이 필요하다.
  • 양자화는 공짜가 아니다. 압축률을 높이면 메모리는 줄지만 답변 품질이 함께 내려가므로, 긴 문맥을 다루느라 캐시가 부담될 때만 선택적으로 쓰는 편이 합리적이다.
  • 장기 구동 서비스와 가끔 쓰는 개인용 환경은 최적 설정이 다르다. 전자는 모델을 계속 메모리에 두는 편이, 후자는 자원을 놓아 주는 편이 유리하다.

자주 묻는 질문

병렬 처리 설정을 올렸는데 왜 속도가 더 느려질 수 있나요?

병렬 처리 수가 늘어난 만큼 컨텍스트 영역이 VRAM 을 더 차지하기 때문입니다. 여유 공간을 넘어서면 CPU 오프로딩이 자주 발생해 오히려 성능이 떨어질 수 있으므로 VRAM 여유를 보고 값을 정해야 합니다.

KV 캐시 양자화를 켜려면 별도로 필요한 조건이 있나요?

플래시 어텐션이 반드시 활성화되어 있어야 합니다. 또한 압축률이 높아질수록 답변 품질이 떨어질 수 있어 VRAM 이 넉넉한 상황에서는 권장되지 않고, 긴 컨텍스트를 다룰 때 효과가 큽니다.

환경 변수를 추가하면 바로 적용되나요?

아닙니다. 시스템 환경 변수에 값을 추가한 뒤 올라마 프로세스를 다시 시작해야 설정이 반영됩니다.

모델이 자꾸 다시 로딩되는 문제는 어떻게 해결하나요?

모델 유지 시간을 정하는 환경 변수 값을 -1 로 설정하면 모델이 메모리에 무기한 남아 있게 되어, 장기간 구동하는 서비스에서 재로딩으로 인한 지연을 없앨 수 있습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식