Việc chạy cục bộ các mô hình AI nguồn mở trên máy tính của chúng ta mang lại cho chúng ta sự riêng tư, khả năng mày mò vô tận và sự tự do khỏi các tập đoàn lớn. Nó gần như là vấn đề tự do ngôn luận.
Tuy nhiên, đối với những người nghèo GPU như chúng tôi, việc có máy tính AI của riêng mình dường như là một giấc mơ đắt giá.
Điều gì sẽ xảy ra nếu tôi nói với bạn rằng bạn có thể mua được một máy tính AI hữu ích với giá 300 đô la? Thú vị? Bạn cần phải cung cấp màn hình, bàn phím và chuột của riêng mình. Và bạn cần mày mò một chút về hệ điều hành, trình điều khiển, phần mềm trung gian và cấu hình Linux.
Để làm rõ, chúng tôi KHÔNG nói về các mô hình AI tổng hợp lớn “đào tạo” hoặc “tinh chỉnh”. Chúng tôi sẽ tập trung vào cách chạy LLM nguồn mở (các mô hình ngôn ngữ lớn như
Bây giờ chúng ta hãy tiếp tục.
Giả sử một trong những trường hợp sử dụng chính của máy tính AI gia đình đang chạy
Tuy nhiên, bạn cần những điều sau để có tốc độ suy luận nhanh hơn. Nếu không, bạn sẽ giống như đang nhìn tóc mọc trên lòng bàn tay trong khi LLM phun ra từng mã thông báo một.
Để tạo hình ảnh với Khuếch tán ổn định, bạn cần có sức mạnh GPU. Tuy nhiên, bạn không cần phải có GPU quá cầu kỳ để làm được điều đó. Bạn có thể tận dụng GPU tích hợp sẵn có trong máy tính ở nhà của mình:
Tất cả các máy Mac có CPU M1/M2/M3, tích hợp CPU, GPU và bộ nhớ tốc độ cao (chúng thực sự tốt, nhưng do giá bị loại khỏi bài viết cụ thể này)
AMD APU (ví dụ: Ryzen 7 5700U), tích hợp CPU và GPU cho các máy tính mini giá rẻ. Đây sẽ là trọng tâm của bài viết này.
CPU Intel (ví dụ Core i5-1135G7), cũng tích hợp CPU và GPU. Chúng cao hơn một chút so với ngân sách 300 đô la cho toàn bộ PC mini, nhưng độc giả có thể tự mình khám phá thêm.
Một chiếc PC mini dựa trên AMD có thông số kỹ thuật sau thường được bán với giá dưới 300 USD. Tôi không muốn xác nhận bất kỳ thương hiệu cụ thể nào, vì vậy bạn có thể tự tìm kiếm:
Tôi đã chi tiêu một chút và chọn model 400 USD với RAM 32 GB và SSD 1TB (mọi thứ khác đều bằng nhau). Lý do chính là tôi nghiên cứu về LLM nguồn mở và muốn chạy các mô hình lớn hơn, ngoài việc chạy Stable Difusion. Nhưng bạn sẽ có thể thực hiện hầu hết mọi thứ trong bài viết này với chiếc máy tính giá 300 USD.
Đối với các APU AMD như
Bạn cần thay đổi điều đó tùy thuộc vào trường hợp sử dụng chính của bạn:
Nếu chỉ cần chạy suy luận LLM, bạn có thể bỏ qua toàn bộ bước chuẩn bị này. Vì suy luận LLM sẽ chỉ cần sử dụng CPU và bạn nên tiết kiệm RAM nhất cho CPU để có thể chạy các mô hình LLM lớn hơn.
Nếu bạn cần chạy
Trong trường hợp của tôi, tôi muốn chạy cả suy luận Stable Diffusion XL và LLM trên cùng một PC mini. Vì vậy, tôi muốn phân bổ 16GB (trong tổng số 32GB) cho GPU.
Bạn có thể đạt được điều này bằng cách thay đổi cài đặt trong BIOS. Thông thường, có giới hạn trên và cài đặt mặc định có thể thấp hơn nhiều so với giới hạn trên. Trên máy tính của tôi, giới hạn trên là 16GB hoặc một nửa tổng RAM khả dụng.
Nếu BIOS máy tính của bạn hỗ trợ các cài đặt như vậy, hãy tiếp tục và thay đổi số bạn muốn. BIOS của tôi không có cài đặt như vậy.
Nếu BIOS của bạn không có cài đặt này, vui lòng làm theo hướng dẫn hay “Mở khóa phân bổ bộ nhớ GPU trên APU AMD Ryzen™?” của Winston Ma. Tôi đã thử và nó hoạt động tốt nên hiện tại tôi có 16GB VRAM.
của AMD
Để cài đặt và làm cho ROCm của AMD hoạt động, bạn phải đảm bảo rằng các phiên bản phần cứng GPU, bản phân phối Linux, kernel, python, trình điều khiển HIP, thư viện ROCm và pytorch đều tương thích. Nếu bạn muốn ít đau đớn nhất và có khả năng thành công tối đa trong lần đầu tiên, hãy tuân thủ các kết hợp được đề xuất và đã được xác minh.
Vui lòng kiểm tra liên kết sau để tải phiên bản kernel và hệ điều hành Linux tương thích rồi cài đặt chúng. Ban đầu, tôi đã phạm sai lầm khi chỉ cài đặt hệ điều hành Linux yêu thích và nhân Linux mặc định của mình và thật khó khăn khi phải quay lại để giải quyết các vấn đề tương thích. Bạn có thể tránh được nỗi đau này bằng cách sử dụng các kết hợp được hỗ trợ chính thức.
Nếu toàn bộ quá trình cài đặt hoàn tất tốt đẹp, bạn có thể nhập rocminfo
và nội dung như thế này sẽ hiển thị (tôi chỉ cắt những phần có liên quan nhất bằng màu vàng được đánh dấu):
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
Sự phụ thuộc của Python có thể khá phức tạp, vì vậy cách tốt nhất là thiết lập một môi trường thích hợp. Bạn có thể sử dụng một trong hai
source venv/bin/activate
conda activate llm
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
Sau đây là dành riêng cho APU có đồ họa tích hợp. Mặc dù chúng không được ROCm hỗ trợ chính thức, nhưng những điều sau đây đã được chứng minh là có hiệu quả.
export HSA_OVERRIDE_GFX_VERSION=9.0.0
Bây giờ, sau tất cả các bước phức tạp, hãy kiểm tra xem ROCm có hoạt động với Torch hay không. Và bạn có thể thấy ROCm đang “giả vờ” là CUDA nhằm mục đích của Pytorch.
python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
Success
python3 -c 'import torch; print(torch.cuda.is_available())'
True
Hãy bắt đầu với điều gì đó dễ dàng dành cho máy tính AI trị giá 300 USD mới được cấu hình của chúng tôi: chạy cục bộ một mô hình ngôn ngữ lớn. Chúng ta có thể chọn một trong các chế độ nguồn mở phổ biến:
Ngoài ra, bạn cũng có thể thử các LLM nhỏ từ
Chúng tôi sẽ sử dụng
Đầu tiên, bạn cần cài đặt wget
và git
. Sau đó làm theo các bước để biên dịch và cài đặt llama.cpp.
sudo apt-get install build-essential
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
Để chạy LLM trên máy rẻ tiền của chúng tôi thay vì máy chủ đám mây có GPU đắt tiền, chúng tôi cần sử dụng phiên bản “nén” của các mô hình để chúng có thể vừa với không gian RAM. Ví dụ đơn giản, mô hình LLaMA-2 7B có tham số 7B, mỗi tham số được biểu thị bằng float16 (2 byte).
Ngoài ra, định dạng tập tin phải là
Đầu tiên, chúng tôi đã thử nghiệm nó trên PC mini AMD và chúng tôi đã đạt được khoảng 10 mã thông báo mỗi giây. Điều này thực sự khá tốt và bạn có thể tiếp tục trò chuyện với LLM mà không phải chờ đợi quá nhiều.
Cấu hình hệ thống:
Hướng dẫn dòng lệnh:
./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
Tiếp theo, chúng tôi đã thử nghiệm trên một PC mini Intel và đạt được khoảng 1,5 mã thông báo mỗi giây. Tốc độ này hơi quá chậm để có một phiên trò chuyện hiệu quả. Đây không phải là một so sánh công bằng vì Intel N5105 rõ ràng là yếu hơn AMD 5800H. Nhưng đó là chiếc PC mini Intel duy nhất mà tôi sở hữu. Nếu bạn sử dụng CPU Intel mạnh hơn (ví dụ: Core i5-1135G7), bạn sẽ nhận được kết quả tương đương. Vui lòng báo cáo những phát hiện của bạn trong phần bình luận bên dưới.
Cấu hình hệ thống:
./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)
Và hãy chú ý đến trang này nữa, liên quan đến 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
Kiểm tra 1
SDXL (độ phân giải tối đa 1024x1024) khuyến nghị ít nhất 12GB VRAM, vì vậy bạn chắc chắn cần thực hiện bước Chuẩn bị 1 để phân bổ 16GB VRAM cho iGPU. Vì vậy, nhiệm vụ này chỉ có thể thực hiện được với chiếc PC mini trị giá 400 USD.
./webui.sh --upcast-sampling
Kiểm tra 1:
Kiểm tra 2:
Mặc dù bài viết này tập trung vào hệ điều hành Linux nhưng bạn cũng có thể khiến Stable Diffusion hoạt động trong Windows. Đây là những thử nghiệm của tôi:
Kiểm tra 1:
Vậy bạn có thấy vui khi chạy các mô hình AI sáng tạo của riêng mình trên chiếc PC mini mới trị giá 300 USD không? Tôi hy vọng bạn làm được.
Các mô hình AI nguồn mở chạy trên thiết bị cá nhân là một trong những lĩnh vực thú vị nhất đối với những người mày mò vì không ai trong chúng ta có nguồn GPU khổng lồ để thực sự đào tạo một mô hình nền tảng. Điều này sẽ tạo ra một thế hệ ứng dụng mới vừa siêu thông minh vừa vẫn bảo vệ quyền riêng tư dữ liệu của chúng ta.
Tiếp theo là gì?
Và vui vẻ mày mò với AI, nguồn mở và trên thiết bị!