99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

如何使用TensorRT 8.0進行實時自然語言處理

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-02 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大規(guī)模語言模型( LSLMs )如 BERT 、 GPT-2 和 XL-Net 為許多自然語言處理( NLP )任務(wù)帶來了令人興奮的精度飛躍。自 2018 年 10 月發(fā)布以來, BERT (來自變形金剛的雙向編碼器表示)及其眾多變體仍然是最流行的語言模型之一, 仍然提供最先進的準(zhǔn)確性 。

BERT 為 NLP 任務(wù)提供了準(zhǔn)確度上的飛躍,為許多行業(yè)的公司提供了高質(zhì)量、基于語言的服務(wù)。為了在生產(chǎn)中使用該模型,您必須考慮延遲和準(zhǔn)確性等因素,這些因素影響最終用戶對服務(wù)的滿意度。 BERT 由于其 12 / 24 層堆疊、多頭注意力網(wǎng)絡(luò),需要在推理過程中進行重要計算。這對公司部署 ZVK7]作為實時應(yīng)用的一部分提出了挑戰(zhàn)。

今天, NVIDIA 發(fā)布了 TensorRT 的第 8 版,在 NVIDIA A100 GPU 上, BERT-Large 的推理延遲降低到 1. 2 毫秒,并對基于 transformer 網(wǎng)絡(luò)進行了新的優(yōu)化。 TensorRT 中新的廣義優(yōu)化方法可以加速所有這些模型,將推理時間減少到 TensorRT 7 的一半。

TensorRT

TensorRT 是一個用于高性能、深入學(xué)習(xí)推理的平臺,它包括一個優(yōu)化程序和運行時,可以最大限度地減少延遲和提高生產(chǎn)中的吞吐量。使用 TensorRT ,您可以優(yōu)化在所有主要框架中訓(xùn)練的模型,以高精度校準(zhǔn)較低的精度,并最終部署到生產(chǎn)中。

在這個 NVIDIA/TensorRT GitHub repo 中,所有用 BERT 實現(xiàn)這一性能的代碼都將作為開源發(fā)布,它是 BERT 編碼器的一個基本構(gòu)建塊,因此您可以將這些優(yōu)化應(yīng)用于任何基于 BERT 的 NLP 任務(wù)。 BERT 應(yīng)用于會話 AI 之外的一組擴展的語音和 NLP 應(yīng)用程序,所有這些應(yīng)用程序都可以利用這些優(yōu)化。

問答( QA )或閱讀理解是測試模型理解上下文能力的一種流行方法。團隊 leaderboard 為他們提供的數(shù)據(jù)集和測試集跟蹤此任務(wù)的最佳執(zhí)行者。在過去的幾年里,隨著學(xué)術(shù)界和企業(yè)的全球性貢獻, QA 能力得到了迅速的發(fā)展。

在本文中,我們將演示如何使用 Python 創(chuàng)建一個簡單的 QA 應(yīng)用程序,該應(yīng)用程序由今天發(fā)布的 TensorRT 優(yōu)化的 BERT 代碼提供支持。該示例提供了一個 API 來輸入段落和問題,并返回由 BERT 模型生成的響應(yīng)。

下面簡要回顧一下使用 TensorRT 對 BERT 執(zhí)行訓(xùn)練和推理的步驟。

BERT 訓(xùn)練和推理管道

NLP 研究人員和開發(fā)人員面臨的一個主要問題是缺乏高質(zhì)量的標(biāo)記訓(xùn)練數(shù)據(jù)。為了克服從零開始學(xué)習(xí)任務(wù)模型的問題, NLP 的突破使用了大量的未標(biāo)記文本,并將 NLP 任務(wù)分為兩部分:

學(xué)習(xí)表達(dá)單詞的意義,它們之間的關(guān)系,即使用輔助任務(wù)和大量文本建立語言模型

通過使用一個相對較小的、特定于任務(wù)的、以有監(jiān)督的方式訓(xùn)練的網(wǎng)絡(luò)來擴充語言模型,從而將語言模型專門化為實際任務(wù)。

這兩個階段通常稱為預(yù)訓(xùn)練和微調(diào)。這種范式允許使用預(yù)先訓(xùn)練的語言模型來處理廣泛的任務(wù),而不需要對模型架構(gòu)進行任何特定于任務(wù)的更改。在本例中, BERT 提供了一個高質(zhì)量的語言模型,該模型針對 QA 進行了微調(diào),但適用于其他任務(wù),如句子分類和情感分析。

