国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PyTorch翻譯官網(wǎng)教程-FAST TRANSFORMER INFERENCE WITH BETTER TRANSFORMER

這篇具有很好參考價(jià)值的文章主要介紹了PyTorch翻譯官網(wǎng)教程-FAST TRANSFORMER INFERENCE WITH BETTER TRANSFORMER。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

官網(wǎng)鏈接

Fast Transformer Inference with Better Transformer — PyTorch Tutorials 2.0.1+cu117 documentation

使用 BETTER TRANSFORMER 快速的推理TRANSFORMER

本教程介紹了作為PyTorch 1.12版本的一部分的Better Transformer (BT)。在本教程中,我們將展示如何使用更好的Transformertorchtext進(jìn)行生產(chǎn)推理。Better Transformer是一個(gè)具備生產(chǎn)條件fastpath并且可以加速在CPU和GPU上具有高性能的Transformer模型的部署。對(duì)于直接基于PyTorch核心nn.module或基于torchtext的模型,fastpath功能可以透明地工作。

使用PyTorch核心torch.nn.module類TransformerEncoder, TransformerEncoderLayer和MultiHeadAttention的模型,可以通過Better Transformer fastpath 執(zhí)行加速。此外,torchtext已經(jīng)更新為使用核心庫模塊,以受益于fastpath加速。(將來可能會(huì)啟用其他模塊的fastpath執(zhí)行。)

Better Transformer提供兩種類型的加速:

  • 實(shí)現(xiàn)CPU和GPU的Native multihead attention(MHA),提高整體執(zhí)行效率。
  • 利用NLP推理中的稀疏性。由于輸入長度可變,輸入令牌可能包含大量填充令牌,可以跳過處理,從而顯著提高速度。


Fastpath執(zhí)行受制于一些標(biāo)準(zhǔn)。最重要的是,模型必須在推理模式下執(zhí)行,并且在不收集梯度信息的輸入張量上運(yùn)行(例如,使用torch.no_grad運(yùn)行)。

本教程中Better Transformer 特點(diǎn)

  • 加載預(yù)訓(xùn)練模型(1.12之前沒有Better Transformer)
  • 在CPU上并且沒有BT fastpath(僅本機(jī)MHA))的情況下 運(yùn)行和基準(zhǔn)測試推斷
  • 在設(shè)備(可配置)上并且沒有BT fastpath(僅本機(jī)MHA))的情況下 運(yùn)行和基準(zhǔn)測試推斷
  • 啟用稀疏性支持
  • 在設(shè)備(可配置)上并且沒有BT fastpath(僅本機(jī)MHA+稀疏性))的情況下 運(yùn)行和基準(zhǔn)測試推斷

額外的信息

關(guān)于Better Transformer的其他信息可以在PyTorch.Org 博客中找到。A Better Transformer for Fast Transformer Inference.

設(shè)置

加載預(yù)訓(xùn)練模型

我們按照torchtext.models中的說明從預(yù)定義的torchtext模型下載XLM-R模型。我們還將DEVICE設(shè)置為執(zhí)行加速器上的測試。(根據(jù)您的環(huán)境適當(dāng)啟用GPU執(zhí)行。)

import torch
import torch.nn as nn

print(f"torch version: {torch.__version__}")

DEVICE = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")

print(f"torch cuda available: {torch.cuda.is_available()}")

import torch, torchtext
from torchtext.models import RobertaClassificationHead
from torchtext.functional import to_tensor
xlmr_large = torchtext.models.XLMR_LARGE_ENCODER
classifier_head = torchtext.models.RobertaClassificationHead(num_classes=2, input_dim = 1024)
model = xlmr_large.get_model(head=classifier_head)
transform = xlmr_large.transform()

數(shù)據(jù)集搭建

我們設(shè)置了兩種類型的輸入:一個(gè)小的輸入批次和一個(gè)具有稀疏性的大的輸入批次。

small_input_batch = [
               "Hello world",
               "How are you!"
]
big_input_batch = [
               "Hello world",
               "How are you!",
               """`Well, Prince, so Genoa and Lucca are now just family estates of the
Buonapartes. But I warn you, if you don't tell me that this means war,
if you still try to defend the infamies and horrors perpetrated by
that Antichrist- I really believe he is Antichrist- I will have
nothing more to do with you and you are no longer my friend, no longer
my 'faithful slave,' as you call yourself! But how do you do? I see
I have frightened you- sit down and tell me all the news.`

It was in July, 1805, and the speaker was the well-known Anna
Pavlovna Scherer, maid of honor and favorite of the Empress Marya
Fedorovna. With these words she greeted Prince Vasili Kuragin, a man
of high rank and importance, who was the first to arrive at her
reception. Anna Pavlovna had had a cough for some days. She was, as
she said, suffering from la grippe; grippe being then a new word in
St. Petersburg, used only by the elite."""
]

接下來,我們選擇小批量或大批量輸入,對(duì)輸入進(jìn)行預(yù)處理并測試模型。

input_batch=big_input_batch

model_input = to_tensor(transform(input_batch), padding_value=1)
output = model(model_input)
output.shape

