一份AI创业公司最佳「开发工具」指南,火了。
除了比较流行的开发环境JupyteR以外,还出现了这样一个身影&Mdash;&Mdash;Deepnote。
小团队制作,堪称可挑战「JupyteR Notebook」的Deepnote,目前已经有少数公司在使用了。
网友纷纷表示要去试试。
于是进一步吸引了Deepnote开发者亲自过来答疑。
所以这究竟是一份怎样的指南?还有哪些其他有意思的开发工具?
调研结果
这份调查来自一家轻量工具集成网站neptune.AI,他们采访了41家AI初创公司。
调查结果如下:
软件开发设置
IDE:JupyteR Lab+NB扩展(少数用Deepnote),Colab和PyChaRM、VScode(R用户喜欢 R studio) Github Python(大多数),R(部分)
机器学习框架
处理数据和可视化:Pandas + Matplotlib + Plotly 经典算法:SkleaRn + XGBoost 深度学习:TensoRflow + KeRas或PyTorch
MLOps
编排:Kubeflow,AIRflow,AMazon SageMakeR,AzuRe 模型包装/服务:Kubeflow,MLflow,AMazon SageMakeR 模型从训练到推理的剖析和优化:pytest-bencHMaRk、MLpeRf 实验管理:MLflow,CoMet,Neptune
具体情况,是这样的。
软件开发设置
开发环境是每个团队工作流程的基础,而对于IDE,很多团队都喜欢JupyteR Notebooks和JupyteR Lab及其NB扩展。
而有些团队则是使用标准软件开发IDE,提及最多的是PyCharm和VScode。
使用PyCharm的一家公司HotelMize称,这是最好的Python IDE。
而使用VScode的公司则为其正名。
VScode易于与AzuRe连接,并提供了许多基于ML的扩展。
对于使用R语言的团队来说,RStudio是他们最好的选择。
还有一项工具&Mdash;&Mdash;GitHub。我想这对每个AI团队都是福音,初创公司更是。
调查结果正是如此,GitHub因为其免费、强大的版本控制系统、共享功能,对团队来说都是超级有用的。
对于最流行的编程语言里,Python、R语言上榜,竟还有一个ClojuRe。
值得一提的是,对于环境/基础设施的设置方面,有一些团队给出了以下建议:
AWS作为部署平台(SiMple report)。 Anaconda是我们运行ML实验的首选工具,因为它的活代码功能,可以用来将软件代码、计算输出、解释性文本和多媒体资源结合在一个文档中。(Scanta) Redis作为内存中的数据结构存储,由于它支持不同类型的抽象数据结构,如字符串、列表、映射、集、排序集、HypeRLogLogs、位图、流和空间索引等,因此Redis作为内存中的数据结构存储占据了主导地位。(Scanta) Snowflake和AMazon S3用于数据存储。(HypeRgiant) SpaRk-pYspaRk&Mdash;-非常简单的API,用于大数据的分配作业。(HotelMize)
机器学习框架
机器学习框架也必不可少。而这一部分,选择的工具有很多。
在处理表格数据方面,最多提及的是Pandas。
SigMa PolaRis CEO表示,Pandas可能是最有价值的工具之一,尤其是在与外部开发人员合作进行各种项目时。所有的数据以数据框架的形式存在,协作更加流畅,减少了不必要的麻烦。
提到可视化,Matplotlib、Plotly是最多的选择。
还有公司推荐了Dash,它是一个在Plotly图表为基础建立的交互式仪表盘的工具,这对于用户来说更加友好。
对于标准的机器学习问题,大多数团队使用ScikIT-LeaRn和XGBoost,尤其是ScikIT-LeaRn。
iSchoolConnect公司就解释道:
ScikIT-LeaRn是机器学习研究人员、工程师和开发人员最常用的工具箱之一。你可以轻松获得你想要的东西,这一点让人惊叹不已!
对于深度学习框架而言,PyTorch、TensoRflow+KeRas很受团队欢迎。
而在具体的方向上,比如NLP,HuggingfACE、Spacy、GensiM是常用的工具,CV方面,OpenCV无疑是必需的了。
MLOps
类似于DevOps,有人称,MLOps是用于机器学习的DevOps。
MLOps是将模型集成并部署到生产系统中的所有工具。
这包括模型被部署到哪里,如何到达哪里,如何被更大的软件/应用程序访问,如何跟踪ML模型在现实世界中的性能,以及如何对模型进行实时管理和测试。
每个团队针对于自身的不同任务,所使用的工具也不尽相同。
调查的结果如下:
编排:Kubeflow,AIRflow,AMazon SageMakeR,AzuRe 模型包装/服务:Kubeflow,MLflow,AMazon SageMakeR 模型从训练到推理的剖析和优化:pytest-bencHMaRk、MLpeRf 实验管理:MLflow,CoMet,Neptune
总的来说,很多团队用JupyteR进行探索,用PyCharm/VScode进行开发。
他们都喜欢GITHub,Python语言使用的最多。
对于深度学习框架,他们更喜欢使用TensoRflow、KeRas和PyTorch。
值得注意的是,越来越多的人开始使用高级的PyToRch训练框架,如Lightning、IgnITe、CatalYst、FAstAI和SkoRch。
在可视化探索方面,人们使用Matplotlib, plotly, altAIR和hIPlot。
对于实验跟踪,团队通常使用如TensoRBOARd、MLflow和SacRed这些的开源软件包。