소개
LlamaGPT
umbrel에서 자사의 umbrelOS 및 Docker / k8s / apple Silicon(M1/M2) 등에서 실행 가능한 LlamaGPT를 공개했습니다. (MIT License)
LlamaGPT는 Llama 2 기반의 ChatGPT 스타일의 챗봇으로, 직접 오프라인에서 실행하면서 어떠한 데이터도 외부로 내보내지 않고 실행할 수 있습니다.
umbrel.com
umbrel은 개인이 데이터에 대한 소유/제어/사용을 가지면서도 Cloud의 편리함과 혜택을 누릴 수 있도록 별도 H/W(umbrel home) 및 자체 OS(umbrelOS)를 개발하고 있는 회사입니다.
데모 영상
지원 모델
Model name | Model size | Model download size | Memory required |
---|---|---|---|
Nous Hermes Llama 2 7B Chat (GGML q4_0) | 7B | 3.79GB | 6.29GB |
Nous Hermes Llama 2 13B Chat (GGML q4_0) | 13B | 7.32GB | 9.82GB |
Nous Hermes Llama 2 70B Chat (GGML q4_0) | 70B | 38.87GB | 41.37GB |
Code Llama 7B Chat (GGUF Q4_K_M) | 7B | 4.24GB | 6.74GB |
Code Llama 13B Chat (GGUF Q4_K_M) | 13B | 8.06GB | 10.56GB |
Phind Code Llama 34B Chat (GGUF Q4_K_M) | 34B | 20.22GB | 22.72GB |
실행 방법
umbrelOS에서 실행하기
umbrel에서 제공하는 umbrelOS를 사용하고 있다면, Umbrel App Store에서 바로 설치가 가능하다고 합니다.
(대부분의 사용자들에게는 해당되지 않는 옵션일 것 같습니다;
Apple Silicon에서 실행하기 (M1/M2 칩 탑재 Mac)
0. Docker와 XCode가 미리 설치되어 있어야 합니다.
1. 설치(GitHub 저장소 Clone)
git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt
2. 실행
./run-mac.sh --model <ModelOption>
- Llama Chat Model:
7b
,13b
,70b
- Llama Code Model:
code-7b
,code-13b
,code-34b
예. 7B Chat 모델 실행시: ./run-mac.sh --model 7b
예. 13B Code 모델 실행시: ./run-mac.sh --model code-13b
3. 사용
실행 후 localhost:3000
으로 접속하여 사용
Docker에서 실행하기
0. Docker가 설치된 x86
또는 arm64
시스템에서 실행해주세요.
1. GitHub 저장소 Clone
git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt
2. 실행
./run.sh --model <ModelOption>
- Llama Chat Model:
7b
,13b
,70b
- Llama Code Model:
code-7b
,code-13b
,code-34b
예. 7B Chat 모델 실행시: ./run.sh --model 7b
예. 13B Code 모델 실행시: ./run.sh --model code-13b
2-1. CUDA를 사용하여 실행
CUDA 지원 장치가 있을 경우 --with-cuda
옵션을 추가하여 실행
예. 7B Chat 모델을 CUDA 사용하여 실행시: ./run.sh --model 7b --with-cuda
3. 사용
실행 후 localhost:3000
으로 접속하여 사용
k8s(kubenetes)에서 실행하기
0. kubectl
로 접근 가능한 k8s 시스템에서 실행해주세요.
1. GitHub 저장소 Clone
git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt
2. k8s namespace 생성
kubectl create ns llama
3. k8s에 배포
kubectl apply -k deploy/kubernetes/. -n llama
OpenAI 대응 API
llama-cpp-python
을 사용하여 OpenAI API 대체 API를 지원합니다.
- API는 http://localhost:3001 로 접근이 가능하며,
- API 문서는 http://localhost:3001/docs 에서 확인할 수 있습니다.
벤치마크 결과
Nous Hermes Llama 2 7B Chat (GGML q4_0)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 54 tokens/sec |
GCP c2-standard-16 vCPU (64 GB RAM) | 16.7 tokens/sec |
GCP c2-standard-4 vCPU (16 GB RAM) | 4.3 tokens/sec |
Umbrel Home (16GB RAM) | 2.7 tokens/sec |
Raspberry Pi 4 (8GB RAM) | 0.9 tokens/sec |
Nous Hermes Llama 2 13B Chat (GGML q4_0)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 20 tokens/sec |
GCP c2-standard-16 vCPU (64 GB RAM) | 8.6 tokens/sec |
GCP c2-standard-4 vCPU (16 GB RAM) | 2.2 tokens/sec |
Umbrel Home (16GB RAM) | 1.5 tokens/sec |
Nous Hermes Llama 2 70B Chat (GGML q4_0)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 4.8 tokens/sec |
GCP e2-standard-16 vCPU (64 GB RAM) | 1.75 tokens/sec |
GCP c2-standard-16 vCPU (64 GB RAM) | 1.62 tokens/sec |
Code Llama 7B Chat (GGUF Q4_K_M)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 41 tokens/sec |
Code Llama 13B Chat (GGUF Q4_K_M)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 25 tokens/sec |
Phind Code Llama 34B Chat (GGUF Q4_K_M)
Device | Generation speed |
---|---|
M1 Max MacBook Pro (64GB RAM) | 10.26 tokens/sec |