作者:虞曉瓊 博士
東莞職業(yè)技術(shù)學(xué)院
本文從搭建環(huán)境開始,一步一步幫助讀者實(shí)現(xiàn)只用五行代碼便可將Llama3.1模型部署在英特爾酷睿Ultra 處理器上。請(qǐng)把文中范例代碼下載到本地:
git clone https://gitee.com/Pauntech/llama3.1-model.git
1.1Meta Llama3.1簡介
7月24日,Meta宣布推出迄今為止最強(qiáng)大的開源模型——Llama 3.1 405B,同時(shí)發(fā)布了全新升級(jí)的Llama 3.1 70B和8B模型。
Llama 3.1 405B支持上下文長度為128K Tokens,在基于15萬億個(gè)Tokens、超1.6萬個(gè)H100 GPU上進(jìn)行訓(xùn)練,研究人員基于超150個(gè)基準(zhǔn)測(cè)試集的評(píng)測(cè)結(jié)果顯示,Llama 3.1 405B可與GPT-4o、Claude 3.5 Sonnet和Gemini Ultra等業(yè)界頭部模型媲美。
引用自:https://ai.meta.com/research/publications/the-llama-3-herd-of-models
魔搭社區(qū)已提供Llama3.1模型的預(yù)訓(xùn)練權(quán)重下載,實(shí)測(cè)下載速度平均35MB/s。
請(qǐng)讀者用下面的命令把Meta-Llama-3.1-8B-Instruct模型的預(yù)訓(xùn)練權(quán)重下載到本地待用。
git clone --depth=1 https://www.modelscope.cn/LLM-Research/Meta-Llama-3.1-8B-Instruct.git
1.2英特爾酷睿Ultra處理器簡介
英特爾酷睿Ultra處理器內(nèi)置CPU+GPU+NPU 的三大 AI 引擎,賦能AI大模型在不聯(lián)網(wǎng)的終端設(shè)備上進(jìn)行推理計(jì)算。
1.3Llama3.1模型的INT4量化和本地部署
把Meta-Llama-3.1-8B-Instruct模型的預(yù)訓(xùn)練權(quán)重下載到本地后,接下來本文將依次介紹使用optimum-cli工具將Llama3.1模型進(jìn)行INT4量化,并調(diào)用optimum-intel完成Llama3.1模型在英特爾酷睿 Ultra 處理器上的部署。
Optimum Intel作為Transformers和Diffusers庫與Intel提供的各種優(yōu)化工具之間的接口層,它給開發(fā)者提供了一種簡便的使用方式,讓這兩個(gè)庫能夠利用Intel針對(duì)硬件優(yōu)化的技術(shù),例如:OpenVINO、IPEX等,加速基于Transformer或Diffusion構(gòu)架的AI大模型在英特爾硬件上的推理計(jì)算性能。
Optimum Intel代碼倉鏈接:https://github.com/huggingface/optimum-intel
1.3.1搭建開發(fā)環(huán)境
請(qǐng)下載并安裝Anaconda,然后用下面的命令創(chuàng)建并激活名為llama31的虛擬環(huán)境,然后安裝Optimum Intel和其依賴項(xiàng)openvino與nncf。
conda create -n llama31 python=3.11 #創(chuàng)建虛擬環(huán)境 conda activate llama31 #激活虛擬環(huán)境 python -m pip install --upgrade pip #升級(jí)pip到最新版本 pip install optimum-intel[openvino,nncf] #安裝Optimum Intel和其依賴項(xiàng)openvino與nncf pip install -U transformers #升級(jí)transformers庫到最新版本
1.3.2用optimum-cli
對(duì)Llama3.1模型進(jìn)行INT4量化
optimum-cli是Optimum Intel自帶的跨平臺(tái)命令行工具,可以不用編寫量化代碼,用命令實(shí)現(xiàn)對(duì)Llama3.1模型的量化并轉(zhuǎn)化為OpenVINO格式模型:
optimum-cli export openvino --model D:Meta-Llama-3.1-8B-Instruct --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 --sym llama31_int4
optimum-cli命令的參數(shù)意義如下:
--model指定了被量化的模型路徑;
--task指定了任務(wù)類型;
--weight-format指定了模型參數(shù)精度;
--group-size定義了量化過程中的組大??;
--ratio決定了量化過程中保留的權(quán)重比例;
--sym表示量化采用的對(duì)稱性模式。
1.3.3編寫推理程序llama31_ov_infer.py
基于Optimum Intel工具包的API函數(shù)編寫Llama3的推理程序,非常簡單,只需五行代碼:
1. 調(diào)用OVModelForCausalLM.from_pretrained()載入使用optimum-cli優(yōu)化過的模型
2. 調(diào)用AutoTokenizer.from_pretrained()載入模型的分詞器
3. 創(chuàng)建一個(gè)用于文本生成的pipeline(流水線)
4. 使用pipeline進(jìn)行推理計(jì)算
5. 輸出生成的文本結(jié)果
Llama3.1模型的推理計(jì)算程序如下所示:
# 導(dǎo)入所需的庫和模塊 from transformers import AutoConfig, AutoTokenizer, pipeline from optimum.intel.openvino import OVModelForCausalLM # 設(shè)置OpenVINO編譯模型的配置參數(shù),這里優(yōu)先考慮低延遲 config = { "PERFORMANCE_HINT": "LATENCY", # 性能提示選擇延遲優(yōu)先 "CACHE_DIR": "" # 模型緩存目錄為空,使用默認(rèn)位置 } # 指定llama3.1 INT4模型的本地路徑 model_dir = r"D:llama31_int4" # 設(shè)定推理設(shè)備為GPU,可根據(jù)實(shí)際情況改為"CPU"或"AUTO" DEVICE = "GPU" # 輸入的問題示例,可以更改 question = "In a tree, there are 7 birds. If 1 bird is shot, how many birds are left?" # 載入使用optimum-cli優(yōu)化過的模型,配置包括設(shè)備、性能提示及模型配置 ov_model = OVModelForCausalLM.from_pretrained( model_dir, device=DEVICE, ov_config=config, config=AutoConfig.from_pretrained(model_dir, trust_remote_code=True), # 加載模型配置,并信任遠(yuǎn)程代碼 trust_remote_code=True, ) # 根據(jù)模型目錄加載tokenizer,并信任遠(yuǎn)程代碼 tok = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True) # 創(chuàng)建一個(gè)用于文本生成的pipeline,指定模型、分詞器以及最多生成的新token數(shù) pipe = pipeline("text-generation", model=ov_model, tokenizer=tok, max_new_tokens=100) # 使用pipeline對(duì)問題進(jìn)行推理 results = pipe(question) # 打印生成的文本結(jié)果 print(results[0]['generated_text'])
運(yùn)行l(wèi)lama31_ov_infer.py,結(jié)果如下所示:
1.4構(gòu)建基于Llama3.1模型的聊天機(jī)器人
請(qǐng)先安裝依賴軟件包:
pip install gradio mdtex2html streamlit -i https://mirrors.aliyun.com/pypi/simple/
然后運(yùn)行:python llama31_chatbot.py,結(jié)果如下所示:
1.5總結(jié)
基于OpenVINO的Optimum Intel工具包簡單易用,僅需一個(gè)命令即可實(shí)現(xiàn)LLama3.1模型INT4量化,五行代碼即可完成推理程序開發(fā)并本地化運(yùn)行在英特爾酷睿 Ultra 處理器上。
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228810 -
英特爾
+關(guān)注
關(guān)注
60文章
9861瀏覽量
171285 -
模型
+關(guān)注
關(guān)注
1文章
3112瀏覽量
48658 -
Meta
+關(guān)注
關(guān)注
0文章
258瀏覽量
11330
原文標(biāo)題:五行代碼實(shí)現(xiàn)Llama3.1在英特爾? 酷睿? Ultra處理器上的部署
文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論