在 MTT GPU 上使用 llama.cpp 推理

大语言模型因其出色的自然语言理解和生成能力而迅速被广泛使用,llama.cpp 大幅降低了进行大语言模型推理的门槛,MTT GPU 同样也是 llama.cpp 支持的运行平台,能够充分利用硬件的性能来助力用户的大语言模型应用。

本文主要介绍了如何在摩尔线程 MTT S80/S3000/S4000 GPU 上使用 llama.cpp 进行大语言模型 (LLM) 推理。文章详细描述了 llama.cpp 项目的背景、关键特点、支持的模型以及在 MUSA 架构上的优化。通过提供具体的操作步骤和 Docker 镜像,读者可以轻松在本地设备上运行 LLaMA 等大模型,实现高效的端侧推理。文章还包含了演示视频,展示了在 MTT S80 GPU 上运行 llama.cpp 的实际效果。

什么是 llama.cpp?

llama.cpp 是一个纯 C/C++ 实现的项目,旨在简化大语言模型 (LLM) 的推理过程,并在多种硬件环境下提供最先进的性能支持,无论是本地部署还是云端运行。其主要目标是以最小的设置和依赖,让用户在广泛的硬件平台上轻松进行 LLaMA 等大模型的推理。

关键特点

  • 使用 C/C++ 实现,无外部依赖的轻量级实现,提供了简洁高效的推理框架。
  • 支持不同厂商的不同架构的加速器并对不同的硬件平台进行了特定优化。
  • 多种位深的量化支持,能够显著提升推理速度并减少内存占用。

支持的模型

llama.cpp 支持多种语言模型,包括 LLaMA、Mistral、Falcon、Gemma、Qwen、Baichuan、Aquila 等主流模型,以及各种多模态模型如 LLaVA 和 MobileVLM,覆盖广泛的推理需求。

摩尔线程 MUSA 架构支持

摩尔线程 MUSA 架构是 MTT GPU 支持的通用计算架构,llama.cpp 适配了这种计算架构。在 MTT S80/S3000/S4000 GPU 上,用户可以通过 llama.cpp 官方提供的一系列容器镜像来使用。

  1. ghcr.io/ggerganov/llama.cpp:full-musa: 该镜像包含主执行文件以及将 LLaMA 模型转换为 ggml 格式并进行 4-bit 量化的工具。
  2. ghcr.io/ggerganov/llama.cpp:light-musa: 该镜像仅包含主执行文件。
  3. ghcr.io/ggerganov/llama.cpp:server-musa: 该镜像仅包含 server 执行文件。

运行 llama3.2:1B

llama3.2:1B 是一个指令微调生成模型,在较小参数量下提供了不错的模型性能,为了方便大家快速上手 MTT GPU 上 llama.cpp 的使用,我们选用这个模型进行演示。

准备工作

以下代码运行在 x86 架构的 Ubuntu 20.04/22.04 系统。

配置容器运行时

请参考以下链接安装和配置容器运行时。

  1. 安装 Docker: Docker 安装指南
  2. 安装 MTT S80/S3000/S4000 最新驱动 (当前为 rc3.1.0): MUSA SDK 下载
  3. 安装 MT Container Toolkit (当前为 v1.9.0): MT CloudNative Toolkits 下载

检查容器运行时配置是否正确,确认输出的默认运行时为 mthreads

复制代码
$ (cd /usr/bin/musa && sudo ./docker setup $PWD)
$ docker info | grep mthreads
 Runtimes: mthreads mthreads-experimental runc
 Default Runtime: mthreads
下载 llama3.2:1B 模型
复制代码
$ export MODEL_DIR=$HOME/models
$ export MODEL_URL='https://registry.ollama.ai/v2/library/llama3.2/blobs/sha256:74701a8c35f6c8d9a4b91f3f3497643001d63e0c7a84e085bed452548fa88d45'
$ mkdir -p $MODEL_DIR
$ wget -q --show-progress -O $MODEL_DIR/llama3.2_1b_q8_0.gguf $MODEL_URL
下载 llama.cpp 容器镜像
复制代码
$ docker pull ghcr.io/ggerganov/llama.cpp:light-musa

运行 llama3.2:1B

复制代码
$ docker run -it -v $HOME/models:/models ghcr.io/ggerganov/llama.cpp:light-musa \
    -m /models/llama3.2_1b_q8_0.gguf -ngl 999 -n 512 -co -cnv \
    -p "You are a helpful assistant."

该文档可以查看更详细的 llama.cpp 命令行工具的参数说明。

演示视频

对于如上步骤,点击查看在 MTT S80 上实际录制的效果。https://asciinema.org/a/680490

相关推荐
LgZhu(Yanker)2 小时前
27、企业维修保养(M&R)全流程管理:从预防性维护到智能运维的进阶之路
大数据·运维·人工智能·erp·设备·维修·保养
ModelWhale3 小时前
“大模型”技术专栏 | 和鲸 AI Infra 架构总监朱天琦:大模型微调与蒸馏技术的全景分析与实践指南(上)
人工智能·大模型·大语言模型
lxmyzzs4 小时前
【图像算法 - 08】基于 YOLO11 的抽烟检测系统(包含环境搭建 + 数据集处理 + 模型训练 + 效果对比 + 调参技巧)
人工智能·yolo·目标检测·计算机视觉
霖005 小时前
ZYNQ实现FFT信号处理项目
人工智能·经验分享·神经网络·机器学习·fpga开发·信号处理
GIS数据转换器5 小时前
AI 技术在智慧城市建设中的融合应用
大数据·人工智能·机器学习·计算机视觉·系统架构·智慧城市
竹子_235 小时前
《零基础入门AI:传统机器学习进阶(从拟合概念到K-Means算法)》
人工智能·算法·机器学习
上海云盾-高防顾问5 小时前
DDoS 防护的未来趋势:AI 如何重塑安全行业?
人工智能·安全·ddos
Godspeed Zhao5 小时前
自动驾驶中的传感器技术17——Camera(8)
人工智能·机器学习·自动驾驶·camera·cis
摆烂工程师6 小时前
GPT-5 即将凌晨1点进行发布,免费用户可以使用 GPT-5
前端·人工智能·程序员
今天也不想动6 小时前
文献解读-生境分析亚区域选择+2D_DL+3D_DL-局部晚期食管鳞状细胞癌新辅助化疗免疫治疗反应预测
人工智能·影像组学·生境分析