在 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-logo

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 mthreadsRuntimes: mthreads mthreads-experimental runcDefault 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 上实际录制的效果。icon-default.png?t=O83Ahttps://asciinema.org/a/680490

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446786.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『网络游戏』客户端发送消息到服务器【17】

将上一章服务器的协议PEProtocol的.dll文件重新生成导入unity客户端中 命名为Net 点击生成 另一种导入.dll文件方式 在客户端粘贴即可 此时Net文件夹的.dll文件就导入进来了 创建脚本:NetSvc.cs 编写脚本:NetSvc.cs 修改脚本:GameRoot.cs 在…

Cherno游戏引擎笔记(61~72)

---------------一些维护和更改------------- 》》》》 Made Win-GenProjects.bat work from every directory 代码更改: echo off->pushd ..\->pushd %~dp0\..\call vendor\bin\premake\premake5.exe vs2019popdPAUSE 为什么要做这样的更改? …

基于微信小程序的购物系统php+论文源码调试讲解

2相关技术 2.1微信小程序 小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。尤其拥抱微信生态圈,让微信小程序更加的如虎添翼,发展迅猛。 2.2 MySQL数据…

【论文阅读】SRCNN

学习资料 论文题目:Learning a Deep Convolutional Network for Image Super-Resolution(学习深度卷积网络用于图像超分辨率)论文地址:link.springer.com/content/pdf/10.1007/978-3-319-10593-2_13.pdf代码:作者提出的…

CVE-2022-26965靶机渗透

​ 开启环境 ​ ​ 进入环境 ​ ​ 使用弱口令admin登录 ​ ​ 利用cms主题构造木马 ​ 需要将主题中的info.php文件修改,再打包成zip再上传,通过网络搜索找到Github中的Pluck CMS,进入后随便下载任一主题 https://github.com/sear…

ThinkBook 16+ 锐龙6800h 安装ubuntu键盘失灵

问题:在ThinkBook 16 锐龙6800h 安装ubuntu18.04 出现笔记本键盘按下延迟非常高,输出卡死的情况,但是外接键盘可以正常使用 解决:更新内核 1、进入 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 下载所需内核版本&#x…

深入理解链表(SList)操作

目录: 一、 链表介绍1.1、 为什么引入链表1.2、 链表的概念及结构1.3、 链表的分类 二、 无头单向非[循环链表](https://so.csdn.net/so/search?q循环链表&spm1001.2101.3001.7020)的实现2.1、 [单链表](https://so.csdn.net/so/search?q单链表&spm1001.2…

论文阅读:OpenSTL: A Comprehensive Benchmark of Spatio-Temporal Predictive Learning

论文地址:arxiv 摘要 由于时空预测没有标准化的比较,所以为了解决这个问题,作者提出了 OpenSTL,这是一个全面的时空预测学习基准。它将流行的方法分为基于循环和非循环模型两类。OpenSTL提供了一个模块化且可扩展的框架&#xff…

澳鹏干货 | 大语言模型的上下文窗口 (Context Windows)

大语言模型(LLMs)极大地提升了人工智能在理解和生成文本方面的能力。其中一个影响其效用的重要方面是“上下文窗口”(Context Windows)—— 这个概念直接影响着模型接收和生成语言的有效性。 本期澳鹏干货将深入探讨上下文窗口对…

如何让员工参与到精益变革的持续改进中?

实践证明,精益变革并非一蹴而就,它需要全员参与、持续改进,才能真正将精益理念融入企业的血脉之中。那么,如何让员工积极参与到精益变革的持续改进过程中呢?深圳天行健TPM管理咨询公司解析如下: 一、构建精…

电力电子技术(一)

变压器漏感对整流电路的影响:

CSS弹性布局

Flex 是 Flexible Box 的缩写,意为“弹性布局”或者“弹性盒子”,是 CSS3 中的一种新的布局模式,可以简便、完整、响应式地实现各种页面布局,当页面需要适应不同的屏幕大小以及设备类型时非常适用。目前,几乎所有的浏览…

IntelliJ IDEA中配置scala

1.IDEA中 配置 maven 左上角 file -> Setting 选择(或直接搜maven) Build, Execution,Deployment -> Build Toos -> Maven Maven home path 选择 maven 安装目录(bin的上层目录) 示例: D:\maven\apache-maven-3.8.6 User settings…

python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS)

python异常检测 - Stochastic Outlier Selection (SOS) 前言 随机离群选择SOS算法全称stochastic outlier selection algorithm. 该算法的作者是jeroen janssens. SOS算法是一种无监督的异常检测算法. 随机离群选择SOS算法原理 随机离群选择SOS算法的输入: 特征矩阵(featu…

git的学习使用(搭建本地仓库,创建本地仓库,配置本地仓库)(附带Ubuntu云服务器git安装流程)

学习目标: 学习使用git,并且熟悉git的使用 学习内容: 必备环境:xshell,Ubuntu云服务器 如下: 搭建 git 环境 搭建git环境: 1、先检查自己的云服务上是否有已经安装好的git,这里…

AGI|如何构建一个RAG应用?入门新手攻略!

目录 一、概述 二、过程概述 三、如何优化提问? 四、路由和高级查询 五、丰富索引结构 六、重排序上下文 七、总结 一、概述 Retrieval Augmented Generation RAG 检索增强的内容生成。 从字面上来看检索只是一种手段途径,在人工智能领域中存在多种…

什么是CGI?

什么是CGI? ‌CGI,全称为“通用网关接口”(Common Gateway Interface),是一种用于Web服务器与应用程序之间通信的标准接口。它可以让Web服务器调用应用程序来执行特定任务,并将结果返回给Web浏览器。 CGI描…

车载电源OBC+DC/DC

文章目录 1. 车载DC/DC应用场景2. PFC2.1 简介2.2 专业名词2.3 常见拓扑结构2.3.1 传统桥式PFC2.3.2 普通无桥型PFC2.3.3 双Boost无桥PFC2.3.4 图腾柱PFC2.3.5 参考资料 2.4 功率因数2.4.1 简介2.4.2 计算 3. DC/DC3.1 Boost升压电路3.1.1 简介3.1.2 电路框图3.1.3 工作原理3.1…

解锁编程的力量:SPL的学习之旅

SPL 一、前言二、集算器应用场景三、下载四、集算器的基本使用 一、前言 一种面向结构化数据的程序计算语言 集算器又称:SPL(Structured Process Language) 敏捷计算是集算器的主要特征 二、集算器应用场景 数据准备(跑批&…

通过观测云 DataKit Extension 接入 AWS Lambda 最佳实践

前言 AWS Lambda 是一项计算服务,使用时无需预配置或管理服务器即可运行代码。AWS Lambda 只在需要时执行代码并自动缩放。借助 AWS Lambda,几乎可以为任何类型的应用程序或后端服务运行代码,而且无需执行任何管理。 Lambda Layer 是一个包…