로컬에서 대규모 언어 모델 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 설정

설치 지침에 따라 Ollama를 설치하십시오. OS에 따라 이 지침을 따를 수 있습니다.

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": "why is the sky blue?"
      }
    ],
    "stream": false
  }'

기본적으로 포트 11434에서 실행됩니다. 다른 응용 프로그램이 이미 이 포트를 사용 중인 경우에는 이 지침을 따를 수 있습니다.