오픈 소스 AI 모델을 우리 자신의 컴퓨터에서 로컬로 실행하면 개인 정보 보호, 끝없는 수정 가능성, 대기업으로부터의 자유를 얻을 수 있습니다. 그것은 거의 표현의 자유의 문제입니다.
그러나 GPU가 부족한 우리에게 자체 AI 컴퓨터를 갖는 것은 값비싼 꿈인 것 같습니다.
유용한 AI 컴퓨터를 300달러에 구입할 수 있다고 말하면 어떻게 될까요? 관심 있는? 모니터, 키보드, 마우스는 직접 준비해야 합니다. 그리고 Linux 운영 체제, 드라이버, 미들웨어 및 구성에 대해 약간의 수정이 필요합니다.
명확히 하자면, 우리는 대규모 생성 AI 모델을 "훈련"하거나 "미세 조정"하는 것에 대해 말하는 것이 아닙니다. 오픈 소스 LLM(예:
이제 계속하겠습니다.
가정용 AI 컴퓨터의 주요 사용 사례 중 하나가 실행되고 있다고 가정해 보겠습니다.
그러나 더 빠른 추론 속도를 위해서는 다음이 필요합니다. 그렇지 않으면 LLM이 한 번에 하나의 토큰을 뱉어내는 동안 손바닥에 머리카락이 자라는 것을 보는 것과 같을 것입니다.
Stable Diffusion을 사용하여 이미지를 생성하려면 GPU 성능이 필요합니다. 그러나 이를 위해 아주 멋진 GPU를 가질 필요는 없습니다. 이미 가정용 컴퓨터에 있는 통합 GPU를 활용할 수 있습니다.
CPU, GPU 및 고속 메모리가 통합된 M1/M2/M3 CPU가 장착된 모든 Mac(정말 훌륭하지만 가격 때문에 이 특정 기사에서는 제외됩니다)
AMD APU(예: Ryzen 7 5700U)는 예산 친화적인 미니 PC를 위해 CPU와 GPU를 통합합니다. 이것이 이 글의 초점이 될 것입니다.
CPU와 GPU도 통합한 Intel CPU(예: Core i5-1135G7). 전체 미니 PC에 대한 예산인 300달러보다 약간 높지만 독자들이 직접 더 자세히 살펴볼 수 있습니다.
다음 사양을 갖춘 AMD 기반 미니 PC는 일반적으로 300달러 미만에 판매됩니다. 저는 특정 브랜드를 추천하고 싶지 않으므로 직접 검색해 보세요.
나는 약간의 돈을 펑펑 써서 32GB RAM과 1TB SSD를 갖춘 400달러 모델을 선택했습니다(다른 모든 것은 동일함). 주된 이유는 오픈 소스 LLM에 대해 연구하고 있으며 Stable Difusion을 실행하는 것 외에도 더 큰 모델을 실행하고 싶기 때문입니다. 하지만 당신은 300달러짜리 컴퓨터로 이 기사에 나오는 거의 모든 것을 할 수 있을 것이다.
다음과 같은 AMD APU의 경우
주요 사용 사례에 따라 이를 변경해야 합니다.
LLM 추론만 실행해야 한다면 이 전체 준비 단계를 건너뛸 수 있습니다. LLM 추론은 CPU만 사용해야 하므로 더 큰 LLM 모델을 실행할 수 있도록 CPU용으로 대부분의 RAM을 저장해야 합니다.
실행해야 하는 경우
제 경우에는 동일한 미니 PC에서 Stable Diffusion XL과 LLM 추론을 모두 실행하고 싶습니다. 따라서 GPU에 (총 32GB 중) 16GB를 할당하고 싶습니다.
BIOS에서 설정을 변경하면 이를 달성할 수 있습니다. 일반적으로 상한이 있으며 기본 설정은 상한보다 훨씬 낮을 수 있습니다. 내 컴퓨터에서 상한은 16GB, 즉 사용 가능한 전체 RAM의 절반이었습니다.
컴퓨터의 BIOS가 이러한 설정을 지원하는 경우 원하는 번호로 변경하십시오. 내 BIOS에는 그러한 설정이 없습니다.
BIOS에 이 설정이 없으면 "AMD Ryzen™ APU에서 GPU 메모리 할당을 잠금 해제하시겠습니까?"라는 지침을 따르십시오. 윈스턴 마(Winston Ma) 시도해 봤는데 잘 작동해서 이제 16GB VRAM이 생겼습니다.
AMD의
AMD의 ROCm을 설치하고 작동시키려면 GPU 하드웨어, Linux 배포판, 커널, Python, HIP 드라이버, ROCm 라이브러리 및 pytorch의 버전이 호환되는지 확인해야 합니다. 고통을 최소화하고 최초 성공 가능성을 최대화하려면 권장되고 검증된 조합을 따르십시오.
호환되는 Linux OS 및 커널 버전을 구하고 설치하려면 다음 링크를 확인하세요. 처음에는 제가 즐겨 사용하는 Linux OS와 기본 Linux 커널만 설치하는 실수를 저질렀고, 호환성 문제를 해결하기 위해 뒤로 걸어가는 것이 큰 고통이었습니다. 공식적으로 지원되는 조합을 사용하면 이러한 어려움을 피할 수 있습니다.
전체 설치가 잘 완료되면 rocminfo
입력하면 다음과 같은 내용이 표시됩니다(강조 표시된 노란색으로 가장 관련 있는 부분만 잘라냈습니다).
ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version: 1.1
System Timestamp Freq.: 1000.000000MHz
Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED
DMAbuf Support: YES
==========
HSA Agents
==========
*******
Agent 1
*******
Name: AMD Ryzen 7 5800H with Radeon Graphics
Uuid: CPU-XX
Marketing Name: AMD Ryzen 7 5800H with Radeon Graphics
Vendor Name: CPU
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 16777216(0x1000000) KB
Python 종속성은 매우 까다로울 수 있으므로 적절한 환경을 설정하는 것이 좋습니다. 다음 중 하나를 사용할 수 있습니다.
source venv/bin/activate
conda activate llm
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
다음은 통합 그래픽이 있는 APU에만 해당됩니다. ROCm에서 공식적으로 지원하지는 않지만 다음은 작동하는 것으로 입증되었습니다.
export HSA_OVERRIDE_GFX_VERSION=9.0.0
이제 모든 복잡한 단계를 마친 후 ROCm이 Torch와 작동하는지 테스트해 보겠습니다. 그리고 ROCm이 Pytorch의 목적을 위해 CUDA인 것처럼 "가장"하고 있음을 알 수 있습니다.
python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
Success
python3 -c 'import torch; print(torch.cuda.is_available())'
True
새로 구성된 300달러짜리 AI 컴퓨터를 위한 쉬운 것부터 시작해 보겠습니다. 대규모 언어 모델을 로컬에서 실행하는 것입니다. 인기 있는 오픈 소스 모드 중 하나를 선택할 수 있습니다.
또한 다음에서 소규모 LLM을 시도해 볼 수도 있습니다.
우리는 사용할 것입니다
먼저 wget
과 git
설치해야 합니다. 그런 다음 단계에 따라 llama.cpp를 컴파일하고 설치합니다.
sudo apt-get install build-essential
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
값비싼 GPU가 장착된 클라우드 서버 대신 저렴한 시스템에서 LLM을 실행하려면 RAM 공간에 맞도록 모델의 "압축된" 버전을 사용해야 합니다. 간단한 예를 들어 LLaMA-2 7B 모델에는 각각 float16(2바이트)으로 표시되는 7B 매개변수가 있습니다.
또한 파일 형식은 다음과 같아야 합니다.
먼저 AMD 미니PC에서 테스트해본 결과 초당 약 10개의 토큰을 달성했습니다. 이것은 실제로 꽤 괜찮은 수준이며, 너무 많이 기다리지 않고도 LLM과 채팅을 계속할 수 있습니다.
시스템 구성:
명령줄 지침:
./main -m models/llama-2-7b-chat.Q4_0.gguf --color -ins -n 512 --mlock
llama_print_timings: load time = 661.10 ms
llama_print_timings: sample time = 234.73 ms / 500 runs ( 0.47 ms per token, 2130.14 tokens per second)
llama_print_timings: prompt eval time = 1307.11 ms / 32 tokens ( 40.85 ms per token, 24.48 tokens per second)
llama_print_timings: eval time = 50090.22 ms / 501 runs ( 99.98 ms per token, 10.00 tokens per second)
llama_print_timings: total time = 64114.27 ms
다음으로 Intel 미니 PC에서 테스트한 결과 초당 약 1.5개의 토큰을 달성했습니다. 유익한 채팅 세션을 진행하기에는 속도가 너무 느립니다. Intel N5105는 분명히 AMD 5800H보다 약하기 때문에 이는 공정한 비교가 아닙니다. 하지만 그게 내가 갖고 있는 유일한 인텔 미니 PC다. 더 강력한 Intel CPU(예: Core i5-1135G7)를 사용하는 경우 비슷한 결과를 얻을 수 있습니다. 아래 댓글로 결과를 보고해 주세요.
시스템 구성:
./main -m models/llama-2-7b-chat.Q4_0.gguf -ins --color -n 512 --mlock
llama_print_timings: load time = 14490.05 ms
llama_print_timings: sample time = 171.53 ms / 97 runs ( 1.77 ms per token, 565.49 tokens per second)
llama_print_timings: prompt eval time = 21234.29 ms / 33 tokens ( 643.46 ms per token, 1.55 tokens per second)
llama_print_timings: eval time = 75754.03 ms / 98 runs ( 773.00 ms per token, 1.29 tokens per second)
AMD ROCm에 관해서는 이 페이지에도 주목하세요.
export HSA_OVERRIDE_GFX_VERSION=9.0.0
source venv/bin/activate
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
테스트 1
SDXL(최대 해상도 1024x1024)은 최소 12GB VRAM을 권장하므로 iGPU에 16GB VRAM을 할당하려면 준비 1 단계를 완료해야 합니다. 따라서 이 작업은 400달러짜리 미니 PC에서만 가능합니다.
./webui.sh --upcast-sampling
테스트 1:
테스트 2:
이 문서에서는 Linux 운영 체제에 중점을 두고 있지만 Windows에서도 Stable Diffusion을 사용할 수 있습니다. 내 실험은 다음과 같습니다.
테스트 1:
그렇다면 새로운 300달러짜리 미니 PC에서 자신만의 생성 AI 모델을 실행하면서 즐거운 시간을 보내고 계신가요? 니가하길 바래.
개인용 장치에서 실행되는 오픈 소스 AI 모델은 개발자에게 가장 흥미로운 영역 중 하나입니다. 왜냐하면 우리 중 누구도 기본 모델을 실제로 훈련할 수 있는 대규모 GPU 풀을 갖고 있지 않기 때문입니다. 이를 통해 데이터 개인정보 보호를 유지하면서 매우 스마트한 차세대 앱을 구현할 수 있습니다.
다음은 무엇입니까?
그리고 AI, 오픈 소스, 온디바이스를 활용해 즐거운 시간을 보내세요!