카테고리 없음

Ollama vs vLLM

anyway03 2025. 10. 8. 23:52

 

올라마와 vllm은 로컬에서 llm을 실행하기 위한 도구이다.

다양한 모델을 지원하며 추론 방식을 가지고 있다. (vLLM의 PagedAttention, Ollama의 llama.cpp)

 

오픈소스 엔진으로 오픈소스 llm을 실행하면 나만의 챗지피티를 공짜로 사용할 수 있는 셈이다.

 

그렇다면 왜 다들 이렇게 사용하지 않을까?

수많은 이유가 있겠지만, 직접 경험해본 사례와 빗대어 정리해 보려 한다.

 

- 높은 하드웨어 요구사항

대부분의 LLM은 VRAM을 요구한다. 

메인보드에 장착되어 있는 RAM과 달리 연산/GPU 전문적인 메모리이다.

 

내가 설치를 시도했던 GPU는 16GB의 VRAM을 가지고 있었다.

 

1. vLLM 으로 첫 시도, 실패

 

vLLM 공식 도커 이미지를 사용해 설치를 시도해 보았다.

좋은 성능의 모델은 사용하기 힘든 환경이므로 qwen3 8b로 우선 진행.

 

vLLM + 도커 실행의 장점 : 효율과 관리 용이 -> 선임이 알려주신 말씀이지만 구체적으로 경험해 보지 못했으므로 미래에 후술할 예정.

 

단도직입적으로 말하자면 vllm으로 모델을 실행하는 시도는 실패했다. 메모리 부족이 원인이었다.

 

2. Ollama 로 두번째 시도, 성공

 

이제 올라마가 나설 차례였다. 사용법은 굉장히 간단하다.

(우분투 기준)

 

모델 다운

ollama pull 모델명

 

모델 실행

ollama run 모델명

 

곧바로 cli환경에서 채팅이 시작된다.(대화 종료는 컨트롤 + D)

 

oLLAMA는 메모리 관리를 기가 막히게 해준다. vllm으로 실행하지 못하던 모델도 어떻게든 올려주었다.

그러나 관리를 잘 해줄 뿐 근본적인 리소스가 늘어난 건 아니므로, 연산 도중 속도가 급격히 느려지는 구간이 발생한다.

 

상세한 로그 확인

ollama -v run 모델명

 

여러 로그 중 원인이 보이는 라인

  • msg="model weights" device=CUDA0 size="11.8 GiB"
  • msg="model weights" device=CPU size="1.1 GiB"

모델의 일부가 VRAM 용량을 초과하면 cpu로 오프로드되며, 속도는 당연히 느려진다.

 

요약 : 

1. ollama는 vllm를 사용해 실행 실패한 환경에서도 어떻게든 모델을 실행해 준다.

vLLM - VRAM 부족시 실패

Ollama - VRAM 부족시 cpu 폴백(느리긴 하나 실행은 됨)

2. ollama는 vllm에 비해 확장성이 부족하다.

멀티유저 처리 힘듦

3. 서버 성능이 충분하다면 vllm을 쓰자

그게 좋다는데 아직 이유는 모르겠음

 

신입 개발자의 얼렁뚱땅 복습...