* OS: Windows 11 pro
* RAM: 64GB
* CPU: Intel(R) Core(TM) i7-14700
* GPU: 내장 그래픽
1. 서론

회사 백오피스 서비스 개발에서 항공 전문에 대한 AI 해석 및 요약 기능 구현 담당을 맡았다..!
내 주전공은 데이터 사이언스이기는... 하나.. 주로 데이터 분석을 공부하였고, 모델을 만들어본건 랜덤 포레스트 같이 기본적인 알고리즘을 사용한 지도 학습 머신러닝 정도가 학부생 때 지식의 끝이다.. 멘토님께서 나를 너무 전적으로 신뢰하셔서 '이것도 먹어봐' 주셨으니 너무 감사한 일이지만 막막했다. 그러던 중 Ollama 를 발견하였고, 이를 활용해 요구사항을 충족하는데 성공했고 꽤 만족스러운 결과물이 나왔다. 이에 대해 기술한 내용이다.
2. 본론
상기 요구사항 캡쳐본을 보면 알다시피, 항공 전문을 해석하고 요약해야 한다.
선택지는 4가지가 있었고 2개월 내로 다른 기능들과 같이 구현하기 위해선 Ollama 가 적합하다고 판단했다.
1. OpenAI 와 같은 AI API 를 사용하여 해석 및 요약시키기. (제일쉬움, but 유료)
2. 항공 전문 해석 AI 찾아서 사용하기. (없거나 회사에서 오픈소스로 공유 안함)
3. 생성형 AI 모델을 받아 직접 파인튜닝하기. (지식 및 시간 부족)
4. Ollama 를 받아 전처리 후 요약 시키고 나온 데이터들을 기반으로 RAG 적용
2.1. Ollama 설치
직접 설치 파일을 받아서 설치 할 수도 있고,
Download Ollama on macOS
Download Ollama for macOS
ollama.com
Docker Image 를 받아 컨테이너로 구동시킬 수도 있다.
https://hub.docker.com/r/ollama/ollama
ollama/ollama - Docker Image
hub.docker.com
2.2. Ollama 모델
library
Browse Ollama's library of models.
ollama.com
Ollama 에 올라와 있는 모델을 Docker 이미지 받는것처럼 받아서 사용하는 형태이다. 모델을 설명하는 상세페이지에 들어가보면 스펙이 기재되어 있는데, 이때 size 는 해당 모델을 구동시키기 위해 최소로 요구하는 RAM 용량이다.
모델을 불러오고 사용하는 방법은 다음과 같다. Docker 사용 명령어와 유사하여 사용하기 편리하다.
# 모델 로컬 저장
ollama pull {모델명}
# 모델 구동
ollama run {모델명}
모델을 구동시키면, 우리가 흔히 GUI 로 AI 와 소통하던 모습을 CLI 에서 할 수 있다.


단순 호출 테스트 해본 모델은 총 4개 (phi4, lamma3, lamma4, exaone) 이다.
공통적으로 4개 모델 모두 클라우드 모델이 아닌 로컬에 설치된 모델이기 때문에, 답변 속도의 차이와 RAM 점유율의 차이만 있었을 뿐 해석 내용이 원문과 거의 일치하지 않았다.

특히 그당시 성능이 좋다던 llama 4 의 경우 RAM 점유율이 높아 64GB 을 사용하는 나의 개발 컴도 원문 하나를 넣으면 답변을 듣는데까지 1분이나 소요됐다.

어짜피 학습이 어렵고, 전처리를 기반으로 한 데이터로 해석하는 걸 요청할 꺼라면 한국어에 특화되고 가벼운 모델을 사용하는것이 적합해 보였다. 그래서 선택한 모델이 exaone3.5 이다. exaone3.5 는 LG 에서 llama 를 한국어 특화되게 만든 모델이다. 가동을 위한 최소 메모리도 8GB 이고, 디스크 용량도 4GB 정도 밖에 소모 되지 않아, 경량 모델이다. 해당 요구사항을 충족하기엔 충분한 스펙이라고 생각하였고 어짜피 추후에 RAG Vector DB 를 도입할 예정이라 이 모델을 선택하게 되었다.
2.3. LLM 엔진 메모리 관리 전략 + 캐싱 메커니즘
호출 테스트 해보다가 특이한 점을 발견했다.

docker image 로 띄운 ollama container 로그를 찍어보면 응답을 하는데까지 걸린 시간들을 표출해준다.
비교적 길게 소요된 응답은 '첫번째 호출' 이고 비교적 짧게 소요된 응답은 'n번째 호출' 이다. 즉, 여러번 호출할 수록 응답 속도가 빨라진다.
가장 처음 실행할 때 시간이 오래 걸리는 이유는 모델 가중치(Weights)를 디스크에서 RAM으로 올리는 과정 때문이다. 처음 호출하게 되면 다음과 같은 과정을 거치게 된다.
- Ollama는 사용자의 요청이 들어오면 비로소 ~/.ollama/models에 있는 수 GB의 GGUF 파일 (모델의 수십억 개 파라미터가 저장되는 공간) 을 읽는다.
- GGUF 파일 (전체 모델 데이터) 를 RAM에 상주시킨다.
- 매번 호출때마다 Disk 에서 가져오면 속도가 너무 느림.
- 신경망 그래프를 구성(이전 대화 및 프롬프트 기억 공간 미리 RAM 확보).
n번째 호출에선 신경망 그래프 구성 중 생성된 KV Cache (이전 대화 및 프롬프트 기억 공간) 와 앞선 RAM 할당으로 인해 응답 식속도가 현저히 줄게 되는 것이다. 다만, 항상 RAM 에 할당 해두면 리소스를 너무 많이 먹기 때문에 5분 동안만 RAM 에 할당한다.
그렇기 때문에 실제 운영 또는 사용 시 리소스 여유가 있다면 항상 상주하게 하거나, polling 방식으로 RAM 에 불러와야 한다.
3. 참고자료
ollama: https://ollama.com/library
ollama 메모리 관리 전략: https://ollama.com/blog/multimodal-models
'dev > ai' 카테고리의 다른 글
| [MCP] Claude + IntelliJ IDEA 2025.2.4 (Ultimate Edition) 연동 (0) | 2026.02.23 |
|---|---|
| [Ollama] Ollama 사용기 (2) (2) | 2026.01.01 |
