在這篇文章中,我們詳細介紹了最近發(fā)布的 NVIDIA 時間序列預(yù)測平臺( TSPP ),這是一個設(shè)計用于輕松比較和實驗預(yù)測模型、時間序列數(shù)據(jù)集和其他配置的任意組合的工具。 TSPP 還提供了探索超參數(shù)搜索空間的功能,使用分布式訓練和自動混合精度( AMP )運行加速模型訓練,并在NVIDIA Triton 推理服務(wù)器上加速和運行加速模型格式的推理。
事實證明,在理解和管理復雜系統(tǒng)(包括但不限于電網(wǎng)、供應(yīng)鏈和金融市場)時,使用以前的值準確預(yù)測未來的時間序列值至關(guān)重要。在這些預(yù)測應(yīng)用中,預(yù)測精度的單位百分比提高可能會產(chǎn)生巨大的財務(wù)、生態(tài)和社會影響。除了需要精確之外,預(yù)測模型還必須能夠在實時時間尺度上運行。
圖 1 :典型滑動窗口時間序列預(yù)測問題的描述。每個滑動窗口都由時間序列數(shù)據(jù)組成,這些數(shù)據(jù)分為過去和未來兩部分。
滑動窗口預(yù)測問題,如圖 1 所示,涉及使用先前的數(shù)據(jù)和未來值的知識來預(yù)測未來的目標值。傳統(tǒng)的統(tǒng)計方法,如 ARIMA 及其變體,或 Holt-Winters 回歸,長期以來一直用于執(zhí)行這些任務(wù)的回歸。然而,隨著數(shù)據(jù)量的增加和回歸所要解決的問題變得越來越復雜, 深度學習方法已經(jīng)證明它們能夠有效地表示和理解這些問題。
盡管出現(xiàn)了深度學習預(yù)測模型,但從歷史上看,還沒有一種方法可以有效地在任意一組數(shù)據(jù)集中試驗和比較時間序列模型的性能和準確性。為此,我們很高興公開開源 NVIDIA 時間序列預(yù)測平臺 。
什么是 TSPP ?
時間序列預(yù)測平臺是一個端到端的框架,使用戶能夠訓練、調(diào)整和部署時間序列模型。其分層配置系統(tǒng)和豐富的功能規(guī)范 API 允許輕松集成和試驗新模型、數(shù)據(jù)集、優(yōu)化器和指標。 TSPP 設(shè)計用于香草 PyTorch 型號,對云或本地平臺不可知。
圖 2 :NVIDIA 時間序列預(yù)測平臺的基本架構(gòu)。 CLI 向 TSPP 啟動器提供輸入,后者實例化訓練所需的對象(模型、數(shù)據(jù)集等),并運行指定的實驗以生成性能和準確性結(jié)果。
TSPP 如圖 2 所示,以命令行控制的啟動器為中心。根據(jù)用戶對 CLI 的輸入,啟動器可以實例化 hyperparameter 管理器,該管理器可以并行運行一組訓練實驗,也可以通過創(chuàng)建所描述的組件(如模型、數(shù)據(jù)集、度量等)來運行單個實驗。
支持的模型
TSPP 默認支持 NVIDIA 優(yōu)化時間融合變壓器 ( TFT )。在 TSPP 中, TFT 訓練可以使用多 GPU 訓練、自動混合精度和指數(shù)移動權(quán)重平均來加速??梢允褂蒙鲜鐾评砗筒渴鸸艿啦渴鹉P?。
TFT 模型是一種混合架構(gòu),將 LSTM 編碼和可解釋 transformer 注意層結(jié)合在一起。預(yù)測基于三種類型的變量:靜態(tài)(給定時間序列的常數(shù))、已知(整個歷史和未來提前知道)、觀察(僅歷史數(shù)據(jù)已知)。所有這些變量都有兩種類型:分類變量和連續(xù)變量。除了歷史數(shù)據(jù),我們還向模型提供時間序列本身的歷史值。
通過學習嵌入向量,將所有變量嵌入高維空間。范疇變量嵌入是在嵌入離散值的經(jīng)典意義上學習的。該模型為每個連續(xù)變量學習一個向量,然后根據(jù)該變量的值進行縮放,以便進一步處理。下一步是通過變量選擇網(wǎng)絡(luò)( VSN )過濾變量,該網(wǎng)絡(luò)根據(jù)輸入與預(yù)測的相關(guān)性為輸入分配權(quán)重。靜態(tài)變量用作其他變量的變量選擇上下文,以及 LSTM 編碼器的初始狀態(tài)。
編碼后,變量被傳遞給多頭注意層(解碼器),從而產(chǎn)生最終的預(yù)測。整個體系結(jié)構(gòu)與剩余連接交織在一起,門控機制允許體系結(jié)構(gòu)適應(yīng)各種問題。
圖 3 : TFT 架構(gòu)圖: Bryan Lim 、 Sercan O.Arik 、 Nicolas Loeff 、 Tomas Pfister ,來自可解釋多地平線時間序列預(yù)測的時間融合轉(zhuǎn)換器, 2019 年。
加速訓練
在使用深度學習模型進行實驗時,訓練加速可以極大地增加在給定時間內(nèi)可以進行的實驗迭代次數(shù)。時間序列預(yù)測平臺提供了通過自動混合精度、多 GPU 訓練和指數(shù)移動權(quán)重平均的任意組合來加速訓練的能力。
訓練快速開始
一旦進入 TSPP 容器,運行 TSPP 就很簡單,只需結(jié)合數(shù)據(jù)集、模型和其他您想要使用的組件調(diào)用啟動器。例如,要使用電力數(shù)據(jù)集訓練 TFT ,我們只需調(diào)用:
Python launch_tspp.py dataset=electricity model=tft criterion=quantile
生成的日志、檢查點和初始配置將保存到輸出中。有關(guān)包含更復雜工作流的示例,請參考 repository 文檔。
自動混合精度
自動混合精度( AMP )是深度學習培訓的一種執(zhí)行模式,適用的計算以 16 位精度而不是 32 位精度計算。 AMP 執(zhí)行可以極大地加快深度學習訓練,而不會降低準確性。 AMP 包含在 TSPP 中,只需在啟動呼叫中添加一個標志即可啟用。
多 GPU 訓練
多 GPU 數(shù)據(jù)并行訓練通過在所有可用 GPU 上并行運行模型計算來增加全局批量大小,從而加速模型訓練。這種方法可以在不損失模型精度的情況下大大縮短模型訓練時間,尤其是在使用了許多 GPU 的情況下。它通過 PyTorch DistributedDataParallel 包含在 TSPP 中,只需在啟動調(diào)用中添加一個元素即可啟用。
指數(shù)移動加權(quán)平均
指數(shù)移動加權(quán)平均是一種技術(shù),它維護一個模型的兩個副本,一個通過反向傳播進行訓練,另一個模型是第一個模型權(quán)重的加權(quán)平均。在測試和推理時,平均權(quán)重用于計算輸出。實踐證明,這種方法可以縮短收斂時間,提高收斂精度,但代價是模型 GPU 內(nèi)存需求翻倍。 EMWA 包含在 TSPP 中,只需在啟動調(diào)用中添加一個標志即可啟用。
沒有超參數(shù)
模型超參數(shù)調(diào)整是深度學習模型的模型開發(fā)和實驗過程中必不可少的一部分。為此, TSPP 包含與 Optuna 超參數(shù)搜索庫的豐富集成。用戶可以通過指定要搜索的超參數(shù)名稱和分布來運行廣泛的超參數(shù)搜索。一旦完成, TSPP 可以并行運行多 GPU 或單 GPU 試驗,直到探索出所需數(shù)量的超參數(shù)選項。
搜索完成時, TSPP 將返回最佳單次運行的超參數(shù),以及所有運行的日志文件。為了便于比較,日志文件是用NVIDIA DLLOGER 生成的,并且易于搜索,并且與張量板繪圖兼容。
可配置性
TSPP 中的可配置性由 Facebook 提供的開源庫 Hydra 驅(qū)動。 Hydra 允許用戶使用運行時組合的 YAML 文件定義分層配置系統(tǒng),使啟動運行簡單到聲明“我想用這個數(shù)據(jù)集嘗試這個模型”。
特性規(guī)范
特征規(guī)范包含在配置的數(shù)據(jù)集部分,是時間序列數(shù)據(jù)集的標準描述語言。它對每個表格特征的屬性進行編碼,其中包含關(guān)于未來是已知的、觀察到的還是靜態(tài)的、特征是分類的還是連續(xù)的以及更多可選屬性的信息。這種描述語言為模型提供了一個框架,可以根據(jù)任意描述的輸入自動配置自己。
組件集成
向 TSPP 添加一個新的數(shù)據(jù)集非常簡單,只需為其創(chuàng)建一個功能規(guī)范并描述數(shù)據(jù)集本身。一旦定義了特征規(guī)范和其他一些關(guān)鍵值,與 TSPP 集成的模型將能夠根據(jù)新的數(shù)據(jù)集進行配置。
將新模型添加到 TSPP 只需要模型期望特性規(guī)范提供的數(shù)據(jù)位于正確的通道中。如果模型正確地解釋了功能規(guī)范,那么模型應(yīng)該與集成到 TSPP 、過去和未來的所有數(shù)據(jù)集一起工作。
除了模型和數(shù)據(jù)集, TSPP 還支持任意組件的集成,例如標準、優(yōu)化器和目標度量。通過使用 Hydra 使用 config 直接實例化對象,用戶可以集成他們自己的定制組件,并在 TSPP 發(fā)布時使用該規(guī)范。
推理和部署
推理是任何 Machine Learning 管道的關(guān)鍵組成部分。為此, TSPP 內(nèi)置了推理支持,可與平臺無縫集成。除了支持本機推理, TSPP 還支持將轉(zhuǎn)換后的模型單步部署到 NVIDIA Triton 推理服務(wù)器。
NVIDIA Triton 型號導航器
TSPP 為 NVIDIA Triton 型號導航器 。兼容的模型可以輕松轉(zhuǎn)換為優(yōu)化的格式,包括 TorchScript 、 ONNX 和 NVIDIA TensorRT 。在同一步驟中,這些轉(zhuǎn)換后的模型將部署到 NVIDIA Triton 推理服務(wù)器 。甚至可以選擇在單個步驟中對給定模型進行剖面分析和生成舵圖。例如,給定一個 TFT 輸出文件夾,我們可以通過使用以下命令導出到 ONNX ,將模型轉(zhuǎn)換并部署為 fp16 中的 NVIDIA TensorRT 格式:
Python launch_deployment.py export=onnx convert=trt config.inference.precision=fp16 config.evaluator.checkpoint=/path/to/output/folder/
TFT 模型
我們在兩個數(shù)據(jù)集上對 TSPP 內(nèi)的 TFT 進行了基準測試: UCI 數(shù)據(jù)集存儲庫中的電力負荷(電力)數(shù)據(jù)集和 PEMs 流量數(shù)據(jù)集(流量)。 TFT 在兩個數(shù)據(jù)集上都取得了很好的結(jié)果,在兩個數(shù)據(jù)集上都實現(xiàn)了最低的可見誤差,并證實了 TFT 論文作者的評估。
表 1 :
訓練表現(xiàn)
圖 4 和圖 5 分別顯示了電力和交通數(shù)據(jù)集上 TFT 的每秒吞吐量。每個批次大小為 1024 ,包含來自同一數(shù)據(jù)集中不同時間序列的各種時間窗口。使用自動混合精度計算了 100 次運行。顯然, TFT 在 A100 GPU 上具有優(yōu)異的性能和可擴展性,尤其是與在 96 核 CPU 上執(zhí)行相比。
圖 4:GPU 上電力數(shù)據(jù)集的 TFT 訓練吞吐量與 CPU 的對比。 GPU : 8x Tesla A100 80 GB 。 CPU:Intel ( R ) Xeon ( R ) Platinum 8168 CPU @ 2.70GHz ( 96 線程)。
圖 5 。 GPU 上流量數(shù)據(jù)集的 TFT 訓練吞吐量與 CPU 。 GPU : 8x Tesla A100 80 GB 。 CPU:Intel ( R ) Xeon ( R ) Platinum 8168 CPU @ 2.70GHz ( 96 線程)。
訓練時間
圖 6 和圖 7 分別顯示了 TFT 在電力和交通數(shù)據(jù)集上的端到端訓練時間。每個批次大小為 1024 ,包含來自同一數(shù)據(jù)集中不同時間序列的各種時間窗口。使用自動混合精度計算 100 次完成的運行。在這些實驗中,在 GPU 上, TFT 的訓練時間為分鐘,而 CPU 的訓練時間約為半天。
圖 6:TFT 在 GPU 上的電力數(shù)據(jù)集上的端到端訓練時間與 CPU 的比較。 GPU : 8x Tesla A100 80 GB 。 CPU:Intel ( R ) Xeon ( R ) Platinum 8168 CPU @ 2.70GHz ( 96 線程)。
圖 7:TFT 在 GPU 上的流量數(shù)據(jù)集上的端到端訓練時間與 CPU 的比較。 GPU : 8x Tesla A100 80 GB 。 CPU:Intel ( R ) Xeon ( R ) Platinum 8168 CPU @ 2.70GHz ( 96 線程)。
推理性能
圖 8 和圖 9 展示了電力數(shù)據(jù)集上不同批量大小的 A100 80GB GPU 與 96 核 CPU 的相對單設(shè)備推理吞吐量和平均延遲。由于較大的批量大小通常產(chǎn)生更大的推斷吞吐量,所以我們考慮 1024 元素批處理結(jié)果,其中顯而易見的是, A100 GPU 具有令人難以置信的性能,每秒處理大約 50000 個樣本。此外,更大的批量往往會導致更高的延遲,從 CPU 值可以明顯看出,這似乎與批量成正比。相比之下,與 CPU 相比, A100 GPU 具有接近恒定的平均延遲。
圖 8:TFT 在 GPU vs CPU 上部署到 NVIDIA Triton 推理服務(wù)器容器 21.12 時的電量數(shù)據(jù)集吞吐量。 GPU :使用 TensorRT 8.2 部署 1x Tesla A100 80 GB 。 CPU :使用 ONNX 部署的雙 AMD Rome 7742 ,總計 128 核@ 2.25 GHz (基本), 3.4 GHz (最大提升)( 256 個線程)。
圖 9:TFT 在 GPU vs CPU 上部署到 NVIDIA Triton 推理服務(wù)器容器 21.12 時,電力數(shù)據(jù)集的平均延遲。 GPU :使用 TensorRT 8.2 部署 1x Tesla A100 80 GB 。 CPU :使用 ONNX 部署的雙 AMD Rome 7742 ,總計 128 核@ 2.25 GHz (基本), 3.4 GHz (最大提升)( 256 個線程)。
端到端示例
結(jié)合前面的例子,我們演示了 TFT 模型在電力數(shù)據(jù)集上的簡單訓練和部署。我們首先從源代碼構(gòu)建并啟動 TSPP 容器:
cd DeeplearningExamples/Tools/PyTorch/TimeSeriesPredictionPlatform source scripts/setup.sh docker build -t tspp . docker run -it --gpus all --ipc=host --network=host -v /your/datasets/:/workspace/datasets/ tspp bash
接下來,我們使用電力數(shù)據(jù)集 TFT 和分位數(shù)損耗啟動 TSPP 。我們還讓 10 年的歷次訓練負擔過重。一旦對模型進行了培訓,就會在 outputs /{ date }/{ time }中創(chuàng)建日志、配置文件和經(jīng)過培訓的檢查點,在本例中為 outputs / 01-02-2022 /:
Python launch_tspp.py dataset=electricity model=tft criterion=quantile config.trainer.num_epochs=10
使用檢查點目錄,可以將模型轉(zhuǎn)換為 NVIDIA TensorRT 格式,并部署到 NVIDIA Triton 推理服務(wù)器。
Python launch_deployment.py export=onnx convert=trt config.evaluator.checkpoint=/path/to/checkpoint/folder/
可利用性
NVIDIA 時間序列預(yù)測平臺提供從訓練到時間序列模型的推斷的端到端 GPU 加速。平臺中包含的參考示例經(jīng)過優(yōu)化和認證,可在 NVIDIA DGX A100 和 NVIDIA 認證系統(tǒng)上運行。
關(guān)于作者
Kyle Kranen 是NVIDIA 的深度學習軟件工程師。他在加利福尼亞大學伯克利分校獲得電氣工程和計算機科學學士學位。在NVIDIA ,他的研究目前集中在推薦系統(tǒng)和時間序列建模上。
Pawel Morkisz 是一位深度學習算法經(jīng)理。他擁有計算數(shù)學博士學位。在NVIDIA ,他專注于推動時間序列和推薦系統(tǒng)的深度學習算法。
Carl (Izzy) Putterman 最近加入 NVIDIA ,擔任深度學習算法工程師。他畢業(yè)于加利福尼亞大學,伯克利在應(yīng)用數(shù)學和計算機科學學士學位。在 NVIDIA ,他目前致力于時間序列建模和圖形神經(jīng)網(wǎng)絡(luò),重點是推理。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5080瀏覽量
103829 -
深度學習
+關(guān)注
關(guān)注
73文章
5518瀏覽量
121608
發(fā)布評論請先 登錄
相關(guān)推薦
摩爾線程宣布成功部署DeepSeek蒸餾模型推理服務(wù)
高效大模型的推理綜述
![高效大<b class='flag-5'>模型</b>的<b class='flag-5'>推理</b>綜述](https://file1.elecfans.com/web1/M00/F5/1C/wKgZoWc2xI2AKaYzAAAlYXaG7es830.png)
FPGA和ASIC在大模型推理加速中的應(yīng)用
![FPGA和ASIC在大<b class='flag-5'>模型</b><b class='flag-5'>推理</b><b class='flag-5'>加速</b>中的應(yīng)用](https://file1.elecfans.com/web2/M00/0B/59/wKgaomcgfcaAXbbKAAA3sbCK-zU385.png)
AMD助力HyperAccel開發(fā)全新AI推理服務(wù)器
![AMD助力HyperAccel開發(fā)全新AI<b class='flag-5'>推理</b><b class='flag-5'>服務(wù)器</b>](https://file1.elecfans.com/web2/M00/07/9F/wKgaombqLxCAdBaIAAGAxEvslZA335.png)
評論