Cách chạy DeepSeek R1 trên Raspberry Pi 5
Bạn không thể không biết về sự kiện lớn khi Nvidia mất 589 tỷ USD vốn hóa thị trường do niềm tin vào AI suy giảm, sau khi DeepSeek tuyên bố mô hình mã nguồn mở R1 của họ có thể đạt hiệu suất tương đương mô hình o1 của OpenAI với lượng tính toán thấp hơn 11 lần. Hệ quả từ sự việc này vẫn đang được tranh luận, nhưng nó đã gây xôn xao trong ngành. Trước khi đi sâu vào nội dung, hãy điều chỉnh kỳ vọng.
Bạn có thể chạy DeepSeek trên Raspberry Pi, nhưng nó phụ thuộc vào CPU, nên đừng mong đợi truy vấn hoàn thành trong vài giây. Hiện tại không có HAT hoặc phụ kiện AI chính thức nào có thể tăng tốc mô hình. Cách duy nhất là kết nối GPU với cổng PCIe của Raspberry Pi 5, có thể sử dụng một trong những bo mạch Hat UPCIty Lite của Pineboard và nguồn điện ngoài. Điều này có nghĩa là Raspberry Pi 5 thua thiệt so với máy tính để bàn của tôi với GPU Nvidia RTX 4070.
Khi ollama chạy, nó sẽ kiểm tra xem có GPU không và nếu có, nó sẽ sử dụng GPU đó. Vậy nên, RTX 4070 của tôi đang thực hiện tất cả công việc. Để kiểm tra R18b chạy cục bộ, tôi nghĩ đến việc viết một đoạn mã Python đơn giản. Đề bài là "viết một script Python để hỏi người dùng tên, lưu vào biến username, và sau đó chào người dùng bằng tên của họ 100 lần." Tôi sẽ xử lý việc này bằng ba dòng mã Python: một dòng để nhận input từ người dùng, và hai dòng để tạo vòng lặp for in để in ra lời chào cá nhân hóa.
Đây là khóa học Python cơ bản mà tôi đã dạy cho hàng trăm sinh viên. Mô tả bài tập về việc nhập tên người dùng:
```python
username = input("What is your name? ")
for i in range(100):
print("Hello, " + username)
```
Video về DeepSeek trên Raspberry Pi 5 có thể xem trên YouTube. Thông số kỹ thuật của máy thử nghiệm:
- Raspberry Pi 5: 8GB RAM LPDDR4X, CPU Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76, thời gian hoàn thành: 801.08 phút.
- AMD Ryzen 5 5600X: 32GB RAM DDR4, hexa-core 3.
CPU 7 4.6 GHz, GPU Nvidia RTX 4070, thời gian 16.12 giây. Mã của Raspberry Pi 5 như sau: `username = input().strip()` và sau đó là vòng lặp `for in range(100): print(f"Hello, {username}")`. Việc lấy đầu vào từ người dùng và làm sạch nó trước khi gán cho hàm là một cách làm thông minh. Phương pháp `strip` sẽ loại bỏ khoảng trắng trong chuỗi đã nhập. Sử dụng f-strings để in lời chào là cách định dạng đầu ra hiện đại hơn. Mặc dù có phần thừa thãi trong trường hợp này, nhưng tôi rất vui khi thấy sinh viên thử cách tiếp cận này.
Điều tôi không hài lòng với mã này là không có yêu cầu nhập liệu từ người dùng, do đó trong video có một khoảng trễ ngắn. May mắn thay, máy tính không gặp phải vấn đề này. Trên máy tính, DeepSeek đã tạo ra đoạn mã này: "username input 'Nhập tên của bạn' for in range 100 printf 'Xin chào, username!'". Dữ liệu người dùng được ghi lại và lưu vào biến, và chúng ta có yêu cầu nhập liệu cho người dùng. Phần còn lại giống như trên Raspberry Pi 5, chỉ thêm một dấu "!" để nhấn mạnh lời chào.
Hình ảnh từ Toms Hardware cho thấy sự chênh lệch rõ rệt giữa PC và Pi 5. Tất cả đều được thực hiện offline, dựa vào mô hình và CPU/GPU của thiết bị. PC hoàn thành trong 16 giây, trong khi Pi 5 mất đến 8 phút! Thực tế, PC đã xong trong khi Pi 5 vẫn đang tải mô hình. Tuy nhiên, việc chạy LLM trên Raspberry Pi 5 là một thí nghiệm thú vị và đáng bỏ thời gian, vì vậy hãy cài đặt một mô hình trên Raspberry Pi 5 8GB.
Lưu ý rằng Raspberry Pi 5 8GB là cấu hình tối thiểu mà chúng tôi sẽ thử nghiệm. Bạn có thể thử với Raspberry Pi 5 4GB bằng cách điều chỉnh mô hình, nhưng hiệu suất có thể khác nhau. Chúng tôi sẽ thiết lập DeepSeek trên Raspberry Pi 5 thông qua ollama, một công cụ mã nguồn mở miễn phí cho phép chạy các mô hình ngôn ngữ lớn trên máy của bạn. Mô hình chúng tôi sử dụng là một mô hình Llama đã được tinh chế, phù hợp với 8GB RAM của Raspberry Pi 5.
Đội ngũ ollama cho biết rằng “Nhóm DeepSeek đã chứng minh rằng các mẫu suy luận từ các mô hình lớn có thể được tinh chế thành các mô hình nhỏ hơn, mang lại hiệu suất tốt hơn so với các mẫu suy luận được phát hiện qua RL trên các mô hình nhỏ.” Chúng ta sử dụng mô hình này thay vì mô hình DeepSeek "thật" vì mô hình deepseek-r1671b có kích thước 404GB, sẽ quá tải cho Raspberry Pi 5.
Cài đặt trên Raspberry Pi rất đơn giản nhờ vào script của ollama.
1. Mở terminal và đảm bảo Raspberry Pi 5 của bạn đang chạy phần mềm mới nhất:
```
sudo apt update
sudo apt upgrade -y
```
2. Tải xuống và cài đặt script cài đặt của ollama. Thông thường, việc cài đặt phần mềm từ script trên Internet là không an toàn, và chúng ta không nên làm điều này trong môi trường sản xuất. Nếu bạn muốn tìm hiểu, hãy xem script cài đặt.
sh có thể được lưu vào tệp và nội dung được đọc trước khi sử dụng. Chạy lệnh: `curl -fsSL https://ollama.com/install.sh | sh`. Kiểm tra số phiên bản bằng lệnh: `ollama --version`. Phiên bản của chúng tôi là 0.5.7, nhưng bạn có thể có phiên bản khác do sự phát triển nhanh chóng của LLM. Cuối cùng, tải xuống và chạy DeepSeek-r18b, một mô hình Llama tinh gọn phù hợp với 8GB RAM của Raspberry Pi 5.
Chạy lệnh "ollama run deepseek-r18b 5". Chờ tải và cài đặt hoàn tất, có thể mất thời gian ban đầu nhưng các lần sau sẽ nhanh hơn. Giao diện người dùng đơn giản, chỉ cần nhập yêu cầu và LLM sẽ phản hồi từ từ. Khi xong, bạn có thể nhấn CTRL D hoặc gõ "bye" và nhấn Enter để kết thúc phiên làm việc. DeepSeek trên Raspberry Pi 5 hoàn toàn phụ thuộc vào CPU.
Xin vui lòng cung cấp thêm thông tin hoặc nội dung bạn muốn viết lại để tôi có thể giúp bạn tốt hơn!
Nguồn: www.tomshardware.com/raspberry-pi/how-to-run-deepseek-r1-on-your-raspberry-pi-5