오늘은 로컬에서 쉽게 LLM을 사용할 수 있도록 해준 Ollama를 설치해보도록 하겠다.
(이번에 새로나온 llama:3.1 70B을 2080ti 7개로 돌리니 엄청빠르게 한글도 잘되고 똑똑한 놈을 사용 가능하다.)
우선 Ollama는 Window, Ubunti, MacOs 모두에서 지원하며 Windows에서는 wsl을 이용하여 진행된다.
사실 설치방법도 공식 Github에 자세하게 나와있어서 더 설명할게 없지만, 나는 Open webui와 Ollama를 조금 더 간단하게 설치하기 위해 글을 작성하였다.
Open webui는 로컬 llm을 ChatGPT와 거의 유사한 ui를 이용해서 cli에서 작업하는게 아니라 gui형태로 쉽게 사용할 수 있도록 만든 오픈소스 중 가장 유명한 오픈소스이다. (이것말고도 ollama-webui 이런것도 있었는데, open webui가 다양한 기능들을 지원하고 업데이트도 잘되서 훨씬 유명한 것 같다)
뭐 따로 각자 설치해도되지만, 나는 얼마전부터 Docker이 이런거 한번에 설치하는데 편해져가지고 Docker을 이용해서 이것들을 한꺼번에 설치하고 엮는 것을 진행할 것이다.
위 repository의 가이드를 그대로 따라하면 되는데
1. Docker, Docker Compose 설치
2. Docker에서 GPU를 사용하기 위한 설치
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure NVIDIA Container Toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Test GPU integration
docker run --gpus all nvidia/cuda:11.5.2-base-ubuntu20.04 nvidia-smi
3. 위의 reposiory clone
git clone https://github.com/valiantlynx/ollama-docker.git
cd ollama-docker
4. 실행
docker-compose -f docker-compose-ollama-gpu.yaml up -d
추가적으로 clone 받은 repository에서
ollama:
volumes:
- ./ollama/ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: unless-stopped
image: ollama/ollama:latest
ports:
- 7869:11434
environment:
- OLLAMA_KEEP_ALIVE=24h
networks:
- ollama-docker
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
device_ids: ['7']
여기의 device_ids를 ['1','2'] 이런식으로 수정하여 사용할 GPU를 설정할 수 있다.
이렇게 Docker을 통해서 한번에 올리고, `http://{ip}:{port}`에 접속하면 open webui를 확인할 수 있다.
+) docker-compose-ollama-gpu.yaml에서 아래쪽에 있는 `WEBUI_AUTH`는 True로 설정하면, 회원가입등을 통해서 open web ui를 사용할수있게 해준다. 참고로 기본 관리자 emai은 admin@localhost 이고 비밀번호는 맨처음 로그인시 바꿔주면 된다.
만약 비밀번호를 바꿨는데, 까먹었다 싶으면 컨테이너를 내리고 auth를 False로 바꿔준다음 들어가서 다시 설정하고 내리고 바꾸고 올리면됩니다~
OpenWebUI에 기능들이 정말 다양하고 많은데, 사용하기 헷갈리는 것들도 있어서 다음글에서 stable diffusion과 엮어서 이미지를 생성하는 것만 올리고, 나머지는 공식 가이드 문서를보면서 하나씩 해보면 좋을 것 같다.
이후 차근차근 작성할 것들
vscode의 continue extension과 ollama를 이용하여 local copilot 사용하기.
open web ui와 stable diffusion을 이용하여 채팅에서 이미지 생성하기.
'알쓸신잡' 카테고리의 다른 글
CUDA call failed lazily at initialization with error: device >= 0 && device < num_gpus INTERNAL ASSERT FAILED at (0) | 2024.08.05 |
---|---|
Windows Docker desktop 설치 (0) | 2024.08.04 |
Gitlab to Github (0) | 2024.07.18 |
아이폰으로 서버 SSH 접속 (0) | 2024.02.25 |
Putty 설정 및 꾸미기 (0) | 2024.02.20 |