Ollama 사용법 블로그 작성
Ollama란?
Ollama는 오픈소스 LLM(대형 언어 모델)을 로컬 PC에서 쉽게 실행할 수 있게 해주는 도구입니다. 이를 통해 GPT와 같은 LLM 모델을 인터넷 연결 없이 로컬에서 구동할 수 있으며, 사용자가 원하는 모델을 직접 만들어서 활용할 수 있습니다.
주요 특징
1. 인터넷 연결 없이도 구동 가능
2. 사용자가 원하는 모델을 직접 만들어 사용 가능
3. 서버에 실행시켜 API를 제공
• HTTP 요청을 통해 요청/응답 처리 가능
사용해보고자 하는 이유
프로젝트에서 LLM 모델이 필요한 상황에서, 유료 서비스인 OpenAI를 사용하지 않고 서버 자원을 활용해 ollama와 서버 간 통신을 통해 사용자의 요청에 대한 응답을 제공하려고 합니다. 예를 들어:
• 사용자 자연어 검색을 학습시킨 Ollama 모델을 통해 쿼리로 번역
• DB에서 값을 뽑아와서 보여주는 방식
예시:
사용자의 요청: “작년에 홍길동이 작성한 게시글 중 조회수가 가장 높은 게시글 보여줘”
Ollama에 이 입력값을 전달하면, 학습된 모델을 통해 아래와 같은 SQL 쿼리를 리턴합니다:
SELECT 게시글id FROM 게시글테이블 WHERE 작성자 = '홍길동' ORDER BY 조회수 DESC;
이 쿼리는 스프링 웹 애플리케이션에서 처리하여 결과를 사용자에게 전달합니다.
맥/우분투 기준으로 Ollama 설치 및 사용법
- 설치 방법
• 우분투:
curl -fsSL https://ollama.com/install.sh | sh
- 맥
brew install ollama
- 실행 방법
• 버전 확인:
ollama --version
• 쉘에서 바로 실행 (명령어 날리기):
ollama serve
• 백그라운드에서 실행:
nohup ollama serve > ollama.log 2>&1 &
• 끄기:
ps -ef | grep ollama
kill -9 <PID> # ollama serve 프로세스 번호 찾기
- 모델 설치
Ollama를 실행할 때 사용할 모델을 설치해야 함
3-1-2. 올라마\(Ollama\) 모델 다운로드
• 모델 설치:
3-1-2. 올라마(Ollama) 모델 다운로드
올라마(Ollama) 모델을 다운로드하는 명령은 아래와 같이 모델 이름을 입력하면 됩니다. 모델 가중치가 다운로드되어 설치가 되고 터미널에서 사용자의 입력을 받을 수 있는 커서가…
wikidocs.net
ollama pull mistral
ollama pull gemma
• 설치된 모델 확인:
ollama list
- API 요청 보내보기
Ollama가 잘 작동하는지 확인하고, API 요청을 보내 응답을 받아볼 수 있습니다.
• 잘 작동하는지 확인:
curl http://localhost:11434/api/tags
• 실제 요청 예시:
curl http://localhost:11434/api/generate -d '{
"model": "gemma",
"prompt": "대한민국의 수도는?",
"stream": false
}'
Stream 옵션
• stream: false
• 전체 응답이 생성된 후 한 번에 반환됩니다. 결과가 준비되면 모든 내용을 반환합니다.
• stream: true
• 응답을 스트리밍 방식으로 받습니다. 모델이 응답을 생성하는 즉시 부분적으로 반환되므로 긴 응답이나 실시간 피드백에 유용합니다.
추가 가능한 옵션들
• max_tokens: 응답의 최대 토큰 수
• temperature: 응답의 창의성 조정 (0.0: 결정적, 1.0: 창의적)
• top_p (nucleus sampling): 상위 확률 비율에 해당하는 토큰 선택 (0.9: 상위 90% 선택)
• n: 생성할 응답의 개수
• stop: 모델이 응답을 멈추는 지점
• presence_penalty: 새로운 아이디어를 생성하도록 유도 (높을수록 새 아이디어가 많이 나옴)
• frequency_penalty: 반복되는 문구를 방지 (높을수록 더 강한 제어)
- API 응답
• model: 사용된 모델 이름
• created_at: 응답 생성 시간 (UTC 기준)
• response: 응답 내용
• done: 응답 완료 여부 (true/false)
• done_reason: 응답 종료 이유 (예: stop은 정상 종료, 다른 값은 토큰 길이 제한)
• context: 모델이 사용하는 토큰 목록 (이전 대화 기억)
• total_duration: 응답 생성 걸린 시간 (나노초)
• load_duration: 모델 로드 시간 (첫 로드시 길 수 있음)
ollama/docs/api.md at main · ollama/ollama