一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
指尖新闻
Offer多多
Salarytics
Learn
Who's Hiring?
疫情动态
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 24531|回复: 63
收起左侧

机器学习`侠`练成记录 Becoming a Machine Learning Practitioner

    [复制链接] |试试Instant~ |机器学习
我的人缘8

分享帖子到朋友圈
K姐 | 显示全部楼层 |阅读模式
本楼: 👍   100% (27)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
Becoming a Machine Learning Practitioner
为什么叫机器学习`侠`,是`调包侠`, `调参侠`的梗


上图来自Google 2015的论文,图片里面很小的黑色矩形是ML算法,其他部分是围绕算法的很多其他成分。

业界做ML,当然有算法的成分,有些公司也有很高深的算法(比如Google),但是工程的成分其实经常会远远,远远的多于算法,在一个激灵想出来的算法能真正落地给业务产生impact之前,有大量的工程方面的设计和考虑。好的大公司也在纷纷构建自家的机器学习平台让ML的投产变得更容易。

但是这些需求在学校ML课程里面很少被提及,给人的印象就是,做ML就是“调包,调参”。但是实际工作里面调包和调参的时间比例可能也就10-20%...


为什么发这篇帖子,也是来自于之前一直在DS领域总结学习,希望持续分享自己学习的历程,求讨论
Why this post
It’s an opinionated list of core skills that I found useful in the daily work of a machine learning practitioner, in the tech industry. I am not a researcher and am not interested in becoming one, so the list does not go in depth into any active research domain.  
需要强调的是,我不是做ML科研的,也不想做科研,所以本文就是于业界做ML的大家交流讨论,并不打算深入任何科研领域,请做科研的大牛轻拍。


I’ll be maintaining this list just as I maintained the learning path for Data Science in the past here https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=76429&extra=&page=1.
It’s not meant to be exhaustive, and we probably don’t need to know them all.
另外这篇内容也并不会多完备。机器学习领域大牛很多,领域很广,应用更是广阔到难以尽数,所以不求尽善尽美,只是抛砖引玉,求交流学习。
Suggestions/discussions welcome.  


本文适合什么人
## 0. Who is this for

This is a practitioner’s approach. Researchers: This post is not for you. 不是给ML方向做研究的人;牛人路过就好,不喜勿进。