您可以從在線提供的預(yù)訓(xùn)練檢查點開始,也可以從您自己的定制語料庫上的預(yù)訓(xùn)練 BERT 開始(圖 1 )。您還可以從檢查點初始化預(yù)訓(xùn)練,然后繼續(xù)對自定義數(shù)據(jù)進行訓(xùn)練。

BERT TensorRT engine generation chart. A pretrained checkpoint or a checkpoint pretrained on custom data can be used as input to the TensorRT Builder, which creates the optimized engine as output.

圖 1 從預(yù)先訓(xùn)練的檢查點生成 BERT TensorRT 引擎

使用自定義或特定領(lǐng)域的數(shù)據(jù)進行預(yù)訓(xùn)練可能會產(chǎn)生有趣的結(jié)果,例如 BioBert 。然而,它是計算密集型的,需要一個大規(guī)模的并行計算基礎(chǔ)設(shè)施才能在合理的時間內(nèi)完成。 GPU – 啟用的多節(jié)點訓(xùn)練是此類場景的理想解決方案。有關(guān) NVIDIA 開發(fā)人員如何在不到一小時的時間內(nèi)培訓(xùn) BERT 的更多信息,請參閱 使用 GPU s 培訓(xùn) BERT 。

在微調(diào)步驟中,使用特定任務(wù)訓(xùn)練數(shù)據(jù)訓(xùn)練基于預(yù)訓(xùn)練 BERT 語言模型的特定任務(wù)網(wǎng)絡(luò)。對于 QA ,這是(段落、問題、答案)三倍。與預(yù)訓(xùn)練相比,微調(diào)的計算要求通常要低得多。

使用 QA 神經(jīng)網(wǎng)絡(luò)進行推理:

通過將微調(diào)的權(quán)重和網(wǎng)絡(luò)定義傳遞給 TensorRT 生成器來創(chuàng)建 TensorRT 引擎。

使用此引擎啟動 TensorRT 運行時。

向 TensorRT 運行時提供一篇文章和一個問題,并接收網(wǎng)絡(luò)預(yù)測的答案作為輸出。

圖 2 顯示了整個工作流。

Workflow diagram on how to perform inference with TensorRT runtime engine for BERT QA task. A passage and question are fed to the preprocessing module, which is connected to the TensorRT Engine Execution that runs inference on the loaded TensorRT BERT engine. The output is post-processed obtaining the resulting text answer.

圖 2 使用 TensorRT 運行時引擎對 BERT QA 任務(wù)執(zhí)行推斷的工作流

運行樣本!

通過以下步驟設(shè)置環(huán)境以執(zhí)行 BERT 推斷:

創(chuàng)建具有先決條件的 Docker 映像。

從微調(diào)的重量構(gòu)建 TensorRT 引擎。

對給定的段落和問題進行推理。

我們使用腳本來執(zhí)行這些步驟,您可以在 TensorRT BERT 樣本回購 中找到這些步驟。雖然我們描述了可以傳遞給每個腳本的幾個選項,但為了快速入門,您還可以運行以下代碼示例:

 # Clone the TensorRT repository and navigate to BERT demo directory
 git clone --recursive https://github.com/NVIDIA/TensorRT && cd TensorRT
 
 # Create and launch the Docker image
 # Here we assume the following:
 # - the os being ubuntu-18.04 (see below for other supported versions)
 # - cuda version is 11.3.1
 bash docker/build.sh --file docker/ubuntu-18.04.Dockerfile --tag tensorrt-ubuntu18.04-cuda11.3 --cuda 11.3.1
 
 # Run the Docker container just created
 bash docker/launch.sh --tag tensorrt-ubuntu18.04-cuda11.3 --gpus all
 
 # cd into the BERT demo folder
 cd $TRT_OSSPATH/demo/BERT
 
 # Download the BERT model fine-tuned checkpoint
 bash scripts/download_model.sh
  
 # Build the TensorRT runtime engine.
 # To build an engine, use the builder.py script.
 mkdir -p engines && python3 builder.py -m models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1/model.ckpt -o engines/bert_large_128.engine -b 1 -s 128 --fp16 -c models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1 

最后一個命令使用混合精度(--fp16)和-s 128大隊 v2 FP16 序列長度 128 檢查點(-c models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1)構(gòu)建最大批大小為 1 ( BERT )、序列長度為 128 (-s 128)的引擎。

現(xiàn)在,給它一段話,通過問幾個問題,看看它能破譯多少信息。

