成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

英偉達NeMo框架在AI領域的綜合應用與優勢總結

人工智能
本文將分享英偉達針對 Speech AI 和大模型開發的訓練框架 NeMo。NeMo 工具包主要包括 ASR、NLP 和 TTS 三個領域的模型和功能特性。我們提取了這三個模塊的特性,并在 PyTorch 框架中實現了良好的功能提升,這些提升已經集成到 NeMo 的 Core 部分。

一、NeMo 框架介紹

圖片

NVIDIA NeMo 是基于 PyTorch 和 PyTorch Lightning 的一個開源訓練框架,源代碼完全公開在 GitHub 上。NeMo 的主要目標是使 AI 開發者能夠快速構建對話式 AI 模型并開發相關應用。

NeMo 工具包主要包括 ASR、NLP 和 TTS 三個領域的模型和功能特性。我們提取了這三個模塊的特性,并在 PyTorch 框架中實現了良好的功能提升,這些提升已經集成到 NeMo 的 Core 部分。

  • NeMo Core

NeMo Core 模塊為 ASR、NLP 和 TTS 等應用提供了通用、便捷且易于使用的構建方式,使 AI 開發者能夠迅速進行模型構建和訓練。無論是模型構建,還是與訓練過程相關的分布式訓練、checkpoint 保存以及訓練參數設置等,都集成在 NeMo Core 模塊中。

  • NeMo Collection

基于 NeMo Core 的通用設計,我們針對對話式 AI 的三個方向 ASR、NLP 和 TTS,分別進行了模型和訓練功能的集成,稱為 NeMo Collection,每個 collection 都包含與特定領域相關的模塊和模型。

  • NeMo Megatron

除了針對不同領域的集合(collection),NeMo 還在 NLP 領域特別支持大模型的相關訓練。以前,英偉達有一個流行的大模型訓練框架叫做 Megatron LM,后來我們將其中與大模型并行訓練相關的技術遷移到了 NeMo 中,即 NeMo Megatron 模塊。使得在 NeMo 中進行大模型相關訓練更加方便。

  • 可高效使用 GPU

除了對 Speech AI 相關模型和訓練過程的支持,NeMo 還對英偉達 GPU 在整個訓練過程中進行了優化。這樣在使用 NeMo 進行訓練時,可以在英偉達 GPU 上高效地進行訓練,大幅縮短整個模型訓練的時間。

NeMo 是一個開源工具包,大家可以直接在 GitHub 上查看 NeMo 的開發文檔和代碼。以上是對 NeMo 的概述,接下來將介紹在 NeMo 中針對 ASR 和 TTS 模型的訓練過程。

二、使用 NeMo 處理 ASR 和 TTS 任務

1. ASR 訓練

NeMo 的主要開發目標之一是使 ASR 訓練變得非常容易。主要包括三個步驟。

圖片

首先是數據集的準備。因為 ASR 訓練通常涉及大量音頻數據,用戶只需準備相關數據集,并提供一個符合 NeMo 格式的數據集 manifest 文件即可。在這個 manifest 文件中,用戶需要指定每條數據的音頻文件路徑以及對應的文本。有了這個 jsonl 格式的數據集文件后,用戶就可以通過 NeMo 的配置文件指定訓練過程中的相關配置參數。

上圖中綠色方框展示了 NeMo 中使用的配置文件示例,主要需要指定訓練、驗證和測試數據集,批處理大小、優化器、GPU 數量、訓練時長和數據精度等參數,以及保存 checkpoint 的位置和方法等。這些通常是訓練過程中需要指定的參數。

準備好數據集的 jsonl 文件和相應的配置文件后,就可以在 NeMo 中進行 ASR 訓練了。在 NeMo 的 example 文件夾下,提供了 ASR 的訓練腳本,例如 speech to text 的 CTC 模型訓練腳本。只需在命令行中運行這個腳本并配置相應的配置文件即可。

總的來說,在 NeMo 中進行 ASR 訓練非常簡單,已經為大家準備好了相應的訓練腳本,只需配置數據集和配置文件即可。

圖片

在 NeMo 中,針對語音方面,不僅提供了豐富的 ASR 模型訓練示例供大家直接使用,還準備了許多其他與 ASR 或語音相關的任務的訓練腳本,使大家能夠輕松地使用 NeMo 進行各種語音處理任務,包括語音預訓練、VAD 檢測、語音翻譯以及語音分類等。與 ASR 訓練過程類似,只需在 NeMo 的示例文件夾中找到相應的語音處理任務的訓練腳本,準備好數據集,進行配置文件的設置,就可以開始語音任務的訓練。