## 1. CS Fundamentals 计算机基础
Design and analysis of algorithms( Coursera Part 1, Coursera Part 2


Operating System (Book: Modern Operating Systems)



## 2. Programming languages 编程语言
为什么与上一节计算机基础分开来说:因为老是遇到同学说我会numpy啊为什么你说我基础不行。。。。实际上是可以在不太懂基础的情况下楞刷题,或者写些基本能用的代码的。但是稍微深一点的地方会感觉基础知识的缺乏会让人难以在ML道路上上升到一定高度。

Must have :Python, Java
必须一门Python(因为ML好多framework就是python),和一门compiled language.
仅仅只会python,作为scientist是够了,作为engineer就会有显著差距。

Good to have: C++ 不一定是必须的。但是如果做的工作对速度有比较强的要求,那还是需要会C++的

Will likely encounter at work: scala/go/js 这些看每家tech stack不一样,会有不同涉及。遇到了再学即可。

Will likely encounter in academic settings: Matlab/Octave, R, Julia 这些是学校里面用的多,我至今(2018年底)没看见公司里面用julia的。

## 3. Math Fundamentals 数学和统计基础
Linear algebra 线性代数,必须的
Calculus 这个大家应该都上过
Optimization 优化:必须的
Statistics 基础统计(不是概率论 which is also good to have,这里是特指统计)

(real analysis and functional analysis might be useful, but is not required)
有空的话学实分析和泛函也可以,但是不是必须的

## 4. Machine Learning, from intro to advanced
这部分稍微区分一下从入门到进阶


### 4a. Intro 入门
- 这门课可能没有人不知道了  Introductiont to Machine Learning by Andrew Ng
- 这本书是ESL的简单版,作为直觉培养和思路练成,仍然是不错的,但是那里面的编程就很轻很轻了,真的只够本科生用 Very light but still a good book: an introduction to statistical learning


- 深度学习,也是Ng这课来入门还是不错的
- 另外个人比较喜欢udacity的第一门旗舰课程讲AI的,基于斯坦福的一门本科生课程。会稍微设计一点比前几门入门课更宽广的概念,虽然很浅但是对了解domain很有好处。

### 4b. Advanced 进阶
- 前面几门主要还是supervised learning,下面这门稍微宽广一点,并不完全是ML,但是也是因此感觉对知识面和落地有帮助
Data mining & other topics: Mining Massive Data Sets http://web.stanford.edu/class/cs246/



- 这门课可惜没有录像,关于实战的部分讲的还是不错的,而且是其他课程都没有涉及到,但是工作里面的确需要的部分

- Book:
经典ESL 不必多说,统计角度 Elements of Statistical Learning

经典不必多说,CS角度 Pattern Recognition and Machine Learning


- 下面看几个应用大方向

- Info retrieval & search engine 信息提取和搜索
Some intro here:


- Recommender systems 推荐系统


- Image: 图像识别,如今主要就是CNN了



- NLP 自然语言处理
others to be added
NLU 暂时不知道哪里有比较好的课

- Reinforcement Learning, Deep Reinforcement Learning 加强学习
(book and course TBD)



- Lots more stuff in DL here

经典课本(但是我觉得读起来还是蛮晦涩。。。不知道我是不是一个人)Deep learning book by Ian Goodfellow and Yoshua Bengio



之前学DL的时候的一些收集  看这里


### 4c. Frameworks
非深度学习,最常用的肯定就是 General ML framework: sci-kit-learn

深度学习的目前很多了 DL: Tensorflow(Keras), Caffe, Pytorch(Caffe2)

TF的看狗家自己的内容,或者Ng那个课;Pytorch的看fast.ai
Up & coming 或者已经下去了的: theano, MXnet, dl4j

## 5. Scaling considerations: Big data, distributed systems etc 数据量大了面临的问题
做小数据ML(笔记本上跑跑regression or classification,产生个报告给别人看)严格来说算不上ML,其实主要只能算是modeling(统计建模)
high dimensional data 是另外一个故事,这里先按下不提。

只说业界,面试会考系统设计的地方,需要用到的机器学习系统:

从最最小白的地方看起:(非科班同学不妨看看,科班的可以绕过)
This blog post: thorough intro to distributed systems
And this

system design: 虽然这个是准备面试用的,但是作为大致入门也是差不多了
Grokking system design interview (for brushing up fundamentals and case studies)

DDIA 堪称经典 Book Designing Data Intensive Applications : for an in-depth look, refer back to fundamental knowledge in OS

Distributed OLTP and OLAP


## 6. ML Systems & Platforms 机器学习系统和平台

- 这门课还是可惜没有录像只有slides
Adv ML systems (Cornell, slides only)

- Book: 这本书我也只有翻过,还不知道到底多好

- NIPS2018: to find some talks http://learningsys.org/nips18/schedule.html

### ML Systems 什么是机器学习系统
- Prod ML, paper 1 (tech debt) https://ai.google/research/pubs/pub43146,
- tbd

### ML Platforms 机器学习平台
- Google:

- Facebook:

- Uber:
深度学习 Horovod https://eng.uber.com/horovod/


- airbnb:
居然缺logo

另外这个podcast很不错,建议不要错过
Podcast TwimlAI is featuring a lot of these systems lately, a fantastic listen
https://twimlai.com/shows/

其他还有 Amazon, Netflix etc, ...








评分

参与人数 59大米 +149 收起 理由
姜森 + 1 很有用的信息!
不会再迷糊啦 + 1 很有用的信息!
JunoCongying + 1 给你点个赞!
LSasha500miles + 1 很有用的信息!
nn131 + 1 给你点个赞!
LearnerChao + 1 给你点个赞!
niard + 1 很有用的信息!
megadragon9 + 1 给你点个赞!
4eisus + 1 很有用的信息!
amazing1992 + 1 赞一个

查看全部评分

本帖被以下淘专辑推荐:

我的人缘8
 楼主| K姐 2019-1-9 09:15:13 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
MIT,和无人车的内容统一更新在这一楼

good stuff here:
https://deeplearning.mit.edu/
lots of practitioner's talk on actual, industry scale systems that's hard to find elsewhere

无人车
Part of MIT course, self driving car (slightly out of date but still good stuff)https://ocw.mit.edu/resources/re ... 5/unit-8.-robotics/

Here's a 2017 talk by Cruise,
https://www.youtube.com/watch?v=s-8cYj_eh8E

百度 Apollohttps://www.youtube.com/watch?v=jiZhSIrmODk

2019 MIT 的最新总结
https://www.youtube.com/watch?v=53YvP6gdD7U


回复

使用道具 举报

我的人缘8
 楼主| K姐 2019-1-28 01:52:06 | 显示全部楼层
本楼: 👍   100% (4)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
我只是觉得DS的定义明晰起来了
招人方已经差不多都知道识别analyst,做科研的,和碰production code的人了,三种目前都可以叫data scientist, 且不可彼此替换。

个人意见是
- 看公司AB平台结果,写query做dashboard,平时主要跟PM,finance,BD打交道的,我认为算analyst;要求是go broad,快速做出对公司和产品大方向有用的分析来并说服别人
- 给自己公司做AB平台under the hood部分,或者做特别复杂的use case并且发实验方向论文的,算research;要求是go deep,做出别人做不出的东西来
- 负责production code的算engineer,无论做的是ML算法还是causal inference算法;要求是go practical, 对自己产品负责


从skill set的角度看
- engineer一般可以勉强做做dashboard做一点分析,会在一定程度上暂时弥补analyst 的空缺。很多人做不了research,有部分人仍然可以,研究方面当然phd有优势
- researcher一般受不了做analyst,会觉得不够严谨,和太boring没有挑战;可能也受不了做engineer lol 因为不愿意on call
- analyst 一般做不了engineer,差距是1-2年的专业学习,和full time编程的实战练习。一般也做不了researcher,因为很多是BS/MS背景,没有人带的话,很多的确不具备做科研的素养。我见过的analyst独立”研究“大都是惨不忍睹,里面的错误罄竹难书。一是可能缺phd阶段科研的培训,二是业务要求比较多,也的确没有时间仔细去往深了钻。而且对公司来说,经常也没有必要。


我因为比较看重自己做出来的东西要被用户用到,要进production,要能看见效果,所以选择的Eng这条路。有很多我非常尊重(highly respect)的朋友同事更像research那一支,也是很高大上的,看上去他们也都对工作非常满意。Both are paid well enough that pay can be a non issue in like 5-10 years. Analyst 算是更宽泛的行业,早在大数据时代之前就有,那时候叫business analyst,如果有很好的business sense,并且懂得如何说服别人(影响力), 将来可以往产品,金融,BD方向发展,可能可以走的更远,但是成功路上的工资可能会在初期(first 5-10 years) 低于前两种。但是当了business方向的head之后能走多远,那不是普通的engineer和researcher能达到的。另外如果希望自己开公司或者进初创公司,只有是要么engineer要么business,做科研的人不太适合去。


当然任何行业做好了,都可以是牛人。这里纯个人意见。无意争论。还是做自己喜欢的事情比较容易坚持。






评分

参与人数 2大米 +8 收起 理由
BreeKKK + 3 给你点个赞!
yclu + 5 很有用的信息!

查看全部评分

回复

使用道具 举报

我的人缘0
BreeKKK 2019-1-23 16:24:55 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   94% (51)
 
 
5% (3)    👎
这个帖子很棒!市场上很多资料聚焦在模型,其实实际的ML系统中model training只是很小的一块,大量的精力花在不fancy的infra上。最近在搭新的ML系统,postgres, mongoDB, S3, 类似于Kafka的RabbitMQ, 公司内部的各个平台的服务,不同部件都要一一用gRPC链接起来,deploy的时候也要用到docker, kubernetes, jenkins, etc, 远远超越了原来DS的知识范畴,很需要小K这个list来不断地补充知识。


----------------

所有有时真的会想,这么辛苦地做硬核ML,和舒舒服服地走business impact的analysis路线比起来,真的更有价值吗?哪个会是职业上更加sustainable的发展方向?怎么判断哪个更适合自己?
回复

使用道具 举报

我的人缘8
 楼主| K姐 2019-1-24 15:27:50 | 显示全部楼层
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
大家不要焦虑的往外扔各种流行的名字(也是说给我自己听的)
抓问题要抓本质。。。。 start from a higher abstraction level, and you will generalize your learning better....
同一个问题下面的实现方案可以有很多种,基本都大同小异,名字太多了,但是原理可能也就 a handful
更不用说很多方法其实已经基本有了clear winner,先学那个winner再看其他,会容易很多 (e.g. docker and k8s)

我自己也是从中不溜的地方开始学起的,感觉浪费时间,还不如直接从fundamentals开始
然后才能理解
compute
storage
stream
batch
这类东西里面各种技术的精妙和差别,不然猛一看就是一堆新名词。。。。

ML算法的难度是“深”和“广”,但是知识被总结的很清楚,被梳理的顺顺溜溜的,只需要去伸手拿来即可。有各大名校名师的公开课,所以只要有心去学并且有基础数学和基础代码能力,自学ML其实真的比较doable....

系统那一套东西却是“广”的要命,很多事情要看经验,资料没有那么通俗易懂和铺天盖地,需要仔细去找。有高人指点会事倍功半,自学还真的不是特别容易。

=======================
这种东西,一定要看兴趣。强按着脖子是不行的。。。。

评分

参与人数 1大米 +3 收起 理由
BreeKKK + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘8
 楼主| K姐 2019-2-3 09:50:14 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
TFX的那个组发的一批”劝退“文 https://medium.com/thelaunchpad/ ... l-fail-94fb70683834
Your Deep-Learning-Tools-for-Enterprises Startup Will Fail




Go to the profile of Clemens Mewald
Clemens Mewald
Jan 31
I usually write about how to integrate and launch ML/AI in consumer-facing products. However, a large part of my job is building ML/AI developer tools, some of which are open sourced. In this field there is a proliferation of startups whose tagline is a random pick from all permutations of the words deep learning, platform, enterprise, deployment, training, scale, democratize. Their offerings span from data acquisition (data annotation by humans) to data science workbench environments and hosted model deployment. After speaking with many startups and investors about deep learning developer tools, I felt that it would be useful to share some of my thoughts more broadly.

What I mean by “Deep Learning Tools for Enterprises”
Novelty of the deep learning method
In any field there’s a continuum of novelty of methods and tools. In Figure 1, the vertical axis is the novelty of any given deep learning method. At the top are the most recent advances that you will find published at conferences like NeurIPS. At the bottom are the methods that have been around the longest, are well understood, and widely applied. On the horizontal axis is the number of known applications in enterprises. Note that the natural evolution of any method is to start out as a novel research finding with few applications, and then slowly get applied more widely as it is better understood.


Figure 1: Deep learning tools for enterprises necessarily focus on well-understood methods that are widely applicable.
Advanced Research: The red area is the comfort zone of most research scientists. It is hard to create higher-level developer tools or production-ready infrastructure in this space because it changes at a rapid pace. Researchers need a wide variety of very flexible tools to do their job.
Novel Applications: The green area is where those advances find their first applications. Usually this is first done by major technology firms like Google, Facebook, Apple, or Amazon. They have the patience, talent, resources, and a wide variety of business applications to try out the latest and greatest on their billion dollar businesses.
Well-Understood Applications: In the blue area are those methods and applications that have been proven to work and are widely adopted. Once a method is in this stage, there are usually enough libraries, tools, and services available such that a wider range of developers can adopt them.
I highlighted the area that is commonly the focus of deep learning tools for enterprises. This area is mostly comprised of relatively basic and well-understood methods (e.g. the good old fully-connected feed-forward neural network), but also extends to some more novel applications that have been proven to work by major technology firms.

Note that there may be startups that are trying to develop tools for researchers (the red area), but that’s an even harder product/business to get right.

Position in the stack and users
Another important distinction to make is the position in the ML/AI software stack and who your target users are. Figure 2 provides an oversimplified view of the ML/AI stack from hardware (lowest) to business solutions (highest), and the corresponding users/roles.


Figure 2: The position of developer tools in the technology stack.
When we think about ML/AI developer tools we usually refer to the tools that are used by ML Engineers or Data Scientists to analyze data, train models, validate them, and deploy them in production (highlighted in blue).

Another detail in the graph is that more business value is created in the upper layers of the stack. In Cloud offerings, Software-as-a-Service (SaaS) can usually command higher margins than Infrastructure-as-a-Service (IaaS), because the latter is closer to being commoditized and the former provides a specific solution to common business needs. Better yet, professional services or consultants provide a customized solution to a specific business need. However, most tech startups are not getting into the business of providing professional services.

It is also worthwhile to mention that there have been attempts at offering developer tools that are vertically integrated, e.g., tools that require a specific compute platform or hardware configuration. Generally speaking this lack of portability and interoperability with upstream and downstream components will lead to a micro market, i.e. the addressable market becomes very small. More on this topic below in the section “Your Tools are Necessary, but not Sufficient”.

Why Your Startup Will Fail
Now, why do I feel so strongly that startups that are focusing on deep learning tools for enterprises will fail? Here are a few of the well-understood reasons why building anything for enterprises is hard:

Purchasing cycles are long.
Compliance with a wide variety of standards/regulations is costly to achieve.
Getting on corporation’s approved/trusted vendor lists is an art in itself.
Distribution channels are not always wide open for new entrants.
Legacy systems make it hard to integrate new technology.
I assume that you are aware of these challenges and will only focus on those aspects that are relevant for the recent wave of deep learning tools startups.

Before we jump in, let me clarify what I mean by failing. I mean that these startups will not grow into viable and self-sustainable businesses. They may still get acquired for their talent, or by a larger company that has a more comprehensive offering, but they won’t survive as standalone companies.

Also, most startups fail, which makes failure a good baseline prediction. However, if this was all I had to add to this discussion I wouldn’t have written this article. The reasons for my conviction can be boiled down to three main arguments: 1) Not everything is deep learning, 2) Given that enterprises have broader needs, they can’t deal with specialized and narrow tools, and 3) Monetizing developer tools is hard.