python3 inference.py -e engines/bert_large_128.engine -p "TensorRT is a high performance deep learning inference platform that delivers low latency and high throughput for apps such as recommenders, speech and image/video on NVIDIA GPUs. It includes parsers to import models, and plugins to support novel ops and layers before applying optimizations for inference. Today NVIDIA is open-sourcing parsers and plugins in TensorRT so that the deep learning community can customize and extend these components to take advantage of powerful TensorRT optimizations for your apps." -q "What is TensorRT?" -v models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1/vocab.txt

此命令的結(jié)果應(yīng)類似于以下內(nèi)容:

Passage: TensorRT is a high performance deep learning inference platform that delivers low latency and high throughput for apps such as recommenders, speech and image/video on NVIDIA GPUs. It includes parsers to import models, and plugins to support novel ops and layers before applying optimizations for inference. Today NVIDIA is open-sourcing parsers and plugins in TensorRT so that the deep learning community can customize and extend these components to take advantage of powerful TensorRT optimizations for your apps. 
Question: What is TensorRT?
Answer: 'a high performance deep learning inference platform'

對同一篇文章提出不同的問題,你應(yīng)該得到以下結(jié)果:

Question: What is included in TensorRT?
Answer: 'parsers to import models, and plugins to support novel ops and layers before applying optimizations for inference'

該模型提供的答案基于所提供的文章的文本是準(zhǔn)確的,樣本使用 FP16 精度與 TensorRT 進行推理。這有助于在 NVIDIA GPU s 的張量核上實現(xiàn)盡可能高的性能。在我們的測試中,我們測量了 TensorRT 的精確度,與 FP16 精度的框架內(nèi)推理相當(dāng)。

腳本選項

以下是腳本可用的選項, docker/build.sh 腳本使用 docker 文件夾中提供的 docker 文件構(gòu)建 docker 映像。它安裝所有必需的包,具體取決于您選擇作為 docker 文件的操作系統(tǒng)。在本文中,我們使用了 ubuntu-18 。 04 ,但也提供了 ubuntu-16 。 04 和 ubuntu-20 。 04 的 dockerfiles 。

按如下方式運行腳本:

bash docker/build.sh --file docker/ubuntu-xx.04.Dockerfile --tag tensorrt-tag --cuda cuda_version

創(chuàng)建并運行環(huán)境后,下載 BERT 的微調(diào)權(quán)重。請注意,創(chuàng)建 TensorRT 引擎不需要預(yù)先訓(xùn)練的權(quán)重(只需要微調(diào)的權(quán)重)。在微調(diào)權(quán)重的同時,使用相關(guān)的配置文件,該文件指定了注意頭數(shù)、層數(shù)等參數(shù),以及 vocab 。 txt 文件,該文件包含從訓(xùn)練過程中學(xué)習(xí)到的詞匯表;使用 download _ model 。 sh 腳本下載它們。作為此腳本的一部分,您可以指定要下載的 BERT 模型的微調(diào)權(quán)重集。命令行參數(shù)控制精確的 BERT 模型,以便稍后用于模型構(gòu)建和推斷:

sh download_model.sh [tf|pyt] [base|large|megatron-large] [128|384] [v2|v1_1] [sparse] [int8-qat]
 tf | pyt tensorflow or pytorch version
 base | large | megatron-large - determine whether to download a BERT-base or BERT-large or megatron model to optimize
 128 | 384 - determine whether to download a BERT model for sequence length 128 or 384
 v2 | v1_1, fine-tuned on squad2 or squad1.1
 sparse, download sparse version
 int8-qat, download int8 weights 

Examples:

# Running with default parameters bash download_model.sh # Running with custom parameters (BERT-large, FP32 fine-tuned weights, 128 sequence length) sh download_model.sh large tf fp32 128

默認(rèn)情況下,此腳本下載微調(diào)的 TensorFlow BERT -large ,精度為 FP16 ,序列長度為 128 。除了微調(diào)的模型外,還可以使用配置文件、枚舉模型參數(shù)和詞匯表文件將 BERT 模型輸出轉(zhuǎn)換為文本答案。

接下來,您可以構(gòu)建 BERT 引擎并將其用于 QA 示例,即推理。腳本 builder.py 基于下載的 TensorRT 微調(diào)模型構(gòu)建用于推理的 TensorRT 引擎。

確保提供給以下腳本的序列長度與下載的模型的序列長度匹配。

