一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何使用NVIDIA Triton Inference Server

jf_pJlTbmA9 ? 來(lái)源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

人工智能模型無(wú)處不在,形式包括聊天機(jī)器人、分類(lèi)和摘要工具、用于分割和檢測(cè)的圖像模型、推薦模型等。人工智能機(jī)器學(xué)習(xí)( ML )模型有助于實(shí)現(xiàn)許多業(yè)務(wù)流程的自動(dòng)化,從數(shù)據(jù)中生成見(jiàn)解,并提供新的體驗(yàn)。

PythonAI/ML 開(kāi)發(fā)中最受歡迎的語(yǔ)言之一。本文將教您如何使用 NVIDIA Triton Inference Server,并利用新的 PyTriton 接口。

更具體地說(shuō),您將學(xué)習(xí)如何在 Python 開(kāi)發(fā)環(huán)境中使用生產(chǎn)類(lèi)工具對(duì)人工智能模型進(jìn)行原型化和測(cè)試推理,以及如何使用 PyTriton 接口進(jìn)行生產(chǎn)。與 FastAPI 或 Flask 等通用 web 框架相比,您還將了解使用 PyTriton 的優(yōu)勢(shì)。這篇文章包括幾個(gè)代碼示例,說(shuō)明如何激活高性能的批處理、預(yù)處理和多節(jié)點(diǎn)推理;并實(shí)施在線學(xué)習(xí)。

什么是 PyTriton ?

PyTriton 是一個(gè)簡(jiǎn)單的接口,可讓 Python 開(kāi)發(fā)人員使用 Triton 推理服務(wù)器為 Python 代碼中的人工智能模型、簡(jiǎn)單處理功能或整個(gè)推理管道提供服務(wù)。Triton 推理服務(wù)器是一款開(kāi)源的多框架推理服務(wù)軟件,在 CPUGPU 上具有較高的性能。

PyTriton 可以實(shí)現(xiàn)快速原型設(shè)計(jì)和測(cè)試 ML 模型,同時(shí)實(shí)現(xiàn)高 GPU 利用率的性能和效率。只需一行代碼,就可以調(diào)出 Triton 推理服務(wù)器,提供 動(dòng)態(tài)批處理、并發(fā)模型執(zhí)行以及從 GPU 代碼中支持 GPU 和 Python 的優(yōu)勢(shì)。

PyTriton 消除了建立模型存儲(chǔ)庫(kù)和將模型從開(kāi)發(fā)環(huán)境移植到生產(chǎn)環(huán)境的需要?,F(xiàn)有的推理管道代碼也可以在不進(jìn)行修改的情況下使用。這對(duì)于較新類(lèi)型的框架(如 JAX )或復(fù)雜的管道(它們是 Triton 推理服務(wù)器中沒(méi)有專(zhuān)用后端的應(yīng)用程序代碼的一部分)尤其有用。

Flask 的簡(jiǎn)單性

Flask 和FastAPI 是通用的 Python Web 框架,用于部署各種各樣的 Python 應(yīng)用程序。由于它們的簡(jiǎn)單性和廣泛采用,許多開(kāi)發(fā)人員在生產(chǎn)中使用它們來(lái)部署和運(yùn)行人工智能模型。然而,這種方法存在顯著的缺點(diǎn),包括:

通用網(wǎng)絡(luò)服務(wù)器缺乏對(duì)人工智能推理功能的支持。沒(méi)有現(xiàn)成的支持來(lái)利用像 GPU 這樣的加速器,或者打開(kāi)動(dòng)態(tài)批處理或多節(jié)點(diǎn)推理。

用戶(hù)需要構(gòu)建邏輯來(lái)滿(mǎn)足特定用例的需求,如音頻/視頻流輸入、有狀態(tài)處理或預(yù)處理輸入數(shù)據(jù)以適應(yīng)模型。

關(guān)于計(jì)算和內(nèi)存利用率或推理延遲的指標(biāo)不容易用于監(jiān)控應(yīng)用程序的性能和規(guī)模。

Triton Inference Server包含對(duì)上述功能以及更多功能的內(nèi)置支持。PyTriton 提供了 Flask 的簡(jiǎn)單性和 Python 中 Triton 的示例部署。HuggingFace 文本分類(lèi)管道使用 PyTriton 如下所示:

import logging

 

import numpy as np

from transformers import BertTokenizer, FlaxBertModel  # pytype: disable=import-error

 