1) Not Everything is Deep Learning
Deep learning tools are certainly needed and useful. However, not all business applications can (or should) be solved with deep learning. You may want to train a neural network for machine perception tasks like detecting merchandise in images, but use gradient boosted trees for fraud detection, or linear regression for click prediction. According to Kaggle1 and KDnuggets2 surveys, neural networks are used in about one third of use-cases by data scientists. Consequently, if your enterprise tools only support deep learning, you are serving about one third of your user’s needs. Here are some of the major reasons why deep learning isn’t applicable everywhere:

Inference latency: In some applications the latency requirements for inference are in the low single-digits milliseconds, and you can only do so many matrix multiplications in a millisecond. In those cases, simple linear models may be necessary (and often good enough).
Reproducibility: Most deep learning methods come with the inherent attribute of stochasticity. In many real-life cases, the same model trained twice on the same data may converge to the same overall loss and quality metrics, but behave very differently when analyzed in more detail. In some systems, e.g. recommendation systems, you don’t want the behavior of your model to radically change just because you retrained or added more training data.
Interpretability: In cases where there is a preference, or sometimes a legal requirement, for being able to easily tell why a prediction was made, methods like linear models or trees are commonly preferred to deep models. The field of understanding and interpreting advanced deep learning models is very active, but not yet in a place where it can compete with other ML methods.
Learning capacity and data: The more coefficients you need to train (learning capacity), the more data you need to learn a good model. Put differently, a large neural network generally needs more training examples to converge than a simple linear model. A related problem is the curse of dimensionality, which posits that, as we want to include more and more features in our models, the data representation in a high dimensional space becomes sparse. As a result, the amount of data needed grows exponentially.
Legacy reasons: You shouldn’t underestimate the number of non deep learning models that are already out in the wild. Even if it made sense to apply deep learning everywhere, migrating existing deployments to a new training method can take years.
2) Your Tools are Necessary, but not Sufficient
The choice of the algorithm (and training framework) is only one step in the ML/AI developer workflow. As mentioned above, if your product only serves deep learning use-cases, it already falls short for most enterprise users. In addition, if your product only focuses on one or few steps in the workflow, the same shortcomings apply. Figure 3 shows a very simplified and high-level overview of the components and different layers needed across this developer workflow.


Figure 3: The components needed to deploy ML/AI in enterprise applications go far beyond training frameworks.
Given that companies have broader needs that go beyond the application area of deep learning, you have to consider the technical and organizational complexity being imposed on your enterprise users by having to adopt yet another set of tools. Here are a few of the common challenges across the ML/AI software stack:


Partial solutions at each step: If an enterprise only finds partial solutions in each one of the above steps, they have to adopt many different products. The most obvious one is the ML framework, where a typical company may require to adopt three different frameworks if they wanted to train deep learning, tree-based, and linear models. The quote below perfectly captures the fragmentation in this space.

Today’s data engineers and data scientists use numerous, disconnected tools […], including a zoo of ML frameworks3

Lack of portability: A related challenge is the lack of portability. Deployment environments are very heterogeneous across enterprises and, if a developer tool is tightly coupled with a solution lower in the stack, it will not be portable to a lot of environments. E.g., a data transformation product that only runs on Spark cannot be adopted by companies that use Flink. Similarly, an ML framework that is tightly coupled to a specific hardware accelerator (or vice versa) will not be widely applicable.


Incompatibilities across the workflow: Given the diversity in tools, most are incompatible with each other. The community hasn’t converged on standard formats and interfaces across the ML/AI stack, so integrating tools across the entire workflow can be prohibitively expensive. This issue spans from data formats (some training frameworks have limited support) to model serialization formats. As mentioned above, building partial and incompatible solutions within this stack means that they are only useful to very few companies and you are essentially operating in a “micro market”.