除了提供現成的 ASR 和其他語音處理任務的訓練腳本,為了進一步方便大家進行 ASR 或其他語音任務的開發,NeMo 中還增加了對預訓練 ASR 模型的支持。

圖片

這樣可以直接在 NeMo 中加載這些預訓練好的 ASR 模型進行進一步的微調,或者在某些情況下進行推理應用。這些預訓練模型保存在 NVIDIA GPU Cloud 上,用戶可以在 NVIDIA GPU Cloud 網站上注冊賬號,然后在 NeMo 中下載和使用這些模型。英偉達為用戶提供了許多預訓練好的 ASR 模型:

  • 涵蓋多種語言:英語、法語、意大利語、西班牙語、中文、德語等。
  • 不同的模型結構:囊括了業界流行的各種 ASR 模型結構,如 Fastconformer、Squeezeformer,以及一些 CTC、Transducer、不同的損失函數等等。
  • 預訓練語音任務:除了 ASR 模型,英偉達還在 NGC 上為用戶提供了其他一些語音任務(語音分類任務、說話人識別任務等)的預訓練 checkpoint,用戶可以直接下載并使用。

英偉達提供的這些開源 ASR 模型在 NeMo 中可以直接使用,并且它們都展現出非常出色的語音識別效果。

圖片

這張圖中截取了最新的 HuggingFace Audio Open ASR Leaderboard 上的結果。

通過這張表,大家可以發現排名前幾位的 ASR 模型中有數個來自英偉達,它們采用了不同的結構和損失函數,例如 Fastconformer、Conformer、CTC 和 Transducer,代表了模型的多樣性。

無論采用何種模型結構和損失函數,這些模型在 Leaderboard 上都取得了非常好的性能,包括平均詞錯誤率(WER)和實時率(RTF)。因此,歡迎大家使用 NeMo 框架,從英偉達的 NGC 上下載這些預訓練 ASR 模型,在 NeMo 中進行進一步的微調或推理應用。

圖片

業界一些最新的 ASR 模型,NeMo 中都提供了支持,例如常見的 Conformer 和最新的 Fastconformer、Squeezeformer 等模型結構,在 NeMo 中都有現成的模型配置和相應的預訓練 checkpoint 供下載使用。

在解碼器和損失函數方面,NeMo 實現了常見的算法,包括 CTC、RNNT、Transduser 等,還包括 CTC 和 RNN transducer 混合的損失計算。此外,針對傳統的 CTC,NeMo 提出了多種變種實現方式,其中一些更適用于流式語音識別,能夠提高識別精度和流式識別效果。

對于英偉達最新的 ASR 研究成果,NeMo 也提供了支持。這里介紹兩個最新的研究成果。

首先是 Multi-blank Transducer 算法,相對于傳統的 Transducer 算法,引入了一個能夠代表多個 blank 的新符號,通過這個符號可以表示語音中多個幀的空白幀。這種表示方式可以顯著提升推理時的計算速度,并可在多個測試集上提高識別精度。

另一個是 Token and Duration Transducers 算法,它是針對傳統的 RNN transducer 的一種改進方法,可以同時預測每一幀的 token 和 duration。這種方式,通過額外的 duration 信息,可以提升 transducer 解碼的速度,并提供更準確的識別精度。

對于這兩項新的英偉達在 ASR 方面的研究工作感興趣的同學,可以詳細閱讀這兩篇工作,相應的代碼實現也可以在 NeMo 中找到。歡迎大家在 NeMo 中嘗試這兩個來自英偉達的最新 ASR 的研究成果。

NeMo 中還提供了一些 ASR 訓練過程中可能用到的工具,其中值得一提的一個工具是 Speech Data Explorer。

圖片

Speech Data Explorer 的主要作用是方便用戶對其語音訓練數據進行分析和理解。可以對整個數據集的文本信息進行統計,生成音頻頻譜的直方圖。并且可以對其音頻數據集進行詳細分析,包括觀察其視圖形狀、頻譜信息,并帶有一個音頻播放器,用戶可以通過該音頻播放器聆聽該音頻的實際聲音。同時,還可以對訓練結果進行分析。使用 NeMo 進行模型訓練時,在訓練過程中可能會生成一些測試結果文件。這些結果文件也可以通過 Speech Data Explorer 導入,使用戶能夠方便地對模型訓練過程中的結果進行分析,包括計算識別錯誤率,顯示識別結果等。