from pytriton.decorators import batch

from pytriton.model_config import ModelConfig, Tensor

from pytriton.triton import Triton

 

logger = logging.getLogger("examples.huggingface_bert_jax.server")

logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(name)s: %(message)s")

 

tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")

model = FlaxBertModel.from_pretrained("bert-base-uncased")

 

 

@batch

def _infer_fn(**inputs: np.ndarray):

	(sequence_batch,) = inputs.values()

 

	# need to convert dtype=object to bytes first

	# end decode unicode bytes

	sequence_batch = np.char.decode(sequence_batch.astype("bytes"), "utf-8")

 

	last_hidden_states = []

	for sequence_item in sequence_batch:

    	tokenized_sequence = tokenizer(sequence_item.item(), return_tensors="jax")

    	results = model(**tokenized_sequence)

    	last_hidden_states.append(results.last_hidden_state)

	last_hidden_states = np.array(last_hidden_states, dtype=np.float32)

	return [last_hidden_states]

 

 

with Triton() as triton:

	logger.info("Loading BERT model.")

	triton.bind(

    	model_name="BERT",

    	infer_func=_infer_fn,

    	inputs=[

        	Tensor(name="sequence", dtype=np.bytes_, shape=(1,)),

    	],

    	outputs=[

        	Tensor(name="last_hidden_state", dtype=np.float32, shape=(-1,)),

    	],

PyTriton 為 Flask 用戶(hù)提供了一個(gè)熟悉的界面,便于安裝和設(shè)置,并提供了以下好處:

?用一行代碼調(diào)出 NVIDIA Triton

無(wú)需設(shè)置模型存儲(chǔ)庫(kù)和模型格式轉(zhuǎn)換(對(duì)于使用 Triton 推理服務(wù)器的高性能實(shí)現(xiàn)非常重要)

使用現(xiàn)有推理管道代碼而不進(jìn)行修改

支持許多裝飾器來(lái)調(diào)整模型輸入

無(wú)論是在generative AI應(yīng)用程序還是其他模型中,PyTriton 可以讓您在自己的開(kāi)發(fā)環(huán)境中獲得 Triton InferenceServer 的好處。它可以幫助利用 GPU 在很短的時(shí)間內(nèi)(毫秒或秒,取決于用例)生成推理響應(yīng)。它還有助于以高容量運(yùn)行 GPU ,并且可以同時(shí)為許多推理請(qǐng)求提供服務(wù),且基礎(chǔ)設(shè)施成本低。

PyTriton 代碼示例

本節(jié)提供了一些可以用來(lái)開(kāi)始 PyTriton 的代碼示例。它們從本地機(jī)器開(kāi)始,這是測(cè)試和原型的理想選擇,并為大規(guī)模部署提供 Kubernetes 配置。

動(dòng)態(tài)配料支持

Flask/FastAPI 和 PyTriton 之間的一個(gè)關(guān)鍵區(qū)別是,動(dòng)態(tài)批處理允許對(duì)來(lái)自模型的多個(gè)調(diào)用應(yīng)用程序的推理請(qǐng)求進(jìn)行批處理,同時(shí)保留延遲要求。兩個(gè)示例是HuggingFace BART PyTorch和HuggingFace ResNET PyTorch。

在線學(xué)習(xí)

在線學(xué)習(xí)是指在生產(chǎn)中不斷從新數(shù)據(jù)中學(xué)習(xí)。使用 PyTriton,您可以控制支持推理服務(wù)器的不同模型實(shí)例的數(shù)量,從而使您能夠同時(shí)訓(xùn)練和服務(wù)同一個(gè)模型。想要了解更多關(guān)于如何使用 PyTriton 在 MNIST 數(shù)據(jù)集上同時(shí)訓(xùn)練和推斷模型的信息,請(qǐng)?jiān)L問(wèn) PyTriton 的示例。

大型語(yǔ)言模型的多節(jié)點(diǎn)推理

太大而無(wú)法放入單個(gè) GPU 內(nèi)存的大型語(yǔ)言模型(LLM)需要將模型劃分為多個(gè) GPU,在某些情況下,還需要跨多個(gè)節(jié)點(diǎn)進(jìn)行推理。要查看示例,請(qǐng)?jiān)L問(wèn) Hugging Face OPT 模型在 JAX 中的多節(jié)點(diǎn)推理。