python3 builder.py [-h] [-m CKPT] [-x ONNX] [-pt PYTORCH] -o OUTPUT
  [-b BATCH_SIZE] [-s SEQUENCE_LENGTH] -c CONFIG_DIR [-f] [-i]
  [-t] [-w WORKSPACE_SIZE] [-j SQUAD_JSON] [-v VOCAB_FILE]
  [-n CALIB_NUM] [-p CALIB_PATH] [-g] [-iln] [-imh] [-sp]
  [-tcf TIMING_CACHE_FILE] 

以下是可選參數(shù):

 -h, --help  show this help message and exit
 -m CKPT, --ckpt CKPT The checkpoint file basename, e.g.:
 basename(model.ckpt-766908.data-00000-of-00001) is model.ckpt-766908 (default: None)
 -x ONNX, --onnx ONNX The ONNX model file path. (default: None)
 -pt PYTORCH, --pytorch PYTORCH
    The PyTorch checkpoint file path. (default: None)
 -o OUTPUT, --output OUTPUT
    The bert engine file, ex bert.engine (default: bert_base_384.engine)
 -b BATCH_SIZE, --batch-size BATCH_SIZE 
 Batch size(s) to optimize for. 
 The engine will be usable with any batch size below this, but may not be optimal for smaller sizes. Can be specified multiple times to optimize for more than one batch size.(default: [])
 -s SEQUENCE_LENGTH, --sequence-length SEQUENCE_LENGTH 
    Sequence length of the BERT model (default: [])
 -c CONFIG_DIR, --config-dir CONFIG_DIR
 The folder containing the bert_config.json, 
 which can be downloaded e.g. from https://github.com/google-research/bert#pre-trained-models (default: None)
 -f, --fp16  Indicates that inference should be run in FP16 precision 
    (default: False)
 -i, --int8  Indicates that inference should be run in INT8 precision 
    (default: False)
 -t, --strict Indicates that inference should be run in strict precision mode
    (default: False)
 -w WORKSPACE_SIZE, --workspace-size WORKSPACE_SIZE Workspace size in MiB for 
    building the BERT engine (default: 1000)
 -j SQUAD_JSON, --squad-json SQUAD_JSON
 squad json dataset used for int8 calibration (default: squad/dev-v1.1.json)
 -v VOCAB_FILE, --vocab-file VOCAB_FILE
 Path to file containing entire understandable vocab (default: ./pre-trained_model/uncased_L-24_H-1024_A-16/vocab.txt)
 -n CALIB_NUM, --calib-num CALIB_NUM
    calibration batch numbers (default: 100)
 -p CALIB_PATH, --calib-path CALIB_PATH 
    calibration cache path (default: None)
 -g, --force-fc2-gemm 
    Force use gemm to implement FC2 layer (default: False)
 -iln, --force-int8-skipln
 Run skip layernorm with INT8 (FP32 or FP16 by default) inputs and output (default: False)
 -imh, --force-int8-multihead
 Run multi-head attention with INT8 (FP32 or FP16 by default) input and output (default: False)
 -sp, --sparse    Indicates that model is sparse (default: False)
 -tcf TIMING_CACHE_FILE, --timing-cache-file TIMING_CACHE_FILE
 Path to tensorrt build timeing cache file, only available for tensorrt 8.0 and later (default: None) 

Example:

python3 builder.py -m models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1/model.ckpt -o engines/bert_large_128.engine -b 1 -s 128 --fp16 -c models/fine-tuned/bert_tf_ckpt_large_qa_squad2_amp_128_v19.03.1 

現(xiàn)在您應(yīng)該有一個 TensorRT 引擎engines/bert_large_128.engine,用于 QA 的inference.py腳本。

在本文后面,我們將描述構(gòu)建 TensorRT 引擎的過程?,F(xiàn)在,您可以向 inference.py 提供一篇文章和一個查詢,并查看模型是否能夠正確回答您的查詢。

與推理腳本交互的方法很少:

段落和問題可以使用 –通道 和 –問題 標(biāo)志作為命令行參數(shù)提供。

它們可以使用 – U 文件 和 –問題文件 標(biāo)志從給定的文件傳入。

如果在執(zhí)行過程中沒有給出這兩個標(biāo)志,則在執(zhí)行開始后,系統(tǒng)會提示您輸入段落和問題。

以下是 inference.py 腳本的參數(shù):

Usage: inference.py [-h] [-e ENGINE] [-b BATCH_SIZE]
  [-p [PASSAGE [PASSAGE ...]]] [-pf PASSAGE_FILE]
  [-q [QUESTION [QUESTION ...]]] [-qf QUESTION_FILE]
  [-sq SQUAD_JSON] [-o OUTPUT_PREDICTION_FILE]
  [-v VOCAB_FILE] [-s SEQUENCE_LENGTH]
  [--max-query-length MAX_QUERY_LENGTH]
  [--max-answer-length MAX_ANSWER_LENGTH]
  [--n-best-size N_BEST_SIZE] [--doc-stride DOC_STRIDE] 

這個腳本使用一個預(yù)先構(gòu)建的 TensorRT BERT QA 引擎來根據(jù)提供的文章回答問題。

以下是可選參數(shù):

   -h, --help     show this help message and exit
 -e ENGINE, --engine ENGINE
  Path to BERT TensorRT engine
 -b BATCH_SIZE, --batch-size BATCH_SIZE
  Batch size for inference.
 -p [PASSAGE [PASSAGE ...]], --passage [PASSAGE [PASSAGE ...]]
  Text for paragraph/passage for BERT QA
 -pf PASSAGE_FILE, --passage-file PASSAGE_FILE
  File containing input passage
 -q [QUESTION [QUESTION ...]], --question [QUESTION [QUESTION ...]]
  Text for query/question for BERT QA
 -qf QUESTION_FILE, --question-file QUESTION_FILE
  File containing input question
 -sq SQUAD_JSON, --squad-json SQUAD_JSON
  SQuAD json file
 -o OUTPUT_PREDICTION_FILE, --output-prediction-file OUTPUT_PREDICTION_FILE
  Output prediction file for SQuAD evaluation
 -v VOCAB_FILE, --vocab-file VOCAB_FILE
  Path to file containing entire understandable vocab
 -s SEQUENCE_LENGTH, --sequence-length SEQUENCE_LENGTH
  The sequence length to use. Defaults to 128
 --max-query-length MAX_QUERY_LENGTH
  The maximum length of a query in number of tokens.
  Queries longer than this will be truncated
 --max-answer-length MAX_ANSWER_LENGTH
  The maximum length of an answer that can be generated
 --n-best-size N_BEST_SIZE
  Total number of n-best predictions to generate in the
  nbest_predictions.json output file
 --doc-stride DOC_STRIDE
  When splitting up a long document into chunks, what
  stride to take between chunks 

BERT 與 TensorRT 的推理

有關(guān)推理過程的逐步描述和演練,請參見示例文件夾中的 Python script inference 。 py 和詳細(xì)的 Jupyter notebook inference 。 ipynb 。下面是使用 TensorRT 執(zhí)行推理的幾個關(guān)鍵參數(shù)和概念。

BERT 或更具體地說,編碼器層使用以下參數(shù)來控制其操作:

批量大小

序列長度

注意頭數(shù)

這些參數(shù)的值取決于所選的 BERT 模型,用于設(shè)置 TensorRT 計劃文件(執(zhí)行引擎)的配置參數(shù)。

對于每個編碼器,還指定隱藏層的數(shù)量和注意頭的大小。您還可以從 TensorFlow 檢查點文件中讀取所有早期參數(shù)。

由于我們正在使用的 BERT 模型已經(jīng)針對 SQuAD 數(shù)據(jù)集上 QA 的下游任務(wù)進行了微調(diào),因此網(wǎng)絡(luò)的輸出(即輸出完全連接層)是一段文本,其中答案出現(xiàn)在文章中,在示例中稱為 h ? U 輸出。生成 TensorRT 引擎之后,您可以序列化它,稍后在 TensorRT 運行時使用它。

在推理過程中,異步執(zhí)行從 CPU 到 GPU 的內(nèi)存復(fù)制和反向操作,分別將張量放入和移出 GPU 內(nèi)存。異步內(nèi)存復(fù)制操作通過與設(shè)備和主機之間的內(nèi)存復(fù)制操作重疊計算來隱藏內(nèi)存?zhèn)鬏數(shù)难舆t。圖 3 顯示了異步內(nèi)存拷貝和內(nèi)核執(zhí)行。

Diagram of the TensorRT Runtime execution process. Inputs are asynchronously loaded from host to device. The engine inference is executed asynchronously. The result, again asynchronously, is copied from the device to the host.

圖 3 。 TensorRT 運行時流程

BERT 模型(圖 3 )的輸入包括:

input_ids :帶有段落標(biāo)記 ID 的張量與用作推理輸入的問題串聯(lián)在一起