2. 對 TTS 任務的支持

圖片

通常,TTS 模型的訓練涉及多個模塊,如上圖右側圖所示,其中包括文本歸一化模塊、G2P 模塊(將文本轉換為發音單元或音素)以及頻譜生成和波形生成模塊。

NeMo 對 TTS 整個訓練 pipeline 的各個模塊都提供了良好的支持:

  • 模型:NeMo 支持業界常見的頻譜生成模型,如 FastPitch、RAD-TTS 模型和 Tacotron2 模型。
  • 聲碼器:NeMo 支持 Hifi-GAIN 模型、UnivNet 模型和 WaveGlow 模型。
  • 開源模型:在 NeMo 中還有一些由其他開發者貢獻的開源模型實現,其中包括端到端模型 VITS,它結合了頻譜生成和聲碼器兩種模型的共同訓練,以實現更好的音頻生成效果。
  • 預訓練模型:NeMo 還在英偉達的 NGC 上為用戶提前準備了一些預訓練的 checkpoint,用戶可以直接在 NeMo 中加載并用于推理或進一步調優。

三、NeMo 對 NLP 和 LLM 的支持

NeMo 支持多種 NLP 訓練任務和 LLM 訓練。尤其是大模型訓練相關的功能在今年有了很大的改進。

圖片

支持的 NLP 任務包括:機器翻譯、標點模型、標記分類,以及意圖和槽位識別等。

支持大模型訓練:引入了高效的模型并行方法、分布式優化實現、混合精度等特性,以提高在 GPU 上訓練大模型的效率,以及支持微調功能。

1. 3D 模型并行訓練

為了高效訓練大模型,我們提供了一種 3D 模型并行的方法。

圖片

所謂的 3D 指的是三個不同維度的并行:Tensor Parallelism、Pipeline Parallelism 和 Sequence Parallelism。通過這些不同的模型并行方式,可以在多個 GPU 上加載大型模型,實現更大規模的 LLM 訓練。通過這種高效且特殊優化的實現,即使在使用成百上千的 GPU 進行大型模型訓練時,NeMo 也能保持高效的訓練效率。

在使用 NeMo 進行大型模型訓練時,訓練效率能夠實現近似于線性的并行效率提升。

圖片

在進行大型模型訓練時,訓練所需的時間與使用的 GPU 數量成反比。無論是訓練較小的 5B 模型還是最大的 175B 模型,其在成百個 GPU 上的模型并行效率都非常高,訓練時間基本上與使用的 GPU 數量成反比。也就是說,當 GPU 數量翻倍時,NeMo 可以確保達到訓練時間減半的效果。這展示了 NeMo 在針對大型模型訓練方面的高效算法和實現。

2. NeMo 中的預訓練大模型

在 NeMo 中,提供了預訓練的大模型,使用戶能夠在一些場景中直接在這些預訓練好的大模型的 checkpoint 上進行進一步地使用或微調等工作。

圖片

目前,在 NeMo 中,開源了一系列不同階段訓練手段產生的 8B 大小的大模型,包括 Nemotron 8B 不同版本的模型。這些版本包括從預訓練而來的基礎模型,經過指令微調的 SFT 模型,以及經過強化學習對齊人類偏好的版本。此外,還有通過我們英偉達提出的 SteerLM 對齊方法對齊的版本。我們還提供了 QA 版本的模型,以進行額外的優化。

這一系列 8B 的 checkpoint 都是在包含大約 3.5T token 的大規模數據上訓練得到的,訓練數據涵蓋了約 53 種人類語言和約 37 種編程語言。這些 8B 的模型都可以從英偉達的 NGC 網站或 HuggingFace 上下載獲取。

圖片

NeMo 中還提供了一個名為"Llama2-70B-SteerLM-Chat"的開源模型。這個模型基于開源的 Llama2-70B 模型,在其基礎上使用了英偉達提出的 SteerLM 的對齊方式,進行了基于人類反饋的進一步微調。

通過 SteerLM 的對齊微調,我們發現相對于原始的 Llama2-70B CHAT 模型,它在 MT-Bench Leaderboard 上取得了更高的分數,表現更好。這個模型也已經開源,可以在 HuggingFace 上找到,您可以從 HuggingFace 下載并加載到 NeMo 中使用,或者直接在英偉達的 AI Playground 網站上在線試用。

關于 SteerLM 對齊算法的詳細信息,可以參考相應的論文。SteerLM 是一種比強化學習更簡單且更易用的對齊方法。

