在 AI 和机器学习 (ML) 领域中,女性在开源项目上的付出不容忽视,她们为该领域的技术发展做出了重大贡献。她们开发并维护了一系列工具、算法和框架,使研究者、开发者和企业能够创建并实施尖端的 AI/ML 解决方案。
为了庆祝这些成就,Google Dev Library 展示了来自全球各地开发者的卓越贡献,以及那些从事 AI/ML 项目的女性开发者的贡献。请继续阅读以了解她们的项目及其见解。
Suzen 是一名机器学习工程师,热衷于帮助具有使命意识和社会责任感的公司利用 AI 和数据来促成显著成效。在 Twitter 工作的 3 年期间,Suzen 开发了可简化模型开发和部署流程的平台工具,从而加快了迭代速度并提高了效率。Sue 最近在 Dev Library 分享了一篇题为《如何使用 InteractiveContext 可视化自定义 TFX 工件》(How to Visualize Custom TFX Artifacts With InteractiveContext) 的博文。参阅我们与 Sue 的谈话,详细了解她的开发经历。
1. 请详细介绍一下您最近在 Dev Library 提交的关于利用 InteractiveContext 来检查 TFX 工件的文章,并解释一下为何您认为这对于调试 TFX 管道至关重要?
我最喜欢的 TFX 特性之一是,我能够单独运行管道中的各个步骤,并利用 InteractiveContext 以交互的方式检查其结果。过去,我一直以为只能使用内置可视化功能来显示标准工件,但实际上,InteractiveContext 也可以与自定义工件一起使用。由于我没有找到任何关于如何显示自定义工件的示例或文档,我便自己编写了一份教程。
2. 您能否详细介绍一下您为项目创建技术文档的流程,以便其他开发者获得更好的理解?
当我在为工作或开源项目编写技术文档时,我会竭力遵循社区的最佳实践和风格指南,并以读者为中心进行编写。我非常注重考虑读者在阅读文档后能够学到什么,或者能够完成什么。在编写我所提交的教程时,我也遵循了同样的方法。
我建议您加入您所关注的社区,参与您所使用、希望帮助其改进的项目,以积极做出贡献。利用这些项目来创建作品;遇到不清晰的文档时要敢于提问;碰到 bug 时要及时报告。如果您构建了一些出色的作品,进行演示或写文章分享。如果您发现自己解决了某个问题,主动贡献您的解决方案。如果您遇到难题或不理解某些事情,请寻求帮助。我还建议您阅读 GitHub 的《如何为开源做贡献》指南 (https://opensource.guide/how-to-contribute/)。总而言之,开源项目不仅仅关乎代码,您还可以根据个人兴趣通过多种方式做出贡献。
我的大部分个人项目都是主动学习的实践练习。当我编写关于这些项目的文档时,我更侧重于描述构建项目的过程而非最终成果。因此,除了展示项目的原理外,我还会描述激发我创建这些项目的灵感来源、我遇到的挑战以及该项目未来的规划。此外,我还会提供很多有助于开发者理解我所掌握的工具及概念的相关资源链接。
3. 您对其他对开发开源 AL/ML 项目感兴趣的女性有何建议?她们该如何起步?
我建议您加入您所关注的社区,参与您所使用、希望帮助其改进的项目,以积极做出贡献。利用这些项目来创建作品;遇到不清晰的文档时要敢于提问;碰到 bug 时要及时报告。如果您构建了一些出色的作品,进行演示或写文章分享。如果您发现自己解决了某个问题,主动贡献您的解决方案。如果您遇到难题或不理解某些事情,请寻求帮助。我还建议您阅读 GitHub 的《如何为开源做贡献》指南 (https://opensource.guide/how-to-contribute/)。总而言之,开源项目不仅仅关乎代码,您还可以根据个人兴趣通过多种方式做出贡献。
4. 您在 Dev Library 的作者个人资料中写道,您正在探索如何“让学习语言变得有趣且易于上手。”能否请您详细介绍您要如何实现这一目标?
目前这只是我的一个理想和兴趣爱好。我热衷于学习语言以及研究如何学习语言。语言是我可以“滔滔不绝而不厌其烦”的主题。实际上,我并没有一套成型的流程来实现这一目标。相反,我更多的是在进行探索和尝试,让我的好奇心引领我前行。这个过程中,有时我会阅读语言学教材、试用不同的语言学习应用、参与像 Common Voice 这样的项目,或者学习如何使用 spaCy 等内容库。
5. 您如何看待未来几年开源 AI/ML 开发领域的发展,以及您如何为这些变化做准备?
我注意到,旨在使机器学习普及化的工具和平台不断得到发展。我希望这一发展趋势能够使人们以有意义的方式,参与到他们所使用的模型及 AI 驱动型产品的互动中,并更好地理解这些技术的工作原理。此外,我也期待这将催生更多像 Masakhane 这样的草根参与式研究社区,鼓励那些没有机器学习或软件工程背景的人士也能创建开源项目并贡献自己的一份力量。
Aqsa 是一位充满激情的机器学习工程师,对技术怀有强烈的求知欲,并渴望与他人分享自己的想法。她在多个项目中拥有丰富的实践经验,包括人流量预测、白内障检测、增强现实、目标检测以及推荐系统等领域。Aqsa 在 Dev Library 上分享了一篇题为《TensorFlow 中的回调——自定义您的训练行为》(Callbacks in TensorFlow - Customize the Behavior of your training) 的博文。参阅我们与 Aqsa 的谈话,详细了解她的开发经历。
1. 作为巴基斯坦的首位 Google 开发者专家 (GDE),您如何在周围构建包容、多元化的社区?
作为 Google 开发者专家 (GDE),我的职责是通过包容和多元化的活动、研讨会以及指导来帮助改善技术社区。在 Google、GDE 同仁以及 Google 开发者社区的支持下,我们的目标是为所有人提供公平的机会,无论其背景或经验水平如何。作为一名演讲者,我向不同的听众分享我在机器学习领域的知识,并为那些在科技行业中代表性不足的群体提供指导,包括女性、少数群体以及其他来自不同背景的人士。我提供关于教育和职业发展的指导、帮助他们获取相关资源,并通过多种沟通方式尽可能地满足更多人的需求。
2. 您如何在开源 AI/ML 项目上与其他开发者合作?您遵循了哪些最佳实践来确保项目成功?
在我们的 GDE 社区中,我们拥有活跃的开源创作贡献者,他们以小组形式共同编写教程、研究论文以及其他项目。我们鼓励合作,Google 员工有时会与 GDE 一起领导开源项目。当您表达出合作意向时,开发者通常会乐于一起工作。为了培养积极的文化氛围,我们强调价值和尊重、明确的目标、可管理的任务分配、沟通渠道、开放的交流、建设性的反馈和里程碑庆祝时刻。成功合作的关键在于珍视彼此的时间和才能。
3. 在开源项目中,您如何兼顾对技术严谨性的要求与提升易用性和理解性的需求?
如要正确平衡技术严谨性与易用性,理解受众及其需求至关重要。为非技术受众简化复杂的技术概念,并专注于实际应用。在开源项目中,虽然我们拥有更大的灵活性,但在研讨会或培训中,应选择适合受众的工具和技术。对于初学者,使用更简单易懂的语言和交互式演示;而对于中级或高级受众,则可以使用编码代码段和复杂概念深入探讨技术细节。
4. 为什么技术撰稿人定期修订内容或项目很重要?您是否认为每一位技术撰稿人或开源项目的维护者都应该遵循这一最佳实践?
技术领域总是在不断变化和发展,因此,技术撰稿人需要定期修订他们的内容以确保信息的准确性。受众的反馈有助于让文档变得易于理解且与实际需求密切相关。然而,创作贡献者可能因为忙碌的工作安排而无法随时对已发布的内容进行更新。尽管如此,技术博客和项目仍然为新开发者提供了宝贵的起点。新开发者可以对原有的内容做出更新,或者撰写后续补充的博客。
5. 您能否介绍一个您特别自豪的项目,以及这个项目对开源社区产生了什么影响?
我曾参与过一些有影响力的计划,比如 Google 女性开发者学院,并担任了试点项目的导师。这个计划旨在帮助技术领域的女性提升沟通技巧,为展示自身才华做好准备,从而增强她们的自信。我还在新冠肺炎疫情期间与其他 Google 开发者专家 (GDE) 同仁合作,创建了一个名为“ML for Rookies”的开源课程,该课程简化了机器学习概念。目前,我正在开发一个由 Google 云端平台 (GCP) 提供技术支持的云 AI 项目,并已启动了一个名为“Cloud Playground”的存储库,使更多人能够轻松学习云 AI 知识。
Margaret 自 2018 年起便担任机器学习 Google 开发者专家 (GDE)。她是一名机器学习研究工程师,致力于将 AI/ML 应用于从气候变化到艺术和设计等现实世界中的用例。她在深度学习、计算机视觉、TensorFlow 和设备端 ML 方面拥有深厚的专业知识,且她经常发表文章以及在行业会议上演讲。Margaret 还在 Dev Library 上分享了多个关于 TensorFlow Lite 等主题的项目。参阅我们与 Margaret 的谈话,详细了解她的开发经历。
1. 您可以分享您所使用的 Google 技术吗?
我使用的一些 Google 技术包括 TensorFlow、TensorFlow Lite、Keras、Android、MediaPipe 和机器学习套件。
2. 您如何在开源项目上与其他开发者合作?您遵循了哪些最佳实践来确保合作成功?
我与 Google 员工、ML GDE、学生和技术专业人士都进行过合作。持续保持沟通,并遵循诸如代码提交和代码审查等最佳实践,对于确保合作成功非常有帮助。
3. 您创建和维护开源 AI/ML 项目的开发流程是什么样的,您如何确定这些项目的优先级?
由于时间有限,优先级的确定非常重要。我倾向于优先展示新技术或开发者(包括我自己)可能遇到挑战的领域。除了编写代码和教程之外,我还喜欢通过手绘笔记和视觉插图来分享知识。
4. 您一直在分享关于 TensorFlow Lite 的学习资源。您对其他对开发开源项目感兴趣的女性有何建议?她们该如何起步?
参与开源项目的方式有很多种:提供有关文档或产品功能的反馈;编写包含示例代码的教程;帮助修复 bug 或为库做出贡献等。最好先从易于上手的任务做起,然后再过渡到更具挑战性的项目。
5. 您如何看待未来几年开源 AI/ML 开发领域的发展,以及您如何为这些变化做准备?
开源在 AI/ML 开发中的重要性日益凸显,近期生成式 AI 和设备端机器学习的发展就证明了这一点。未来将会有更多开源项目的机会出现。持续参与开源项目是非常有益的,因为这不仅可以让您紧跟最新技术发展,同时还能帮助他人。
您是否在积极为 AI/ML 社区做出贡献?成为 Google Dev Library 创作贡献者吧!
Google Dev Library 是一个展示采用了 Google 技术的开源项目的平台。加入我们的全球开发者社区,展示您的项目成果。在此提交您的作品。