segment_ids :區(qū)分段落和問題

input_mask :指示序列中哪些元素是標(biāo)記,哪些是填充元素

輸出( start_logits 和 end_logits )表示答案的范圍,網(wǎng)絡(luò)根據(jù)問題在文章中預(yù)測答案的范圍。

基準(zhǔn)測試 BERT 推理性能

BERT 可以應(yīng)用于在線和離線用例。在線 NLP 應(yīng)用程序,如會話人工智能,在推理過程中占用了緊張的延遲預(yù)算。為了響應(yīng)單個用戶的查詢,需要按順序執(zhí)行多個模型。當(dāng)用作服務(wù)時,客戶體驗的總時間包括計算時間以及輸入和輸出網(wǎng)絡(luò)延遲。時間越長,性能越差,客戶體驗越差。

雖然單個模型的準(zhǔn)確延遲可能因應(yīng)用程序而異,但一些實時應(yīng)用程序需要在 10 毫秒內(nèi)執(zhí)行語言模型。

使用 NVIDIA 安培架構(gòu) A100 GPU , BERT – 用 TensorRT 8 優(yōu)化的大可以在 1 。 2ms 內(nèi)對 QA 任務(wù)執(zhí)行推斷,類似于批大小為 1 、序列長度為 128 的團隊中可用的任務(wù)。

使用 TensorRT 優(yōu)化樣本,您可以在 10ms 延遲預(yù)算內(nèi)為 BERT -base 或 BERT -large 執(zhí)行不同的批處理大小。例如,在 TensorRT 8 的 A30 上,序列長度= 384 批大小= 1 的 BERT 大型模型的推斷延遲為 3 。 62ms 。同樣的模型,序列長度= 384 ,在 CPU 平臺上高度優(yōu)化代碼(**),批量大小= 1 是 76ms 。

Bar chart of the compute latency in milliseconds for executing BERT-large on an NVIDIA A30 GPU with 3.6ms vs. a CPU-only server with 76ms, the GPU bar is clearly under the 10ms threshold budget for conversational AI applications.


圖 4 。在 NVIDIA A30 GPU 服務(wù)器上執(zhí)行 BERT -large 與僅 CPU 服務(wù)器上執(zhí)行 BERT -large 的計算延遲(毫秒)

性能度量在將張量作為輸入傳遞和將 logit 作為輸出收集之間,在 QA 任務(wù)上執(zhí)行網(wǎng)絡(luò)的純計算延遲時間。您可以在 repo 中的 scripts / inference \ u benchmark 。 sh 腳本中找到用于對示例進行基準(zhǔn)測試的代碼。

概括

NVIDIA 正在發(fā)布 TensorRT 8 。 0 ,這使得在 A30 GPU s 上以 0 。 74ms 的時間執(zhí)行 BERT 推斷成為可能。 BERT 上的基準(zhǔn)測試推斷代碼在 TensorRT 開源 repo 中作為示例提供。

本文概述了如何使用 TensorRT 示例和性能結(jié)果。我們進一步描述了如何將 BERT 示例作為簡單應(yīng)用程序和 Jupyter 筆記本的一部分來使用的工作流,您可以在其中傳遞一個段落并提出與之相關(guān)的問題。新的優(yōu)化和可實現(xiàn)的性能使 BERT 在生產(chǎn)中用于延遲預(yù)算緊張的應(yīng)用程序(如會話人工智能)變得切實可行。

關(guān)于作者

Purnendu Mukherjee 是一名高級深度學(xué)習(xí)軟件工程師,在 NVIDIA 的人工智能應(yīng)用小組工作。他的主要工作是將最先進的、基于深度學(xué)習(xí)的語音和自然語言處理模型作為開發(fā) Jarvis 平臺的一部分投入生產(chǎn)。在加入 NVIDIA 之前, PurnNuu 畢業(yè)于佛羅里達(dá)大學(xué),擁有計算機科學(xué)碩士學(xué)位,專門從事基于自然語言的深度學(xué)習(xí)。

Eddie Weill 是 NVIDIA 的解決方案架構(gòu)師,專門幫助企業(yè)客戶開發(fā)深度學(xué)習(xí)和加速計算解決方案。在擔(dān)任當(dāng)前職務(wù)之前,他曾在智能視頻分析集團 NVIDIA 從事智能城市深度學(xué)習(xí)模型開發(fā)工作。作為博士學(xué)位的一部分,他專注于計算機視覺嵌入式系統(tǒng)應(yīng)用的深度學(xué)習(xí)。在克萊姆森大學(xué)的研究生學(xué)習(xí)期間,他專注于深度學(xué)習(xí)以及一些高性能計算應(yīng)用。

