在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用OpenVINO GenAI API的輕量級(jí)生成式AI

英特爾中國(guó) ? 來源:英特爾中國(guó) ? 2024-07-24 15:08 ? 次閱讀

隨著 ChatGPT 等聊天機(jī)器人的風(fēng)暴席卷全球,生成式預(yù)訓(xùn)練 Transformers (GPT) 在開發(fā)者中正在成為家喻戶曉的新名字。生成式 AI(GenAI) 的發(fā)展,尤其是大語(yǔ)言模型和聊天機(jī)器人的進(jìn)步很快、變化不斷,很難預(yù)測(cè)接下來會(huì)有什么突破,開發(fā)者應(yīng)該關(guān)注什么。我們知道生成式AI將繼續(xù)存在,開發(fā)人員希望看到在本地開發(fā)、維護(hù)和部署 AI 應(yīng)用程序的更簡(jiǎn)潔明了的方法。

盡管生成式AI 令人興奮,但對(duì)這些模型運(yùn)行推理仍面臨重大挑戰(zhàn),尤其是在邊緣設(shè)備和 AI PC 上。

OpenVINO

英特爾硬件上當(dāng)前最先進(jìn)的生成式AI

如今,為了在 Intel 硬件上獲得 生成式AI 的最佳性能,開發(fā)人員可以使用 Optimum Intel 和 OpenVINO 后端優(yōu)化的 Hugging Face 流水線來運(yùn)行 生成式AI 模型。OpenVINO 可以在 CPUGPU或NPU 上啟用優(yōu)化,這些可以顯著減少延遲并提高運(yùn)行效率。此外,我們可以利用量化和權(quán)重壓縮等模型優(yōu)化技術(shù)來最小化內(nèi)存占用(減少 2-3 倍的內(nèi)存使用量)。這通常是模型部署中的主要瓶頸,因?yàn)榭蛻舳嘶蜻吘壴O(shè)備僅配備 32GB 或更少的 內(nèi)存。

圖 1:借助新的 OpenVINO 生成式AI API (GenAI API),我們可以在代碼編寫方面做得更好!如上圖所示,推理代碼僅減少到3行代碼!這種新的工作流程為開發(fā)者提供了一個(gè)低得多的的學(xué)習(xí)曲線,從而開始生成式AI 應(yīng)用程序的開發(fā)之旅。

不僅代碼行數(shù)大大減少了,而且安裝的依賴項(xiàng)只有寥寥幾個(gè),從而形成了一個(gè)簡(jiǎn)潔緊湊的環(huán)境,運(yùn)行生成式AI 推理僅需216Mb!

圖 2:使用 OpenVINO GenAI API 部署解決方案不僅可以減少磁盤使用量,還可以簡(jiǎn)化構(gòu)建生成式 AI 應(yīng)用的依賴性要求。這通常是開發(fā)人員開始維護(hù) 生成式AI 應(yīng)用程序時(shí)面臨的最大挑戰(zhàn)之一。

OpenVINO生成式AI API Optimum-Intel
附加的依賴項(xiàng) 非常輕 許多依賴項(xiàng),包括 PyTorch 等
推理代碼 非常輕的編碼 基于Hugging Face
API Python, C++ Python
模型支持 大語(yǔ)言模型(其它生成式模型即將推出) 廣泛的模型集
采樣方法 貪心、波束搜索以及多項(xiàng)式解碼 全部
并行生成優(yōu)化 是的* (比如 Continues-batching, Paged-attention…) 不支持
分詞 通過 OpenVINO tokenizer模型完成 通過 Hugging Face tokenizer 完成(僅針對(duì)Python)
*特性持續(xù)開發(fā)中

表 1:OpenVINO GenAI API 與 Optimum-Intel 軟件包的比較

與 Optimum-Intel 相比,GenAI API 僅集成了最常用的采樣方法,包括貪心和波束搜索。同時(shí),開發(fā)者還可以通過多項(xiàng)式解碼 來自定義采樣參數(shù),例如 Top-k、Temperature等。

考慮到多用戶的場(chǎng)景,GenAI API 僅原生實(shí)現(xiàn)了 Continues-batching、Paged-attention。在文本生成過程中,這些技術(shù)可以幫助提高性能并優(yōu)化在進(jìn)行多批次推理時(shí)的內(nèi)存消耗。

由于 Hugging Face 的分詞器只能與 Python 配合使用,為了與 OpenVINO C++ 運(yùn)行時(shí)的輸入/輸出張量格式保持一致,GenAI API 將分別通過推理 2 個(gè) OpenVINO 模型來對(duì)輸入文本分詞并對(duì)輸出解分詞。在這種方法之前,開發(fā)人員可以使用 Optimum-Intel CLI 將 Hugging Face 的分詞器轉(zhuǎn)換為 OpenVINO IR 模型。

到目前為止,我們已經(jīng)強(qiáng)調(diào)了使用新的 OpenVINO GenAI API 的一些關(guān)鍵優(yōu)勢(shì)。在下一節(jié)中,我們將更深入地了解如何逐步運(yùn)行演示。

OpenVINO

使用 OpenVINO GenAI API 的輕量級(jí)生成式AI

安裝

設(shè)置新的 OpenVINO GenAI API 以在生成式 AI 和 LLM 上運(yùn)行推理,設(shè)計(jì)簡(jiǎn)單明了。安裝過程可以通過 PyPI 或下載存檔來執(zhí)行,讓您可以靈活地選擇最適合您需求的方法。例如,您可以使用以下內(nèi)容進(jìn)行 PyPI 安裝,該安裝包含在我們最新的 OpenVINO 2024.2 版本中:

python-mpipinstallopenvino-genai

關(guān)于安裝的更多信息可以在 https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-genai.html 找到。

運(yùn)行推理

安裝 OpenVINO 后,您可以開始在 GenAI 和 LLM 模型上運(yùn)行推理。通過利用此 API,您可以加載模型,向其傳遞上下文,并僅使用幾行代碼接收響應(yīng)。

在內(nèi)部,OpenVINO 處理輸入文本的標(biāo)記化,在您選擇的設(shè)備上執(zhí)行生成循環(huán),并提供最終響應(yīng)。讓我們根據(jù) openvino.genai(https://github.com/openvinotoolkit/openvino.genai/tree/master/samples/cpp/chat_sample) 存儲(chǔ)庫(kù)中提供的chat_sample(https://github.com/openvinotoolkit/openvino.genai/tree/master/samples/cpp/chat_sample)范例,在 Python 和 C++ 中逐步探索這個(gè)過程。

第一步: 必須使用 Hugging Face Optimum-Intel(在本例中,我們使用聊天調(diào)優(yōu)的 Tiny Llama)下載 LLM 模型并將其導(dǎo)出為 OpenVINO IR 格式。對(duì)于此步驟,建議創(chuàng)建一個(gè)單獨(dú)的虛擬環(huán)境,以避免任何依賴項(xiàng)沖突。例如

python-mvenvopenvino_venv

激活它,

openvino_venvScriptactivate

并安裝依賴項(xiàng),這是模型導(dǎo)出過程所必需的。這些要求可在 openvino.genai 倉(cāng)庫(kù)中找到

python-mpipinstall–upgrade-strategyeager-rrequirements.txt

要下載和導(dǎo)出模型,請(qǐng)使用以下命令。

optimum-cliexportopenvino--trust-remote-code--
modelTinyLlama/TinyLlama-1.1B-Chat-v1.0TinyLlama-1.1B-Chat-v1.0

為了提高 LLM 推理期間的性能,我們建議對(duì)模型權(quán)重使用較低的精度,例如 INT4。在模型導(dǎo)出過程中,您可以使用神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 壓縮權(quán)重,如下所示。

optimum-cliexportopenvino--trust-remote-code--
modelTinyLlama/TinyLlama-1.1B-Chat-v1.0-–weight-formatint4TinyLlama-
1.1B-Chat-v1.0

此步驟中安裝的虛擬環(huán)境和依賴項(xiàng)不再需要,因?yàn)槟P椭恍鑼?dǎo)出一次。請(qǐng)隨意從磁盤中刪除此虛擬環(huán)境。

第二步:通過 Python 或 C++ API 運(yùn)行LLM文本生成的推理

通過新的 Python API 設(shè)置流水線:

pipe=ov_genai.LLMPipeline(model_path,"CPU")
print(pipe.generate("TheSunisyellowbecause"))

通過新的 C++ API 設(shè)置流水線:

