To infinity and beyond!

0%

其实很久很久之前就想去写这篇博客了,因为疫情学习工作等等等等各种原因一直拖着。直到最近在上海隔离,发现时间一下变多了起来,于是决定把TODO List上的这个事项给解决掉。这篇博客主要是想总结一下Jupyter给数据科学领域在不同场景下的应用以及商业模式的探索,同时结合一下自己的思考以及灵感。

首先简单说说 Jupyter 这个项目把,从最早的Ipython开始,到后面的 Jupyter Notebook,再到现在基本做数据的人都会用的 Jupyter Lab 来讲,它极大的改变了我们在数据科学行业的探索上的工作方式。从学生个人开发者到Top tier 的tech firm 我们都能看到 Project Jupyter 的影子。经过我自己的观察和总结,现在Project Jupyter 被广泛使用的大致有下面2类按照使用对象分类的场景。

提供技术为他人服务

第一类就是最常见的通过提供技术为他人服务的组织,具体有以下几种代表

云服务商

云服务商,不用多说大家都知道是什么。这里大部分人有个误区就是数据科学不全都是做机器学习/深度学习,很多厂商往往会用机器学习/深度学习来做噱头,但是其实他们提供的产品用来做数据科学也完全是可行的。云厂商们的优势很明显,有大量的机器集群,技术专家以及业务经验。劣势就是不够接地气,在落地应用到具体业务的时候还是需要使用者们去阅读文档来更好的使用。当然作为使用者,如果度过了这些工具的learning curve,那还是很舒服的。

AWS Sagemaker

AWS Sagemaker 还是比较出名的,业界大部分机器学习的工程都跑在这个上面。他们自己也是 Projec Jupyter 非常重要的贡献者之一。他们对Project Jupyter 在工具层面上的改动并不是特别大,但是在算法框架上和使用案例上给了非常好的支持。Sagemaker 的 Python SDK也在 Github 上开源了。可以看到通过使用他们的SDK,用户可以很直接的把自己的算法放上去跑来降低迁移成本。除了降低算法框架上手难度外,他们还整合了自己的其他产品的矩阵比如S3存储服务,可以直接从bucket里面指定数据。这点我觉得还是挺不错的。

Google Colab

Google 的 Colab 其实更多是对 Notebook 这个项目进行了整合,然后配合他们自己研发的TPU和业界著名的Tensorflow。个人使用了一段时间之后总体感觉还是卖资源为主,并没有和自己的其他产品形成特别明显的矩阵。当然有可能确实是项目组不差钱。不过和社区倒是做的非常不错,直接从Github导入,当然白嫖还是爽的。此外对于 widgets 的优化做的还挺有意思,可以直接从里面构建出一个小APP出来。总体感觉还是比较技术导向,和业务距离的比较远。

Aliyun PAI DSW

PAI的 DSW 最近推出了V2。还没仔细测评,但是大致就是一个CPU/GPU实例上放了Jupyter Lab + VS Code Online。然后有一些自己的magic method和特殊render的cell。主要优势可能还是和自己的产品生态绑定在一起了,方便从 MaxCompute 去读取数据,推送计算任务,甚至定时运行等等。而且还可以新建数据集和管理数据集。具体细节还没有看,但是缺失案例且文档不太好读。

Azure

Azure对于 Jupyter 的 adoption 还在 Notebook 的阶段。感觉没有特别的Differentiate自己的产品,也可能是个人对Azure认知不足导致的,有待后续完善。

行业垂直机构/组织

这类组织往往借助 Jupyter 来更好的推出他们的其他的服务。这类组织和云技术厂商相比,他们更贴近业务,在行业上更加垂直。同样由于自己的算法框架导致有一定的learning curve,但是由于场景更聚焦,所以curve也相对平缓一点。

Paper Space

Paper Space 是一家专注提供给学校和科研机构低价GPU的SAAS公司,用户可以一键创建他们自己的Notebook镜像并训练自己的模型。优势主要还是在价格上。

Quantopian

Quantopian 是一家做金融量化交易的公司,有自己的量化数据集和交易代码框架,让用户去上面写策略为主。他们也是停留在了Jupyter Notebook上面,没有更新到 Jupyter Lab。但是我认为这是能理解的,因为对于这家公司来说,他们的核心竞争力在于金融数据以及股票交易策略平台,而不是去做一个高效的生产工具。

提供技术为自己服务

第二类就是有内部业务需求的技术导向的组织,这种组织更多的是商业性公司,他们具有相对完善的数据科学专家和一定的数据积累以及技术架构。

商业公司

Netflix, 关键词: 数据探索/调度/分享/支持业务分析

Netflix对于 Jupyter Project的 Adoption真的是非常的令人叹为观止。他们在自己的博客上非常详细讲述了他们通过使用 Jupyter 在数据科学上的最佳实践,可以找个时候好好详细拜读一下。 Netflix 的Engineering 团队一直给我一种非常好的感觉,开放乐观且实用。他们在这方面配合自己的架构开发了几个特别实用的开源软件。顺便附上他们的工作流架构图:
ALT HERER

这里 Netflix 主要做了下面几个定制:

Nteract

nteract 这个项目可以说是把 Jupyter 的前端都给重写了一遍,界面和易用性都有不少的提高。比如配合他们自己开发的Data Explorer, 数据可视化真了方便了很多。

Papermill

Papermill是一个用于参数化Notebook的项目,当我们想要去测试不同参数的时候就可以使用。使用起来很简单,也很高效。非常pythonic。

还有一些就更偏向团队了,比如用于分享的Commuter,调度系统Meson/Genie 和管理AWS集群的Titus 更偏向云计算资源管理和分享,这里就不详细讲了。

PayPal, 关键词: Magic Method/配合内部架构

Paypal 在 Jupyter Con 2018 上演示了他们对于Jupyter生态的拥抱以及改动。主要还是Magic Method配合他们的大数据平台使用。个人感觉特别方便好用的是通过magic command来实现对hive集群数据的读取和导入。同时还支持Schedule以及结果的notification。源码和相关文档可以在这里找到。

Two Sigma,关键词: 数据探索/数据集成/分享/调度/配合内部架构/JVM Kernel

Two Sigma 可谓是 Project Jupyter 的主力军。现在大家能够看到的多个 Jupyter 的 feature 其实都是 Two Sigma 的team推的。他们自己的分支叫做 BeakerX,也是在 Jupyter Lab的基础之上去做了很大的改动。对于一家 FinTech 公司来说,数据可视化非常重要。如何帮助分析师们高效的探索数据之间的关系很大程度影响了公司的盈利能力。这点从Bloomberg的Terminal每年的营收就可见一斑。

Bloomberg, 关键词: 模型可视化

Bloomberg 的团队是 Project Jupyter的另一支主力军。他们在模型可视化上配合 Widget 以及 D3.js 可谓玩的是出神入化,秀到飞起。这个是他们18年在Jupyter Con的模型可视化视频,看了一次之后不禁感叹R&D有钱做出来的产品也牛逼。代码也已经开源在Github上了。

美团民宿, 关键词: IDC/Widget定制

美团技术分享原文在这。作为国内数一数二数据驱动的互联网公司,美团在数据科学方面的实战非常有启发意义,也很接地气。架构上来看和Netflix的差不多,做的事情也很类似。但是在 Widget 上做了与自己行业所绑定的内部工具,有效的提高了开发的效率,我觉得还挺不错的,也是他们能够做到Differentiate的地方。

学校以及研究机构

暂止没有什么特别好的发现,我了解的大部分学校都是以使用为主,配合Github Education Package。倒是有一些不错的插件比如 Exercise。用得好基本能替代大部分只检查答案的OJ系统了。

感想

可以看到几个非常常见的方向

  • Notebook调度以及参数传入
  • Notebook的分享
  • 数据可视化的易用性
  • 用Magic Command来配合已有的框架
  • 用IpythonWidget去定制行业专属的组件或者是Extension
  • 配合K8S去实现资源调度

说明大家面临的问题往往也是大同小异,但是具体如何去采纳已有方案来帮助落地实施,就取决于具体执行人/公司的情况了。我认为 Project Jupyter 在未来一定会作为交互式编程的代表作帮助人们更好的用数据去探索并改造这个世界。用中文讲叫做 未来可期

Install ZSH

  1. Connect to your EC2 instance
  2. Install zsh :
    1
    $ sudo apt-get update && sudo apt-get install zsh
  3. Edit your passwd configuration file to tell which shell to use for user ubuntu : sudo vim /etc/passwd
  4. Look for ubuntu user, and replace bin/bash by bin/zsh
  5. Install OhMyZsh :
    1
    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
  6. Disconnect from your instance and reconnect it.

Install Node and npm

  1. Connect to your EC2 instance
  2. Install node
    1
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  3. Activate nvm by typing the following at the command line.
    1
    $ . ~/.nvm/nvm.sh
  4. Use nvm to install the latest version of Node.js by typing the following at the command line.
    1
    $ nvm install node
  5. Test the installation
    1
    $ node -e "console.log('Running Node.js ' + process.version)"

Install docker and docker-compose

1
curl -fsSl https://get.docker.com -o get-docker.sh

Add user to docker group

Check and add permission

1
2
3
cat /etc/passwd | grep {$USER_NAME}
sudo usermode -aG docker {$USER_NAME}
cat /etc/group | grep docker

Install docker-compose

Source link

1
2
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Install python with anaconda

1
2
3
$ curl -O https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
$ chmod +x Anaconda3-2019.03-Linux-x86_64.sh
$ ./Anaconda3-2019.03-Linux-x86_64.sh

Make sure the installation file should also be linked via the path concatenation

1
export PATH=$HOME/anaconda3/bin:$PATH

最近在看一本书叫做 Poor Economics. 中文译名叫做穷人的本质。个人觉得这个翻译确实是非常信达雅达的一个翻译。这本书里通过追踪以及研究穷人群体的生活方式,思想观念以及历史去总结了3个为什么穷人容易陷入贫穷的状态。这里很快的过一下,然后谈谈我自己从中能够得到的一些启发。

  1. 先天条件的限制。
  2. 活在当下,不做规划
  3. 对于超出自己认知范围的事物往往很容易先入为主,有偏见。

其实上面3点,结合起来看,确实似乎贫穷是一件不容易改变的事情,特别是在低一点的限定下。如果一个人每日为了生计忙忙碌碌,其实就很容易漏掉那些能够让他有成长的机会和挑战。但是第2点和第3点,我觉得我自己以及很多人都有这个毛病。

首先是不做规划。现在的时代往往是信息爆炸,抖音快手火山小视频往往能让大部分上班族每日剩下的一点时间很快的就消磨殆尽。很容易陷入这种精神鸦片,然后就光顾着抽这个了。 个人认为,活在当下,好好享受确实没错。但是这个不应该是和后面的不做规划冲突的。我现在在美国留学,有个黑人/白人混血的老哥室友。人很不错,很友善。但是确实也是live by checks。他和他的妈妈每个月拿到paymen之后,都会先买一些自己爽的东西。比如LOL里的皮肤,显卡,游戏。结果到月底,很多时候甚至是月中,就没有现金了。事实上,很多底层的美国人都是这样,不太有现金在手上,都是通过消费未来来为当下的生活买单。这点其实和中国文化有很大差异。当然我觉得这种生活方式没有问题,我也没有资格去judge别人。甚至我自己有时候有空了都会打开YouTube看看搞笑视频放松一下。但是令我恐惧的往往是这个放松一下,因为放松完之后往往还想再放松一下。

但是我觉得我应该去作出改变的,其实就是去做好规划。我认为活在当下应该是在规划之内的,而不是并行的。比如说每年计划10天的出去旅游,体验异域风情,看电影,打游戏等等等等,都是理所应当的。问题是如何执行。这一方面往往需要强大的意志力和执行力,也是我所欠缺的。我个人感觉自己往往在一件事快结束的时候就想撤退了。幼儿园和小学老师给我的评价真的很有远见:虎头蛇尾。快12年过去了,我可能还是没有特别好的改正这个缺点。

然后就是对于超出自己认知范围的事物往往很容易先入为主,有偏见。这个我作为一个数据行业工作者和机器学习建模民工深有体会。很多时候一个Classification Model它反馈不好,效果差,Accuracy下降,往往是见到了不在它原来Training Dataset里的东西。这种时候就只能找一个最相近的东西来。体现在人身上,很简单。已知饭圈女孩们愿意为了他们的idol作出各种事情比如卖房买门票,送跑车等等等等。那么很多价值观不一样的人在看到一个饭圈女孩的时候,就默认这个饭圈女孩可能人不太行。 这就是Bias。

再举个例子,因为香港废青(只是引用这个词,因为能查到),或者是香港自由民主斗争人士的非常规操作总是能够被媒体们大肆报道,大陆的民众们更容易产生 香港青年 等于 不靠谱,甚至傻X的观点。其实这也是很Biased。我也有认识几个非常乐意接受不同观点意见的香港同学,大家也很玩得来。

所以最后个人能总结的主要就是2点:

  1. 规划+执行,缺一不可。
  2. 对于未知的事物要抱有敬畏之心。

ETF

Alpha/Beta/Gamma/Delta

Sell Short : 短线卖出,做空。相信一支股票价格会下跌。

OTM/ITM options

MACD: moving average convergence/divergence. 用来做Day Trading中判断何时买入和卖出。决策点是两线之间的距离的差。

RSI: Relative strength index, indicating if a stock is getting over-sold or over-bought.

技术面: 数值预测,相信有reoccuring event 重点是可以通过技术面看大众的心态。

基本面: 看财报。运行状态,盈利水平。帮助了解基本,但是也会收到随机性的影响。

EPS: Earning per share

财报: 类似比基尼,露出来的都不是重点。From Burton Malkiel 重点是解读没露出的。

投资组合: 互为替代品组合成生态链。比如度假酒店和雨伞集团。互相补充。

Price to Earnings Ratio (PE Ratio) : how much an investor is willing to pay for one dollar of earnings.

PE = Price / Earnings Per Share (EPS)

Price-to-book(PB): Companies use the price-to-book ratio (P/B ratio) to compare a firm’s market capitalization to its book value.

PB = Market Value per share / book value per share

简介

各位居住在Troy的RPI的小伙伴们,COVID 19在美帝的情况变得更加恶劣。此篇文章仅做为信息互通,更新使用。有意见/建议/update欢迎在我的Github 给我提 Issue 。希望群内的小伙伴们能够互相帮助共渡难关。各位近期请减少不必要外出,记得出入消毒。

吃饭

建议各位关注一下饮食均衡,摄入量可以考虑这个Post

如果你住在学校

如果你留在学校,学校的Dining Hall还是开放的。具体在学校的住宿以及用餐可以参考 Reference。学校COVID 19生存全攻略参考这里

如果你住在外边自己租房

外边儿住肯定自己买菜吧,Albany咱就精良避免别去了。地址请自行Google Map 搜索。
Walmart 7 a.m. to 8:30 p.m 具体参考营业时间变动以及限购商品通知

Price chopper/market 32 7 a.m. to 10:00 p.m 具体参考营业时间变动及限购通知

餐馆订餐/外食

餐厅名称 状态 菜单链接 是否支持外送 是否支持0接触送餐 联系电话
东北人家2 未知 未知 未知 未知 未知
红蓝Red&Blue 未知 未知 未知 未知 未知
金鼎楼 未知 未知 未知 未知 未知
紫荆阁 未知 未知 未知 未知 未知
俏花旦 未知 未知 未知 未知 未知
雨亭 未知 未知 未知 未知 未知
石头记 正常开业 未知 未知 518-867-8888
Teaplus 未知 未知 未知 未知 未知
西安味道 正常开业 未知 未知 518-272-1236
沪上人家 正常开业 未知 未知 518-313-7090

餐馆二维码

石头记
Image

红蓝Red&Blue
Image

如果你对吃的没什么要求

考虑下 Soylent 把同学。风靡硅谷的码农代餐,你值得拥有。4刀一顿解决一切问题。

住宿

学校

请与学校联系。Reslife虽然效率感人,但是毕竟还是他们有决策权。

外边儿

自己家里好好呆着,别乱跑了。

出行

出行保护措施

N95口罩购买问卷链接(Troy现货)填写后请添加群主微信 584653629 确认收货地址/取货地址

Uber

Uber 目前为可用

回国攻略

TODO

纽约州疫情感染消息以及相关News

确诊病例地图

最近听了一场微软在EngineeringDaily的关于数据科学团队协作和工作流的Podcast分享,觉得挺有意思,于是爬上去看了看,发现还是挺不错的。这篇文章主要用来描述在微软,数据科学项目是如何被执行落地和交付的。之后会再想办法挖一下啊其他家大厂的这个方向上的工作流。当然我个人认为工作流这种东西把,最有价值的点不是具体执行什么内容,而是为什么要执行这些内容和什么时候去执行这些内容。顺便贴一下原文地址

