在人工智能領(lǐng)域,大型語言模型(LLMs)的發(fā)展速度令人震驚。2024年4月18日,Meta正式開源了LLama系列的新一代大模型Llama3,在這一領(lǐng)域中樹立了新的里程碑。Llama3不僅繼承了先前模型的強(qiáng)大能力,還通過技術(shù)革新,在多模態(tài)理解、長文本處理及語言生成等多個方面實(shí)現(xiàn)了質(zhì)的飛躍。Llama3的開放性和靈活性也為開發(fā)者提供了前所未有的便利。無論是進(jìn)行模型微調(diào),還是集成到現(xiàn)有的系統(tǒng)中,Llama3都展現(xiàn)了極高的適應(yīng)性和易用性。
除此之外,提到Llama3模型的部署,除了將其部署在云端之外,模型的本地化部署可以讓開發(fā)者能夠在不依賴云計算資源的情況下,實(shí)現(xiàn)數(shù)據(jù)處理和大模型運(yùn)算的高效率和高隱私性。利用OpenVINO部署Llama3到本地計算資源,例如AI PC,不僅意味著更快的響應(yīng)速度和更低的運(yùn)行成本,還能有效地保護(hù)數(shù)據(jù)安全,防止敏感信息外泄。這對于需要處理高度敏感數(shù)據(jù)的應(yīng)用場景尤其重要,如醫(yī)療、金融和個人助理等領(lǐng)域。
本文將在簡要介紹Llama3模型的基礎(chǔ)上,重點(diǎn)介紹如何使用 OpenVINO 對Llama3模型進(jìn)行優(yōu)化和推理加速,并將其部署在本地的設(shè)備上,進(jìn)行更快、更智能推理的 AI 推理。
Llama3模型簡介
Llama3提供了多種參數(shù)量級的模型,如8B和70B參數(shù)模型。其核心特點(diǎn)和優(yōu)勢可總結(jié)如下:
1
先進(jìn)的能力與強(qiáng)大的性能
Llama3模型提供了在推理、語言生成和代碼執(zhí)行等方面的SOTA性能,為大型語言模型(LLMs)設(shè)定了新的行業(yè)標(biāo)準(zhǔn)。
2
增強(qiáng)的效率
采用僅解碼器的Transformer架構(gòu)與群組查詢注意力(GQA),優(yōu)化了語言編碼效率和計算資源使用,適用于大規(guī)模AI任務(wù)。
3
全面的訓(xùn)練與調(diào)優(yōu)
在超過15萬億的tokens上進(jìn)行預(yù)訓(xùn)練,并通過SFT和PPO等創(chuàng)新的指令微調(diào)技術(shù),Llama3在處理復(fù)雜的多語言任務(wù)和多樣化的AI應(yīng)用中表現(xiàn)卓越。
4
開源社區(qū)焦點(diǎn)
作為Meta開源倡議的一部分發(fā)布,Llama3鼓勵社區(qū)參與和創(chuàng)新,開發(fā)者可以輕松訪問其生態(tài)系統(tǒng)并貢獻(xiàn)其發(fā)展。
利用 OpenVINO優(yōu)化和加速推理
如前所述,部署Llama3模型到本地設(shè)備上,不僅意味著更快的響應(yīng)速度和更低的運(yùn)行成本,還能有效地保護(hù)數(shù)據(jù)安全,防止敏感信息外泄。因此,本文將重點(diǎn)介紹如何利用OpenVINO將Llama3模型進(jìn)行優(yōu)化后部署到本地的設(shè)備上。這個過程包括以下具體步驟,使用的是我們常用的 OpenVINO Notebooks GitHub倉庫[1]中的llm-chatbot 代碼示例。詳細(xì)信息和完整的源代碼可以在這里[2]找到。
[1]OpenVINO Notebooks GitHub倉庫
https://github.com/openvinotoolkit/openvino_notebooks/tree/latest
[2] 詳細(xì)信息與完整源代碼
https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/llm-chatbot
1
由安裝必要的依賴包開始
運(yùn)行 OpenVINO Notebooks 倉庫的具體安裝指南[3]在這里。運(yùn)行這個llm-chatbot 的代碼示例,需要安裝以下必要的依賴包。
[3] 具體的安裝指南
https://github.com/openvinotoolkit/openvino_notebooks?tab=readme-ov-file#-installation-guide
2
選擇推理的模型
由于我們在 Jupyter Notebook 演示中提供了一組由 OpenVINO 支持的 多語種的大預(yù)言模型,您可以從下拉框中首先選擇語言。針對Llama3,我們選擇英語。
接下來選擇 “l(fā)lama-3-8b-instruct” 來運(yùn)行該模型的其余優(yōu)化和推理加速步驟。當(dāng)然,很容易切換到其他列出的任意模型。
3
使用 Optimum-CLI進(jìn)行模型轉(zhuǎn)換
Optimum Intel 是 Hugging Face Transformers 和 Diffuser 庫與 OpenVINO 之間的接口,用于加速 Intel 體系結(jié)構(gòu)上的端到端流水線。它提供了易于使用的cli接口,即命令行接口,用于將模型導(dǎo)出為OpenVINO中間表示(IR)格式。使用下面的一行命令,就可以完成模型的導(dǎo)出。
optimum-cli export openvino --model--task
其中,--model參數(shù)是來自HuggingFace Hub的模型ID或帶有模型ID的已經(jīng)將模型下載到本地目錄的路徑地址(使用.save_pretrained方法保存),--task是導(dǎo)出模型應(yīng)解決的支持任務(wù)之一。對于LLM,它將是text-generation-with-past。如果模型初始化需要使用遠(yuǎn)程代碼,則應(yīng)額外傳遞--trust-remote-code遠(yuǎn)程代碼標(biāo)志。
4
模型權(quán)重壓縮
盡管像 Llama-3-8B-Instruct 這樣的 LLM 在理解和生成類人文本方面變得越來越強(qiáng)大和復(fù)雜,但管理和部署這些模型在計算資源、內(nèi)存占用、推理速度等方面帶來了關(guān)鍵挑戰(zhàn),尤其是對于AI PC這種客戶端設(shè)備。權(quán)重壓縮算法旨在壓縮模型的權(quán)重,并可用于優(yōu)化大型模型的模型占用空間和性能,其中權(quán)重的大小相對大于激活的大小,例如大型語言模型(LLM)。與INT8壓縮相比,INT4壓縮可以進(jìn)一步壓縮模型大小,并提升文本生成性能,但預(yù)測質(zhì)量略有下降。因此,在這里我們選擇模型權(quán)重壓縮為INT4精度。
5
使用 Optimum-CLI進(jìn)行權(quán)重壓縮
當(dāng)使用Optimum-CLI導(dǎo)出模型時,您還可以選擇在線性、卷積和嵌入層上應(yīng)用FP16、INT8位或INT4位權(quán)重壓縮。使用方法非常的簡便,就是將--weight格式分別設(shè)置為fp16、int8或int4。這種類型的優(yōu)化允許減少內(nèi)存占用和推理延遲。默認(rèn)情況下,int8/int4的量化方案將是不對稱的量化壓縮。如果您需要使用對稱壓縮,可以添加--sym。
對Llama-3-8B-Instruct模型進(jìn)行INT4量化,我們指定以下參數(shù):
compression_configs = { "llama-3-8b-instruct": { "sym": True, "group_size": 128, "ratio": 0.8, }, }
--group size參數(shù)將定義用于量化的組大小,為128。
--ratio參數(shù)控制4位和8位量化之間的比率。這意味著80%的層將被量化為int4,而20%的層將量化為int8。
運(yùn)行Optimum-CLI進(jìn)行模型的下載及權(quán)重壓縮的命令如下:
optimum-cli export openvino --model "llama-3-8b-instruct" --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 –sym
運(yùn)行上述命令后,模型將從Hugging Face Hub自動下載Llama-3-8B-Instruct模型,并進(jìn)行相應(yīng)的模型壓縮操作。
對于模型下載有困難的開發(fā)者,也可以從ModelScope開源社區(qū)的以下鏈接:
Meta-Llama-3-8B-Instruct:
https://modelscope.cn/models/LLM-Research/Meta-Llama-3-8B-Instruct
Meta-Llama-3-70B-Instruct:
https://modelscope.cn/models/LLM-Research/Meta-Llama-3-70B-Instruct
通過Git的方式進(jìn)行下載:
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git
經(jīng)過權(quán)重壓縮后,我們可以看到,8B模型的體積大小已經(jīng)被壓縮為僅有5GB左右。
6
選擇推理設(shè)備和模型變體
由于 OpenVINO 能夠在一系列硬件設(shè)備上輕松部署,因此還提供了一個下拉框供您選擇將在其上運(yùn)行推理的設(shè)備。考慮到要對模型尺寸和性能需求,在這里我們選擇搭載了英特爾酷睿 Ultra7 155H處理器的 AI PC上的GPU 作為推理設(shè)備。
7
使用 Optimum Intel 實(shí)例化模型
Optimum Intel可用于從將下載到本地并完成了權(quán)重壓縮后的模型進(jìn)行加載,并創(chuàng)建推理流水線,通過Hugging FaceAPI使用OpenVINO Runtime運(yùn)行推理。在這種情況下,這意味著我們只需要將 AutoModelForXxx 類替換為相應(yīng)的 OVModelForXxx 類。
8
運(yùn)行聊天機(jī)器人
現(xiàn)在萬事具備,在這個 Notebook 代碼示例中我們還提供了一個基于 Gradio 的用戶友好的界面。現(xiàn)在就讓我們把聊天機(jī)器人運(yùn)行起來吧。
小結(jié)
整個的步驟就是這樣!現(xiàn)在就開始跟著我們提供的代碼和步驟,動手試試用 OpenVINO 在本地設(shè)備上運(yùn)行基于Llama3大語言模型的聊天機(jī)器人吧。
審核編輯:劉清
-
人工智能
+關(guān)注
關(guān)注
1791文章
47274瀏覽量
238468 -
聊天機(jī)器人
+關(guān)注
關(guān)注
0文章
339瀏覽量
12312 -
大模型
+關(guān)注
關(guān)注
2文章
2448瀏覽量
2702 -
OpenVINO
+關(guān)注
關(guān)注
0文章
93瀏覽量
201
原文標(biāo)題:使用OpenVINO?在你的本地設(shè)備上離線運(yùn)行Llama3之快手指南 | 開發(fā)者實(shí)戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論