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