Posted on:November 24, 2024 at 02:30 AM

Ollama 설정하기

Ollama 설정하기

1. 소개

Ollama는 로컬 환경에서 LLM(Large Language Models)을 쉽게 실행할 수 있게 해주는 강력한 도구입니다. 다양한 오픈소스 모델을 지원하며, API를 통해 간단히 통합할 수 있습니다.

주요 특징

  • 로컬 환경에서 LLM 실행
  • 다양한 모델 지원 (Llama 2, Mistral, CodeLlama 등)
  • 간단한 설치 및 사용법
  • REST API 지원
  • 크로스 플랫폼 지원 (MacOS, Linux, Windows)

2. 설치 및 설정

MacOS 설치

brew install ollama

모델 설치

다음 명령어로 원하는 모델을 설치할 수 있습니다:

ollama pull llama2
ollama pull mistral
ollama pull codellama

설치된 모델 확인

ollama list

3. Python으로 사용하기

Python 패키지 설치

pip install ollama

기본 사용 예제

import ollama

# 단순 채팅 예제
response = ollama.chat(model='mistral', messages=[
    {
        'role': 'user',
        'content': 'Why is the sky blue?',
    },
])
print(response['message']['content'])

# 스트리밍 응답 받기
for chunk in ollama.chat(
    model='llama2',
    messages=[{'role': 'user', 'content': 'Write a short poem about programming'}],
    stream=True,
):
    print(chunk['message']['content'], end='', flush=True)

4. Javascript로 사용하기

Node.js 패키지 설치

npm install ollama

기본 사용 예제

import ollama from 'ollama';

// 단순 채팅 예제
const response = await ollama.chat({
  model: 'mistral',
  messages: [{
    role: 'user',
    content: 'Why is the sky blue?'
  }]
});
console.log(response.message.content);

// 스트리밍 응답 받기
const stream = await ollama.chat({
  model: 'llama2',
  messages: [{
    role: 'user',
    content: 'Write a short poem about programming'
  }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.message.content);
}

5. REST API 사용

Ollama는 REST API를 통한 접근도 지원합니다:

curl http://localhost:11434/api/chat -d '{
  "model": "llama2",
  "messages": [
    {
      "role": "user",
      "content": "Why is the sky blue?"
    }
  ]
}'

6. 모델 커스터마이징

Modelfile을 사용하여 커스텀 모델을 만들 수 있습니다:

FROM llama2
PARAMETER temperature 0.7
PARAMETER top_p 0.9
SYSTEM You are a helpful AI assistant that specializes in programming.

커스텀 모델 생성:

ollama create custom-assistant -f Modelfile

7. 결론

Ollama는 로컬 환경에서 LLM을 쉽게 실행하고 관리할 수 있는 훌륭한 도구입니다. 다양한 사용 사례에 맞게 커스터마이징이 가능하며, REST API를 통해 다양한 애플리케이션에 통합할 수 있습니다.

참고 자료