İçeriğe geç
Diğer

RKLLM ile büyük dil modeli (DeepSeek-R1) çalıştırma

Banana Pi BPI-M7 · Hugging Face modelini RKLLM-Toolkit ile .rkllm formatına çevirip RK3588 NPU'da çalıştırma.

RKLLM yazılım yığını iki bölümden oluşur: bilgisayarda (x86_64) çalışan RKLLM-Toolkit Hugging Face formatındaki modelleri (LLaMA, Qwen, Phi2 vb.) w4a16/w8a8 olarak nicemleyip .rkllm dosyasına çevirir; kart üzerinde çalışan RKLLM Runtime ise bu modeli NPU sürücüsü aracılığıyla çalıştırır. Kaynak kod ve örnekler: https://github.com/ArmSoM/rknn-llm.

  1. Bilgisayarda miniforge3 ile Python 3.8 ortamı kurup Toolkit'i yükleyin:
    conda create -n RKLLM-Toolkit python=3.8
    conda activate RKLLM-Toolkit
    pip3 install rkllm_toolkit-1.0.0-cp38-cp38-linux_x86_64.whl
  2. DeepSeek-R1-Distill-Qwen-1.5B model dosyalarını indirin.
  3. Nicemleme verisini üretip modeli dışa aktarın (RK3576 için export_rkllm.py içinde target_platform = "RK3576" ve num_npu_core = 2 yapın):
    cd rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export
    python generate_data_quant.py -m /path/to/DeepSeek-R1-Distill-Qwen-1.5B
    python export_rkllm.py
  4. Kart tarafı demoyu derleyip modeli karta gönderin (build-linux.sh içindeki GCC_COMPILER_PATH değişkenini kendi çapraz derleyicinize göre ayarlayın):
    cd rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy
    ./build-linux.sh
    adb push install/demo_Linux_aarch64 /data
    adb push DeepSeek-R1-Distill-Qwen-1.5B-rk35**.rkllm /data/demo_Linux_aarch64
  5. Kartta çalıştırın:
    adb shell
    cd /data/demo_Linux_aarch64
    export LD_LIBRARY_PATH=./lib
    taskset f0 ./llm_demo ./DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3576.rkllm  2048 4096

Notlar: DeepSeek için demo'daki senaryo istem metnini (prompt) kaldırın; terminalde karakter kodlamasına dikkat edin; kartta en az 8 GB RAM olmalı (çalışırken yaklaşık %70'i kullanılır). Hazır firmware çekirdeğindeki NPU sürücüsü RKLLM'i desteklemeyebilir; gerekirse çekirdeği güncelleyin.