AMD Radeon w6800 + Ollama + DeepSeek-R1:70B 사용하기
[ 테스트 환경 ]
- OS : Ubuntu 24.04 LTS
- GPU : AMD Radeon w6800 * 4EA
- Memory : 64GB * 12EA = 768GB
- Disk : 1TB * 2EA
미리 결론부터 말하자면, 이 환경으로 DeepSeek-R1:70B 모델은 동작하지만 (2 GPU 가 사용됨), DeepSeek-R1:671B 모델은 실행되지 않습니다.
따라서 아래 내용은 DeepSeek-R1:70B 모델 사용을 예로 들었습니다.
1. AMD Radeon 드라이버 설치
GPU 카드 활용을 위해 우선 드라이버를 설치해야 합니다.
테스트 환경은 AMD Radeon w6800 이므로 AMD Radeon 드라이버 설치하는 방법을 설명드립니다.
[ 공식 Documents ] Ubuntu 24.04 환경에서 설치하기
https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html
# apt update && apt -y upgrade
# apt -y install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
# apt -y install python3-setuptools python3-wheel
# usermod -a -G render,video $LOGNAME
# wget https://repo.radeon.com/amdgpu-install/6.3.2/ubuntu/noble/amdgpu-install_6.3.60302-1_all.deb
# apt -y install ./amdgpu-install_6.3.60302-1_all.deb
# apt update
# apt -y install amdgpu-dkms rocm
모든 설정을 적용하려면 시스템을 재부팅해야 합니다.
# reboot
리부팅 후 아래 명령으로 설치 상태를 확인할 수 있습니다.
장치명이 출력되면 드라이버 설치가 잘 된 것으로 판단할 수 있습니다.
lspci 등으로 장치가 인식되었으나 아래 명령으로 장치명이 출력되지 않는다면, 드라이버 설치가 제대로 되지않은 것입니다.
# clinfo |grep 'Board name'
# rocminfo |grep 'Marketing Name'
# rocm-smi
2. Ollama 설치
Ollama 는 Llama 를 기반으로 개발자와 사용자들이 Llama 모델을 쉽게 사용하고 확장할 수 있도록 지원하는 도구입니다.
설치 스크립트를 다운로드 받아 실행하면 자동 설치됩니다.
# curl https://ollama.ai/install.sh | sh
데몬에서 서비스 대역을 모두 허용하고, 실제 제한은 iptables 로 하는 것이 편리합니다.
Ollama 서비스 환경을 아래와 같이 변경할 수 있습니다.
[Service] 섹션에 접근 HOST 를 정할 수 있으므로, 필요시 활용해 보세요.
또한, LLM 저장 디렉토리를 변경하려는 경우 디렉토리 생성 및 퍼미션 조정 후 Systemd 서비스 유닛 파일에 등록하면 됩니다.
# mkdir /data/models
# chown ollama:ollama /data/models
# vi /etc/systemd/system/ollama.service
...
[Service]
Environment="PATH=/usr/local/cuda-12.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_MODELS=/data/models"
...
변경된 환경을 적용해주고, 부팅 설정과 동시에 데몬을 구동합니다.
# systemctl daemon-reload
# systemctl enable --now ollama
열려진 Ollama 포트를 확인합니다.
# apt -y install net-tools
# netstat -nltp |grep ollama
Ollama 에서 손쉽게 다운로드하고 사용 가능한 모델은 아래 URL 을 참고해주세요.
https://github.com/ollama/ollama#model-library
원하는 모델을 다운로드 합니다.
여기에서는 DeepSeek-R1:70B 모델로 다운로드 하겠습니다.
참고로 70B 는 "70 billion parameters" 라는 표현으로, 모델이 700억 개의 학습 가능한 파라미터를 가지고 있다는 것을 의미합니다.
# ollama pull deepseek-r1:70b
참고로 다운로드 명령 없이 바로 실행 (ollama run deepseek-r1:70b) 하게 되면, 다운로드 먼저하고 실행됩니다.
3. 테스트
1) 로컬에서 실행하기
설치했던 모델로 실행을 하고 간단한 질문을 해봅니다.
본 모델은 한글을 지원하지 않으므로 잘 동작하는지 테스트만 진행해 보겠습니다.
# ollama run deepseek-r1:70b
>>> Hello? Who are you?
<think>
</think>
Hello! I'm DeepSeek-R1, an artificial intelligence assistant created by DeepSeek. I'm at your service and would be delighted to assist you with any inquiries or tasks you may have.
>>> /bye
모델과 질문을 붙여서 실행하면 명령 대기 프롬프트 없이 간단히 사용할 수 있습니다.
# ollama run deepseek-r1:70b "How old are you?"
<think>
</think>
I'm an AI assistant created by DeepSeek, so I don't have an age. I'm here to help you with information and tasks! Let me know how I can assist you.
또는, 긴 내용의 텍스트를 직접 복사, 붙여넣지 않고 파일로 되어있는 상태 그대로 LLM 에게 작업을 요청할 수 있습니다.
# ollama run deepseek-r1:70b "Summarize the content of this file in 50 words." < input.txt
출력 결과를 파일로 저장할 수도 있습니다.
# ollama run deepseek-r1:70b "Tell me about renewable energy." > output.txt
2) 외부에서 API 로 실행하기
다른 PC 또는 서버에서 아래와 같이 API 로 접근하여 서비스 이용이 가능합니다.
예제를 실행하는 김에 json 형식으로 예쁘게 출력하기 위해 jq 패키지를 미리 설치합니다.
# apt -y install jq
# curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1:70b",
"stream": false,
"messages": [
{ "role": "user", "content": "Hello? Who are you?" }
]
}' | jq
(결과)
{
"model": "deepseek-r1:70b",
"created_at": "2025-02-27T00:00:46.737167483Z",
"message": {
"role": "assistant",
"content": "<think>\n\n</think>\n\nHello! I'm DeepSeek-R1, an artificial intelligence assistant created by DeepSeek. I'm at your service and would be delighted to assist you with any inquiries or tasks you may have."
},
"done_reason": "stop",
"done": true,
"total_duration": 7971527920,
"load_duration": 63402422,
"prompt_eval_count": 9,
"prompt_eval_duration": 140000000,
"eval_count": 44,
"eval_duration": 7766000000
}
위 출력된 내용을 기반으로 토큰 출력 속도를 계산해봅니다.
"eval_count": 44
"eval_duration": 7742000000 # (단위: 나노초)
tokens_per_sec = 44 / 7.742 = 5.68 tokens/sec
GPU 연산 속도도 확인할 수 있습니다.
이는 동일한 질문으로 GPU 간의 성능 비교에 사용할 수 있습니다.
"eval_duration": 7742000000 # (단위: 나노초)
eval_time_sec = 7742000000 / 1000000000 = 7.742 sec
==================== 참고 ====================
※ 토큰 속도 및 소요시간만 출력
질문, 답변에 상관없이 출력토큰을 테스트 해보기 위해서는 아래와 같이 실행하면 토큰 속도만 출력됩니다.
(다른 모델로 테스트 해보았으나 방법이 다르지 않습니다)
# apt -y install jq
# curl -s http://localhost:11434/api/chat -d '{
"model": "gemma3:27b",
"stream": false,
"messages": [
{ "role": "user", "content": "대한민국의 수도는?" }
]
}' | tee /tmp/api_response.json | jq '{
tokens_per_sec: (.eval_count / (.eval_duration / 1000000000)),
eval_time_sec: (.eval_duration / 1000000000)
}'
(결과)
{
"tokens_per_sec": 42.55319148936171,
"eval_time_sec": 0.282
}
※ 답변과 토큰 속도 및 소요시간 출력
이번에는 답변과 토큰속도, 소요시간을 같이 출력해 봅니다.
jq 에 . + 만 포함하였습니다.
# curl -s http://localhost:11434/api/chat -d '{
"model": "gemma3:27b",
"stream": false,
"messages": [
{ "role": "user", "content": "대한민국의 수도는?" }
]
}' | tee /tmp/api_response.json | jq '. + {
tokens_per_sec: (.eval_count / (.eval_duration / 1000000000)),
eval_time_sec: (.eval_duration / 1000000000)
}'
(결과)
{
"model": "gemma3:27b",
"created_at": "2025-03-18T01:24:13.520260831Z",
"message": {
"role": "assistant",
"content": "대한민국의 수도는 **서울특별시**입니다.\n"
},
"done_reason": "stop",
"done": true,
"total_duration": 423673487,
"load_duration": 106440511,
"prompt_eval_count": 15,
"prompt_eval_duration": 38000000,
"eval_count": 12,
"eval_duration": 276000000,
"tokens_per_sec": 43.47826086956521,
"eval_time_sec": 0.276
}
============================================
4. 웹 UI 도구 설치하기
시스템에 원격접속하여 사용이 가능하지만, 좀더 편리하게 웹 UI 도구를 이용할 수 있습니다.
현재 나와있는 Ollama 웹 UI 는 여러개지만, 여기에서는 제일 인기있는 도구 Open WebUI 를 사용해 보겠습니다.
Open WebUI 는 가장 인기가 많은 chatGPT 스타일의 웹 인터페이스이며, 한글 인터페이스도 지원하는 오픈소스 입니다.
- URL : https://github.com/open-webui/open-webui
패키지 관리도구 pip 와 가상환경 기능을 사용하기 위해 venv 를 설치합니다.
# apt -y install python3-pip python3.12-venv
가상환경 myenv 를 생성하고 활성화 합니다.
# python3 -m venv myenv
# source myenv/bin/activate
가상환경에서 Open WebUI 를 설치하고 가동합니다.
(myenv) root@sysdocu:~# pip install open-webui
(myenv) root@sysdocu:~# open-webui serve
설치 및 가동이 완료되면 로컬에 8080 포트가 열려집니다.
작업자 PC 또는 서버의 브라우저에서 아래와 같이 접속이 가능합니다.
http://{서버 IP}:8080
Open WebUI 에서는 ChatGPT 와 유사한 인터페이스를 보여줍니다.
여기에서 모델은 선택 후, 간단한 질의를 하여 답변을 얻을 수 있습니다.
여기에서는 워크 스페이스 메뉴를 통해 챗봇을 만들어 보겠습니다.
순서는 지식 파일 생성 > 지식 생성 > 모델 (챗봇) 생성 순 입니다.
(메모장으로 지식 파일 만들기)
파일명 : nickname.txt
내용 : Donghoon Cha's nickname is Chacha.
(지식 추가)
워크 스페이스 > 지식 기반 > (화면 우측 + 버튼)
이름 : nickname
설명 : test
컬렉션 검색 : (파일 업로드) nickname.txt
[지식 생성] 버튼
(모델 추가)
워크 스페이스 > 모델 > (화면 우측 + 버튼)
이름 : testbot
기본 모델 : deepseek-r1:70b
모델 파라미터 : When I enter a number, multiply it by 10 and output it.
지식 기반 : (위에서 만든) nickname
[저장 및 생성] 버튼
만들어지면, 바로 보이는 봇을 선택하여 대화를 시작할 수 있습니다.
테스트1) 10
테스트2) What is Donghoon Cha's nickname?
'AI' 카테고리의 다른 글
Intel Xeon 4510 x 2 CPU + DDR5 1TB + RTX4090 (or RTX5080) 장비에서 Ktransformers + Deepseek-R1:671B 설치하기 (0) | 2025.04.17 |
---|---|
Ubuntu 24.04 에서 그래픽카드 (GPU) 선택적 비활성화 하기 (0) | 2025.04.14 |
GGUF 파일을 Llama.cpp 도구로 실행하는 방법 (0) | 2025.04.14 |
vLLM 설치 및 모델들 사용하기 (NVIDIA GPU 전용) (0) | 2025.02.20 |
RTX 4090 + Ubuntu 24.04 + (Llama 3.2-3B & 한국어 언어 모델) 설치하기 (0) | 2024.12.27 |