Py学习  »  机器学习算法

【开源】"揭秘TANGO:无代码一键生成神经网络,新手小白也能轻松部署机器学习应用!"

soft张三丰 • 1 周前 • 60 次点击  

介绍

TANGO(目标感知无代码神经网络生成和操作框架)是集成机器学习框架项目的代号。

它旨在开发自动神经网络生成和部署框架,帮助新手用户轻松开发神经网络应用程序,只需较少或理想情况下无需编写代码,并将神经网络应用部署到目标设备上。

TANGO框架旨在帮助没有专业知识的用户创建和使用自己的神经网络模型。为此,它提供了一个用户无需编写代码即可使用的环境,例如项目经理和神经网络可视化工具。TANGO的用户只需准备他们的标记数据集来训练模型和目标设备。然后,TANGO分析数据集和目标设备特征,根据用户需求生成特定任务的神经网络,用数据集对其进行训练,创建Docker容器映像并将容器映像部署到目标设备上。

TANGO使用容器技术和MSA(微服务架构)。容器比传统或硬件虚拟机环境需要更少的系统资源,因为它们不包括操作系统映像。在容器中运行的应用程序可以轻松部署到多个不同的操作系统和硬件平台。

TANGO的每个组件都是使用容器技术实现的自包含服务组件。该组件通过REST API与其他组件交互,如下图所示;

特点

TANGO框架旨在通过自动构建和训练深度学习模型,将特定视觉任务(分类、对象检测或实例分割)的现成深度学习模型部署并加载到用户的目标设备上,而无需专家的帮助或对TANGO的使用知之甚少。为此,可以在TANGO框架内完成数据准备、神经网络模型创建和目标设备的优化。

数据准备

数据准备包括两个主要过程。首先,您需要在适合给定视觉任务的各种情况下拍摄或收集图像(原始数据)。然后,收集到的行数据应进行注释,以用于训练depp学习模型。后一个过程非常劳动密集,需要大量的人力和时间。TANGO的标签工具是一个基于Web的GUI工具,使用户能够轻松地对原始数据进行注释。用户只需拖放样式即可加载本地原始数据,根据具体任务执行类标签、边界框注释、多边形注释等,然后保存。

基础模型选择

在应用NAS和HPO等自动化技术之前,减少搜索空间或将其限制在特定的神经网络变化范围内对于自动神经网络生成的效率非常重要。在TANGO框架中,它被命名为基础模型选择,并被赋予在现有的知名神经网络中推荐合适的神经网络的角色,即所谓的SOTA模型。

目前,TANGO根据专用规则选择基础模型,类的数量和GPU内存的大小如下。

可视化

用户识别神经网络模型架构非常重要,因此TANGO对基础模型提供了可视化描述。

如您所见,模型可视化提供了

  • 基于Node Edge的模型可视化

  • 更多固有的边缘类型(例如,箭头线,清楚地指示前进方向)

  • 弹出窗口显示复杂块的内部结构

  • 检测模型的骨干、颈部、头部布局

另一方面,它确保用户想要查看培训进度,因此TANGO提供了另一个选项卡来显示培训期间的图表和数字。

训练图提供

  • REST API用于指示逐步进度信息

  • 报告训练状态并在仪表板上可视化


自动神经网络生成

AutoML(自动机器学习)是指自动化端到端机器学习过程的过程,包括数据预处理、模型选择、超参数调优和模型部署等任务。AutoML的目标是通过消除对广泛领域知识或人工干预的需求,使非专家更容易构建和部署机器学习模型。

神经网络模型生成是TANGO框架中的一个关键过程。TANGO框架自动为这类任务提供指导。首先,通过现有SOTA推荐的基础模型选择器提取基础神经网络,该神经网络已被证明工作良好。之后,AutoNN使用NAS(神经架构搜索)和HPO(超参数优化)等自动化技术来找到合适的神经网络配置。这包括对最终模型的再训练。

AutoNN提供了许多自动方法来找到符合用户需求的合适模型。

免费模型包

  • 自动批处理:根据模型大小和GPU内存提取最大批处理大小,如果内存不足,则以较小的批处理大小恢复

  • 提前停止:如果没有任何改进,就停止,这有助于模型不过度拟合数据集

  • 增强:支持镶嵌训练(4或9件)

  • 超参数整定:基于Baysien算法优化超参数(数)

  • 辅助头:在训练过程中有助于提高精度,然后在训练结束时将其重新参数化为单头模型以进行干扰

特价商品自动包装袋

  • 针对特定目标的NAS:它在Android手机上具有适当的准确性和延迟

自动模型导出

  • 无缝过渡到目标(与CodeGen合作)

  • pt/onnx/torchscript/tensorflow/TFLite/TPU模型转换,无需任何用户中断

  • 支持层融合、重新参数化、输入大小变化、半精度、INT8量化


NAS:神经架构搜索

神经架构搜索(NAS)是一种自动搜索给定任务的最佳神经网络架构的方法,而不需要从业者手动设计和微调网络。NAS的过程涉及搜索可能的网络架构的空间,以找到在验证数据集上表现最佳的网络架构。

