Ubuntu 22.04 + AI 算力盒子(RK3588/RK1828/BM1688 等) 上,YOLOv8 目标检测 + LLaMA3 大语言模型的从零到可运行实战部署,兼顾原生部署和容器化(Docker),适合边缘盒子离线 / 本地推理场景。

一、硬件与系统基线(2026-05-15)
系统:Ubuntu 22.04 LTS(aarch64/arm64)
算力盒子:瑞芯微 RK3588 / RK1828、算能 BM1688、全志 A733 等边缘 NPU/GPU
内存:≥8GB(LLaMA3-7B 建议 16GB+)
存储:≥64GB eMMC/SSD(模型约 4–13GB)
环境:Python 3.8–3.10、CUDA 11.7/12.x(GPU)、NPU SDK(厂商)
二、系统初始化(必做)
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y build-essential cmake git wget curl \
python3-pip python3-venv vim htop
# (GPU盒子)安装 NVIDIA 驱动 + CUDA
# 先看推荐驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
sudo reboot
# 重启后验证
nvidia-smi
nvcc --version
# (NPU盒子)安装厂商 SDK(RKNN/TPU-MLIR/BMSDK)
# 以 RK3588 为例(其他芯片类似)
git clone https://github.com/rockchip-linux/rknpu2.git
cd rknpu2
sudo ./install.sh
三、部署 YOLOv8(边缘检测,NPU/GPU 加速)
3.1 虚拟环境隔离
# 创建并激活
python3 -m venv yolov8_env
source yolov8_env/bin/activate
# 升级 pip
pip install --upgrade pip
3.2 安装依赖(GPU 版)
# CUDA 11.7 + PyTorch(适配多数边缘 GPU)
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 \
--extra-index-url https://download.pytorch.org/whl/cu117
# YOLOv8 官方库
pip install ultralytics
# 验证
python -c "from ultralytics import YOLO; print(YOLO('yolov8n.pt'))"
# 正常会自动下载 yolov8n.pt 并打印模型结构
3.3 NPU 部署(RK3588/BM1688,关键!)
# 1. 先把 PyTorch 模型转 ONNX
yolo export model=yolov8n.pt format=onnx opset=12
# 2. 用厂商工具转 NPU 模型(RKNN/BM)
# RK3588 示例
rknn-toolkit2 export --onnx yolov8n.onnx --output yolov8n.rknn \
--target rk3588 --quantize dq
# 3. Python 调用 NPU 推理
from rknnlite.api import RKNNLite
from ultralytics import YOLO
rknn = RKNNLite()
rknn.load_rknn('yolov8n.rknn')
rknn.init_runtime()
# 推理图片
results = rknn.inference(inputs=['bus.jpg'])
print(results)
3.4 实战推理(图片 / 摄像头)
# 图片检测
yolo predict model=yolov8n.pt source=bus.jpg
# 摄像头实时检测(USB/CSI)
yolo predict model=yolov8n.pt source=0 show=True
# 导出带界面的可执行文件(边缘设备直接运行)
yolo export model=yolov8n.pt format=onnx
四、部署 LLaMA3(7B/8B,边缘离线大模型)
边缘盒子优先用 Ollama(一行命令跑) 或 llama.cpp(量化加速),比原生 HuggingFace 更省资源。
4.1 方式 A:Ollama(最简,推荐新手)
# 1. 安装 Ollama(国内加速)
curl -fsSL https://ollama.com/install.sh | sh -s -\
--mirror https://mirror.ghproxy.com/https://github.com/ollama/ollama/releases/download
# 2. 拉取 LLaMA3-7B(中文推荐 ymcui 微调版)
ollama pull ymcui/llama-3-chinese-7b-instruct
# 或原生版
ollama pull llama3:7b
# 3. 本地对话
ollama run llama3:7b
# 输入:写一个Python快速排序
# 退出:/exit
# 4. 暴露 API(供 YOLOv8 联动)
ollama serve &
curl http://localhost:11434/api/generate -d '{
"model": "llama3:7b",
"prompt": "你好"
}'
4.2 方式 B:llama.cpp(量化,NPU/GPU 极致加速)
# 1. 克隆并编译(支持 arm64)
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make -j$(nproc)
# 2. 下载 LLaMA3-8B 并转 GGUF
# 先从 HuggingFace 下载 Meta-Llama-3-8B
# 转换为 GGUF(llama.cpp 格式)
python convert.py models/llama3-8b/ --outtype f16
# 3. 4-bit 量化(边缘盒子必做,显存从13GB→4GB)
./quantize models/llama3-8b/gguf-model-f16.gguf \
models/llama3-8b/gguf-model-q4_k.gguf q4_k
# 4. 命令行推理(GPU/NPU 加速)
./main -m models/llama3-8b/gguf-model-q4_k.gguf -p "你好" -n 512
# 5. 启动 API 服务(端口 8000)
./server -m models/llama3-8b/gguf-model-q4_k.gguf -p 8000
4.3 方式 C:Docker 容器化(隔离环境,一键迁移)
# 1. 编写 Dockerfile(Ollama + LLaMA3)
FROM ollama/ollama:ubuntu
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN apt update && apt install -y locales && locale-gen zh_CN.UTF-8
ENV LANG zh_CN.UTF-8
EXPOSE 11434
CMD ["serve", "ymcui/llama-3-chinese-7b-instruct"]
# 2. 构建并运行
docker build -t llama3-ollama .
docker run -d -p 11434:11434 --name llama3 llama3-ollama
# 3. 测试
curl http://localhost:11434/api/generate -d '{"model":"llama3:7b","prompt":"测试"}'
五、YOLOv8 + LLaMA3 联动实战(边缘智能场景)
目标:摄像头检测物体 → LLaMA3 生成描述 / 指令
# 保存为 yolo_llama3.py
from ultralytics import YOLO
import requests
import json
# 1. YOLOv8 检测
model = YOLO('yolov8n.pt')
results = model.predict(source=0, stream=True)# 摄像头流
# 2. LLaMA3 API 调用(Ollama)
def llama3_prompt(text):
url = "http://localhost:11434/api/generate"
data = {"model": "llama3:7b", "prompt": text, "stream": False}
res = requests.post(url, json=data)
return res.json()["response"]
# 3. 循环:检测→描述
for result in results:
boxes = result.boxes
names = [result.names[int(cls)] for cls in boxes.cls]
if names:
prompt = f"图片中检测到:{names},请用中文生成场景描述"
desc = llama3_prompt(prompt)
print("检测结果:", names)
print("LLaMA3 描述:", desc)
运行:
python yolo_llama3.py
六、性能优化与避坑(边缘盒子关键)
1. YOLOv8
用 n/s/m 轻量模型(nano 最快,适合 NPU)
NPU 部署必须 转 RKNN/BM 模型 + 量化(INT8)
摄像头用 MJPG 格式,降低分辨率(640×480)
2. LLaMA3
边缘盒子优先 7B 模型 + 4-bit 量化(q4_k)
Ollama 自动优化 NPU/GPU,一行命令即可
内存不足时加 swap(≥8GB)
3. 常见错误
CUDA not found:驱动 / CUDA 版本不匹配,重装
NPU init failed:未安装厂商 SDK 或权限不足(sudo)
LLaMA3 显存溢出:换 7B 模型 + 4-bit 量化
七、总结
YOLOv8:Ubuntu 22.04 用 ultralytics 一行安装,NPU 需转 RKNN/BM 并量化。
LLaMA3:Ollama 最简(ollama pull),llama.cpp 适合极致加速,Docker 便于部署。
联动场景:摄像头检测 → 大模型生成描述,适合边缘智能、安防、工业质检。
需求留言: