楼主: modifiedname
跳转到指定楼层
上一主题 下一主题
收起左侧

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

   
🔗
lalxyy 2019-1-13 18:58:08 | 只看该作者
全局:
开头的一段话非常同意!实习的时候mentor反复跟我说调模型不是工作的全部,一个project下来也觉得确实如此,更多精力花在和data打交道上和service上面
回复

使用道具 举报

🔗
 楼主| modifiedname 2019-1-20 01:37:51 | 只看该作者
全局:
Nvidia 的内容,TBD
回复

使用道具 举报

🔗
xxzyzh 2019-1-22 02:53:28 | 只看该作者
全局:
喜欢小K的硬核ML!感觉到现在铺天盖地的ml算法,但在ML Engineer和infrastructure这方面的资料和讨论都很少。才入ML production方向,很想系统地学习这方面的知识,感觉知识点都很零碎很杂,覆盖领域也很广……补充一些工作中还有用到过的工具和平台,如OpenShift, Jenkins, Airflow, MLflow, etc. these tools can also be used to serve and deploy ML models in a production pipeline.
回复

使用道具 举报

🔗
BreeKKK 2019-1-23 16:24:55 | 只看该作者
全局:
这个帖子很棒!市场上很多资料聚焦在模型,其实实际的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的发展方向?怎么判断哪个更适合自己?
回复

使用道具 举报

🔗
 楼主| modifiedname 2019-1-24 15:27:50 | 只看该作者
全局:
大家不要焦虑的往外扔各种流行的名字(也是说给我自己听的)
抓问题要抓本质。。。。 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....

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

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

评分

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

查看全部评分

回复

使用道具 举报

🔗
zhang.chi1 2019-1-25 11:46:50 | 只看该作者
全局:
lalxyy 发表于 2019-1-13 18:58
开头的一段话非常同意!实习的时候mentor反复跟我说调模型不是工作的全部,一个project下来也觉得确实如此 ...

谢谢分享。真的学到了好多啊~~~
回复

使用道具 举报

🔗
hyper8866 2019-1-27 09:29:33 | 只看该作者
全局:
从K姐的 Data Scientist  炼成跳到了这里,13年的时候DS的概念越来越火,不知道是不是现在ML Eng 已经渐渐取代DS了!
回复

使用道具 举报

🔗
 楼主| modifiedname 2019-1-28 01:52:06 | 只看该作者
全局:
我只是觉得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 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
miera 2019-1-29 03:14:53 | 只看该作者
本楼:
全局:
非常感谢!!
回复

使用道具 举报

🔗
 楼主| modifiedname 2019-2-3 09:50:14 | 只看该作者
全局:
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.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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