|

輕鬆利用OpenVINO結合LangChain與Llama2打造智慧小助手

   
作者:劉宜松、莊建

LLM大模型存在很多痛點,包括但不限於資料陳舊、無法和外部元件互動等,本文旨在使用 OpenVINO 2023.1新版本的特性加速Llama2模型,為Llama2客製化Prompt,並用LangChain 實現可連網取得最新消息的輔助搜尋功能。

本文將端對端教大家以OpenVINO結合LangChain與Llama2實現具備網際網路自動查詢的AI小助手,程式碼下載網址:https://github.com/lewis430/langchain_openvino_llama2

OpenVINO 2023.1新特性

OpenVINO 2023.1推出的新功能可簡化AI的部署和加速,此新版本為開發人員提供更多整合,最大限度減少程式碼更改。

OpenVINO提供了模型轉換工具OVC,該工具正在取代我們眾所周知的離線模型轉換任務中的模型優化器(MO)工具。該工具以OpenVINO套件形式提供,依靠內部模型前端來讀取框架格式,不需要原始框架來執行模型轉換。

將原來的 AutoModelForCausalLM 替換為 OVModelForCausalLM 即可實現模型轉換:

-from transformers import AutoModelForCausalLM

+from optimum.intel.openvino import OVModelForCausalLM

from transformers import AutoTokenizer, pipeline

model_id = "FlagAlpha/Llama2-Chinese-7b-Chat"

-model = AutoModelForCausalLM.from_pretrained(model_id)

+model = OVModelForCausalLM.from_pretrained(model_id, export=True)

模型選擇

因為我們是以中文為對象,而Llama2本身的中文對應能力較弱,我們需要採用中文指令集,對meta-llama/Llama-2-7b-chat-hf進行LoRA微調,使其具備較強的中文對話能力。同時也因為Llama2模型的取得需要向meta提供個人資訊,所以選擇更易取得的Llama2-Chinese-7b-Chat模型;該模型的Hugging Face連結為:https://huggingface.co/FlagAlpha/Llama2-Chinese-7b-Chat

模型轉換為 ONNX 格式

OpenVINO可用於從Hugging Face Hub載入最佳化模型,並創建管道以使用Hugging Face API透過OpenVINO Runtime執行推論。這意味著我們只需要將AutoModelForXxx類替換為相應的OVModelForXxx類,就能實現模型格式的轉換。

model_dir = "llama-2-chat-7b/ov_model"

ov_model = OVModelForCausalLM.from_pretrained('llama-2-chat-7b', export=True, compile=False)

ov_model.half()

ov_model.save_pretrained(model_dir)

將模型部署至CPU

指定其部署推論的設備為 CPU,讓模型在英特爾(Intel)的CPU上進行推論。

ov_model=OVModelForCausalLM.from_pretrained(model_dir,device='cpu',ov_config=ov_config,config=AutoConfig.from_pretrained(model_dir,trust_remote_code=True),trust_remote_code=True)

LangChain

LangChain是一個開源的框架,可以讓AI開發人員把像是GPT-4這樣的大型語言模型和外部資料結合起來,它提供了Python或JavaScript套件,是基於大語言模型這種預測能力的應用開發工具。無論你是想要做一個聊天機器人、個人助理、問答系統,或者自助代理等等,都可以幫助我們快速地實現想法。筆者可以拍胸脯說,LangChain作為新一代AI開發框架,必將受到程式設計師的歡迎,點燃AI應用開發的新熱潮。

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

OpenVINO作者群

Author: OpenVINO作者群

對於利用OpenVINO實現創新Edge AI應用充滿熱情的一群開發者,他/她們來自四面八方,時常透過社群分享他們的實作心得與成果。

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *