본문 바로가기
리눅스

Ollama

by 다움위키 2024. 10. 26.

원문 보기: https://dawoum.duckdns.org/wiki/Ollama

 

Ollama는 지역 컴퓨터에서 대규모 언어 모델 (LLM)을 실행하기 위한 사용자 친화적인 인터페이스로, 특히 macOS와 Linux에서 실행되며 윈도우 지원도 곧 제공됩니다.

대규모 언어 모델 (LLM)은 인간과 유사한 텍스트를 이해하고 생성하고, 코딩하고, 다양한 분석 작업을 수행할 수 있는 정교한 AI 프로그램입니다.

Ollama는 연구자, 개발자, 및 언어 모델을 실험하려는 모든 사람에게 귀중한 도구입니다. 그것은 llama3.2, llama3.1, mistral, 등 다양한 모델을 지원합니다.

Installation

몇 가지 방법으로 설치할 수 있습니다:

Script install

Manual install

AMP GPU install

위의 방법들은 추가적으로 필요한 과정이 있을 수 있습니다. 아래 문서를 참조하십시오:

Debian packaging

아치 리눅스 패키징 정보로부터 데비안 패키지를 만들 수 있습니다:

두 번째 링크에서 ollama.service, sysusers.conf, tmpfiles.d 파일을 받습니다. 그런-다음 소스를 가져옵니다.

위에서 받은 3개의 파일은 소스 파일 내부에 가져오는 것이 아니라, 소스 파일과 같은 디렉토리에 두어야 합니다. 파일의 위치를 바꾸면, 아래의 스크립트 파일에서 수정해야 합니다.

컴파일은 CPU 집중, Nvidia GPU, AMD GPU로 나누어서 진행되지만, 데비안에서 의존성 패키지를 제공하지 않음으로써, 기본 방법으로 컴파일을 시도할 것입니다.

게다가, 컴파일에 필요한 다른 의존성, Go 프로그램 등은 미리 설치해야 합니다. 아래 패키지는 반드시 필요한지 확인하지는 않았지만, 먼저 설치를 했습니다.

  • sudo nala install libclblast-dev

 

그런-다음 아치 PKGBUILD 파일을 복사해서 적당히 수정합니다.

#!/bin/bash

pkgbase=ollama
pkgname=ollama
pkgver=0.3.12
pkgrel=1
arch=(x86_64)

pkgdir=ollama_0.3.12-1_amd64

build() {
  export CFLAGS+=' -w'
  export CXXFLAGS+=' -w'
  export CGO_CFLAGS="$CFLAGS" CGO_CPPFLAGS="$CPPFLAGS" CGO_CXXFLAGS="$CXXFLAGS" CGO_LDFLAGS="$LDFLAGS"

  local goflags='-buildmode=pie -trimpath -mod=readonly -modcacherw'
  local ldflags="-linkmode=external -buildid= -X github.com/ollama/ollama/version.Version=$pkgver -X github.com/ollama/ollama/server.mode=release"

  # Ollama with CPU only support
  export ROCM_PATH=/disabled
  go generate ./...
  go build $goflags -ldflags="$ldflags"
  }

build

install -Dm755 $pkgbase "$pkgdir/usr/bin/$pkgbase"
install -dm755 "$pkgdir/var/lib/ollama"
install -Dm644 ../ollama.service "$pkgdir/usr/lib/systemd/system/ollama.service"
install -Dm644 ../sysusers.conf "$pkgdir/usr/lib/sysusers.d/ollama.conf"
install -Dm644 ../tmpfiles.d "$pkgdir/usr/lib/tmpfiles.d/ollama.conf"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 llm/llama.cpp/LICENSE "$pkgdir/usr/share/licenses/$pkgname/llama.cpp-LICENSE"

ln -s /var/lib/ollama "$pkgdir/usr/share/ollama"

mkdir -p "$pkgdir/DEBIAN"

컴파일이 완료되면 Building binary deb packages에 따라 적절히 control 파일을 만듭니다.

  • gvim ollama_0.3.12-1_amd64/DEBIAN/control
  • dpkg-deb --build --root-owner-group ollama_0.3.12-1_amd64
  • sudo dpkg -i ollama_0.3.12-1_amd64.deb

Configurations

패키지가 설치되긴 하지만, 몇 가지 문제로 인해 서비스가 동작하지 않습니다.

그 이유는 서비스 실행에 필요한 사용자를 자동으로 생성하지 않고, 만들어진 디렉토리 소유자 등이 맞지 않기 때문입니다. 아래의 과정으로 사용자를 만들고, 소유자를 변경합니다.

  • sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
  • sudo usermod -a -G ollama $(whoami)
  • cd /var/lib
  • sudo chown ollama:ollama ollama

그런-다음 서비스를 다시 시작하고 상태를 확인합니다.

  • sudo systemctl restart ollama
  • sudo systemctl status ollama

서비스가 원할하게 수행되고 있으면, 모델을 가져옵니다:

  • sudo systemctl enable ollama
  • ollama list
  • ollama run llama3.2
  • ollama list

모든 설정이 끝났으면, Zed (text editor)를 실행해서 Assistant가 제대로 작동하는지 확인하십시오.

External Resources