概览

大致的工作流流程

首先从大致的工作流程出发,这一点非常直观。下边儿这张图比较简明扼要的概括了一个数据科学项目有哪些流程。主要是:
image

  1. 商业理解
  2. 数据获取清理
  3. 建模
  4. 部署
  5. 成果检测与交付

角色介绍

具体这5个流程中每个流程应该完成那些事情,以及对应的Deliverable会在后面详细介绍一下。然后在这整个5大块的工作流程过程当中,又分为一下4种角色:

  1. Solution Architect 解决方案架构师
  2. Project Manager 项目经理
  3. Data Scientist 数据科学家
  4. Project Lead 项目负责人

具体的这4个角色是如何在上边儿几个流程里协同工作的流程以及不同流程的Deliverable可以参考下面这个流程图:

image

标准模版项目结构

对数据科学团队(大概4人以上)来说,标准化数据科学项目对于项目执行以及管理是非常重要的。如果团队非常小,只有2个人,其实不太需要拘泥于标准化项目结构。但是当团队扩张之后就需要有一个好的标准化的模版来参考。在微软的标准数据科学项目中,一个项目主要由3个部分组成:项目文档,数据源,代码。这里对于项目代码文档和项目功能性/商业需求文档是分开的,项目代码文档应当存在代码这个部分里面。因为看这两类的人群不一样,意图也不太一样,所以最好分开。

数据科学项目技术架构与工具

这边微软的官方文档上边儿给了几个推荐,分别是云端存储,数据库,分布式计算框架比如Hadoop和Spark集群还有一些机器学习服务。他们的GitHub上面有专门的一个Repo来介绍工具。我这边个人来讲一般会把工具分为3类:存储,引擎,和算法平台。具体每块有哪些工具可以选型之后会再写篇文章总结一下。不过这里实际上去和项目应用的时候应当按照具体环境实施。如果有解决方案架构师的话,他们往往能给出非常不错的参考建议。

详细工作流程介绍

讲完概览,我们这边来详细讲一下工作流程

阶段1:商业理解

阶段目标

  1. 定义问题:明确模型要解决的问题以及相关的评估标准。
  2. 定义数据源:明确解决这个问题所需要的数据是否是已有的或者是可能需要额外收集的。

如何达到这些目标

  1. 定义问题
    1. 在定义问题的过程中,我们需要知道整个项目想要预测分析的目标量是什么。它可以是Regression来带的Forecast,也可以是某个记录为某个特定Class的可能性。这里其实就是需要 Data Science 团队里面能有人去提供行业背景知识和业务背景知识的了(Industrial Expertise)
    2. 明确问题的类型。微软把数据科学解决的问题分为了5个大类
      1. 回归:预测量
      2. 分类:预测类别
      3. 分组:就是Clustering,分组
      4. 异常检测:也就是常说的Anomaly Detection
      5. 推荐
    3. 定义团队角色和分工
    4. 定义可衡量的项目成功标准。这里微软推荐用SMART标准来制定这一标准:
      1. Specific
      2. Measurable
      3. Achievable
      4. Relevant
      5. Time-bound
  1. 定义数据源
    这里边数据主要可以分为两类,一类就是我们的相关数据或者特征, Indpendent Variables。还有一类就是Dependent Variable。前者可以去确保我们能够通过建模来解决我们的问题,后者可以帮助我们评估模型的效果。

阶段性交付内容

  1. 项目的计划书
  2. 数据源以及数据获取方式
  3. 数据文档

阶段2:数据获取清理

阶段目标

  1. 构建一个干净的,质量优秀的,与阶段1中的目标量相关且了解关系是什么样的数据集。并且将这分数据放在即将要建模的环境里面。
  2. 构建一个能够方便产生上述数据集的数据清洗管道。比如很多ETL都是做这个的。

如何达到这些目标

