在 MTT GPU 上使用 llama.cpp 推理

news2024/10/21 22:55:03

大语言模型因其出色的自然语言理解和生成能力而迅速被广泛使用,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 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 上实际录制的效果。icon-default.png?t=O83Ahttps://asciinema.org/a/680490

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何设置JMeter界面的永久汉化?

1、找到jMeter安装目录下的bin目录 2、打开jmeter.properties文件,把第37行修改为"languagezh_CN",保存,关闭 3、重启JMeter即可

程序员必读:精通ER图设计,解锁数据库高效构建秘籍

在信息技术的浩瀚星空中,数据库如同星辰般璀璨,而ER图(Entity-Relationship Diagram,实体-关系图)则是那把引领我们穿越数据迷雾的钥匙。对于每一位程序员而言,掌握ER图设计不仅是数据库设计的基础&#xf…

墙裂建议收藏,100道Python练手题目

目录 实例001:数字组合 实例002:“个税计算” 实例003:完全平方数 实例004:这天第几天 实例005:三数排序 实例006:斐波那契数列 实例007:copy 实例008:九九乘法表 实例009&…

【读书笔记·VLSI电路设计方法解密】问题14:什么是基底层和金属层

正如在问题13中讨论的,基底层用于前端工艺来制造NMOS和PMOS晶体管,而金属层用于后端工艺连接这些晶体管。在tapeout之后,每一层都需要专用的光掩膜来定义其图案。 基底层主要包括以下内容: n-well:用于定义n-well区域,这是硅晶片中的一种植入或扩散区域。有源区(active…

在 Linux 上使用 GPG 加解密文件

GnuPG,俗称 GPG,是一个非常通用的工具,被广泛用作电子邮件、信息、文件或任何你需要安全地发送给别人的东西的加密行业标准。 学习使用 GPG 很容易,你可以在几分钟内就学会使用它。 在本教程中,我将告诉你如何用 GPG…

JAVA高级工程师与你一起学习RabbitMQ保姆级基础教程

JAVA高级工程师与你一起学习RabbitMQ基础保姆级教程 1.前言 笔者我正在结合自己的实际工作经验重新把Java大数据技术栈总结梳理整合一遍!重新学习! 与大家一起重新学习RabbitMQ消息队列技术!边学习边总结边分享边回顾!学无止境&…

jmeter中设置属性值的注意事项

jmeter中,可以在beanshell sampler, jsr223 sampler中对变量、属性等做一些操作,使得测试脚本变得更有关联性和一致性,以便完成更好的测试工作。 但是,在实际运用中,设置属性值经常会有些情况需要注意。不是我们以为的…

Bootstrap后台模板AdminLts部署

官网 https://github.com/ajiho/AdminLTS/tree/master 下载代码解压 安装依赖 pnpm install --registryhttp://registry.npm.taobao.org启动项目 pnpm run dev

社交电商的变革与创新:2+1 链动模式 S2B2C 商城小程序的崛起

摘要:本文探讨了社交电商领域中各大巨头的发展动态,分析了在市场竞争环境变化下巨头们面临的挑战以及调整策略。同时,引入关键词“21 链动模式 S2B2C 商城小程序源码”,阐述其在社交电商领域的创新应用和优势,为社交电…

软件工程:图书管理系统甘特图

1 实验目的 熟悉GanttProject 软件环境,能够使用GanttProject绘制甘特图,进行项目管理与规划。 2 实验内容 为小型图书管理系统项目的实施计划绘制甘特图。 小型图书管理系统项目包含登录、浏览、管理读者、管理图书资料、管理书目、登记借书、登记还书、预定图书、…

电脑上怎么录制高清流畅视频?录制游戏的时候很卡怎么办?

无论是教育工作者录制线上课程,还是游戏玩家记录精彩的游戏瞬间,都离不开一款优质的录屏软件。然而,如何选择合适的录屏软件以及解决在录制过程中遇到的问题,如游戏录制时的卡顿,一直困扰着众多用户。今天,…

关于CODESYS局域网可视化webvisu设置

对于一般的PLC设置: CODESYS可视化-网页可视化功能应用_哔哩哔哩_bilibili 对于ECU-1051:只支持HTTP

【树莓派5B】移植yolo5-lite

移植yolo5-lite 前言一、获取Lite文件二、创建环境2.1 创建虚拟环境2.2 激活虚拟环境2.2 配置环境 三、运行detect.py程序总结 前言 参考文献 获取文件看他研究僧树莓派5的学习记录13——yolov5-lite部署树莓派 树莓派5B快速YOLOV5环境搭建 一、获取Lite文件 根据up&#x1f…

前端接收后端传递的表格文件流,通过a标签下载excel文件

前言&#xff1a;从后端获取表格等文件流并在前端触发下载的功能是个常用功能&#xff0c;方法很多&#xff0c;这里我们采用Blob 对象和 <a> 标签来实现文件下载。 我这里实现的是列表数据可选并导出&#xff0c;选择需要导出的字段&#xff0c;发送给后端&#xff0c;…

12.1-基础柱状图构建

Python基础综合案例——数据可视化 动态柱状图 通过Bar构建基础柱状图 反转x和y轴 调用 bar.reversal_axis() 我们现在所看到的数值是从下到上的&#xff0c;当我们反转之后数据是从左向右的&#xff0c;我们现在把数据放到柱的右边。即数值标签在右侧 添加y轴数据的时候&am…

javaWeb项目-ssm+jsp企业人力资源管理系统功能介绍

本项目源码&#xff08;点击下方链接下载&#xff09;&#xff1a; java-ssmjsp中小企业人力资源管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端…

【拼多多】拼多多批发 | 拼多多手机端 | anti_content |

所有的anti_content都可以用官网的anti_content的生成

Pandas | 通过PUBG数据集进行数据分析并理解函数使用

PUBG数据分析 PUBG数据集train 数据分析iloc和loc 过滤参数人数少的比赛duplicated().count() 和 transform(count)countplot绘图函数 补充&#xff1a;查看判断pd的某一列是否没有重复值方法 1: 使用 duplicated() 方法方法 2: 使用 nunique() 方法方法 3: 使用 value_counts(…

一文搞懂进程、线程、协程以及并发、并行、串行的概念

什么是进程&#xff1f; 进程是资源调度的最小单位&#xff0c;操作系统通过进程来管理计算机的资源&#xff0c;如CPU、内存、磁盘等。通俗说法&#xff1a;可看做是正在执行的程序如QQ.exe 什么是线程&#xff1f; 线程是操作系统的最小执行单位&#xff0c;是进程中的一个…

mysql集群-主库从库配置--主从库分离

mysql集群 为什么要做主从库分离&#xff1f; 怎么进行分离&#xff1f; 设置2个数据库&#xff0c;为主库从库&#xff0c;主库存储&#xff0c;从库查询 怎么设置&#xff1f; 在你原本的配置yml文件中主库的ip是多少&#xff0c;从库是多少&#xff0c;都要和数据库的ip 一…