0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用迁移学习定制人工智能深度学习模型

星星科技指导员 来源:星星科技指导员 作者:星星科技指导员 2022-04-01 09:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

从头开始创建一个新的人工智能深度学习模型是一个非常耗费时间和资源的过程。解决这个问题的一个常见方法是采用迁移学习。为了使这一过程更加简单,NVIDIA TAO Toolkit,它可以将工程时间框架从 80 周缩短到 8 周。 TAO 工具包支持计算机视觉和对话 AI ( ASR 和 NLP )用例。

在本文中,我们将介绍以下主题:

  • 安装 TAO 工具包并访问预训练模型
  • 微调预训练语音转录模型
  • 将微调模型导出到 NVIDIA Riva

跟随download the Jupyter notebook。

安装 TAO 工具包并下载预训练模型

在安装 TAO 工具包之前,请确保您的系统上安装了以下组件:

  • Python [3 . 6 . 9]
  • docker ce > 19 . 03 . 5
  • nvidia-DOCKR2 3 . 4 . 0-1

有关安装 nvidia docker 和 docker 的更多信息,请参阅Prerequisites。您可以使用 pip 安装 TAO 工具包。我们建议使用virtual environment以避免版本冲突。

pip3 install nvidia-pyindex pip3 install nvidia-tao

安装完成后,下一步是获得一些经过预训练的模型。 NVIDIA 提供了许多人工智能或机器学习模型,不仅在对话人工智能领域,而且在 NGC 或 NVIDIA GPU 云上的广泛领域。 NGC 目录是一套精心策划的 GPU 优化软件,用于 AI 、 HPC 和可视化。

要从 NGC 下载资源,请使用NGC API key登录注册表。您可以免费创建和使用一个。

Screenshot of the API generation page.

图 1 。获取 NGCAPI 密钥

CitriNet是由 NVIDIA 构建的最先进的自动语音识别( ASR )模型,可用于生成语音转录。您可以从Speech to Text English Citrinet型号卡下载此型号。

wget https://api.ngc.nvidia.com/v2/models/nvidia/tao/speechtotext_english_citrinet/versions/trainable_v1.7/files/speechtotext_english_citrinet_1024.tlt

为了提供流畅的体验,工具包在后台下载并运行 Docker 容器,使用前面提到的规范文件。所有细节都隐藏在 TAO 启动器中。您可以通过定义 JSON 文件~/.tao_mounts.json来指定装载 Docker 容器的首选位置。您可以在Jupyter notebook中找到装载文件。

