在使用一个工具一段时间后,你就会形成一套与之工作的特定方式。
你甚至可能对该工具的局限性有深刻的了解,知道如何解决它们,或者对其缺失的特定功能感到沮丧。
你可以扩展机器学习工具,使其形式化你的使用方式,修复局限性并添加新功能。通过创建插件、补丁和包装器来扩展工具,并将它们作为开源项目发布,也可以展示你对该工具的精通。
在这篇文章中,你将发现一个简单的 5 步流程,用于扩展机器学习工具并分享成果。

扩展机器学习工具
照片由 James Case 拍摄,部分权利保留。
根据你的需求调整工具
在你有一个项目或跨多个项目使用一个机器学习工具一段时间后,你会对如何使用它建立起深刻的认识。你也会清楚地了解希望该工具提供的功能和能力。
大多数情况下,你可能会形成自己的操作流程和工具使用方式,这些方式都经过了定制,以适应你的工作习惯。这些流程甚至可能以你和你的团队经常参考的脚本和文档的形式进行编码。
你甚至可能已经有了自己内部的补丁和工具扩展,并开始在你的项目依赖它们。
如果它们对你来说很有用,那么很可能对其他人也有用。
展示更深层次的技能
你可能已经或者想要对工具进行实质性的更改。例如,添加一种新技术或一个新的接口。
这些类型的更改需要对工具的深度了解,而这超出了大多数实践者的能力。很难用你可能已经使用数月或数年的工具来描述你的技能。
展示你对机器学习的更深层次的了解,比试图解释它要简单得多,并且可能对新项目甚至面试都有用。
创建机器学习工具的扩展
答案是创建你使用的机器学习工具的扩展或增强功能。
通过将你已有的流程、所需功能或已开发的功能集成到工具中进行扩展,可以强制你将它们形式化,并将其嵌入到工具中供自己或他人使用。
它将原本可能是权宜之计、副业项目或想法的东西,变成一个真正的迷你项目,并带来改进工具的实际成果。
此外,创建机器学习工具的扩展也发出了一个清晰的信号,表明你对该工具的了解足以识别和解决局限性,并开发新功能来扩展工具的功能。
我称这些扩展为“增强”,因为它们以某种方式构建在工具之上,并改变或改进了其功能。
扩展任何机器学习工具
你需要使用一个系统化的流程来创建机器学习工具的扩展。
快速 5 步流程
- 选择工具。选择你想扩展的工具。这可能是一个你已经描述过、流程化或研究过的工具。理想情况下,它应该是你以前用过并且经常使用的工具。
- 选择局限性。确定你想通过扩展来解决的问题。这可能是一个缺失的功能或缺失的能力。理想情况下,它应该是一个你需要的功能,或者是一个你通过自己的修复(例如,结合现有工具功能的脚本)来规避的功能。
- 设计扩展。设计对工具的更改。这取决于工具本身,但应符合工具本身的设计原则,包括现有的 API。可以使用其他第三方扩展作为模板。如果文档中缺少相关建议,可以考虑联系开发团队,咨询创建第三方扩展的最佳方法。
- 构建扩展。使用良好的软件工程实践,确保你构建了正确的东西,它能正常工作,并且你能快速完成。
- 分享扩展。与朋友、同事甚至公开分享完成的扩展。可以考虑与该工具的其他用户分享。你可能想在一个开源软件平台(如 GitHub)上托管该项目。
创建出色扩展的技巧
以下是一些你可以用来创建机器学习工具的优秀扩展的技巧。
- 聚焦狭窄。使你的扩展的焦点尽可能狭窄。理想情况下,它应该只做一件事,例如提供一种额外的技术。
- 短周期。尽快获得扩展的工作版本。越快越好,即使它只包含你脑海中所有属性和参数的一小部分。使用敏捷工程流程,尽早并频繁地交付。
- 小型项目。不要花费太长时间。尝试在一周的业余时间(晚上和周末)内完成扩展的第一个工作版本。如果你在一周后还没有工作版本,可以考虑缩小扩展的范围。
- 良好的文档。为你的扩展创建文档。提供任何人都可以复制粘贴或遵循步骤的示例,以便你的扩展能够与该工具一起工作。清楚地解释你创建它的原因以及它提供的功能。
- 开源。将你的工具扩展发布为开源。这使得其他人能够贡献、扩展和学习你的工作。
- 推广。与该工具的其他用户分享你的扩展。发布到论坛和邮件列表中,甚至可以考虑给特定的人发送邮件。你希望人们使用你的扩展并给你反馈,以便你进行进一步改进。
扩展示例
以下是一些你可以为机器学习工具进行的扩展示例:
- 创建补丁。如果该工具是开源的,这是一种对工具源代码进行的更改。你可以分发补丁,甚至请求将补丁应用到该工具中。在后一种情况下,如果更改被接受,你甚至可以作为贡献者获得项目学分。
- 创建插件。一些库和平台支持创建第三方插件。创建一个独立的插件,其中包含你的新功能。
- 创建包装器。这可能是一个脚本或接口,可以更轻松地使用该工具执行某些操作或任务。这甚至可以像为库添加命令行接口或为现有工具添加图形用户界面那样奢侈。
你可以扩展机器学习工具
你不需要成为该工具的专家。如果你能识别出该工具中缺失的特定局限性或需求,就可以为该工具创建扩展。你只需要对该工具有足够的了解,以了解如何有效地扩展它。这可能包括该工具使用的自定义 API,这可能需要专业知识。
你不需要成为机器学习专家。扩展机器学习软件工具更多的是一项工程挑战,而不是机器学习挑战。话虽如此,你的扩展可能需要对特定的机器学习技术有深入的了解才能实现它。可以考虑添加你熟悉的技术,或者一个更侧重于工程而不是机器学习的功能,例如组合技术或提供新接口。
你不需要成为一个出色的程序员。你需要有足够好的工程技能来完成扩展。这不是大师级的编程,但你应该具备良好的软件工程实践,如设计、测试,并且最好使用敏捷软件开发流程。
总结
在这篇文章中,你了解了如何扩展机器学习工具。
你了解到,通过创建机器学习工具的扩展,你可以形式化你在项目中使用该工具的方式,并填补该工具提供的缺失功能。
你还了解到,通过分享你对该工具的扩展,可以向朋友、同事和其他人展示你对该工具的精通。这在面试中可能很有用。
你学会了一个用于扩展机器学习工具的快速 5 步流程。
- 选择你想扩展的工具。
- 确定你想在工具中实现的局限性。
- 以补丁、插件或包装器的形式设计你的扩展。
- 使用良好的工程实践来构建你对机器学习工具的扩展。
- 分享你的扩展,以便他人能够从你的工作中受益,并展示你对该工具的精通。
你的下一步
有没有你想扩展的机器学习工具?
立即承诺扩展该工具!
- 在评论区发表一篇笔记。我很想知道你想扩展哪个工具。
- 使用上述流程,设计并分享你的扩展。
您对此过程有任何疑问吗?给我发电子邮件或发表评论。
暂无评论。