自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用多Lora節(jié)省大模型部署成本

人工智能
近期,我們?cè)诖竽P图旱牟渴疬^(guò)程中遇到了一些挑戰(zhàn)。公司有多個(gè)業(yè)務(wù)場(chǎng)景,每個(gè)場(chǎng)景都基于自身的數(shù)據(jù)進(jìn)行微調(diào),訓(xùn)練出相應(yīng)的大模型并上線。然而,這些場(chǎng)景的調(diào)用量并不高,同時(shí)大模型的部署成本較為昂貴,這造成了資源的浪費(fèi)。

如何把多個(gè)大模型合并部署以節(jié)省成本呢?本文將深入探討這一技術(shù)與應(yīng)用場(chǎng)景,利用多Lora合并部署大模型。

一、背景

近期,我們?cè)诖竽P图旱牟渴疬^(guò)程中遇到了一些挑戰(zhàn)。公司有多個(gè)業(yè)務(wù)場(chǎng)景,每個(gè)場(chǎng)景都基于自身的數(shù)據(jù)進(jìn)行微調(diào),訓(xùn)練出相應(yīng)的大模型并上線。然而,這些場(chǎng)景的調(diào)用量并不高,同時(shí)大模型的部署成本較為昂貴,這造成了資源的浪費(fèi)。

本文將介紹我們?nèi)绾卫枚郘ora技術(shù),將多個(gè)場(chǎng)景合并部署,從而有效解決這一問(wèn)題。同時(shí),我們也將探討大模型訓(xùn)練與推理過(guò)程中Lora技術(shù)的應(yīng)用。

二、Lora是什么

Lora的概念

如果你去網(wǎng)上搜索"Lora"這個(gè)關(guān)鍵字,你一定會(huì)搜到下面這篇論文。

圖片圖片

這就是Lora這個(gè)詞出處。這一概念是由著名人工智能研究員Edward J. Hu于2021年提出的。Lora完整名稱是低秩自適應(yīng)(Low-Rank Adaptation)。雖然這個(gè)名稱比較復(fù)雜,但其核心概念卻相對(duì)容易理解。

以GPT3為例,該模型擁有1750億個(gè)參數(shù)。為了使大模型適應(yīng)特定的業(yè)務(wù)場(chǎng)景,我們通常需要對(duì)其進(jìn)行微調(diào)。如果對(duì)大模型進(jìn)行全參數(shù)微調(diào),因其參數(shù)數(shù)量龐大,成本將非常高。Lora技術(shù)的解決方案是,僅對(duì)不到2%的參數(shù)進(jìn)行微調(diào),其他參數(shù)則保持不變。相較于全參微調(diào)GPT-3(175B),Lora最多能夠?qū)⒂?xùn)練參數(shù)的數(shù)量減少約10,000倍,GPU內(nèi)存需求也減少三倍。

那么,Lora是如何凍結(jié)參數(shù)的呢?接下來(lái),我們將展示Lora的經(jīng)典原理圖。

圖片圖片

上圖中,W 表示大模型的一個(gè)原始參數(shù)矩陣。Lora的思路是將矩陣 W 拆分為兩個(gè)低秩矩陣 A 和 B。在訓(xùn)練過(guò)程中,僅對(duì) A 和 B 的參數(shù)進(jìn)行訓(xùn)練,這與訓(xùn)練整個(gè) W 的參數(shù)相比,能顯著減少所需的訓(xùn)練參數(shù)數(shù)量,從而降低訓(xùn)練成本。

如何開(kāi)啟大模型的Lora微調(diào)

圖片圖片

雖然論文中Lora的原理較為復(fù)雜,但實(shí)際上開(kāi)啟大模型的Lora微調(diào)過(guò)程相對(duì)簡(jiǎn)單。許多算法框架都支持快速上手微調(diào)。以LLaMA-Factory這個(gè)微調(diào)大模型的框架為例,啟用Lora微調(diào)只需配置以下參數(shù):

圖片圖片

接下來(lái),執(zhí)行訓(xùn)練命令即可啟動(dòng)Lora微調(diào):

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

通過(guò)這個(gè)命令,LLaMA-Factory框架將讀取配置文件,并開(kāi)始進(jìn)行Lora微調(diào)。整個(gè)過(guò)程相對(duì)簡(jiǎn)便,使得用戶能夠快速適應(yīng)并利用Lora技術(shù)進(jìn)行大模型微調(diào)。

Lora微調(diào)完成后,將生成一個(gè)只包含部分參數(shù)(即Lora參數(shù))的文件,稱為L(zhǎng)ora Adapter。與整個(gè)大模型的所有參數(shù)相比,這個(gè)參數(shù)文件非常小。

三、如何基于Lora部署大模型

Lora參數(shù)合并

經(jīng)過(guò)微調(diào)后,會(huì)生成一個(gè)Lora文件,里面僅包含部分參數(shù)。如何利用這個(gè)Lora文件來(lái)部署大模型呢?

圖片圖片

