作者:劉力 英特爾邊緣計(jì)算創(chuàng)新大使
ChatGLM3-6B 簡(jiǎn)介
ChatGLM3 是智譜 AI 和清華大學(xué) KEG 實(shí)驗(yàn)室聯(lián)合發(fā)布的新一代對(duì)話預(yù)訓(xùn)練模型。ChatGLM3-6B 是 ChatGLM3 系列中的開(kāi)源模型,在填寫(xiě)問(wèn)卷進(jìn)行登記后亦允許免費(fèi)商業(yè)使用。
請(qǐng)使用命令,將 ChatGLM3-6B 模型下載到本地:
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
左滑查看更多
BigDL-LLM 簡(jiǎn)介
BigDL-LLM 是開(kāi)源,遵循 Apache 2.0 許可證,專門用于在英特爾的硬件平臺(tái)上加速大語(yǔ)言模型(Large Language Model, LLM)推理計(jì)算的軟件工具包。它是在原有的 BigDL 框架基礎(chǔ)上,為了應(yīng)對(duì)大語(yǔ)言模型在推理過(guò)程中對(duì)性能和資源的高要求而設(shè)計(jì)的。BigDL-LLM 旨在通過(guò)優(yōu)化和硬件加速技術(shù)來(lái)提高大語(yǔ)言模型的運(yùn)行效率,減少推理延遲,并降低資源消耗。
BigDL-LLM 的主要特點(diǎn)包括:
1低精度優(yōu)化:通過(guò)支持 INT4/INT5/INT8 等低精度格式,減少模型的大小和推理時(shí)的計(jì)算量,同時(shí)保持較高的推理精度。
2硬件加速:利用英特爾 CPU 集成的硬件加速技術(shù),如 AVX(Advanced Vector Extensions)、VNNI(Vector Neural Network Instructions)和 AMX(Advanced Matrix Extensions)等,來(lái)加速模型的推理計(jì)算。
3使用方便:對(duì)于基于 Hugging Face Transformers API 的模型,只需修改少量代碼即可實(shí)現(xiàn)加速,使得開(kāi)發(fā)者可以輕松地在其現(xiàn)有模型上應(yīng)用 BigDL-LLM。
4性能提升:BigDL-LLM 可以顯著提高大語(yǔ)言模型在英特爾平臺(tái)上的運(yùn)行速度,減少推理時(shí)間,特別是在處理大規(guī)模模型和復(fù)雜任務(wù)時(shí)。
5資源友好:通過(guò)優(yōu)化模型運(yùn)行時(shí)的資源使用,BigDL-LLM 使得大語(yǔ)言模型可以在資源受限的環(huán)境中也能高效運(yùn)行,如普通的筆記本電腦或服務(wù)器。
使用 BigDL-LLM
量化并部署 ChatGLM3-6B
第一步,創(chuàng)建虛擬環(huán)境
請(qǐng)安裝 Anaconda,然后用下面的命令創(chuàng)建名為 llm 的虛擬環(huán)境:
conda create -n llm python=3.9 conda activate llm
左滑查看更多
第二步,安裝 BigDL-LLM
執(zhí)行命令:
pip install --pre --upgrade bigdl-llm[all] -i https://mirrors.aliyun.com/pypi/simple/
左滑查看更多
第三步:運(yùn)行范例程序
范例程序下載地址:
https://gitee.com/Pauntech/chat-glm3/blob/master/chatglm3_infer.py
import time from bigdl.llm.transformers import AutoModel from transformers import AutoTokenizer CHATGLM_V3_PROMPT_FORMAT = "<|user|> {prompt} <|assistant|>" # 請(qǐng)指定chatglm3-6b的本地路徑 model_path = "d:/chatglm3-6b" # 載入ChatGLM3-6B模型并實(shí)現(xiàn)INT4量化 model = AutoModel.from_pretrained(model_path, load_in_4bit=True, trust_remote_code=True) # 載入tokenizer tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) # 制作ChatGLM3格式提示詞 prompt = CHATGLM_V3_PROMPT_FORMAT.format(prompt="What is Intel?") # 對(duì)提示詞編碼 input_ids = tokenizer.encode(prompt, return_tensors="pt") st = time.time() # 執(zhí)行推理計(jì)算,生成Tokens output = model.generate(input_ids,max_new_tokens=32) end = time.time() # 對(duì)生成Tokens解碼并顯示 output_str = tokenizer.decode(output[0], skip_special_tokens=True) print(f'Inference time: {end-st} s') print('-'*20, 'Prompt', '-'*20) print(prompt) print('-'*20, 'Output', '-'*20) print(output_str)
左滑查看更多
運(yùn)行結(jié)果,如下所示:
ChatGLM3-6B WebUI demo
請(qǐng)先安裝依賴軟件包:
pip install gradio mdtex2html streamlit -i https://mirrors.aliyun.com/pypi/simple/
左滑查看更多
下載范例程序:
https://gitee.com/Pauntech/chat-glm3/blob/master/chatglm3_web_demo.py
然后運(yùn)行:
streamlit run chatglm3_web_demo.py
左滑查看更多
運(yùn)行結(jié)果如下:
總結(jié)
BigDL-LLM 工具包簡(jiǎn)單易用,僅需三步即可完成虛擬環(huán)境創(chuàng)建、BigDLL-LLM 安裝以及 ChatGLM3-6B 模型的 INT4 量化以及在英特爾 CPU 上的部署。
作者簡(jiǎn)介
劉力,深圳市鉑盛科技有限公司的創(chuàng)始人。帶領(lǐng)團(tuán)隊(duì)成功設(shè)計(jì)了多種計(jì)算機(jī)系統(tǒng),并申請(qǐng)了多項(xiàng)專利和軟件著作,鉑盛科技為國(guó)家高新技術(shù)企業(yè),深圳市專精特新企業(yè)。鉑盛通過(guò)整合算力和算法,打造軟硬件一體化的AIPC解決方案,目前產(chǎn)品已在工業(yè)控制、智能機(jī)器人、教育、醫(yī)療、金融等多個(gè)邊緣計(jì)算領(lǐng)域得到廣泛應(yīng)用。
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
60文章
9880瀏覽量
171485 -
cpu
+關(guān)注
關(guān)注
68文章
10824瀏覽量
211137 -
AI
+關(guān)注
關(guān)注
87文章
30106瀏覽量
268399 -
開(kāi)源
+關(guān)注
關(guān)注
3文章
3245瀏覽量
42396
原文標(biāo)題:三步完成 ChatGLM3-6B 在 CPU 上的 INT4 量化和部署 | 開(kāi)發(fā)者實(shí)戰(zhàn)
文章出處:【微信號(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)論