{ "Mounts":[ { "source": "~/tao/data", "destination": "/data" # The location in which to store the dataset }, { "source": "~/tao/specs", "destination": "/specs" # The location in which to store the specification files }, { "source": "~/tao/results", "destination": "/results" # The location in which to store the results }, { "source": "~/.cache", "destination": "/root/.cache" } ], "DockerOptions":{ "shm_size": "16G", "ulimits": { "memlock": -1, "stack": 67108864 } } }

这样,您就安装了 TAO 工具包,下载了一个经过预训练的 ASR 模型,并指定了 TAO 工具包启动器的安装点。在下一节中,我们将讨论如何使用 TAO 工具包在您选择的数据集上微调此模型。

微调模型

使用 TAO 工具包微调模型包括三个步骤:

  1. 下载规范文件。
  2. 预处理数据集。
  3. 使用超参数进行微调。

图 3 显示了微调模型所需的步骤。

For the ASR use case, there are three key steps: download specs, run preprocessing, and then fine-tune. Download the AN4 dataset and a .tlt model from NGC.

图 2 。 TAO 工具包工作流

步骤 1 :下载规范文件

NVIDIA TAO Toolkit 是一种低代码或无代码的解决方案,通过规范文件简化模型的培训或微调。通过这些文件,您可以自定义特定于模型的参数、培训师参数、优化器和所用数据集的参数。可以将这些规范文件下载到先前装载的文件夹:

tao speech_to_text_citrinet download_specs \ -r /speech_to_text_citrinet \ -o < path to specs dir>/speech_to_text_citrinet

以下是 TAO 工具包附带的 YAML 文件。有关更多信息,请参阅Downloading Sample Spec Files。

  • create_tokenizer.yaml
  • dataset_convert_an4.yaml
  • dataset_convert_en.yaml
  • dataset_convert_ru.yaml
  • evaluate.yaml
  • export.yaml
  • finetune.yaml
  • infer_onnx.yaml
  • infer.yaml
  • train_citrinet_256.yaml
  • train_citrinet_bpe.yaml

这些规范文件可供自定义和使用。从预处理和模型评估到推理和导出模型,都有相应的功能。这使您能够完成开发或定制模型的过程,而无需构建复杂的代码库。下载等级库文件后,现在可以继续预处理数据。

步骤 2 :预处理数据集

在本演练中,您将使用CMU’s AN4 Dataset,这是一个小型普查数据集,其中包含地址、数字和其他个人信息的记录。这与客户支持对话中对话的初始步骤所需的转录类型类似。具有类似内容的较大自定义数据集可用于实际应用程序。

您可以直接下载和解压缩 AN4 数据集,或使用以下命令:

wget

http://www.speech.cs.cmu.edu/databases/an4/an4_sphere.tar.gz

tar -xvf an4_sphere.tar.gz

TAO 工具包培训和微调模块期望数据以特定格式呈现。可以使用 dataset _ convert 命令完成此预处理。我们将 AN4 和 Mozilla 的通用语音数据集的规范文件与 TAO 启动器一起打包。您可以在步骤 1 中定义的目录中找到这些规范文件。

这些清单文件(图 3 )包含在后面的步骤中使用的以下信息:

  • 音频文件的路径
  • 每个文件的持续时间
  • 每个文件的文字内容
The manifest files specify three things, the path to the audio file, duration of the said file, and the exact transcription for the audio.

图 3 。已处理清单文件的结构

tao speech_to_text_citrinet dataset_convert \ -e /speech_to_text_citrinet/dataset_convert_an4.yaml \ -r /citrinet/dataset_convert \ source_data_dir= /an4 \ target_data_dir=/an4_converted

此命令将音频文件转换为 WAV 文件,并生成训练和测试清单文件。有关更多信息,请参阅Preparing the Dataset。

在大多数情况下,您都会进行预处理,但 CitriNet 模型是一个特例。它需要以子词标记化的形式进行进一步处理,为文本创建子词词汇表。这与 Jasper 或 QuartzNet 不同,因为在它们的情况下,词汇表中只有单个字符被视为元素。在 CitriNet 中,子字可以是一个或多个字符。这可以使用以下命令完成:

tao speech_to_text_citrinet create_tokenizer \ -e /speech_to_text_citrinet/create_tokenizer.yaml \ -r /citrinet/create_tokenizer \ manifests=/an4_converted/train_manifest.json \ output_root=/an4 \ vocab_size=32

到目前为止,您已经建立了一个工具,为诸如迁移学习之类的复杂问题提供低代码或无代码解决方案。您已经下载了一个预训练的模型,将音频文件处理为必要的格式,并执行了标记化。您使用的命令不到 10 个。现在,所有必要的细节都已散列出来,您可以继续微调模型。

步骤 3 :使用超参数进行微调

正如在前面的步骤中所做的那样,您正在与规范文件交互。有关更多信息,请参阅Creating an Experiment Spec File。如果要调整 FFT 窗口大小的大小,可以指定几乎所有内容,从特定于训练的参数(如优化器)到特定于数据集的参数,再到模型配置本身。

是否要更改学习速率和调度程序,或者在词汇表中添加新字符?无需打开代码库并对其进行扫描以进行更改。所有这些定制都很容易获得,并可在整个团队中共享。这减少了在尝试新想法和分享结果以及模型配置方面的摩擦,从而提高了准确性。

以下是如何微调培训师:

trainer: max_epochs: 3 # This is low for demo purposes tlt_checkpoint_interval: 1 change_vocabulary: true

以下是如何微调标记器:

tokenizer: dir: /path/to/subword/vocabulary type: "bpe" # Can be either bpe or wpe

以下是如何微调优化器:

optim: name: novograd lr: 0.01 betas: [0.8, 0.5] weight_decay: 0.001 sched: name: CosineAnnealing warmup_steps: null warmup_ratio: null min_lr: 0.0 last_epoch: -1

以下是如何微调数据集:

# Fine-tuning settings: validation dataset validation_ds: manifest_filepath: /path/to/manifest/file/ sample_rate: 16000 labels: [" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "'"] batch_size: 32 shuffle: false finetuning_ds: manifest_filepath: ??? sample_rate: 160000 labels: [" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "'"] batch_size: 32 trim_silence: true max_duration: 16.7 shuffle: true is_tarred: false tarred_audio_filepaths: null

最后,要继续,请根据需要修改规范文件并运行以下命令。此命令使用先前下载的数据集微调下载的模型。有关更多信息,请参阅Fine-Tuning the Model。

tao speech_to_text_citrinet finetune \ -e $SPECS_DIR/speech_to_text_citrinet/finetune.yaml \ -g 1 \ -k \ -m /speechtotext_english_citrinet_1024.tlt \ -r $RESULTS_DIR/citrinet/finetune \ finetuning_ds.manifest_filepath=$DATA_DIR/an4_converted/train_manifest.json \ validation_ds.manifest_filepath=$DATA_DIR/an4_converted/test_manifest.json \ trainer.max_epochs=1 \ finetuning_ds.num_workers=1 \ validation_ds.num_workers=1 \ trainer.gpus=1 \ tokenizer.dir=$DATA_DIR/an4/tokenizer_spe_unigram_v32

在对模型进行微调或培训后,自然会评估模型并评估是否需要进一步微调。为此, NVIDIA 为evaluate your model和run inference提供了功能。

将微调模型导出到 Riva

在生产环境中部署模型会带来一系列挑战。为此,您可以使用NVIDIA Riva,一种 GPU 加速 AI 语音 SDK 来开发实时转录和虚拟助理等应用程序。

Riva 使用其他 NVIDIA 产品:

  • NVIDIA Triton Inference Server用于简化大规模生产中模型的部署。
  • NVIDIA TensorRT用于通过优化 NVIDIA GPU s 的模型来加速模型并提供更好的推理性能。

如果您对使用本演练中微调的模型感兴趣,可以使用以下命令将其导出到 Riva 。有关更多信息,请参阅Model Export。

tao speech_to_text_citrinet export \ -e /speech_to_text_citrinet/export.yaml \ -g 1 \ -k \ -m /citrinet/train/checkpoints/trained-model.tlt \ -r /citrinet/riva \ export_format=RIVA \ export_to=asr-model.riva

在下一篇文章中,我们将介绍如何安装 NVIDIA Riva 在生产环境中部署这些模型,以及如何使用NGC Catalog中的众多模型之一。

关于作者

About Tanay Varshney
Tanay Varshney 是 NVIDIA 的一名深入学习的技术营销工程师,负责广泛的 DL 软件产品。他拥有纽约大学计算机科学硕士学位,专注于计算机视觉、数据可视化和城市分析的横断面。

About Sirisha Rella
Sirisha Rella 是 NVIDIA 的技术产品营销经理,专注于计算机视觉、语音和基于语言的深度学习应用。 Sirisha 获得了密苏里大学堪萨斯城分校的计算机科学硕士学位,是国家科学基金会大学习中心的研究生助理。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5767

    浏览量

    110457
  • 人工智能
    +关注

    关注

    1822

    文章

    50602

    浏览量

    268175
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    全域复杂环境飞行适应性AI评估系统融合大模型人工智能技术

    全域复杂环境飞行适应性AI评估系统融合大模型人工智能技术 一、系统概述 北京华盛恒辉全域复杂环境飞行适应性AI评估系统本系统面向航空、无人飞行器及低空通航领域,基于多模态感知、数字孪生、AI深度
    发表于 05-29 11:37

    人工智能深度学习系统班13期

    人工智能深度学习13期:零基础转行AI高薪不用走弯路 站在2026年的当下,人工智能的浪潮已经彻底重塑了全球就业市场的版图。对于程序员而言,这既是前所未有的职业危机,也是实现阶层跃迁的
    的头像 发表于 05-07 16:46 270次阅读

    人工智能-Python深度学习进阶与应用技术:工程师高培解读

    深度学习的工程化落地,早已不是纸上谈兵的事。从卷积神经网络到Transformer,从目标检测到大模型私有化部署,技术栈不断延伸,工程师面临的知识体系也越来越庞杂。现根据中际赛威工程师培训老师的一份
    的头像 发表于 04-21 11:01 505次阅读
    <b class='flag-5'>人工智能</b>-Python<b class='flag-5'>深度</b><b class='flag-5'>学习</b>进阶与应用技术:工程师高培解读

    嵌入式人工智能课程(华清远见)

    嵌入式 AI 编译器优化:华清远见课程,解锁极致端侧性能 随着人工智能从云端全面向边缘侧和终端侧下沉,“万物智联”的时代已经悄然到来。然而,在这股浪潮背后,隐藏着一个巨大的技术鸿沟:在算力受限
    发表于 04-16 18:47

    人工智能多模态与视觉大模型开发实战 - 2026必会

    视觉大模型特训:从原理到部署一站式学会 在科技飞速发展的当下,视觉大模型已成为人工智能领域的一颗璀璨明星,广泛应用于安防监控、自动驾驶、医疗影像分析等众多领域,深刻改变着我们的生活与工作方式。如今
    发表于 04-15 16:06

    智能检测】基于AI深度学习与飞拍技术的影像测量系统:实现高效精准的全自动光学检测与智能制造数据闭环

    内容概要:文档内容介绍了中图仪器(Chotest)影像测量仪融合人工智能深度学习与飞拍技术的自动化检测解决方案。系统通过AI深度学习实现
    发表于 03-31 17:11

    人工智能与机器学习在这些行业的深度应用

    人工智能和机器学习问世以来,多个在线领域的数字化格局迎来了翻天覆地的变化。这些技术从诞生之初就为企业赋予了竞争优势,而在线行业正是受其影响最为显著的领域。人工智能(AI)与机器学习
    的头像 发表于 02-04 14:44 810次阅读

    机器学习深度学习中需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不
    的头像 发表于 01-07 15:37 421次阅读
    机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中需避免的 7 个常见错误与局限性

    利用超微型 Neuton ML 模型解锁 SoC 边缘人工智能

    的框架小 10 倍,速度也快 10 倍,甚至可以在最先进的边缘设备上进行人工智能处理。在这篇博文中,我们将介绍这对开发人员意味着什么,以及使用 Neuton 模型如何改进您的开发和终端
    发表于 08-31 20:54

    挖到宝了!人工智能综合实验箱,高校新工科的宝藏神器

    应用场景。从数据采集,到模型推理,都能完整且自如地参与,轻松解锁人工智能全流程实训,让你深度体验AI技术的魅力 。 四、九门课程全覆盖,满足多元学习需求 对于高校教学或者技术
    发表于 08-07 14:30

    挖到宝了!比邻星人工智能综合实验箱,高校新工科的宝藏神器!

    应用场景。从数据采集,到模型推理,都能完整且自如地参与,轻松解锁人工智能全流程实训,让你深度体验AI技术的魅力 。 四、九门课程全覆盖,满足多元学习需求 对于高校教学或者技术
    发表于 08-07 14:23

    超小型Neuton机器学习模型, 在任何系统级芯片(SoC)上解锁边缘人工智能应用.

    Neuton 是一家边缘AI 公司,致力于让机器 学习模型更易于使用。它创建的模型比竞争对手的框架小10 倍,速度也快10 倍,甚至可以在最先进的边缘设备上进行人工智能处理。在这篇博文
    发表于 07-31 11:38

    人工智能学习17问:从入门到避坑,新手最关心的问题全在这

    问:学人工智能,光看书就行?答:不行。AI是“练出来”的,不是“看出来”的。书能教理论,但写代码、调模型、解决实际问题的能力,必须靠动手练。利用学习平台把书本知识拆解成可操作的步骤,跟着练3次,比看
    的头像 发表于 07-30 14:18 926次阅读
    <b class='flag-5'>人工智能</b><b class='flag-5'>学习</b>17问:从入门到避坑,新手最关心的问题全在这

    人工智能技术的现状与未来发展趋势

    人工智能技术的现状与未来发展趋势     近年来,人工智能(AI)技术迅猛发展,深刻影响着各行各业。从计算机视觉到自然语言处理,从自动驾驶到医疗诊断,AI的应用场景不断扩展,推动社会向智能化方向迈进
    的头像 发表于 07-16 15:01 2504次阅读

    最新人工智能硬件培训AI 基础入门学习课程参考2025版(大模型篇)

    人工智能模型重塑教育与社会发展的当下,无论是探索未来职业方向,还是更新技术储备,掌握大模型知识都已成为新时代的必修课。从职场上辅助工作的智能助手,到课堂用于学术研究的
    发表于 07-04 11:10