3. NeMo 中的微調方法

圖片

在 NeMo 中還提供了許多用于大型模型微調的方法。目前在業界,大型模型微調的方法可以從簡單到復雜大致分為四類:

  • 最簡單的是直接進行 few-shot 或系統消息的 Prompt Engineering。
  • 稍微進一步的是 Prompt Tuning 或 PTuning 的方法,它們會對 Prompt 進行額外的學習。
  • 更復雜一些的是 Parameter Efficient Fine-Tuning 的方法,即只對模型新增的一小部分額外權重進行微調,包括各種 Adapters 方法或 LoRA 都屬于這種微調。
  • 更進一步的是,為了取得更好的效果,對整個模型進行全參數微調,包括 SFT、強化學習等。

這些從簡單到復雜的大型模型微調方法,目前在 NeMo 中都有很好的支持,可以在NeMo 中加載開源的 Pre-trained checkpoint,并根據具體場景進行進一步的微調。

4. NeMo Aligner

前面提到的是一些比較簡單的微調方法,可以直接在 NeMo 中完成,但對于一些較為復雜的大模型微調方法,在 NeMo 中提供了額外的支持,并整合到了 NeMo Aligner 中。

圖片

在 NeMo Aligner 中,實現了包括強化學習等較為復雜的全參數模型微調方法。通過 NeMo Aligner,我們設計了高效但稍微復雜的訓練模式,該訓練模式能夠確保在成百甚至上千個 GPU 上實現相對高效的微調計算效率。結合我們在預訓練時嘗試過的一些模型并行方法,包括 tensor 并行或 pipeline 并行等,通過 NeMo Aligner,我們提供了對這些方法的良好支持。

目前,NeMo Aligner 仍處于早期版本,其中的微調功能將不斷增加。您可以專門前往 NeMo Aligner 的 GitHub 倉庫,嘗試使用這些更高級或更復雜的大模型微調方法。

5. 端到端的大模型開發 - NeMo Framework

剛才提到的無論是 NeMo 還是 NeMo Aligner,都是專注于大模型訓練的功能支持。如果我們考慮的更多,整個訓練的流程實際上還包括一些前后處理的步驟,包括數據處理、模型推理監控等等。NVIDIA 提供了相應的工具,助力端到端的大模型開發。這些功能當前都集成在 NeMo Framework 框架中。

圖片

NeMo Framework 不僅包含模型訓練,還包括預訓練時的數據處理、訓練后的推理加速以及在部署時監控模型輸出等等。相較于 NeMo,NeMo Framework 提供了一個更加全面、更加完整的大模型開發全流程的支持。您可以訪問 NeMo Framework 的網站申請試用。除了對大模型的支持之外,NeMo Framework 還包含對一些流行的多模態模型的支持,包括 Stable Diffusion、Vision Transformer 等等。當前,對于多模態的支持仍處于早期訪問階段。

四、總結

簡要總結一下 NVIDIA 的 NeMo 框架。

圖片

NVIDIA NeMo 是一個基于 PyTorch 的開源框架,專注于語音人工智能和大型模型的訓練。NeMo 框架提供了多項功能,方便用戶快速構建、訓練以及進行對話式人工智能模型的微調。在 NeMo 中,為自動語音識別(ASR)和文本到語音合成(TTS)提供了業界流行的多個模型和相應的算法支持。此外,還提供了許多預訓練的 checkpoint,方便用戶直接下載和使用。

NeMo 框架專注于支持大模型的大規模訓練。通過 NeMo Megatron,確保即使在數百甚至上千個 GPU 上,大模型的訓練過程仍然能夠高效進行。此外,NVIDIA 還開源了一系列大小為 8B 的大模型。同時,針對開源的 Llama2-70B 模型,提供了一個額外的對齊版本,用戶可以在 NVIDIA GPU Cloud(NGC)或 HuggingFace 上下載并嘗試使用。另外,還提供了 NeMo Aligner 工具包,和端到端大模型訓練框架 NeMo Framework。

以上就是本次分享的內容,謝謝大家。

五、問答環節

Q1:Device 和 Epoch 如何設置大小更合適?

A1:Device 主要是在訓練時設置所使用的 GPU 數量。通常情況下,我們希望充分利用所有可用的 GPU,以加快訓練進程。而 Epoch 的選擇可能更多地取決于數據集的大小和模型的規模。通常,我們會設置一個初始較大的 Epoch 值,然后在訓練過程中通過監控訓練損失或驗證精度來進行調整。當模型訓練趨于收斂時,可以提前結束訓練。

