查看原文
其他

工程才是做好AI的钥匙 | 免费下载《AI前线》2018年2月刊

鲍捷 AI前线 2019-03-29
策划编辑|Natalie
作者|文因互联 CEO 鲍捷
AI 前线导读:本文是文因互联 CEO 鲍捷老师为 InfoQ《AI 前线》2018 年 2 月刊撰写的卷首语。关注公众号 AI 前线(ID:ai-front),后台回复“AI2018”可免费下载该迷你书 PDF 文件!

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

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

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

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

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

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

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

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

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

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

《AI 前线》月刊是 InfoQ 全新策划的月刊,旨在为技术人提供当今人工智能领军人物对技术和行业的评价、与大师共同探讨 AI 技术与应用、学习企业技术升级落地案例。关注公众号,后台回复“AI2018”可免费下载!

如果你喜欢这篇文章,那就点个赞再走吧!欢迎到评论区「留言」,发表你的观点。如果你希望看到更多鲍捷老师撰写的关于”AI工程化“的文章,请留言告诉我们!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存