Rohit Taneja 是 NVIDIA 的解決方案架構(gòu)師,專注于機器學(xué)習(xí)和推理相關(guān)的部署。在加入 NVIDIA 之前,他曾在 IBM 的系統(tǒng)實驗室擔(dān)任性能架構(gòu)師和工程師,以支持?jǐn)?shù)據(jù)中心環(huán)境中的機器學(xué)習(xí)工作負(fù)載加速。他獲得了北卡羅來納州立大學(xué)的碩士學(xué)位,論文的主題是“ ELD CTR ”電路的自動軟控制,以提高能效。

Davide Onofrio 是 NVIDIA 的高級深度學(xué)習(xí)軟件技術(shù)營銷工程師。他在 NVIDIA 專注于深度學(xué)習(xí)技術(shù)開發(fā)人員關(guān)注內(nèi)容的開發(fā)和演示。戴維德在生物特征識別、虛擬現(xiàn)實和汽車行業(yè)擔(dān)任計算機視覺和機器學(xué)習(xí)工程師已有多年經(jīng)驗。他的教育背景包括米蘭理工學(xué)院的信號處理博士學(xué)位。

About Young-Jun Ko

Young-Jun Ko 是 NVIDIA 的 AI 開發(fā)技術(shù)工程師,目前正在 GPU 上加速 NLP 推理工作負(fù)載。此前,他曾在 HPC 和 AI 領(lǐng)域工作,并為 RAPIDS 開源項目做出了貢獻。在加入 NVIDIA 之前,楊軍獲得了 EPFL 的計算機科學(xué)博士學(xué)位,并在一家 adtech 初創(chuàng)公司擔(dān)任機器學(xué)習(xí)工程師。

About Siddharth Sharma

Siddharth Sharma 是NVIDIA 加速計算的高級技術(shù)營銷經(jīng)理。在加入NVIDIA 之前, Siddharth 是 Mathworks Simulink 和 Stateflow 的產(chǎn)品營銷經(jīng)理,與汽車和航空航天公司密切合作,采用基于模型的設(shè)計來創(chuàng)建控制軟件。