这一步主要有3步,主要是获取数据,探索数据集,设置数据管道。下面分开讲讲。

  1. 获取数据:这一步需要明确如何获取数据,具体内容视架构而定。比如工具选择上Sqoop还是Flume都得视具体环境决定。解决方案架构师应当帮助数据科学团队明确技术选型。
  2. 探索数据集:数据探索分析,也就是常说的EDA。这里微软提供了一个样例的数据探索分析的JupyterNotebook,非常具有参考价值。在数据探索完成之后,便可以开始着手对数据的组成以及情况进行了解,之后才是进行建模。对数据分布,组成,以及意义进行了解之后,在模型选择以及构建这一步其实会更加的游刃有余。但是我们不可置否这一步常常会经常的重复进行,因为我们也许会对数据质量不满意或者认为需要更多纬度/特征。
  3. 设置数据工作流:这一步我们需要根据我们的数据以及软件架构建造一个相对简便的数据获取自动化的流程。这一步往往有3种数据收集的方式:
    1. 批式收集
    2. 流式收集
    3. 二者混合

阶段性交付内容

  1. 数据质量报告 可参考上方提到的样例的数据探索分析JupyterNotebook
  2. 解决方案架构:它可以是数据管道的架构图或者是解释。我们会用这个架构来测试新构建的模型。这个结构应该也能够支持我们基于新的数据来刷新之前构建的模型。
  3. 决策点: 重新评估项目,评估是否项目是否可行。

阶段3:建模

阶段目标

  1. 找出对于模型来说最适合的特征
  2. 构造出一个最精准的可用于解决业务问题的机器学习模型
  3. 构造出一个适合部署的机器学习模型

如何达到这些目标

  1. 特征工程

这一步会通过对于数据的总结,聚合以及变形来帮助构造新的特征以达到分析的目的。如果我们想要知道模型的背后是怎么构成的,那么我们就得去理解特征构成的规则以及我们使用的机器学习算法是如何利用特征来构造出这些模型的。这一步其实需要算法能力和业务能力结合。特征工程其实是在平衡尽可能找到相关特征并且避免无关特征。相关特征会帮助我们提升模型的效果,但是无关特征则会给数据集带来很多噪音。

  1. 模型训练

基于解决的问题类型不同,我们选择的算法往往也不一样。算法选择方向上微软有给一篇参考文章。模型训练大致来说有以下4步:

  • 切割数据为训练集合和测试集合
  • 构建模型
  • 评估模型
  • 选择最优解决方案

微软这里非常良心的给了一个Baseline模型的生成工具 是用R语言写的。喜欢R的小伙伴们可以关注一下。但是这个文件最近一次更新是3年前,所以我估计也没什么人在用或者就是非常稳定导致没有更新哈哈哈。

阶段性交付内容

特征列表:构建模型所用到的特征列表。这里微软也有给出一个参考文档,非常推荐。
模型报告:同样,也有模版,不过个人认为不要太纠结于模版,而是要思考模版里边儿的每一块儿背后都是什么,为什么要有它。
决策点:这里有2个主要的决策点:1. 这个模型是否能够解决我们提出的问题 2. 如果不能,我们是否需要去回到阶段2重新收集数据,建模。

阶段4:部署

阶段目标

将模型成功部署到生产环境,为线上业务提供稳定的服务。

如何达到这些目标

尽可能的将模型的部署做到组件化,积木化。具体取决于业务场景。个人认为这块儿主要分为在线预测和离线预测的,这两种场景的部署方式都是大不相同的。

阶段性交付内容

  1. 模型性能以及表现的看板
  2. 模型部署结果报告
  3. 解决方案架构

阶段5:成果检测与交付

阶段目标

交付项目,确认数据管道工作流以及模型效果和部署都能满足需求方的目标。

如何达到这些目标

  1. 确认功能上模型能够解决需求方的问题。
  2. 将项目交付给使用模型的组,或者是ML ops团队。

阶段性交付内容

项目结束报告,这里微软也有给出参考的文档 主要还是总结归纳并且探索之后如何优化。其实还是离不开项目复盘的那几大块。引用最近看的一个主播常说的这叫做一通百通