我們之前提到,Lora參數(shù)實(shí)際上是將大模型的其余參數(shù)凍結(jié)后剩下的部分。Lora參數(shù)本身也是大模型參數(shù)的一部分,通常占比小于整體的2%。將微調(diào)后的Lora參數(shù)與大模型的原始參數(shù)合并后,就可以生成一個(gè)新的微調(diào)大模型,之后只需直接部署這個(gè)新模型即可。

合并的操作步驟也比較簡(jiǎn)單,以LLaMA-Factory這個(gè)大模型微調(diào)訓(xùn)練框架為例。

首先,完成如下配置:

圖片圖片

接下來(lái),執(zhí)行命令

llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml

即可將參數(shù)合并成一個(gè)新的大模型。

如何部署合并后的大模型

合并后的大模型只有一些參數(shù)文件,若要進(jìn)行部署,還需選擇合適的推理引擎。目前推薦使用 VLLM 這個(gè)開(kāi)源推理引擎,它得到了眾多大廠模型的廣泛支持。無(wú)論從性能還是易用性來(lái)看,VLLM 都非常出色。

圖片圖片

VLLM最初由加州大學(xué)伯克利分校的一支三人博士團(tuán)隊(duì)發(fā)起,創(chuàng)始人開(kāi)創(chuàng)性地提出了PageAttention這一概念。這一創(chuàng)新顯著提高了大模型的吞吐量,提升幅度達(dá)到幾十倍。PageAttention目前已成為各大推理引擎的必備技能。

圖片圖片

如果想用VLLM來(lái)部署一個(gè)大模型,其步驟非常簡(jiǎn)單。首先,執(zhí)行下面的命令安裝VLLM:

pip install vllm

然后執(zhí)行下面命令,即可啟動(dòng)服務(wù)。

vllm serve {模型文件地址}

這樣的部署流程有什么問(wèn)題?

首先,讓我們回顧一下之前的訓(xùn)練和部署流程。

圖片圖片

對(duì)于每個(gè)業(yè)務(wù)場(chǎng)景,我們首先通過(guò)微調(diào)訓(xùn)練生成一個(gè)Lora參數(shù)文件,然后將Lora參數(shù)文件與基礎(chǔ)大模型合并,最后進(jìn)行大模型的部署。這是一個(gè)經(jīng)典的流程。

然而,如果業(yè)務(wù)場(chǎng)景眾多且每個(gè)場(chǎng)景的流量較小,就需要部署多套大模型。以常見(jiàn)的7B大模型為例,至少需要一塊22G顯存的顯卡才能運(yùn)行,而14B模型需要兩塊22G顯存的顯卡,70B的大模型則需要更高的成本。這種情況可能導(dǎo)致GPU資源的浪費(fèi)。

圖片圖片

四、多Lora部署大模型又是什么

多Lora的技術(shù)原理是什么

在上述部署流程中,微調(diào)大模型后會(huì)生成一個(gè)Lora文件,該文件需要與基礎(chǔ)大模型合并成一個(gè)新的大模型。然而,實(shí)際上,我們可以選擇不合并Lora文件,而是直接在顯存中加載原有的大模型參數(shù)和Lora參數(shù),然后進(jìn)行推理。這種方法同樣是可行的。

圖片圖片

參考上面的Lora原理圖,W表示大模型的一個(gè)原始參數(shù)矩陣。Lora的思路是將矩陣W拆分為兩個(gè)低秩矩陣A和B,并對(duì)這兩個(gè)矩陣進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后,我們可以選擇將A和B矩陣與W矩陣合并,也可以不合并,而是分別使用W和A/B進(jìn)行計(jì)算,然后再將計(jì)算結(jié)果進(jìn)行合并,最終效果是一樣的。

因此,我們的部署流程可以進(jìn)行如下調(diào)整:業(yè)務(wù)方在進(jìn)行Lora微調(diào)后生成一個(gè)Lora文件。接下來(lái),我們?cè)陲@存中加載基礎(chǔ)大模型,同時(shí)也加載業(yè)務(wù)方的Lora文件,直接進(jìn)行推理。如果有多個(gè)業(yè)務(wù)方參與,每個(gè)業(yè)務(wù)方都會(huì)產(chǎn)生一個(gè)Lora文件,于是這一部署流程可以推廣至如下圖所示。

圖片圖片

每個(gè)業(yè)務(wù)場(chǎng)景都基于自己的業(yè)務(wù)數(shù)據(jù)訓(xùn)練一個(gè)Lora文件。在部署時(shí),我們只需選擇一個(gè)基礎(chǔ)大模型,并在顯存中同時(shí)加載多個(gè)Lora文件。這樣,便可以使用一塊顯卡同時(shí)滿足多個(gè)業(yè)務(wù)場(chǎng)景的需求。當(dāng)用戶發(fā)出請(qǐng)求時(shí),要在請(qǐng)求中指定需要調(diào)用的Lora模型是哪個(gè)。

多Lora適應(yīng)于什么場(chǎng)景

圖片圖片

