通过制作llama_cpp的docker镜像在内网离线部署运行大模型

对于机器在内网,无法连接互联网的服务器来说,想要部署体验开源的大模型,需要拷贝各种依赖文件进行环境搭建难度较大,本文介绍如何通过制作docker镜像的方式,通过llama.cpp实现量化大模型的快速内网部署体验。

一、llama_cpp介绍

LLaMA 全称是Large Language Model Meta AI,是由Meta AI(原FacebookAI研究实验室)研究人员发布的一个预训练语言模型。该模型最大的特点就是基于以较小的参数规模取得了优秀的性能,模型参数量从7B到65B, 与其他大型语言模型一样,LLaMA的工作原理是将一连串的单词作为输入,并预测下一个单词,以递归地生成文本。

LLaMA.cpp 项目是开发者 Georgi Gerganov 基于 Meta 的 LLaMA 模型实现的纯 C/C++ 版本,用于模型推理。 无需任何额外依赖,相比 Python 代码对 PyTorch 等库的要求,C/C++ 直接编译出可执行文件,跳过不同硬件的繁杂准备,可以在笔记本上运行,大大降低了门槛。

项目开源地址:GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

二、镜像制作过程

1、下载基础镜像

在dockerhub上下载对应的镜像版本,关注需要的cuda版本和操作系统版本。

docker pull nvidia/cuda:11.2.2-devel-ubuntu20.04

运行镜像

docker run -id --gpus all -v D:\download:/app/model -p 8080:8080 nvidia/cuda:11.2.2-devel-ubuntu20.04

进入容器:

docker exec -it xxxx /bin/bash

2、配置yum

apt-get -y install git wget

修改国内源

gedit /etc/apt/sources.list

bash 复制代码
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

apt-get update

3、安装python3.10

下载依赖

apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

下载python源码

wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz

tar -zvxf Python-3.10.0.tgz

cd Python-3.10.0/

配置

./configure --enable-optimizations

编译

make

安装

make install

更新python默认指向,删除旧的链接

remove /usr/bin/python

ln -s /usr/local/bin/python3.10 /usr/bin/python

ln -s /usr/local/bin/pip3 /usr/bin/pip

4、安装make等其他库

apt-get -y install build-essential libgl-dev libglib2.0-0 gcc g++ make cmake unzip curl

5、安装llama.app

mkdir /app

cd /app

git clone GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

cd llama.cpp && mkdir build && cd build && cmake .. -DLLAMA_CUBLAS=ON && cmake --build . --config Release

报错如下:

报错

CMake Error at CMakeLists.txt:252 (cmake_minimum_required):

CMake 3.17 or higher is required. You are running version 3.16.3

-- Configuring incomplete, errors occurred!

6.更新cmake版本(如果上一步没有报错,则跳过该步骤):

wget https://cmake.org/files/v3.23/cmake-3.23.0.tar.gz

tar -zxvf cmake-3.23.0.tar.gz

cd cmake-3.23.0

./configure

make -j8

make install

ln -s /usr/local/bin/cmake /usr/bin/cmake

重新编译安装

cmake .. -DLLAMA_CUBLAS=ON && cmake --build . --config Release

成功!

7.运行

./server --host 0.0.0.0 -m /app/model/xxxx.gguf -c 128 -ngl 10

相关推荐
万联WANFLOW11 小时前
Kimi K3.1 Pro 接口接入指南:模型选型、费用计算与零数据保留
java·spring boot·python·安全·spring·大模型
说实话起个名字真难啊11 小时前
实战docker部署dify及注意点
运维·docker·容器
小七-七牛开发者13 小时前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
ai·大模型·agent·ai coding·harnesspro
Starry-sky(jing)15 小时前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
还卿一钵无情泪15 小时前
PEFT-Transformers、Unsloth、LLaMA-Factory 微调框架 横向对比
深度学习·大模型·llama·ollama
loulanyue_15 小时前
10000P国产算力破壁上线,算电协同与超智融合打破算力孤岛:高文院士图灵奖得主纵论世界算力网新纪元——读2026世界算力网大会实录
人工智能·大模型·架构设计·高性能计算·算力网络
对象存储与RustFS16 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
可涵不会debug19 小时前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
夏文强1 天前
Rerank 与混合检索:怎么让 RAG 从「能用」变成「好用」
人工智能·大模型·向量数据库·rag·检索增强生成
姜鱼问生2 天前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器