结语

  1. 微软在进行数据科学项目的规范化的时候我们还是能非常直观的感受到大公司的这种流程制定标准的。某种程度上来说,它降低了公司的管理成本,同时也能帮助职员们更好的执行内容。但是这些的前提,我认为还是需要去了解哪些流程是必要的,哪些流程是也许可以省略的。毕竟很多公司可能数据科学团队就3个人,流程搞得太复杂反而会降低效率。
  2. 微软也很认可数据科学项目需要和实际的业务应用场景结合,要接地气。我相信对于在做数据科学的同学们来说,如何和行业专家有效交流的这种能力在这类项目里面是非常宝贵的。
  3. 一个平台型的工具,微软Azure的ML Service,其实还是有一定的learning curve的。产品设计合理的时候,配合产品的培训往往会给项目团队带来非常不错的return。不过这里也说到了,产品设计是否合理,其实是很难界定的。从我个人的角度出发,我觉得一个好的平台型还是得能灵活多变,配套不同的使用场景。比如Excel,你甚至能在一些游戏发布会上看到这个产品的身影。当然,这里的Trade off就是scale的成本。往往不标准化的产品,用的好的能上天,用不习惯的往往觉得设计反人类。

最近陪着我上大学时入手的 MacBook 电池因为老化严重,没法儿继续服役了。所以我去 Apple 的 Genius Bar 更换了我的电池,顺便把我的系统也重装了。每次重装完系统,我都有一种人生重新开始的感觉。于是捡起了自己之前丢了很久的博客,觉得应该好好修理一下了。

距离12月底考完最后一场试,大学还剩下最后一个学期。日子也一步一步的挪到了2020年。现在回头看看,感觉时间过的真的好快,我们都已经到2020年了。小时候一直觉得这个是一个科幻小说里才会出现的年代。但是纽约上州漫天飞舞的鹅毛大雪又狠狠的把我拉回了现实,我仿佛又见到了4年前刚来RPI的小UZ。那个时候我也正好刚搭了我的博客没几天,然后兴冲冲的入手了 live4.fun 这个域名。当时想的很简单,生容易,活容易,生活不容易。所以希望在自己短短几十年的人生里,能够活得洒脱,活出自我。但是经历了这4年后,我发现自己的想法其实有改变蛮多的。

在这4年里,我经历了2段实习,一段为期一年的正式工作,还有一段正在进行的爱情。从4年前那个踌躇满志意气风发的小小少年,到如今任然是踌躇满志,但是多了几分成熟稳重的青年来看,大学本科教育确实是帮助我成长了不少。为人处事也好,职业能力也好,我认为大学都是一个相对不错的起点相比高中毕业直接工作的话。之所以说相对不错,是因为我们不能 leave out 那些少年成才,一飞冲天的大佬们。但是我相信 Hard work will always pay back one day. 尊重客观事实,尊重社会规则也许是更稳妥的选择。不过这就像投资 Disruptive Tech, 战略上要考虑都投,而不是单纯冲一个方向,整个 Net Gain 会更容易变成 Positive。

但是说到教育,最近看了导演陈为军的一部关于中国教育的纪录片出路 Education,Education。这个片子从3位主角的视角讲述了教育产业化后,生活的变动和社会实际情况。其实我感觉换个角度看,自己其实和那些农村里出来读书的孩子差不多。努力上学,留学,然后在找一份体面的工作亦或者是继承家业。我不知道是不是我这个年代的问题,但是我真的有点惧怕那种一眼望得到头的生活。可能是千禧一代的我们在信息获取的渠道上相比之前更加简便,很多时候信息甚至会主动找上门来。不过我相信大部分人的人生轨迹应该都是很相似的,特别是当我们把 granularity 升高的时候,发现人无非就是出生-结婚-养育后代然后死去。但是我们把这个轨迹拆开来往细了看,往往就会体验到不同的人生百态。

Anyway, 我觉得这可能是一篇无病呻吟的文章,也有可能是一篇受人喜欢的文章。我觉得这里边儿最难的,还是范冲淹的那句 不以物喜不以己悲 。 感觉说白了把,就是没心没肺,生活不累。 以前上学的时候,只是知道按照老师和书本后面的要求朗读并背诵全文。现在稍微长大点了,才发现,这个事儿把它真挺难做。现在觉得随大流,随主流其实也是有一定道理的。因为大流,主流代表了主要流量。追随主要流量,满足它的需求,结果应该也不会差到哪里去。但是,盲目的追求主流,随大流,往往会把我们放到一个我们并不一定喜欢的 Endgame 里面。最终结论就是,不能忽视也不能鄙视主流。相反,要思考为什么主流会这么想,为什么会发展这样,以及我们的 Take Away 和 Action 应该是什么样的。