还在用Github管理机器学习项目?你早该了解这些更专业的新工具!
副问题[/!--empirenews.page--]
大数据文摘出品 编译:钱天培、胡笳 “太伟大了!呆板进修(ML)项目其实太伟大了!” 听到这种诉苦,认识软件开拓的小搭档们每每是嗤之以鼻的。 呆板进修,不外是和数据和软件打交道。那就应该是是运行代码、迭代算法的简朴题目呀?一段时刻后,我们就能拥有一个美满的实习有素的ML模子。 有什么伟大的? 然而,卖力正着手起呆板进修项目,你就会发明:工作可没有那么简朴! 在项目举办了一段时刻后,你的实习数据或者已经被变动或删除,而你对实习剧本的领略也许也已经异常恍惚。 回过甚看你实习好的模子,你也许也记不得每一个模子是怎么实习出来的了;再可能,你想要查察先前实习好的模子,却发明模子早已被包围。 更可骇的是团队协作,你想要把你的事变分享给你的同事们,他们却怎么也无法复现你的功效,更别提参加协作了。 别慌!本日,文摘菌就来带各人体系地进修一下,怎样正确地打点呆板进修(ML)项目。 正如一样平常的软件开拓项目一样,你必要更好地打点代码版本和项目资产。在软件开拓项目中,人们也许必要从头审阅项目先前的状态。在呆板进修项目中,我们该怎样实现相同的检察呢?与Pull Request相对应的又是什么呢? 就我小我私人而言,我才方才开始打仗呆板进修器材。在进修进程中,我寓目了一些教程视频。先生们提到的一些题目会让我想起我在软件工程职业生活早期遇到的困难。譬喻,在1993到1994年,我是一个开拓电子邮件用户署理的团队首席工程师。我们没有任何源代码打点(SCM)体系。天天我城市咨询其他团队成员,看看他们那天做了哪些改变,也就是在他们的源树和主源树之间运行一个diff操纵,然后手动变动代码。稍后,团队成员从主源树手动更新他们的源树。 在我们发明早期的SCM体系(CVS)之前,这真是一团糟。SCM器材使项目运行得越发顺遂。 当我相识到呆板进修和数据科学项目中行使的器材时,我发明呆板进修进程就如上边所说的那样。纵然在本日,呆板进修研究职员偶然会将尝试(数据,代码等)存储在并行目次布局中,以便于举办diff检察,就像我在1993年所做的那样。 那么,抱负中的呆板进修项目打点应该是怎么样的呢? ML项目打点原则 让我们从一些扼要的ML项目打点原则提及。 在任何ML项目中,措施员们城市举办很多尝试,为方针场景开拓最佳的实习模子。尝试一样平常包括:
呆板进修项目本质也就是软件运行。可是,与同事共享文件或复制功效,并实时回首以评估项目凡黑白常坚苦。我们必要更全面的打点器材。 办理方案必要涵盖以下几点(从Patrick Ball的题为《原则性数据处理赏罚》的演讲中摘录): (1) 透明性:利便搜查ML项目标方方面面
(2) 可考核性:利便搜查pipeline的中间功效 (3) 可复现性:在开拓的任何阶段准确地从头执行项目标手段,以及同事准确地从头执行项目标手段
(4) 可扩展性:支持多个同事同时处理赏罚一个项目标手段,以及同时处理赏罚多个项目标手段 为什么不在呆板进修项目中行使通例的软件工程器材? 诚然,在通例软件工程项目中行使的很多器材也许对呆板进修研究职员有效。 在通例的源代码打点体系(如Git)中可以轻松地打点代码和尝试设置,而且可以行使pull request之类的技能来打点对这些文件的更新。CI/CD(Jenkins等)体系乃至可以用于自动化项目运行。 可是,ML项目还有差异之处,使得平凡的软件开拓器材无法满意全部的需求。下面是几个重要的差异点:
此刻,我们已经有了一个呆板进修项目开拓的原则列表,并相识了ML项目和平凡软件开拓项目标差异之处。 接下来,让我们看看有哪些开源软件可以辅佐我们实现这些原则。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |