玩客云 边缘AI模型 本地搭建部署 llama.cpp qwen

安装基础依赖

打开终端,输入:

复制代码
# 更新系统 
sudo apt update && sudo apt upgrade -y 
# 安装编译工具 
sudo apt install git build-essential cmake python3 python3-pip -y 

安装系统包版本 numpy

复制代码
sudo apt update
sudo apt install python3-numpy -y

这一步保证你可以编译 llama.cpp 和运行 Python 脚本。

下载并编译 llama.cpp

install_llama.sh

复制代码
#!/bin/bash

set -e  # 有错误直接退出,别默默翻车

REPO_URL="https://github.com/ggerganov/llama.cpp"
DIR_NAME="llama.cpp"
BUILD_DIR="build"

echo "== llama.cpp 一键构建脚本 =="

# 1. 检查源码是否存在
if [ ! -d "$DIR_NAME" ]; then
    echo "[INFO] 未检测到 llama.cpp,开始下载..."
        export http_proxy=http://192.168.1.131:7897
        export https_proxy=http://192.168.1.131:7897
        git clone "$REPO_URL"
    echo "[OK] 下载完成"
else
    echo "[OK] 已存在 llama.cpp,跳过下载"
fi

cd "$DIR_NAME"

# 2. 检查 build 目录
if [ ! -d "$BUILD_DIR" ]; then
    echo "[INFO] 创建 build 目录"
    mkdir "$BUILD_DIR"
else
    echo "[OK] build 目录已存在"
fi

cd "$BUILD_DIR"

# 3. CMake + 编译
echo "[INFO] 开始 CMake 配置"
cmake -DCMAKE_BUILD_TYPE=Release ..

echo "[INFO] 开始编译(make -j1)"
make -j1

echo "== llama.cpp 编译完成 =="

-j1 限制单线程,避免 OOM

编译完成后生成 可执行文件

测试:

复制代码
cd ~/llama.cpp/build/bin
./test-backend-ops

Testing 1 devices

Backend 1/1: CPU

Skipping CPU backend

1/1 backends passed

OK

设置 HTTP/HTTPS 代理(临时)网络不好时候

复制代码
export http_proxy=http://192.168.1.131:7897
export https_proxy=http://192.168.1.131:7897
  • 编译后生成的 main 可执行文件,就是推理程序。

  • llama.cpp 支持 ARM CPU,所以 S805 可以直接跑。


下载模型 https://huggingface.co/search/full-text?q=TinyLLM+%2F+GGUF 搜索关键词 TinyLLM / GGUF

进入模型目录:

复制代码
cd ~
mkdir models
cd /root/models

然后用 wget 直接:

复制代码
wget --no-check-certificate --secure-protocol=TLSv1_2 
https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B-Instruct-GGUF/resolve/main/qwen2.5-coder-0.5b-instruct-q5_0.gguf

或者电脑下载后 scp拷贝过去

复制代码
 scp qwen2.5-coder-0.5b-instruct-q5_0.gguf   root@192.168.1.157:/root/models

一键下载脚本 dl.sh

复制代码
#!/bin/bash

# 使用方法: ./dl.sh <下载链接> [保存文件名]
# 示例:
# ./dl.sh https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B-Instruct-GGUF/resolve/main/qwen2.5-coder-0.5b-instruct-q5_0.gguf

# 设置代理
export http_proxy=http://192.168.1.131:7897
export https_proxy=http://192.168.1.131:7897

URL="$1"
FILENAME="$2"

if [ -z "$URL" ]; then
    echo "请提供下载链接"
    exit 1
fi

# 如果没有指定文件名,自动从 URL 提取
if [ -z "$FILENAME" ]; then
    FILENAME=$(basename "$URL")
fi

echo "开始下载: $URL"
echo "保存为: $FILENAME"

wget --no-check-certificate --secure-protocol=TLSv1_2 -c "$URL" -O "$FILENAME" --tries=5 --timeout=30

if [ $? -eq 0 ]; then
    echo "下载完成: $FILENAME"
else
    echo "下载失败,请检查网络或代理设置"
fi

运行

  • -m:模型文件路径

  • -p:输入提示(传感器数据或指令)

  • -n:生成 token 数量(这里 10 个就够)

root目录下

复制代码
./llama.cpp/build/bin/llama-cli -m /root/models/qwen2.5-coder-0.5b-instruct-q5_0.gguf -p "hello" -n 500

效果

一键启动脚本 start.sh

复制代码
#!/bin/bash

MODEL_FILE=${1:-"qwen2.5-coder-0.5b-instruct-q5_0.gguf"}
MODEL_PATH="$HOME/models/$MODEL_FILE"

if [ ! -f "$MODEL_PATH" ]; then
    echo "错误:模型文件 $MODEL_PATH 不存在!"
    exit 1
fi

CTX_SIZE=1024
N_PREDICT=512
TEMP=0.3
THREADS=4

echo "开始加载模型:$MODEL_FILE"
echo "参数:上下文=$CTX_SIZE,生成token数=$N_PREDICT,温度=$TEMP,线程数=$THREADS"

"$HOME/llama.cpp/build/bin/llama-cli" \
  -m "$MODEL_PATH" \
  -c $CTX_SIZE \
  -n $N_PREDICT \
  --temp $TEMP \
  --threads $THREADS \
  --color auto

扩展

安装open webui

复制代码
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -e OPENAI_API_BASE_URL=http://192.168.1.191:8080/v1 \
  -e OPENAI_API_KEY=sk-local \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

运行服务端模式

复制代码
/root/llama.cpp/build/bin/llama-server \
  -m /root/models/qwen2.5-coder-0.5b-instruct-q8_0.gguf \
  -c 2048 \
  --host 0.0.0.0 \
  --port 8080

测试服务端

复制代码
curl http://127.0.0.1:8080/v1/models

响应:

{"models":{"name":"qwen2.5-coder-0.5b-instruct-q8_0.gguf","model":"qwen2.5-coder-0.5b-instruct-q8_0.gguf","modified_at":"","size":"","digest":"","type":"model","description":"","tags":\["","capabilities":"completion","parameters":"","details":{"parent_model":"","format":"gguf","family":"","families":"","parameter_size":"","quantization_level":""}}],"object":"list","data":{"id":"qwen2.5-coder-0.5b-instruct-q8_0.gguf","object":"model","created":1769056357,"owned_by":"llamacpp","meta":{"vocab_type":2,"n_vocab":151936,"n_ctx_train":32768,"n_embd":896,"n_params":630167424,"size":669763072}}}

API使用:chatbox里面导入

http://192.168.1.191:8080/v1

相关推荐
To_OC5 小时前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click5 小时前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能
GuWenyue6 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue6 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场6 小时前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
糖果店的幽灵6 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
小林ixn6 小时前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客6 小时前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫7 小时前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英7 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理