Discontinuities along the workflow: Developer tools often only focus on a small part of the end-to-end workflow. Particularly in the ML/AI space, the number of different roles involved has organically led to this fragmentation. Data engineers write data pipelines that provide training data, data scientists downsample data and use ML frameworks in notebook environments to build and test new models, and product/infrastructure engineers then try to translate that into production systems. The hand-off between these steps leads to inefficiencies and, in many cases, production issues.

Of course, providing a targeted solution in a complex technology stack is not bad in itself. However, focusing on a small part of the developer workflow only works if the ecosystem is well established and follows common interfaces and industry standards. Given the lack of these interfaces and standards in the ML/AI space, partial solutions that are incompatible with the rest of the stack may only succeed with a very small set of users.

3) Monetization models are not obvious
The market for ML/AI developer tools is relatively new, and the industry is still figuring out what is monetizable and how. Here are a few observations on the most common pricing models:

Pay-per-use: In some parts of the stack, decreasing pay-per-use prices give away the fact that those offerings are being commoditized (e.g. inference APIs or labeling services). In cases where the ML/AI developer tools don’t add much value over just the compute they are using (IaaS), they may be priced at zero.
Software license: Common per-seat pricing models can be found in any type of software. However, to command high prices for developer tools, they need to be differentiated and feature complete. Adobe has been able to make money from Photoshop because it is considerably better than the next best alternative, but the ML/AI space hasn’t produced an equivalent gold standard.
Ecosystem: In cases where monetization comes from an ecosystem, developer tools can be cost leaders. The value of the Windows operating system increases when there are more Windows applications, so the developer tools to build these applications (Visual Studio) should be relatively accessible. However, it is unclear what the operating system equivalent in the ML/AI space is.
There are good reasons why monetization strategies for ML/AI developer tools are still unclear. Because of the challenges described above, there isn’t even agreement on the categories of tools. Many startups find themselves in a situation where they can’t monetize their developer tools, in which case they pivot and apply their software or data assets to provide a solution in a specific industry vertical (e.g., a data science workbench company pivoting to build sales lead scoring tools for the insurance industry).