想要查看NeMo Megatron GPT 模型部署,使用NVIDIA NeMo 1.3B 參數(shù)模型。使用 Slurm 和 Kubernetes 展示了多節(jié)點(diǎn)推理部署編排。

穩(wěn)定擴(kuò)散

使用 PyTriton ,您可以使用預(yù)處理裝飾器來(lái)執(zhí)行高級(jí)批處理操作,例如使用簡(jiǎn)單的定義將相同大小的圖像批處理在一起:

@batch

@group_by_values("img_size")

@first_value("img_size")

想了解更多信息,請(qǐng)查看此示例,該示例使用 Hugging Face 的 Stable Diffusion 1.5 圖像生成管道。

總結(jié)

PyTriton 提供了一個(gè)簡(jiǎn)單的接口,使 GPU 開(kāi)發(fā)人員能夠使用 NVIDIA Triton InferenceServer 為模型、簡(jiǎn)單的處理功能或整個(gè)推理管道提供服務(wù)。這種對(duì) Python 中的 Triton 推理服務(wù)器的本地支持使 ML 模型的快速原型設(shè)計(jì)和測(cè)試具有性能和效率。一行代碼就會(huì)顯示 Triton 推理服務(wù)器。動(dòng)態(tài)批處理、并發(fā)模型執(zhí)行以及 Python 代碼中對(duì) GPU 和 Python 的支持都是其中的好處。 PyTriton 提供了 Flask 的簡(jiǎn)單性和 Python 中 Triton InferenceServer 的優(yōu)點(diǎn)。

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

    關(guān)注

    14

    文章

    5309

    瀏覽量

    106471
  • 人工智能
    +關(guān)注

    關(guān)注

    1807

    文章

    49035

    瀏覽量

    249757
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86826
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用NVIDIA Triton和TensorRT-LLM部署TTS應(yīng)用的最佳實(shí)踐

    針對(duì)基于 Diffusion 和 LLM 類(lèi)別的 TTS 模型,NVIDIA Triton 和 TensorRT-LLM 方案能顯著提升推理速度。在單張 NVIDIA Ada Lovelace
    的頭像 發(fā)表于 06-12 15:37 ?627次閱讀
    使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>和TensorRT-LLM部署TTS應(yīng)用的最佳實(shí)踐

    GTC2022大會(huì)黃仁勛:NVIDIA Triton是AI部署的“中央車(chē)站”

    GTC2022大會(huì)黃仁勛:NVIDIA Triton是AI部署的“中央車(chē)站”,支持在每一代NVIDIA GPU、x86和ARM CPU上部署模型。
    的頭像 發(fā)表于 03-23 16:23 ?1639次閱讀
    GTC2022大會(huì)黃仁勛:<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>是AI部署的“中央車(chē)站”

    Microsoft使用NVIDIA Triton加速AI Transformer模型應(yīng)用

    Microsoft 的目標(biāo)是,通過(guò)結(jié)合使用 Azure 與 NVIDIA GPU 和 Triton 推理軟件,率先將一系列強(qiáng)大的 AI Transformer 模型投入生產(chǎn)用途。
    的頭像 發(fā)表于 04-02 13:04 ?2056次閱讀

    NVIDIA Triton推理服務(wù)器簡(jiǎn)化人工智能推理

    GKE 的 Triton 推理服務(wù)器應(yīng)用程序是一個(gè) helm chart 部署程序,可自動(dòng)安裝和配置 Triton ,以便在具有 NVIDIA GPU 節(jié)點(diǎn)池的 GKE 集群上使用,包括
    的頭像 發(fā)表于 04-08 16:43 ?2549次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>推理服務(wù)器簡(jiǎn)化人工智能推理

    使用NVIDIA Triton推理服務(wù)器簡(jiǎn)化邊緣AI模型部署

      NVIDIA Triton 有助于在每個(gè)數(shù)據(jù)中心、云和嵌入式設(shè)備中實(shí)現(xiàn)標(biāo)準(zhǔn)化的可擴(kuò)展生產(chǎn) AI 。它支持多個(gè)框架,在 GPU 和 DLA 等多個(gè)計(jì)算引擎上運(yùn)行模型,處理不同類(lèi)型的推理查詢(xún)。通過(guò)與 NVIDIA JetPack
    的頭像 發(fā)表于 04-18 15:40 ?3108次閱讀
    使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>推理服務(wù)器簡(jiǎn)化邊緣AI模型部署

    利用NVIDIA Triton推理服務(wù)器加速語(yǔ)音識(shí)別的速度

    網(wǎng)易互娛 AI Lab 的研發(fā)人員,基于 Wenet 語(yǔ)音識(shí)別工具進(jìn)行優(yōu)化和創(chuàng)新,利用 NVIDIA Triton 推理服務(wù)器的 GPU Batch Inference 機(jī)制加速了語(yǔ)音識(shí)別的速度,并且降低了成本。
    的頭像 發(fā)表于 05-13 10:40 ?2396次閱讀

    NVIDIA Triton助力騰訊PCG加速在線推理

      借助NVIDIA Triton 推理框架,配合 DALI/FIL/Python 等Backend,以及 TensorRT,整體推理服務(wù)的吞吐能力最大提升 6 倍,延遲最大降低 40%。
    的頭像 發(fā)表于 05-20 15:25 ?2605次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>助力騰訊PCG加速在線推理

    基于NVIDIA Triton的AI模型高效部署實(shí)踐

    NVIDIA Triton 推理服務(wù)器(以前稱(chēng)為 TensorRT 推理服務(wù)器)是一款開(kāi)源軟件,可簡(jiǎn)化深度學(xué)習(xí)模型在生產(chǎn)環(huán)境中的部署。借助 Triton 推理服務(wù)器,Devops 和 MLops
    的頭像 發(fā)表于 06-28 15:49 ?2185次閱讀

    NVIDIA Triton的概念、特性及主要功能

    NVIDIA Triton 推理服務(wù)器是 NVIDIA AI 平臺(tái)的一部分,它是一款開(kāi)源推理服務(wù)軟件,可助力標(biāo)準(zhǔn)化模型的部署和執(zhí)行,并在生產(chǎn)環(huán)境中提供快速且可擴(kuò)展的 AI。
    的頭像 發(fā)表于 07-18 10:11 ?3986次閱讀

    NVIDIA Triton系列文章:開(kāi)發(fā)資源說(shuō)明

    這里最重要的是 “server documents on GitHub” 鏈接,點(diǎn)進(jìn)去后會(huì)進(jìn)入整個(gè) Triton 項(xiàng)目中最完整的技術(shù)文件中心(如下圖),除 Installation
    的頭像 發(fā)表于 11-09 16:17 ?1109次閱讀

    NVIDIA Triton 系列文章(4):創(chuàng)建模型倉(cāng)

    ://github.com/triton-inference-server/server/tree/main/docs? 這個(gè)最完整的說(shuō)明文件區(qū),在? “User Guide”? 里的前 5 個(gè)步驟,就是為 Tr
    的頭像 發(fā)表于 11-15 21:20 ?1345次閱讀

    NVIDIA Triton 系列文章(9):為服務(wù)器添加模型

    前面已經(jīng)用? https://github.com/triton-inference-server/server/doc/examples 開(kāi)源倉(cāng)的范例資源,創(chuàng)建一個(gè)最基礎(chǔ)的模型倉(cāng)以便執(zhí)行一些
    的頭像 發(fā)表于 12-27 21:20 ?1541次閱讀

    如何使用NVIDIA Triton 推理服務(wù)器來(lái)運(yùn)行推理管道

    使用集成模型在 NVIDIA Triton 推理服務(wù)器上為 ML 模型管道提供服務(wù)
    的頭像 發(fā)表于 07-05 16:30 ?1705次閱讀
    如何使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b> 推理服務(wù)器來(lái)運(yùn)行推理管道

    周四研討會(huì)預(yù)告 | 注冊(cè)報(bào)名 NVIDIA AI Inference Day - 大模型推理線上研討會(huì)

    由 CSDN 舉辦的 NVIDIA AI Inference Day - 大模型推理線上研討會(huì),將幫助您了解 NVIDIA 開(kāi)源大型語(yǔ)言模型(LLM)推理加速庫(kù) TensorRT-LLM ?及其功能
    的頭像 發(fā)表于 10-26 09:05 ?514次閱讀

    使用NVIDIA Triton推理服務(wù)器來(lái)加速AI預(yù)測(cè)

    這家云計(jì)算巨頭的計(jì)算機(jī)視覺(jué)和數(shù)據(jù)科學(xué)服務(wù)使用 NVIDIA Triton 推理服務(wù)器來(lái)加速 AI 預(yù)測(cè)。
    的頭像 發(fā)表于 02-29 14:04 ?929次閱讀