RTX AI PC 和工作站上部署多样化 AI 应用支持 Multi-LoRA

今天的大型语言模型(LLMs)在许多用例中都取得了前所未有的成果。然而,由于基础模型的通用性,应用程序开发者通常需要定制和调整这些模型,以便专门针对其用例开展工作。

完全微调需要大量数据和计算基础设施,从而更新模型权重。此方法需要在GPU显存上托管和运行模型的多个实例,以便在单个设备上提供多个用例。

示例用例包括多语言翻译助手,用户需要同时获得多种语言的结果。这可能会给设备上的 AI 带来挑战,因为内存限制。

在设备显存上同时托管多个LLM几乎是不可能的,尤其是在考虑运行合适的延迟和吞吐量要求以与用户进行交互时另一方面,用户通常在任何给定时间运行多个应用和任务,在应用之间共享系统资源。

低秩适配(LoRA)等高效的参数微调技术可帮助开发者将自定义适配器连接到单个 LLM,以服务于多个用例。这需要尽可能减少额外的内存,同时仍可提供特定于任务的 AI 功能。该技术使开发者能够轻松扩展可在设备上服务的用例和应用程序的数量。

NVIDIA RTX AI 工具包的一部分 NVIDIA TensorRT-LLM 现已提供 Multi-LoRA 支持。这项新功能使 NVIDIA RTX AI PC 和工作站能够在推理期间处理各种用例。

LoRA 简介

LoRA 是一种热门的参数高效微调技术,可以调节少量参数。其他参数称为 LoRA 适配器,表示网络密集层中变化的低秩分解。

只有这些低级别的附加适配器是自定义的,而在此过程中,模型的剩余参数会被冻结。经过训练后,这些适配器将在推理期间通过合并到基础模型进行部署,从而在推理延迟和吞吐量方面尽可能减少,甚至不增加任何开销。

A diagram showing the LoRA fine-tuning technique.