The ML Toolkit for Enterprises
If you’ve read this far you can probably guess some of the common ways to address the aforementioned challenges in the ML/AI software stack.

Don’t provide developer tools, provide solutions. As described in “Position in the stack and users”, most of the business value is created in higher level solutions, and those are less prone to the common pitfalls outlined above. That being said, your company will run into decisions on which developer tools to use to build these solutions, but you’d let one of the major Cloud providers figure that out for you.
Build a full end-to-end stack throughout the workflow. If interoperability between workflow steps is a major issue, you could decide to build an integrated solution that spans the entire workflow. Again, you will likely only cover a subset of the enterprise ML/AI use-cases, but at least the use-cases you are going to fulfill will work end-to-end.
If you only provide a piece of the workflow, invest heavily in interoperability. Let’s say you build a model deployment solution for enterprises. You would be well-advised to support all of the most common model types and serialization formats that you encounter in the ML/AI space. Only supporting one or two will not be sufficient.
Don’t integrate vertically assuming a given compute platform or hardware configuration. Every assumption you make about the technology stack below your tool limits the addressable market. Find the appropriate portability layers that make your tools work in as many environments and on as many hardware configurations as possible.
Think beyond deep learning. I haven’t seen a single enterprise that only had one type of ML/AI problem. Every major company will require a combination of several ML algorithms to solve their business needs, and providing them with point-solutions on deep learning is insufficient.
The Good News Is, You’ll Likely Still Have an Exit
As mentioned above, failing to build a self-sustained company doesn’t mean that there’s no exit. Most startups in this space will still be acquired for their talent, or by a company that will be able to integrate a point-solution into a more comprehensive product offering (most likely one of the major Cloud providers). The talent market and corporate M&A is still strong enough to provide attractive exists for startups in this space.

