「职场」机器学习工程师第一年的 12 点体会
作者头像
  • 彭慧君
  • 2020-02-08 13:13:35 1

机器学习工程师的一天及经验分享

作为一名机器学习工程师,我的日常工作充满了挑战和学习的机会。以下是我在工作中的一些体验和心得,希望能对你有所帮助。

机器学习工程师的日常

早上九点,我来到办公室,与同事们打招呼,把午餐放进冰箱,倒杯咖啡,然后坐在自己的工位上。接着,我会查看前一天的笔记,打开Slack,浏览未读消息和团队共享的论文或博客文章链接。这一领域的发展迅速,因此需要持续关注最新的技术和趋势。

通常,在处理完未读消息后,我会花些时间阅读论文和博客文章,尤其是那些理解起来比较困难的内容。阅读可以帮助我更好地掌握工作所需的技能,尽管这可能会占用我一小时甚至更长的时间。有时朋友会问我为何花费这么多时间阅读,但我认为这是提升自己技能的最佳途径。然而,当面临紧迫的项目截止日期时,我不得不调整阅读时间,以便推动项目的进展。

完成阅读后,我会回顾前一天的工作,检查记事本,确定接下来的任务。记事本记录了我的工作流程和遇到的问题,例如:“将数据处理为正确的格式,现在需要在模型中训练这些数据。” 如果在工作中遇到问题,我会写下解决思路,例如:“出现了数据不匹配的情况,接下来我将尝试修复这些问题,并在尝试新模型前获得基线。”

大约下午四点,我会整理代码,使其更加清晰易懂,并添加必要的注释。这样做不仅是为了方便他人阅读,也是为了确保自己在未来能轻松理解这些代码。通常在下午五点左右,我会将整理好的代码上传到GitHub。

这是一天的理想状态,但并非每天都如此。有时下午四点会冒出一个灵感,然后我会全身心投入,有时甚至会通宵达旦。

机器学习工程师的经验分享

1. 数据分析至关重要

很多时候,机器学习工程师过于关注构建更好的模型,而忽视了数据质量的重要性。尽管强大的计算能力可以让模型短期内表现出色,但这并不是长期目标。首次接触项目时,必须花费大量时间熟悉数据。因为只有深入了解数据,才能在未来节省更多时间。

这意味着不仅要从细节入手,还要成为数据领域的专家。例如,检查数据分布、识别特征类型、异常值及其原因。如果你无法讲述数据背后的故事,又怎能期望模型处理好这些数据?

2. 沟通比技术挑战更重要

我遇到的大多数问题并非技术性问题,而是沟通问题。尽管技术挑战依然存在,但作为工程师,解决技术问题是我们职责的一部分。

然而,沟通的重要性不可低估。错误的技术选型可能导致项目失败,无论是内部还是外部沟通都需谨慎对待。客户的需求是否被充分理解?团队成员是否明确分工?这些都是需要解决的问题。

对于外部沟通,不断与客户交流是关键。确保他们理解你能提供的服务,并明确机器学习的优势和局限。对于内部沟通,可以利用项目管理工具(如Asana、Jira等)简化信息传递。尽管这种方法不完美,但它有助于反思工作内容,并告知他人下一步计划。

3. 实用性胜过先进性

在处理自然语言分类任务时,尽管BERT模型备受推崇,但在没有大规模计算资源的情况下,其应用仍面临诸多挑战。相反,使用ULMFiT方法虽然不如BERT先进,但同样能取得满意效果,且更易于操作。

4. 学习和实践相结合

机器学习初学者常遇到两个陷阱:一是从课程到实际项目之间的差距;二是从笔记本模型到生产环境的差距。我曾通过在线课程完成AI硕士学位,但实际工作时却发现课程结构与现实项目存在差异。为了弥补这一不足,我积极投身于自己的项目,通过实践来巩固理论知识。

部署模型方面,尽管我还在探索,但注意到机器学习工程与软件工程的融合趋势。借助Seldon、Kubeflow等服务,机器学习将成为技术栈的一部分。构建模型很简单,但如何让模型在大规模应用中发挥价值才是关键。

5. 不断学习

在工作中,我们应将20%的时间用于学习。无论是技术还是业务知识,持续学习都是提升效率的关键。如果你在某一领域表现优异,那么未来的成功将依赖于持续学习和进步。

6. 选择性阅读

每年数千篇论文中,真正有价值的论文可能不到10篇。因此,选择性地阅读高质量论文,并将所学应用于实践中,才是明智之举。

7. 成为自己最大的质疑者

面对新事物和已有解决方案的选择时,质疑自己是解决问题的有效手段。无论是开发还是探索,都应该不断问自己:选择这些取代旧的方案有哪些好处?

8. 玩具问题的价值

解决玩具问题可以让你更深入地理解复杂问题。首先建立一个简单的模型,然后逐步扩展到完整数据集。在一个小团队中,抽象问题并逐步解决是提高效率的好方法。

9. 借助“橡皮鸭”解决问题

当你遇到难题时,尝试与同事讨论,假装他们是你的橡皮鸭。这种讨论往往能帮助你找到解决方案。

10. 预制模型的应用

随着AutoML等服务的普及,许多常见问题都有现成的解决方案。使用这些工具可以让你快速构建模型,而无需深入了解底层原理。只需掌握基本原理,就能将这些模型应用到实际问题中。

11. 代码优先

在处理客户问题时,我们通常采用代码优先的方法。Python是机器学习和数据科学的主要编程语言。尽管有时需要阅读论文并复现数学模型,但现有框架已经涵盖了大部分数学内容。掌握基本的线性代数和微积分即可胜任大部分工作。

12. 经验的延续

你去年所做的工作可能在明年仍然有效。尽管技术框架和库会发生变化,但基础的统计、概率和数学原理始终不变。最大的挑战是如何将这些原理应用到实际问题中,创造商业价值。

以上是我作为机器学习工程师的一些经验和心得,希望对你有所帮助。

    本文来源:图灵汇
责任编辑: : 彭慧君
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
职场体会机器工程师学习12
    下一篇