Q2:安裝使用 NeMo 的方式都有哪些?

A2:NeMo 目前是在 GitHub 上以開源形式提供的,因此可以直接在 GitHub 上下載源代碼并進行使用。此外,我們還提供了一個 Python 包,可以通過運行 pip install NeMo 來直接安裝 NeMo 包。另外,英偉達還提供了一些預先配置好的 Docker 鏡像,可以在 NGC 上直接下載這些 NeMo 的 Docker 鏡像,這樣使用起來也更加方便。

Q3:對電腦的配置要求是多少

A3:因為 NeMo 主要是基于 Pytorch 和 Pytorch Lightning 底層的這個框架去上層進行上層封裝的,所以在一般的英偉達的 GPU 上都是可以去支持的。并沒有其他的過多要求。

Q4:ASR 和 TTS 框架都能用新的數據微調,那模型框架能修改嗎?

A4:不管是 ASR 還是 TTS,您都可以使用英偉達提供的一些預訓練模型,然后在您的新數據上進行微調。此外,如果您希望進行模型框架的更改,也是支持的,不過這個過程可能會稍微復雜一些。您可能需要在代碼層面手動修改模型的結構,以實現對模型框架的修改。

Q5:NeMo 目前是否適用所有的語言類 NLP 類模型,覆蓋的百分比大概多少?

A5:百分比可能不太容易精確計算,但是 NeMo 框架中支持行業內一些主要的云端模型。在語音領域,包括各種 Conformer 模型以及不同的損失函數如 CTC 和 transducer 等,都得到了支持。對于自然語言處理(NLP),NeMo 框架在傳統的 NLP 模型上也提供了良好的支持,包括語音翻譯、BERT、Transformer等。

Q6:LLM 模型訓練有 baseline 實驗的 pipeline 嗎?

A6:可以參閱 NeMo Framework,在那里面有一個比較完整的針對大模型的baseline 的 pipeline,從數據的處理一直到后續的訓練,以及它達到的 loss 情況,還有訓練效率的情況等等,在 NeMo Framework 中都可以獲取到。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2024-07-24 17:37:17

2024-01-10 11:10:36

英偉達AI芯片

2024-09-30 13:31:57

2012-05-10 09:15:47

2012-05-10 10:00:43

2009-06-19 09:52:46

Acegi安全框架Spring框架

2023-11-27 09:59:52

英偉達AI芯片

2022-12-12 10:21:17

AI神經渲染

2022-07-13 11:31:43

量子計算英偉達

2023-05-26 17:15:45

2024-03-22 13:36:51

英偉達微服務

2023-10-13 13:11:58

數據智能

2023-06-14 10:11:14

AMDAI芯片

2023-09-12 10:22:30

英偉達AI芯片

2023-09-28 08:04:39

GPU芯片AI芯片

2024-03-04 00:40:00

英偉達AI引擎

2013-01-10 09:29:13

WLANQos

2024-03-01 15:06:00

人工智能大型語言模型

2023-10-16 10:16:14

芯片英偉達
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999久久久免费精品国产 | 一区二区三区四区不卡 | 亚洲精品一 | 成人h动漫精品一区二区器材 | 欧美日产国产成人免费图片 | 日韩精品在线视频免费观看 | 国产一级片在线观看视频 | 欧美日韩在线一区二区三区 | a级片在线观看 | 超碰人人人人 | 国产日韩欧美 | 激情网站 | 夜夜摸夜夜操 | 亚洲欧美中文日韩在线v日本 | 91福利在线观看 | 91文字幕巨乱亚洲香蕉 | 99re国产精品| 国产乱码精品一品二品 | 亚洲精品在线视频 | 欧美亚洲免费 | 中文字幕一级 | 日日操夜夜操天天操 | 日韩一区二区在线视频 | 福利一区二区在线 | 中文字字幕在线中文乱码范文 | 久久狼人天堂 | 久久久久久久一区 | 国产精品精品视频一区二区三区 | 亚洲综合区 | 国产一级片| 91麻豆蜜桃一区二区三区 | 日韩精品在线看 | 国产精品欧美一区二区三区不卡 | 久久久久久国产精品免费 | 在线观看免费高清av | 999国产视频| 99国产精品99久久久久久 | 羞羞视频在线观看免费观看 | 精品美女视频在线观看免费软件 | 成人欧美日韩一区二区三区 | 午夜精品久久久久久久久久久久久 |