最后,我們設(shè)置基準(zhǔn)迭代計(jì)數(shù):

ITERATIONS=10

執(zhí)行

在CPU上并且沒有BT fastpath(僅本機(jī)MHA)的情況下 運(yùn)行和基準(zhǔn)測試推斷

我們在CPU上運(yùn)行模型,并收集概要信息:

  • 第一次運(yùn)行使用傳統(tǒng)方式(“slow path”)執(zhí)行。
  • 第二次運(yùn)行通過使用model.eval()將模型置于推理模式來啟用BT fastpath執(zhí)行,并使用torch.no_grad()禁用梯度收集。

當(dāng)模型在CPU上執(zhí)行時(shí),您可以看到改進(jìn)(其大小取決于CPU模型)。注意,fastpath配置文件顯示了本機(jī)TransformerEncoderLayer實(shí)現(xiàn)aten::_transformer_encoder_layer_fwd.中的大部分執(zhí)行時(shí)間。
?

print("slow path:")
print("==========")
with torch.autograd.profiler.profile(use_cuda=False) as prof:
  for i in range(ITERATIONS):
    output = model(model_input)
print(prof)

model.eval()

print("fast path:")
print("==========")
with torch.autograd.profiler.profile(use_cuda=False) as prof:
  with torch.no_grad():
    for i in range(ITERATIONS):
      output = model(model_input)
print(prof)


?

在設(shè)備(可配置)上并且沒有BT fastpath(僅本機(jī)MHA))的情況下 運(yùn)行和基準(zhǔn)測試推斷

我們檢查BT 稀疏性設(shè)置:

model.encoder.transformer.layers.enable_nested_tensor

我們禁用BT 稀疏性:

model.encoder.transformer.layers.enable_nested_tensor=False


我們在DEVICE上運(yùn)行模型,并收集DEVICE上本機(jī)MHA執(zhí)行的配置文件信息:

  • 第一次運(yùn)行使用傳統(tǒng)方式(“slow path”)執(zhí)行。
  • 第二次運(yùn)行通過使用model.eval()將模型置于推理模式來啟用BT fastpath執(zhí)行,并使用torch.no_grad()禁用梯度收集。

當(dāng)在GPU上執(zhí)行時(shí),你應(yīng)該看到一個(gè)顯著的加速,特別是對(duì)于包含稀疏性的大輸入批處理設(shè)置:

model.to(DEVICE)
model_input = model_input.to(DEVICE)

print("slow path:")
print("==========")
with torch.autograd.profiler.profile(use_cuda=True) as prof:
  for i in range(ITERATIONS):
    output = model(model_input)
print(prof)

model.eval()

print("fast path:")
print("==========")
with torch.autograd.profiler.profile(use_cuda=True) as prof:
  with torch.no_grad():
    for i in range(ITERATIONS):
      output = model(model_input)
print(prof)

總結(jié)

在本教程中,我們介紹了使用 Better Transformer fastpath快速的transformer 推理,在torchtext 中使用PyTorch核心的 Better Transformer包支持Transformer Encoder 模型。在確認(rèn)BT fastpath可用性的前提下,我們已經(jīng)演示了 Better Transformer 的使用。我們已經(jīng)演示并測試了BT fastpath 執(zhí)行模式·、本機(jī)MHA執(zhí)行和BT稀疏性加速的使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-645124.html

