대규모 언어 모델 API를 로컬로 제공하기
대규모 언어 모델(LLM)을 로컬 또는 셀프 배포 목적으로 제공하는 방법에는 여러 가지가 있습니다.
MistralAI는 자사의 모델을 위해 두 가지 다른 제공 프레임워크를 권장합니다:
- vLLM: OpenAI의 사양에 맞는 API를 배포하는 Python 전용 제공 프레임워크입니다. vLLM은 제공 처리량을 개선하기 위해 페이지된 주의 커널을 제공합니다.
- Nvidia의 TensorRT-LLM은 Nvidia의 Triton 추론 서버에서 제공됩니다: TensorRT-LLM은 대규모 언어 모델을 위한 전용 커널을 가진 빠른 추론 엔진을 구축하는 DSL을 제공합니다. Triton 추론 서버는 이러한 추론 엔진을 효율적으로 제공할 수 있습니다.
이러한 솔루션은 CUDA 그래픽 API를 사용하여 계산하므로 Nvidia GPU에 대한 액세스가 필요합니다. 그러나 Ollama는 이를 수행하기 위한 낮은 구성의 크로스 플랫폼 솔루션을 제공합니다. 이것이 우리가 탐색할 솔루션입니다.
Ollama
Ollama는 대규모 언어 모델을 로컬에서 쉽게 설정하고 실행할 수 있도록 돕는 오픈 소스 프레임워크입니다. 지원되는 LLMs를 제공할 수 있습니다. 당신만의 모델을 만들고 Hugging Face에 푸시할 수도 있습니다.
LLM은 일반적으로 실행하기에 매우 무겁다는 점을 유의하세요.
따라서 우리는 비교적 가벼워서 정확성이 높은 mistral:instruct
라는 모델 하나에 집중할 것입니다.
Ollama 설정
OS에 맞는 지침에 따라 Ollama를 설치하세요.
MacOS에서는 터미널에서 brew install ollama
를 실행하여 Homebrew를 사용할 수 있습니다.
설치가 완료되면 터미널에서 ollama pull mistral:instruct
를 실행하여 모델을 다운로드합니다.
모델이 성공적으로 다운로드된 경우, ollama run mistral:instruct
를 사용하여 실행해 보세요. 모델을 테스트한 후 프로세스를 종료하세요.
이제 Ollama 서버를 사용할 수 있습니다. http://localhost:11434/
를 방문하세요; Ollama is running
이라는 메시지가 표시됩니다. 이는 서버가 이미 실행 중임을 의미합니다. 그렇지 않은 경우 터미널에서 ollama serve
를 실행할 수 있습니다. Homebrew로 설치한 경우 brew services start ollama
를 사용하세요.
Ollama 제공 프레임워크는 OpenAI와 호환되는 API를 가지고 있습니다. API 참조는 여기에 문서화되어 있습니다.
다음은 시도해 볼 수 있는 간단한 예입니다:
curl "http://localhost:11434/api/chat" \
--data '{
"model": "mistral:instruct",
"messages": [
{
"role": "user",
"content": "왜 하늘은 파란가요?"
}
],
"stream": false
}'
기본적으로 포트 11434
에서 실행됩니다. 이 포트가 다른 애플리케이션에서 이미 사용 중이어서 문제가 발생하는 경우, 이 지침을 따라 설정할 수 있습니다.