intmain(intargc,char*argv[]){
std::stringmodel_path=argv[1];
ov::LLMPipelinepipe(model_path,"CPU");//targetdeviceisCPU
std::cout<

如上所示,構(gòu)建 LLM 生成流水線現(xiàn)在只需要幾行代碼。這種簡(jiǎn)單性是由于從 Hugging Face Optimum-Intel 導(dǎo)出的模型已經(jīng)包含執(zhí)行所需的所有信息,包括 tokenizer/detokenizer 和生成配置,確保結(jié)果與 Hugging Face 生成一致。我們提供 C++ 和 Python API 來運(yùn)行 LLM,對(duì)應(yīng)用程序的依賴性和添加性最少。

提供的代碼在 CPU 上運(yùn)行,但通過將設(shè)備名稱替換為“GPU”,可以很容易地使其在 GPU 上運(yùn)行:

pipe=ov_genai.LLMPipeline(model_path,"GPU")

為了創(chuàng)建更具交互性的用戶界面,我們添加了對(duì)流式模型輸出標(biāo)記的支持,以便在模型生成輸出詞后立即提供輸出詞,也可以通過從流處理器返回 True 來隨時(shí)停止令牌生成。

此外,有狀態(tài)模型(https://docs.openvino.ai/2024/openvino-workflow/running-inference/stateful-models.html)在內(nèi)部運(yùn)行,用于推理文本生成,從而加快生成速度并減少由于數(shù)據(jù)表示轉(zhuǎn)換而產(chǎn)生的開銷。因此,在輸入之間保持 KV緩存被證明可能是有益的。用針對(duì)聊天的特定方法 start_chat 和 finish_chat標(biāo)記對(duì)話會(huì)話來加以實(shí)現(xiàn),如以下示例所示。

Python:

importargparse
importopenvino_genai




defstreamer(subword):
print(subword,end='',flush=True)
#Returnflagcorrespodswhethergenerationshouldbestopped.
#Falsemeanscontinuegeneration.
returnFalse
model_path=TinyLlama-1.1B-Chat-v1.0


device='CPU'#GPUcanbeusedaswell
pipe=openvino_genai.LLMPipeline(args.model_dir,device)


config=openvino_genai.GenerationConfig()
config.max_new_tokens=100


pipe.start_chat()
whileTrue:
prompt=input('question:
')
if'Stop!'==prompt:
break
pipe.generate(prompt,config,streamer)


print('
----------')
pipe.finish_chat()

C++:

#include"openvino/genai/llm_pipeline.hpp"


intmain(intargc,char*argv[])try{
if(2!=argc){
throwstd::runtime_error(std::string{"Usage:"}+argv[0]+"");
}
std::stringprompt;
std::stringmodel_path=argv[1];


std::stringdevice="CPU";//GPUcanbeusedaswell
ov::LLMPipelinepipe(model_path,"CPU");

ov::GenerationConfigconfig;
config.max_new_tokens=100;
std::functionstreamer=[](std::stringword){
std::cout<

最后,以下是我們?cè)?AI PC 上運(yùn)行上述示例時(shí)得到的結(jié)果:

圖 3:在 AI PC 上本地運(yùn)行的基于 Llama 的聊天機(jī)器人的現(xiàn)場(chǎng)演示

總而言之 ,GenAI API 包括以下 API,可實(shí)現(xiàn)輕量級(jí)部署和代碼編寫:

generation_config – 用于啟用生成過程自定義的配置,例如生成文本的最大長(zhǎng)度、是否忽略句尾標(biāo)記以及解碼策略(貪心、波束搜索或多項(xiàng)式采樣)的細(xì)節(jié)。

llm_pipeline - 提供用于文本生成的類和實(shí)用程序,包括用于處理輸入、生成文本和使用可配置選項(xiàng)管理輸出的流水線。

streamer_base - 用于創(chuàng)建 Streamer 的抽象基類。

tokenizer - 用于文本編碼和解碼的 Tokenizer 類。

visibility - 控制 生成式AI 庫(kù)的可見性。

OpenVINO

總結(jié)

最新 OpenVINO 2024.2 版本中的新 OpenVINO 生成式AI API 提供了顯著的優(yōu)勢(shì)和功能,使其成為開發(fā)人員創(chuàng)建 生成式AI 和大語(yǔ)言模型應(yīng)用程序的強(qiáng)大工具。憑借其簡(jiǎn)單的設(shè)置過程和最小的依賴性,該 API 降低了代碼復(fù)雜性,使您能夠僅使用幾行代碼快速構(gòu)建高效的 生成式 AI 推理流水線。此外,對(duì)流式模型輸出分詞的支持有助于創(chuàng)建交互式用戶界面,從而增強(qiáng)用戶體驗(yàn)。

我們歡迎您試用新的 生成式AI API,并在你的項(xiàng)目中探索更多功能!我們可以一起突破生成式AI通過開源可以實(shí)現(xiàn)的界限!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    9961

    瀏覽量

    171746
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1560

    瀏覽量

    7641
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    198

原文標(biāo)題:如何使用 OpenVINO? 生成式AI API (GenAI API) 以更少的代碼構(gòu)建更快的生成式AI 應(yīng)用

文章出處:【微信號(hào):英特爾中國(guó),微信公眾號(hào):英特爾中國(guó)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實(shí)現(xiàn)快速高效的語(yǔ)義分割。在前文中我們發(fā)表了《基于 OpenVINO Python API
    的頭像 發(fā)表于 11-17 09:53 ?922次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b>部署FastSAM模型

    創(chuàng)建51輕量級(jí)操作系統(tǒng)

    創(chuàng)建51輕量級(jí)操作系統(tǒng)
    發(fā)表于 09-29 09:58

    10個(gè)輕量級(jí)框架

    這些輕量級(jí)框架使用HTML5和CSS3標(biāo)準(zhǔn)來幫助您快速開發(fā)跨平臺(tái)的Web移動(dòng)應(yīng)用和網(wǎng)站。
    發(fā)表于 07-17 08:25

    輕量級(jí)Agent平臺(tái)怎么測(cè)試?

    跨平臺(tái)的語(yǔ)言成功應(yīng)用于嵌入設(shè)備中,同時(shí)也方便了嵌入環(huán)境下的輕量Agent(Lightweight Agent)的實(shí)現(xiàn)。本文在ARM嵌入環(huán)境下測(cè)試輕量級(jí)Agent平臺(tái)。
    發(fā)表于 09-27 06:26

    輕量級(jí)深度學(xué)習(xí)網(wǎng)絡(luò)是什么

    輕量級(jí)深度學(xué)習(xí)網(wǎng)絡(luò)概覽
    發(fā)表于 04-23 14:53

    Dllite_micro (輕量級(jí)AI 推理框架)

    DLLite-Micro 是一個(gè)輕量級(jí)AI 推理框架,可以為 OpenHarmony OS 的輕量設(shè)備和小型設(shè)備提供深度模型的推理能力DLLite-Micro 向開發(fā)者提供清晰、易上手的北向接口
    發(fā)表于 08-05 11:40

    介紹一款輕量級(jí)ARM AI智能網(wǎng)關(guān)產(chǎn)品

    用戶需求國(guó)內(nèi)某工業(yè)網(wǎng)關(guān)設(shè)備制造商計(jì)劃推出一款輕量級(jí)AI智能網(wǎng)關(guān)產(chǎn)品,可應(yīng)用于工業(yè)設(shè)備監(jiān)控、工業(yè)現(xiàn)場(chǎng)動(dòng)環(huán)監(jiān)控、遠(yuǎn)程巡檢等多種場(chǎng)景。在主控平臺(tái)選型階段,該用戶主要面臨高算力和功能接口豐富的疊加需求。其
    發(fā)表于 06-06 16:39

    輕量級(jí)AI智能網(wǎng)關(guān)產(chǎn)品概述及應(yīng)用優(yōu)勢(shì)

    國(guó)內(nèi)某工業(yè)網(wǎng)關(guān)設(shè)備制造商計(jì)劃推出一款輕量級(jí)AI智能網(wǎng)關(guān)產(chǎn)品,可應(yīng)用于工業(yè)設(shè)備監(jiān)控、工業(yè)現(xiàn)場(chǎng)動(dòng)環(huán)監(jiān)控、遠(yuǎn)程巡檢等多種場(chǎng)景。在主控平臺(tái)選型階段,該用戶主要面臨高算力和功能接口豐富的疊加需求。其主控不但
    的頭像 發(fā)表于 05-31 12:05 ?2040次閱讀
    <b class='flag-5'>輕量級(jí)</b><b class='flag-5'>AI</b>智能網(wǎng)關(guān)產(chǎn)品概述及應(yīng)用優(yōu)勢(shì)

    測(cè)評(píng)分享 | 如何在先楫HPM6750上運(yùn)行輕量級(jí)AI推理框架TinyMaix

    本期內(nèi)容由先楫開發(fā)者社區(qū)大咖@xusiwei1236分享基于先楫HPM6750的輕量級(jí)AI推理框架,趕緊來瞧瞧~一、TinyMaix是什么?TinyMaix是國(guó)內(nèi)sipeed團(tuán)隊(duì)開發(fā)一個(gè)輕量級(jí)
    的頭像 發(fā)表于 12-12 17:57 ?1576次閱讀
    測(cè)評(píng)分享 | 如何在先楫HPM6750上運(yùn)行<b class='flag-5'>輕量級(jí)</b><b class='flag-5'>AI</b>推理框架TinyMaix

    輕量級(jí)數(shù)據(jù)庫(kù)有哪些

    數(shù)據(jù)庫(kù)系統(tǒng)由于其小巧、快速、易用等優(yōu)勢(shì),越來越受到人們的青睞。那么,輕量級(jí)數(shù)據(jù)庫(kù)有哪些?本文將為大家介紹幾種常見的輕量級(jí)數(shù)據(jù)庫(kù)系統(tǒng)。 1. SQLite SQLite被廣泛應(yīng)用于各種移動(dòng)應(yīng)用程序、Web應(yīng)用程序和嵌入系統(tǒng)中。它
    的頭像 發(fā)表于 08-28 16:41 ?5950次閱讀

    OpenVINO? C# API詳解與演示

    OpenVINO C# API 支持 NuGet 程序包安裝方式,這與 OpenVINO C++ 庫(kù)的安裝過程相比,更加簡(jiǎn)單。如果使用 Visual Studio 開發(fā) AI 項(xiàng)目,則
    的頭像 發(fā)表于 10-13 16:39 ?763次閱讀
    <b class='flag-5'>OpenVINO</b>?  C# <b class='flag-5'>API</b>詳解與演示

    三行代碼完成生成AI部署

    OpenVINO2024.2版本跟之前版本最大的不同是OpenVINO2024.2分為兩個(gè)安裝包分別是基礎(chǔ)包與生成AI支持包,新發(fā)布的
    的頭像 發(fā)表于 08-30 16:49 ?418次閱讀
    三行代碼完成<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>部署

    使用OpenVINO GenAI API在C++中構(gòu)建AI應(yīng)用程序

    許多桌面應(yīng)用程序是使用 C++ 開發(fā)的,而將生成AIGenAI)功能集成到這些應(yīng)用程序中可能會(huì)很具有挑戰(zhàn)性,尤其是因?yàn)槭褂孟?Hugging Face 這樣的 Python 庫(kù)的復(fù)
    的頭像 發(fā)表于 10-12 09:36 ?382次閱讀
    使用<b class='flag-5'>OpenVINO</b> <b class='flag-5'>GenAI</b> <b class='flag-5'>API</b>在C++中構(gòu)建<b class='flag-5'>AI</b>應(yīng)用程序

    微軟生成AI腳本GenAIScript的安裝與配置

    GenAIScript 是一種結(jié)合了生成人工智能(Generative AI,簡(jiǎn)稱 GenAI)和腳本編寫能力的新型腳本語(yǔ)言。
    的頭像 發(fā)表于 11-07 09:13 ?224次閱讀
    微軟<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>腳本GenAIScript的安裝與配置

    在設(shè)備上利用AI Edge Torch生成API部署自定義大語(yǔ)言模型

    我們很高興地發(fā)布 AI Edge Torch 生成 API,它能將開發(fā)者用 PyTorch 編寫的高性能大語(yǔ)言模型 (LLM) 部署至 TensorFlow Lite (TFLite
    的頭像 發(fā)表于 11-14 10:23 ?435次閱讀
    在設(shè)備上利用<b class='flag-5'>AI</b> Edge Torch<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>API</b>部署自定義大語(yǔ)言模型
    主站蜘蛛池模板: 色色就色色| 欧美电影一区二区三区| 国产在线啪| 男男gay污小黄文| 亚洲国产精品久久久久婷婷老年| 四虎影院台湾辣妹| 久久久久88色偷偷| 99久久无色码中文字幕| 免费看黄在线| 中文字幕一区二区三区 精品 | 男人操女人视频网站| 色女人综合| 四虎在线观看一区二区| 成人在线色视频| 国产一区二区三区波多野吉衣| 一区二区免费在线观看| 亚洲爱爱图片| 精品成人在线| 天天干天天做天天射| 男人和女人在床做黄的网站| 色视频在线免费| 天天色综合天天| 高h细节肉爽文bl1v1| 欧洲妇女成人淫片aaa视频| www.黄网站| 波多野吉衣一区二区三区在线观看| 天天伊人| 国产精品福利午夜一级毛片| 黄网站在线观看永久免费| 色噜噜噜| 日本加勒比在线播放| 男男浪荡双性受hplay| 久久网站免费观看| 亚洲haose在线观看| 校园激情综合网| 久草老司机| 欧美午夜视频一区二区三区| 久久婷人人澡人人爽| 欧美狠狠| va国产| 婷婷六月天激情|