图 1. A 和 B 中的参数表示可训练的参数,以展示 LoRA 技术(来源:LoRA:大型语言模型的低阶适应

图 1 展示了有关 LoRA 技术的更多详细信息。

  • 在自定义期间,预训练模型的权重 (W) 将被冻结。
  • 我们不会更新 W,而是注入两个较小的可训练矩阵(A 和 B)来学习特定于任务的信息。矩阵乘法 B*A 会形成一个与 W 具有相同维度的矩阵,因此可以将其添加到 W (= W + BA) 中。

A 和 B 矩阵的秩是 8、16 等较小的值。此秩 (r) 参数可在训练时自定义。更大的秩值使模型能够捕获与下游任务相关的更多细微差别,通过更新模型中的所有参数来接近完全监督式微调的能力。

缺点是,在内存和计算要求方面,更大的秩用于训练和推理的成本也更高。在实践中,使用小至 8 的秩值进行 LoRA 微调已经非常有效,并且是许多下游任务的良好起点。

如今,RTX AI 工具包支持量化和低排名自适应 (QLoRA) (LoRA 技术的变体),以在 RTX 系统上执行参数高效的微调。这项技术经过调整可减少内存占用。

在反向传播过程中,梯度通过冻结的 4 位量化预训练模型传递到低秩适配器。QLoRA 算法可有效节省内存,同时不会牺牲模型性能。有关 QLoRA 的更多信息,请参阅以下论文。

TensorRT-LLM 中的 Multi-LORA 支持

借助 TensorRT-LLM 中的最新更新,RTX AI 工具包现在能够在本地支持在推理时通过单个量化碱基检查点为多个 LoRA 适配器提供服务。这项新技术能够通过 INT4 量化碱基模型检查点为多个 FP16 LoRA 适配器提供服务。

混合精度部署在 Windows PC 环境中非常有用,因为它们的内存有限,必须在应用之间共享。混合精度部署可以减少模型存储和推理所需的内存,而不会影响模型质量或使用自定义模型为多个客户端提供服务的能力。

开发者可以通过多种方法在其应用中部署多个 LoRA 网卡,其中包括以下内容。

单 LoRA 网卡部署

在这个设置中,开发者选择针对每个请求激活哪个 LoRA 适配器,以便更好地提供专门内容。例如,语言学习应用程序可以在针对不同语言进行微调的适配器之间进行切换,从而根据用户当前的需求提供集中练习。

适用于单个请求的并发 LoRA 适配器(批量模式)

在此方法中,单个输入提示会生成多个不同的响应,每个响应均由不同的 LoRA 适配器在批量模式下生成。这对于多语种虚拟助理等复杂应用程序非常有用,其中一个查询可以同时生成英语、西班牙语和日语的响应,每个响应都由特定的适配器定制。

用于多个请求的并发 LoRA 适配器(批量模式)

此方法同时处理多个输入提示。每个提示都与不同的 LoRA 适配器配对,并生成多个输出提示。例如,多个 PC 应用程序向同一模型发送推理请求,并根据请求选择不同的适配器,以确保每个应用程序都收到特定于其需求的定制响应。

详细了解 TensorRT-LLM 对多个 LoRA 适配器检查点的支持。

在 RTX PC 上展示 Multi-LoRA 的强大功能

为了展示多 LoRA 支持的强大功能,我们开发了一个示例应用程序,该应用程序专为故事创建和插图而设计,只需一个提示即可完成,该过程分为两个关键步骤展开。

  1. 用户输入一个故事的基本思路,然后Llama 3模型完善了这个概念,扩展了最初的想法,提供了详细的基础。
  2. 该应用程序使用相同的 Llama 3 模型(现已通过两个不同的 LoRA 适配器进行增强),以进一步优化故事并生成相应的图像。一个 LoRA 适配器生成 Stable Diffusion 提示,用于通过本地部署的 Stable Diffusion XL 模型以直观方式说明故事。另一个经过微调,可用于编写故事,并制作结构化良好且引人入胜的叙事。

此方法可确保流程所需的空间不会显著增加,因为两个通道都使用相同的模型。第二个通道涉及文本和图像生成,使用批量推理执行,从而使流程快速高效。用户可以快速迭代不同版本的故事,轻松优化叙事和插图。

通过在此简化的两步流程中使用 multi-LoRA 支持,我们展示了如何通过单个提示最大限度地提高创意和计算效率。以下是一组输入-输出对示例。

User Prompt:Generated Story:
*The Whispering Woods*In the heart of the Whispering Woods, a legend whispered among the ancient trees spoke of a green giant, said to possess the secrets of the forest. The giant, named Eira, was rumored to be able to communicate with the trees themselves, and its presence was said to bring balance and harmony to the forest. One day, a young adventurer named Lyra stumbled upon the clearing where Eira was said to reside. As she approached the giant, she felt an eerie silence fall over the clearing, as if the trees themselves were holding their breath in anticipation. Eira's massive form loomed before her, its skin a deep, mossy green that seemed to blend seamlessly into the surrounding foliage. The giant's eyes, like ancient pools of wisdom, gazed down at Lyra with a gentle intensity.As she drew closer, Lyra noticed that the trees around her were indeed communicating with Eira, their leaves rustling softly to convey ancient secrets and whispers of the forest. The air was thick with the scent of damp earth and decaying leaves, and Lyra felt the weight of the forest's history bearing down upon her.Eira's voice, like a gentle breeze, whispered secrets to the trees, and they responded with soft murmurs and creaks. Lyra felt a sense of wonder wash over her as she realized that the giant was indeed the keeper of the forest's secrets. She reached out a trembling hand, and to her surprise, Eira's massive fingers wrapped around hers, like a gentle giant's grasp.In that moment, Lyra felt the forest's balance and harmony flow through her, and she knew that she had stumbled upon something much greater than a mere legend. As she stood there, surrounded by the ancient trees and the whispers of the forest, Lyra felt a sense of belonging wash over her, as if she had finally found her true home.

Stable Diffusion-generated image of a green giant in the forest based on LoRA output for the given prompt.

图 2. 提示中生成的角色 Eira 图像。

This diagram shows the flow from a user prompt to LoRA outputs using Llama3-8B as base model.

图 3. 使用 Llama3-8B 和 LoRA 的稳定扩散图像。

使用 TensorRT-LLM 在 Windows PC 上加速多 LoRA 用例

下图显示了 NVIDIA 内部测量结果,其中展示了使用 Llama-3-8B 模型的 NVIDIA GeForce RTX 4090 的吞吐量性能,以及使用 TensorRT-LLM 的基础模型和不同批量大小的多个 LoRA 适配器。

结果显示,在输入序列长度为 43、输出序列长度为 100 个令牌时的吞吐量。当批量大小大于 1 时,每个样本都使用唯一的 LoRA 适配器,最大引擎排名为 64。

吞吐量越高,我们发现当运行多个 LoRA 网卡时,性能会降低 3%。

Performance of Llama-3-8B when multiple LoRA adapters are used, varying by batch size.

图 4. NVIDIA 内部吞吐量性能测量结果在 RTX 4090 PC 上

图 5 显示了在 RTX 4090 PC 上使用 Llama-3-8B 模型以及使用 TensorRT-LLM 0.11 的预训练基础模型和不同批量大小的多个 LoRA 适配器测量的 NVIDIA 延迟性能。

结果展示了输入序列长度为 43、输出序列长度为 100 个令牌时的延迟。在批量大小大于 1 时,每个样本使用唯一的 LoRA 适配器,最大引擎 rank 为 64。更低的延迟更好,我们看到运行多个 LoRA 适配器时性能降低了约 3%。

Latency performance shown for Llama-3-8B model when multiple LoRA adapters are used with varying batch sizes.

图 5. NVIDIA 延迟性能测量结果在 RTX 4090 PC 上

图 4 和图 5 显示,在推理时使用多个 LoRA 适配器时,TensorRT-LLM 0.11 可提供出色的性能,同时尽可能减少不同批量大小的吞吐量和延迟降低。与运行基础模型相比,在使用多个独特的 LoRA 适配器和 TensorRT-LLM 0.11 时,我们发现不同批量大小的吞吐量和延迟性能平均降低了 3%。

后续步骤

借助最新更新,开发者可以在设备上使用 LoRA 技术自定义模型,并在 NVIDIA RTX AI PC 和工作站上使用多 LoRA 支持部署模型,以服务于多个用例。

开始在 TensorRT-LLM 上用 multi-LoRA。

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

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

相关文章

os模块函数

1、常用命令 os.getcwd() 返回当前工作目录 os.listdir() 返回指定文件路径下的文件夹列表或者文件列表 os.mkdir 创建文件夹,不能创建递归文件夹,也就是上一层文件夹必须存在,不存在时会报错,同时在指定目录下有相同的文件夹名称,再创建会报错 os.makedirs 可以创建…

Hash Table、HashMap、HashSet学习

文章目录 前言Hash Table(散列表)基本概念散列函数散列冲突(哈希碰撞)拉链法红黑树时间复杂度分析 HashMap基础方法使用基本的增删改查其他的方法 实现原理 HashSet基础操作去重原理 前言 本文用于介绍关于Hash Table、HashMap、…

图像去噪技术:传统中值滤波与改进中值滤波算法的比较

在数字图像处理中,去噪是一个至关重要的步骤,尤其是在图像受到椒盐噪声影响时。本文将介绍一种改进的中值滤波算法,并与传统的中值滤波算法进行比较,以展示其在去除椒盐噪声方面的有效性。 实验环境 软件:MATLAB图像…

基于Java+SpringBoot+Vue+MySQL的西安旅游管理系统网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的西安旅游管理系统网站【附源码文档】、…

鸿蒙开发(API 12 Beta6版)【NFC标签读写】 网络篇

简介 近场通信(Near Field Communication,NFC)是一种短距高频的无线电技术,在13.56MHz频率运行,通信距离一般在10厘米距离内。电子设备可以通过NFC通信技术和NFC标签通信,从标签中读取数据,或写入数据到标签。 NFC标…

FreeRTOS学习笔记(四)Freertos的中断管理及临界保护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Cortex-M 中断管理1.1 中断优先级分组1.2 相关寄存器1.3 相关宏定义1.4 FreeRTOS 开关中断 二、临界段及其保护2.1 taskENTER_CRITICAL( ) 和 taskEXIT_CRI…

虚幻引擎VR游戏开发02 | 性能优化设置

常识:VR需要保持至少90 FPS的刷新率,以避免用户体验到延迟或晕眩感。以下是优化性能的一系列设置(make sure the frame rate does not drop below a certain threshold) In project setting-> (以下十个设置都在pr…

强烈推荐!分享5款ai论文生成软件

在当今学术研究和写作领域,AI论文生成工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是五款值得推荐的AI论文生成软件,特别是千笔-AIPassPaper。 ### 千笔-…

C++ —— 关于string类

目录 1. auto和范围for 1.1 auto关键字 1.2 范围for 2. string的三种遍历方式 3. string类的常用接口说明 3.1 成员函数 3.2 Iterators:(迭代器) 3.2.1正向迭代器和反向迭代器 3.3 Capacity(容量) 3.4 Modifiers&#x…

智算时空 重塑视界│智汇云舟2024视频孪生产品发布会圆满举行,多个“全球首款”重磅亮相

​秋风送爽,丹桂飘香。9月6日,由北京智汇云舟科技有限公司主办(简称:智汇云舟),北京北科软科技有限公司(简称:北科软)、北京恒升联合科技有限公司(简称&#…

Leetcode 236-二叉树的最近公共祖先

同剑指offer 68-II 二叉树的最近公共祖先/lcr 194 题目描述 题目转载自LeetCode 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x&#xff0…

【Rust】Mdbook插件开发和分享——多图浏览和多语言代码

mdbook-image-slider 受DevExpress文档多图浏览的启发,我开发这个插件,在查看多个图片和图片的描述的时候非常方便 项目地址:https://github.com/VinciYan/mdbook-image-slider.git 特点 鼠标置于图片查看区域时显示切换图片按钮鼠标点击图…

VS Code 文件定位功能

1、取消“当前打开文件”的自动定位功能。 设置 ->搜索 Explorer: Auto Reveal -> 将配置改为 false 2.在vs2017中定位文件 Tools->Option->Projects And Solutions->General, tick “track Active Item in Solution Explorer” 工具-> 选项->项目和…

iOS——GCD再学习

GCD 使用GCD好处,具体如下: GCD 可用于多核的并行运算;GCD 会自动利用更多的 CPU 内核(比如双核、四核);GCD 会自动管理线程的生命周期(创建线程、调度任务、销毁线程)&#xff1b…

华为手机找不到wifi调试?不急,没有wifi调试一样可以进行局域网模式调试

最近小黄在使用uniapp启动无线调试的时候突然发现华为的手机突然找不到wifi调试了,那么我们怎么进行无线调试呢? 其实他只是找不到开关而已,正常使用就行。 1.使用数据线连接手机。 打开cmd命令行执行:adb tcpip 5555 2.再执行ad…

物联网之Arduino开发环境的下载与安装、ESP32开发环境的下载与安装、常见环境配置问题的解决办法、COM端口不可用的解决方法

MENU 前言下载和安装Arduino安装ESP32开发环境常见问题JSON下载失败和下载速度慢配置解释器没有发现端口检测到端口,但是有警告图标,端口无法使用 前言 想玩开发板必须得写代码,要不然Arduino不知道怎么运行,Arduino的开发语言是C…

❤《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案

《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案 文章目录 《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案1、问题一:原生开发中 request请求中返回 的数据无法 使用this传递给 data{}中怎么办?2、刚登录后如何将token信息保存&#xf…

用于客户支持的 GenAI:探索 Elastic Support Assistant

作者:Chris Blaisure, Cory Mangini 我们很高兴地宣布推出 Elastic 的支持助手。本博客将带你了解我们最新的生成式 AI 工具以及它可以帮助你使用 Elastic 技术的一些常见场景。 Elastic 支持助手现已在 Support Hub 上可用 今天,我们宣布 Elastic 支持…

每日一题,力扣leetcode Hot100之206反转链表

原来的链表是1-2-3-4-5-null 反转后是5-4-3-2-1-null 只需要循环遍历,并且借一个temp便可以完成反转 class Solution:def reverseList(self, head: ListNode) -> ListNode:cur, pre head, Nonewhile cur:tmp cur.next # 暂存后继节点 cur.nextcur.next pre…

【软件测试】盒木进销存管理系统 需求说明书

目录 1 引言 2 项目概述 3 平台、角色和权限 3.1 Web端 4 Web端需求 4.1 登录/注册页面 4.1.1 业务描述 4.1.2 需求描述 4.1.3 行为人 4.1.4 UI页面 4.1.5 业务规则 4.2 首页 4.2.1 业务描述 4.2.2 需求描述 4.2.3 行为人 4.2.4 UI界面 4.2.5 业务规则 4.3报…