多Lora適用于以下場(chǎng)景:

  • 業(yè)務(wù)場(chǎng)景多樣化:當(dāng)你的業(yè)務(wù)場(chǎng)景較多,并且每個(gè)場(chǎng)景都需要根據(jù)其特定數(shù)據(jù)進(jìn)行微調(diào)生成一份自己的大模型。
  • 調(diào)用量較?。喝绻總€(gè)業(yè)務(wù)場(chǎng)景的調(diào)用量相對(duì)較少,那么單獨(dú)為每個(gè)場(chǎng)景部署一份大模型的成本將顯得很高。

采用多Lora的方式來(lái)部署大模型可以有效解決這些問(wèn)題。通過(guò)只加載一份基礎(chǔ)大模型,同時(shí)在顯存中加載多個(gè)較小的Lora文件,我們能夠顯著減少因重復(fù)部署帶來(lái)的成本。這樣,便可以為多個(gè)業(yè)務(wù)場(chǎng)景提供支持,同時(shí)保持資源的高效利用。

哪些推理框架支持多Lora

目前,支持多Lora的推理框架中,VLLM是一個(gè)推薦的選擇。我們對(duì)VLLM的多Lora性能進(jìn)行了壓測(cè),結(jié)果顯示它在性能和易用性方面表現(xiàn)都非常不錯(cuò)。

如果你想使用VLLM來(lái)部署多Lora,只需執(zhí)行以下命令即可:

vllm serve {你的模型地址} --enable-lora --lora-modules {lora1的地址} {lora2的地址}

這樣,你就可以輕松地在VLLM中啟用多Lora的功能。

多Lora的性能怎么樣,有哪些限制

為了驗(yàn)證多Lora的性能,我們特意用Llama3-8b模型,L20GPU顯卡進(jìn)行了壓測(cè)對(duì)比,數(shù)據(jù)如下:

圖片圖片

可見(jiàn),多Lora對(duì)推理的吞吐與速度的影響幾乎可以忽略。

那么,多Lora在使用時(shí)有哪些限制呢?

圖片圖片

  • 共享基礎(chǔ)大模型:所有希望一起部署的多個(gè)業(yè)務(wù)場(chǎng)景必須使用相同的基礎(chǔ)大模型。這是因?yàn)樵诙郘ora部署時(shí),基礎(chǔ)大模型只需加載一份,以支持多個(gè)Lora的推理。
  • Lora秩的限制:如果使用VLLM進(jìn)行多Lora部署,微調(diào)訓(xùn)練時(shí),Lora的秩R的值不要超過(guò)64。大多數(shù)情況下,這個(gè)條件都是可以滿足的,但在特定場(chǎng)景中需要注意這一點(diǎn)。

因此,在進(jìn)行多Lora部署之前,需確保滿足上述要求,以保證系統(tǒng)的正常運(yùn)行。

五、總結(jié)

本文從如何節(jié)省多業(yè)務(wù)場(chǎng)景部署大模型的成本入手,逐步介紹了Lora的概念、如何對(duì)大模型進(jìn)行Lora微調(diào),以及微調(diào)后如何合并Lora參數(shù)以部署大模型。接著,我們提出了一個(gè)問(wèn)題:在多個(gè)業(yè)務(wù)場(chǎng)景的部署中,如何降低大模型的部署成本。為此,我們介紹了利用多Lora的方式,以合并多個(gè)業(yè)務(wù)場(chǎng)景的部署。

文章最后,我們分享了對(duì)多Lora部署模式的壓測(cè)效果,結(jié)果顯示,多Lora與合并后部署的方式相比,性能幾乎可以忽略不計(jì)。我們還推薦了支持多Lora的推理引擎,幫助讀者更好地應(yīng)用這一技術(shù)。

當(dāng)然,在使用多Lora時(shí)也需注意一些限制條件,比如多個(gè)場(chǎng)景必須使用相同的基礎(chǔ)大模型。如果你有類似的場(chǎng)景或?qū)Υ竽P图夹g(shù)感興趣,歡迎與我們交流學(xué)習(xí),共同進(jìn)步。

責(zé)任編輯:武曉燕 來(lái)源: 得物技術(shù)
相關(guān)推薦

2023-09-22 10:54:28

播放器點(diǎn)播成本

2023-06-01 08:18:47

GPT大語(yǔ)言模型

2023-11-23 18:19:15

騰訊騰訊混元Angel

2017-04-02 14:36:22

2024-12-26 00:46:25

機(jī)器學(xué)習(xí)LoRA訓(xùn)練

2024-09-02 08:25:11

2024-05-23 14:04:14

2012-10-18 11:11:58

桌面虛擬化

2021-09-29 08:00:00

Kubernetes集群容器

2013-09-16 09:16:42

云成本云成本節(jié)省云應(yīng)用

2024-12-02 11:45:48

2011-05-07 17:03:15

打印機(jī)

2016-07-20 12:29:35

云計(jì)算

2023-08-29 10:07:15

人工智能AI

2025-01-08 08:21:16

2012-12-28 10:02:42

2017-02-20 11:26:58

VDI閃存存儲(chǔ)

2009-09-18 08:37:48

Windows 7企業(yè)部署節(jié)約成本

2020-07-08 10:11:45

云計(jì)算云服務(wù)私有云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)