審核編輯:郭婷

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

    關(guān)注

    14

    文章

    5309

    瀏覽量

    106478
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4949

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何優(yōu)化自然語言處理模型的性能

    優(yōu)化自然語言處理(NLP)模型的性能是一個多方面的任務(wù),涉及數(shù)據(jù)預(yù)處理、特征工程、模型選擇、模型調(diào)參、模型集成與融合等多個環(huán)節(jié)。以下是一些具體的優(yōu)化策略: 一、數(shù)據(jù)預(yù)處理優(yōu)化 文本清洗
    的頭像 發(fā)表于 12-05 15:30 ?1713次閱讀

    如何使用自然語言處理分析文本數(shù)據(jù)

    使用自然語言處理(NLP)分析文本數(shù)據(jù)是一個復(fù)雜但系統(tǒng)的過程,涉及多個步驟和技術(shù)。以下是一個基本的流程,幫助你理解如何使用NLP來分析文本數(shù)據(jù): 1. 數(shù)據(jù)收集 收集文本數(shù)據(jù) :從各種來源(如社交
    的頭像 發(fā)表于 12-05 15:27 ?1600次閱讀

    自然語言處理與機器學(xué)習(xí)的關(guān)系 自然語言處理的基本概念及步驟

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學(xué)領(lǐng)域的一個分支,它致力于研究如何讓計算機能夠理解、解釋和生成人類語言。機器學(xué)習(xí)(Ma
    的頭像 發(fā)表于 12-05 15:21 ?1994次閱讀

    語音識別與自然語言處理的關(guān)系

    在人工智能的快速發(fā)展中,語音識別和自然語言處理(NLP)成為了兩個重要的技術(shù)支柱。語音識別技術(shù)使得機器能夠理解人類的語音,而自然語言處理則讓機器能夠理解、解釋和生成人類
    的頭像 發(fā)表于 11-26 09:21 ?1514次閱讀

    什么是LLM?LLM在自然語言處理中的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,自然語言處理(NLP)領(lǐng)域迎來了革命性的進步。其中,大型語言模型(LLM)的出現(xiàn),標(biāo)志著我們對語言理解能力的一次飛躍。LLM通過深度學(xué)習(xí)和海量數(shù)據(jù)訓(xùn)練,使得
    的頭像 發(fā)表于 11-19 15:32 ?3673次閱讀

    ASR與自然語言處理的結(jié)合

    ASR(Automatic Speech Recognition,自動語音識別)與自然語言處理(NLP)是人工智能領(lǐng)域的兩個重要分支,它們在許多應(yīng)用中緊密結(jié)合,共同構(gòu)成了自然語言理解和生成的技術(shù)體系
    的頭像 發(fā)表于 11-18 15:19 ?1029次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用

    自然語言處理是人工智能領(lǐng)域的一個重要分支,它致力于使計算機能夠理解、解釋和生成人類語言。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)作為一種強大的模型,在圖像識別和語音處理等領(lǐng)域取
    的頭像 發(fā)表于 11-15 14:58 ?810次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用

    自然語言處理(NLP)是人工智能領(lǐng)域的一個重要分支,它致力于使計算機能夠理解、解釋和生成人類語言。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)因其在處理序列數(shù)據(jù)方面的優(yōu)勢而在NLP中
    的頭像 發(fā)表于 11-15 09:41 ?825次閱讀

    使用LSTM神經(jīng)網(wǎng)絡(luò)處理自然語言處理任務(wù)

    自然語言處理(NLP)是人工智能領(lǐng)域的一個重要分支,它旨在使計算機能夠理解、解釋和生成人類語言。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,特別是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)及其變體——長短期記憶(LSTM)網(wǎng)絡(luò)的出現(xiàn)
    的頭像 發(fā)表于 11-13 09:56 ?1179次閱讀

    自然語言處理的未來發(fā)展趨勢

    隨著技術(shù)的進步,自然語言處理(NLP)已經(jīng)成為人工智能領(lǐng)域的一個重要分支。NLP的目標(biāo)是使計算機能夠理解、解釋和生成人類語言,這不僅涉及到語言的表層形式,還包括
    的頭像 發(fā)表于 11-11 10:37 ?1735次閱讀

    自然語言處理與機器學(xué)習(xí)的區(qū)別

    在人工智能的快速發(fā)展中,自然語言處理(NLP)和機器學(xué)習(xí)(ML)成為了兩個核心的研究領(lǐng)域。它們都致力于解決復(fù)雜的問題,但側(cè)重點和應(yīng)用場景有所不同。 1. 自然語言處理(NLP) 定義:
    的頭像 發(fā)表于 11-11 10:35 ?1560次閱讀

    自然語言處理的應(yīng)用實例

    在當(dāng)今數(shù)字化時代,自然語言處理(NLP)技術(shù)已經(jīng)成為我們?nèi)粘I畹囊徊糠?。從智能手機的語音助手到在線客服機器人,NLP技術(shù)的應(yīng)用無處不在。 1. 語音識別與虛擬助手 隨著Siri、Google
    的頭像 發(fā)表于 11-11 10:31 ?1623次閱讀

    使用LLM進行自然語言處理的優(yōu)缺點

    自然語言處理(NLP)是人工智能和語言學(xué)領(lǐng)域的一個分支,它致力于使計算機能夠理解、解釋和生成人類語言。大型語言模型(LLM)是NLP領(lǐng)域的一
    的頭像 發(fā)表于 11-08 09:27 ?2472次閱讀

    Llama 3 在自然語言處理中的優(yōu)勢

    自然語言處理(NLP)的快速發(fā)展中,我們見證了從基于規(guī)則的系統(tǒng)到基于機器學(xué)習(xí)的模型的轉(zhuǎn)變。隨著深度學(xué)習(xí)技術(shù)的興起,NLP領(lǐng)域迎來了新的突破。Llama 3,作為一個假設(shè)的先進NLP模型,代表了這一
    的頭像 發(fā)表于 10-27 14:22 ?740次閱讀

    AI智能化問答:自然語言處理技術(shù)的重要應(yīng)用

    自然語言處理(NLP)是人工智能領(lǐng)域的一個重要分支,它致力于使計算機能夠理解、解釋和生成人類語言。問答系統(tǒng)作為NLP的一個重要應(yīng)用,能夠精確地解析用戶以自然語言提出的問題,并從包含豐富
    的頭像 發(fā)表于 10-12 10:58 ?1105次閱讀
    AI智能化問答:<b class='flag-5'>自然語言</b><b class='flag-5'>處理</b>技術(shù)的重要應(yīng)用