zoukankan      html  css  js  c++  java
  • 论工程能力对AI系统落地的重要性(转)

    看了一篇文章关于讨论工程能力,深有感触,AI算法已经比较透明,如何做出易用,稳定且能实际解决问题的系统才是重点。

    https://www.infoq.cn/article/AI-front-201802/

    经常有人问我学好人工智能的秘诀。我会先问下对方对数据结构、代码设计、调试工具、代码版本维护的入门问题。如果这些都不过关,我的回答就是“工程”。

    做好 AI 应用,不仅是要懂 AI“算法”,更重要的是软件工程能力和系统能力。在实践中,Linux 命令用得熟不熟,写程序是不是有良好的风格,版本控制是不是成为习惯,是不是掌握基本的网络服务构架,这些基本功比会用 Keras/TensorFlow 重要多了。有想法的人很多,具体工程去做的人就少了,应先从最底层的工程练起。没有具体的工程经验,就是清谈,是浪费时间。先过了系统运维关、数据库关、代码习惯关、基本软件工程关,才能谈得上落地一个 AI 的系统。

    现实系统里行之有效的人工智能算法,都是很简单的。能不能发挥好的根本,都在于如何把这些简单的东西因地制宜综合运用。为 1% 的核心算法代码跑好,要 99% 的“工程”代码的支持。

    比如对机器学习,无免费午餐定理告诉我们,一个算法如果在一类问题上特别有效,那一定有一些问题它比随机算法还差。一个现实中可用的机器学习系统,几乎一定是多种问题的混合问题。不会存在一种算法是一个现实问题的灵丹妙药。现实的问题的解决,一定是用一个良好的工程架构,让多种算法混合在一起解决问题。能拿捏这个架构设计的“度”,就是人工智能工程师最核心的能力。

    又比如逻辑这个分支。概念上其实没有比逻辑更简单的语言了:与、非、存在量词。但是为了工程化这个简单的东西,就衍生出巨大的一门学科:知识工程、语义网、知识图谱。知识工程之所以难不在“知识”,而在“工程”。当关注“知识”的时候,总是可以映射最优秀的人的智能。但工程化的时候,必须适应群体无限的奇葩,和不可避免的各种成本的折衷。

    AI 应用落地,核心是工程问题,不是算法问题,更不是“哲学”问题。一定要特别特别“土”,踏踏实实从朴素的运维、数据库、数据清洗做起,从实际的工程中逐步演化。如何按天迭代? 如何构造联调系统? 如何无标注数据启动? 如何分离准确度和召回率要求? 如何统一运用规则和统计? 如何适应无明确衡量标准的开发? 如何设计可演进的数据模式? 如何提升数据可理解性? 如何逐步提升规则系统的表达力? 如何平衡黑箱和白箱模型的优缺点? 如何在优雅架构和工期间取舍? 等等,这些都是教科书上没有的答案。只有扎扎实实从工程出发,才能实事求是地发展出低成本的、有生命力的 AI 系统。

    如果仅仅是因为某个东西时髦就去学,比如因为这两年 AI 火就去学 AI,满口 CNN、RNN、LSTM,却没有兴趣去理解这些东西背后的基本原理和应用范围,对工程也是无益的。比如只知道“卷积”这个词,却不理解不同的卷积核对于图像到底起什么作用;只知道深度网络,却连其他的神经网络一概不知;只知道 word2vec 分布式表示,却连 TFIDF 和 LDA 都没用过。这种赶时髦,对工程实践害处大于用处。

    掌握分很多层次。会用包是一个层次,会改进是一个层次,发优秀论文再进一个层次。至于懂得方法的边界、工程上和其他方法融汇使用,就只有凤毛麟角的人了。到 AI 架构师的层次,又需要通透理解多种方法的前沿。这样的人,学校、研究院都培养不出来,都是通过工程逼出来、练出来、打出来的。光是懂算法不行,还必须通透理解实践的前沿;光是理解一个分支也不行,还必须通透理解几个分支。

    没有银弹,没有奇迹。都是扎扎实实的工程,多年的细节的打磨才能解决一点小事。也从来没有一个所谓的伟大的想法,能跳过工程的考验而就成功的。工程才是做好 AI 的钥匙。

  • 相关阅读:
    The Python Standard Library
    Python 中的round函数
    Python文件类型
    Python中import的用法
    Python Symbols 各种符号
    python 一行写多个语句
    免费SSL证书(https网站)申请,便宜SSL https证书申请
    元宇宙游戏Axie龙头axs分析
    OLE DB provider "SQLNCLI10" for linked server "x.x.x.x" returned message "No transaction is active.".
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "xxx.xxx.xxx.xxx" was unable to begin a distributed transaction.
  • 原文地址:https://www.cnblogs.com/marszhw/p/12587430.html
Copyright © 2011-2022 走看看