到了這里,關(guān)于PyTorch翻譯官網(wǎng)教程-FAST TRANSFORMER INFERENCE WITH BETTER TRANSFORMER的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PyTorch翻譯官網(wǎng)教程5-BUILD THE NEURAL NETWORK

    Build the Neural Network — PyTorch Tutorials 2.0.1+cu117 documentation 神經(jīng)網(wǎng)絡(luò)由操作數(shù)據(jù)的層/模塊組成,torch.nn 命名空間提供了構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)所需的所有構(gòu)建塊。PyTorch中的每個(gè)模塊都是nn.Module 的子類。神經(jīng)網(wǎng)絡(luò)本身就是一個(gè)由其他模塊(層)組成的模型.這種嵌套結(jié)構(gòu)允許輕松地構(gòu)建

    2024年02月12日
    瀏覽(41)
  • PyTorch翻譯官網(wǎng)教程8-SAVE AND LOAD THE MODEL

    Save and Load the Model — PyTorch Tutorials 2.0.1+cu117 documentation 在本節(jié)中,我們將了解如何通過保存、加載和運(yùn)行模型預(yù)測來持久化模型狀態(tài)。 PyTorch模型將學(xué)習(xí)到的參數(shù)存儲(chǔ)在一個(gè)名為state_dict的內(nèi)部狀態(tài)字典中。這些可以通過 torch.save 方法持久化 輸出 要加載模型權(quán)重,需要首先創(chuàng)

    2024年02月16日
    瀏覽(21)
  • PyTorch翻譯官網(wǎng)教程6-AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRAD

    PyTorch翻譯官網(wǎng)教程6-AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRAD

    Automatic Differentiation with torch.autograd — PyTorch Tutorials 2.0.1+cu117 documentation 當(dāng)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),最常用的算法是方向傳播算法。在該算法中,根據(jù)損失函數(shù)與給定參數(shù)的梯度來調(diào)整模型參數(shù)(權(quán)重)。 為了計(jì)算這些梯度,PyTorch有一個(gè)內(nèi)置的微分引擎,名為torch.autograd。它支持任

    2024年02月16日
    瀏覽(23)
  • PyTorch翻譯官網(wǎng)教程-DEPLOYING PYTORCH IN PYTHON VIA A REST API WITH FLASK

    Deploying PyTorch in Python via a REST API with Flask — PyTorch Tutorials 2.0.1+cu117 documentation 在本教程中,我們將使用Flask部署PyTorch模型,并開放用于模型推斷的REST API。特別是,我們將部署一個(gè)預(yù)訓(xùn)練的DenseNet 121模型來檢測圖像。 這是關(guān)于在生產(chǎn)環(huán)境中部署PyTorch模型的系列教程中的第一篇

    2024年02月16日
    瀏覽(31)
  • PyTorch翻譯官網(wǎng)教程-NLP FROM SCRATCH: CLASSIFYING NAMES WITH A CHARACTER-LEVEL RNN

    PyTorch翻譯官網(wǎng)教程-NLP FROM SCRATCH: CLASSIFYING NAMES WITH A CHARACTER-LEVEL RNN

    NLP From Scratch: Classifying Names with a Character-Level RNN — PyTorch Tutorials 2.0.1+cu117 documentation 我們將建立和訓(xùn)練一個(gè)基本的字符級(jí)遞歸神經(jīng)網(wǎng)絡(luò)(RNN)來分類單詞。本教程以及另外兩個(gè)“from scratch”的自然語言處理(NLP)教程 NLP From Scratch: Generating Names with a Character-Level RNN 和 NLP From Scratch

    2024年02月12日
    瀏覽(27)
  • PyTorch翻譯官網(wǎng)教程-NLP FROM SCRATCH: GENERATING NAMES WITH A CHARACTER-LEVEL RNN

    PyTorch翻譯官網(wǎng)教程-NLP FROM SCRATCH: GENERATING NAMES WITH A CHARACTER-LEVEL RNN

    NLP From Scratch: Generating Names with a Character-Level RNN — PyTorch Tutorials 2.0.1+cu117 documentation 這是我們關(guān)于“NLP From Scratch”的三篇教程中的第二篇。在第一個(gè)教程中 /intermediate/char_rnn_classification_tutorial 我們使用RNN將名字按其原始語言進(jìn)行分類。這一次,我們將通過語言中生成名字。

    2024年02月13日
    瀏覽(20)
  • GPT最佳實(shí)踐-翻譯官網(wǎng)

    https://platform.openai.com/docs/guides/gpt-best-practices/gpt-best-practices 本指南分享了從 GPT 獲得更好結(jié)果的策略和戰(zhàn)術(shù)。有時(shí)可以結(jié)合使用此處描述的方法以獲得更大的效果。我們鼓勵(lì)進(jìn)行實(shí)驗(yàn)以找到最適合您的方法。 此處演示的一些示例目前僅適用于我們功能最強(qiáng)大的模型 gpt-4 .如果

    2024年02月09日
    瀏覽(46)
  • 【python】python結(jié)合js逆向,讓有道翻譯成為你的翻譯官,實(shí)現(xiàn)本地免費(fèi)實(shí)時(shí)翻譯

    【python】python結(jié)合js逆向,讓有道翻譯成為你的翻譯官,實(shí)現(xiàn)本地免費(fèi)實(shí)時(shí)翻譯

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習(xí)慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構(gòu)師,華為云開發(fā)者社區(qū)專家博主,阿里云開發(fā)者社區(qū)專家博主,CSDN新星創(chuàng)作者等等。 ??《博客》:Python全棧,前后端開發(fā),人工智能,js逆向,App逆

    2024年03月23日
    瀏覽(32)
  • 基于transformer的Seq2Seq機(jī)器翻譯模型訓(xùn)練、預(yù)測教程

    基于transformer的Seq2Seq機(jī)器翻譯模型訓(xùn)練、預(yù)測教程

    機(jī)器翻譯(Machine Translation, MT)是一類將某種語言(源語言,source language)的句子 x x x 翻譯成另一種語言(目標(biāo)語言,target language)的句子 y y y 的任務(wù)。機(jī)器翻譯的相關(guān)研究早在上世紀(jì)50年代美蘇冷戰(zhàn)時(shí)期就開始了,當(dāng)時(shí)的機(jī)器翻譯系統(tǒng)是基于規(guī)則的,利用兩種語言的單詞、

    2024年02月03日
    瀏覽(19)
  • FAST協(xié)議解析3 FIX Fast Tutorial翻譯 HelloWorld示例

    FAST協(xié)議解析3 FIX Fast Tutorial翻譯 HelloWorld示例

    Fields in FAST do not have a fixed size and do not use a field separator. Instead, there is a notion of a stop bit (the high order bit on each byte of the message acts as a stop bit) signaling the end of the field. All of the above concepts used together allow the sender to compress a message (sometimes as much as 90%) and the receiver to restore the origina

    2024年02月03日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包