NAS有可能显著减少设计神经网络所需的时间和精力,特别是对于优化架构不明确的复杂任务。它还可以发现优于手工设计的新型网络架构,从而提高各种任务的性能。然而,NAS的计算成本很高,需要大量的计算资源,这使得它在实践中的应用具有挑战性。

寻找最优神经网络一直是人工智能专家的领域。随着神经网络中使用的基本操作、层和块变得成熟,通过组合它们来找到更好的神经网络架构可能是一项迭代工作。因此,NAS技术使用计算机的任务不是找到新的操作、层或块,而是从开发的操作、层和模块的可能组合中找到更好的神经元网络结构或更改其参数。TANGO中的NAS可以看作是在BMS推荐的基础神经网络的基础上,通过NAS推导出最佳用户定制神经网络的过程。

HPO:超参数优化

尽管神经网络训练在很大程度上是自动化的,但仍然有许多变量需要提前设置或在训练过程中调整。这种变量被称为超参数。HPO代表超参数优化,这是调整机器学习模型的超参数以提高其在验证数据集上的性能的过程。超参数是在训练模型和控制训练过程的各个方面之前设置的参数,如学习率、随机森林中的树数或神经网络中的隐藏单元数。因此,TANGO中的HPO可以被视为一个迭代过程,确定超参数的最佳值,以实现NAS导出的最佳神经网络的最佳性能。

训练模型的目标部署

在TANGO项目配置过程中,用户可以指定他们的目标(云、K8S、设备),这些目标用于使用训练好的神经网络模型进行推理。由于每个目标环境的加速引擎和可用资源不同,很难立即部署由AutoNN生成的神经网络模型。根据目标环境,TANGO将包括基本库和预处理/后处理代码在内的可执行代码制作成压缩文件,构建容器化映像,并将其安装在目标(设备)上并解包。

支持的目标(云、K8S、设备)如下。

神经网络部署技术

神经网络部署模块提供用于优化神经网络模型、生成用于推理的可执行代码、分发到目标以及自动执行每个目标的计算环境/推理引擎/执行环境的功能。

神经网络部署模块的主要功能:

  • 将神经网络模型转换为可执行代码的能力

神经网络部署模块为可执行代码模板提供自动生成功能,例如神经网络输入的预处理代码和解释神经网络输出的后处理代码,以便神经网络模型可以在操作系统、编程语言和推理引擎上运行。

  • 能够优化神经网络模型以适应目标环境

神经网络部署模块提供神经网络模型优化功能,如量化,以便神经网络模型可以在目标环境中运行,如CPU性能和可用内存大小。

  • 神经网络加速器的多样性支持功能

神经网络部署模块提供了充分利用NVIDIA GPU、Tensor Processing Unit和ARM Mali GPU等加速器的功能。

  • 支持推理引擎的多样性

神经网络部署模块提供各种推理引擎支持功能,如PyTorch、TensorRT、TVM和Tensorflow Lite。

  • 提供配电和安装的便利

神经网络部署模块提供了一种方便的部署功能,可以尽可能地将部署过程自动化到GCP、AWS等。

部署模块的操作取决于目标

  • GCP/AWS等Web服务

pytorch模型->创建基于pytorch的web应用程序服务->为K8S创建POD->使用用户设置的部署环境部署/执行POD。

  • 智能手机

PyTorch模型->转换为ONNX模型->整数量化->转换为Tensorflow Lite模型->生成Android神经网络执行代码->生成Android可执行文件(.apk)

PyTorch的Raspberry Pi+TPU(张量处理单元)模型->转换为ONNX模型->转换成Tensorflow Lite模型->转换到TPU模型->为TPU生成基于Python的神经网络执行代码

  • 基于TensorRT的设备

PyTorch模型->转换为ONNX模型->生成基于Python的ONNX TensorRT转换器和TensorRT执行代码

  • 基于TVM的设备

PyTorch模型->转换为ONNX模型->转换成TVM模型->为TVM生成基于Python的神经网络执行代码

开源地址

关注公众号 回复 20250211 获得


猜您喜欢:

【开源】接入DeepSeek实现AI编程

【开源】"Bytebase:基于Web的数据库管理利器,DevSecOps理念打造,专业赋能变更管理与安全查询!"

【技术升级】Tansci-Boot:融合amis低代码与magic-api,打造易上手的全能后台管理系统!

【开源】"基于RuoYi-Vue-Plus升级,碧华后台管理系统新增微信公众管理、博客、物联网及商城功能!"

【开源】"阿里巴巴达摩院重磅发布VideoLLaMA 3:智能视频助手,懂视频会对话!"


添加微信进相关交流群,

备注“微服务”进群交流

备注“低开”进低开群交流

备注“AI”进AI大数据,数据治理群交流

备注“数字”进物联网和数字孪生群交流

备注“安全”进安全相关群交流

备注“自动”进自动化运维群交流

备注“试用”可以申请产品试用

备注“渠道”可以合作渠道信息

备注助手”进代码助手和插件交流群

备注“定制”可以定制项目,全源码交付

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/178999
 
60 次点击