热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将机器学习从实践转移到生产

随着对神经网络和深度学习的兴趣日益浓厚,个人和公司声称在其日常工作流程和产品中不断增加人工智能的采用率。再加上AI研究的迅捷速度,新一轮的流行浪潮显示了

随着对神经网络和深度学习的兴趣日益浓厚,个人和
公司声称在其日常工作流程和产品中不断增加人工智能的采用率。

再加上AI研究的迅捷速度,新一轮的流行浪潮显示了解决其中一些难题的巨大希望。

就是说,我觉得这个领域在欣赏这些发展与随后部署它们以解决“现实世界”任务之间陷入了鸿沟。

已经出现了许多框架,教程和指南,以使机器学习民主化,但是它们规定的步骤通常与需要解决的模糊问题不吻合。

这篇文章是一个问题的集合(有一些(甚至是错误的)
答案)在将机器学习应用于
生产。

垃圾进垃圾出

我有可靠的数据源吗? 我从哪里获取数据集?

在开始时,大多数教程通常都包含定义明确的数据集。
无论是MNIST还是Wikipedia语料库,或者是
在UCI机器学习存储库中 ,这些数据集通常不能代表您要解决的问题。

对于您的特定用例,可能甚至不存在适当的数据集,并且
建立数据集可能需要比您预期更长的时间。

例如,在Semantics3,我们解决了许多电子商务特定的问题,从产品分类产品匹配再到搜索
相关性 。 对于这些问题中的每一个,我们必须仔细研究并花点时间
大量努力来生成高保真产品数据集。

在许多情况下,即使您拥有所需的数据,也可能需要大量(且昂贵 )的体力劳动来对数据进行分类,注释和标记以进行培训。

将数据转换为输入

需要哪些预处理步骤? 在与算法一起使用之前,如何规范数据?

这是通常独立于实际模型的又一个步骤,在大多数教程中都被掩盖了。 当探索深度神经网络时,这种遗漏显得更加明显,在深度神经网络中,将数据转换为可用的“输入”至关重要。

尽管存在一些用于图像的标准技术,例如裁切,缩放,零中心和白化,但是最终决定权仍然取决于每个任务所需的归一化级别。

使用文本时,该字段变得更加混乱。 大写
重要? 我应该使用令牌生成器吗? 单词嵌入呢? 我的词汇量和维度应多大? 我应该使用预先训练的向量,还是从头开始或分层?

没有在所有情况下都适用的正确答案,但与可用选项保持同步通常是成功的一半。 spaCy的创建者最近发表的一篇文章详细介绍了一种有趣的策略,用于标准化文本的深度学习。

现在开始吧?

我使用哪种语言/框架? Python,R,Java,C ++? Caffe,Torch,Theano,Tensorflow,DL4J?

这可能是最自以为是的问题。 我是
仅出于完整性考虑,在此处包括本节,很高兴为您指出可用于做出此决定的 各种 其他 资源 。

虽然每个人的评估标准可能不同,但我的
只是简化了自定义,原型制作和测试。 在这方面,我更倾向于从scikit-learn开始,并在我的深度学习项目中使用Keras 。

其他问题,例如我应该使用哪种技术? 我应该使用深
或浅层模型,CNN / RNN / LSTM呢? 同样,有很多资源可以帮助您做出决策,这也许是最多的
人们谈论“使用”机器学习时讨论的方面。

训练模式

如何训练我的模型? 我应该购买GPU,自定义硬件还是ec2(现货)实例? 我可以并行化它们以提高速度吗?

随着模型复杂性的不断提高,以及对处理的需求不断增加
功率,这是生产过程中不可避免的问题。

十亿参数的网络可能会保证其出色的性能
TB级的数据集,但是大多数人都无法承受训练仍在进行中数周的等待。

即使使用更简单的模型,跨实例构建,训练,整理和拆除任务所需的基础架构和工具也可能令人生畏。

将时间花在计划基础架构 ,标准化设置和尽早定义工作流程上可以为您构建的每个其他模型节省宝贵的时间。

没有系统是孤岛

我需要进行批量或实时预测吗? 嵌入式模型或接口? RPC还是REST?

除非它与您的生产系统的其余部分连接,否则您的99%验证准确性模型没有太大用处。 这里的决定
至少部分由您的用例驱动。

将简单的权重直接打包到您的应用程序中的模型可能会令人满意地执行,而更复杂的模型可能需要与集中式重型服务器进行通信。

在我们的案例中,我们的大多数生产系统都批量离线执行任务,而少数生产系统则通过基于HTTP的JSON-RPC进行实时预测。

知道这些问题的答案也可能会限制
构建模型时应考虑的架构。 建立一个复杂的模型,只是为了以后知道它不能部署在您的内部
移动应用程序是一场灾难,可以轻松避免。

监控表现

如何跟踪我的预测? 是否将结果记录到数据库? 网上学习呢?

在构建,训练并将模型部署到生产中之后,任务是
除非您已经安装了监视系统,否则仍然无法完成。 确保模型成功的关键因素是能够测量和量化其性能。 在这个领域有许多问题值得回答。

我的模型如何影响整体系统性能? 我要哪个号码
测量? 该模型是否正确处理了所有可能的输入和方案?

过去使用过Postgres,我更喜欢使用它来监视我的模型。 事实证明,定期保存生产统计信息(数据样本,预测结果,异常值)对于在部署过程中执行分析(和错误事后验算)非常有用。

要考虑的另一个重要方面是在线学习要求
您的模型。 您的模型应该动态学习新功能吗? 当气垫板成为现实时,产品分类程序应该将其放置在“ 车辆 , 玩具”中还是将其保留为未分类状态 ? 同样,这些是在构建系统时值得辩论的重要问题。

包起来

不仅是秘密的调味料

这篇文章提出的问题多于答案,但这确实是重点。 随着新技术,小区以及网络体系结构的许多进步,错过森林比以往更容易。

从业人员需要对端到端部署进行更多讨论,以推动该领域的发展并使真正的大众化机器学习民主化。

最初发布在 engineering.semantics3.com上

From: https://hackernoon.com/moving-machine-learning-from-practice-to-production-a476451161e5



推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 本文介绍了实现人工智能的多种方法,并重点探讨了当前最热门的技术——通过深度学习训练神经网络。文章通过具体实例详细解释了神经网络的基本原理及其应用。 ... [详细]
  • 结城浩(1963年7月出生),日本资深程序员和技术作家,居住在东京武藏野市。他开发了著名的YukiWiki软件,并在杂志上发表了大量程序入门文章和技术翻译作品。结城浩著有30多本关于编程和数学的书籍,其中许多被翻译成英文和韩文。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
author-avatar
seaknkoo_776
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有