I hope you found this write-up useful and that it can help guide your decisions, no matter if it’s for your own business or a company you are looking to invest in or acquire.

[1] https://www.kaggle.com/surveys/2017

[2] https://www.kdnuggets.com/2018/0 ... arning-results.html

[3] Databricks Enterprise AI Adoption Report 2018

Clemens Mewald is a Product Lead on the Machine Learning X and TensorFlow X teams at Google. He is passionate about making Machine Learning available to everyone. He is also a Google Developers Launchpad mentor.
回复

使用道具 举报

我的人缘0
moernongdu 2019-1-7 05:07:34 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   97% (39)
 
 
2% (1)    👎
关于 - Reinforcement Learning, Deep Reinforcement Learning 加强学习
(book and course TBD)
我贡献一个素材 Deepmind (就是搞alpha狗)的课程
https://www.youtube.com/playlist?list=PLqYmG7hTraZDNJre23vqCGIVpfZ_K2RZs

回复

使用道具 举报

我的人缘0
llj20dd 2019-1-1 02:12:57 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
十分感谢,正准备从DA转到偏ML方向!共同进步!
回复

使用道具 举报

我的人缘0
yangyijane 2018-12-13 02:35:55 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
很喜欢会一直跟下去的。
回复

使用道具 举报

我的人缘8
 楼主| K姐 2018-12-16 09:08:11 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
### 顺手的工具们
Docker https://www.docker.com/
Kubernetes https://kubernetes.io/ Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. 目前(end 2018)看起来是同类产品里面完全胜出的那个。
目前(end of 2018) AWS和GCP里面用一种就差不多了。AWS 市场占有比例更高

评分

参与人数 1大米 +5 收起 理由
DL + 5 很有用的信息!

查看全部评分

回复

使用道具 举报

我的人缘0
happydreamer 2018-12-19 00:27:49 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (36)
 
 
2% (1)    👎
Great, thanks!
回复

使用道具 举报

我的人缘0
sunson55 2018-12-19 11:09:51 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
好详细实用,多谢楼主。
回复

使用道具 举报

我的人缘8
 楼主| K姐 2018-12-19 15:24:35 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (8436)
 
 
4% (437)    👎
Kubeflow https://www.infoworld.com/article/3301549/kubernetes/kubeflow-brings-kubernetes-to-machine-learning-workloads.html

actually quite a lot of other talks at this SciPy 2018 conf is very good, especially good for a general overview on the kind of problem out there, and showing at least one of the solutions out there.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

GMT+8, 2020-6-4 14:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表