在SIL实现分布式NLP研究 - 嘉宾博客文章

2021年11月25日

原文发表  作者: Daniel Whitenack – 经作者许可转载

图片由 Amador LoureiroUnsplash 上提供

我的主要工作是在 SIL International 担任数据科学家,致力于利用人工智能扩展语言可能性。具体来说,这包括将自然语言处理(NLP)的最新进展应用于低资源和多语言环境。我们研究领域包括口语识别、多语言对话系统、机器翻译和翻译质量评估。您可以在 ai.sil.org 找到更多关于这些工作的信息。

由于我们的工作重点是将这些技术应用于当地语言,我们的团队由来自世界各地的技术专家、语言学家和翻译人员组成。这个团队正在壮大,最近我们非常清楚地意识到,我们需要在使用数据、运行实验和消耗计算资源(如GPU)方面实现标准化和连贯的管理实践。

当我刚加入SIL时,我是整个组织中唯一的数据科学家,而现在我们不断壮大的AI和NLP团队包含10多位数据科学家或计算语言学家。我们还与一些大学和行业合作伙伴合作推进项目。这一切都很好,但也意味着我们在不同地理位置拥有各种各样的人员(SIL内部和外部),他们使用多样化的数据集和计算资源进行研发。

为了协调这些从业者并确保我们能产生集体影响,我们开始研究共享计算/数据资源和MLOps系统。现在我们已经形成了一套良好的工作流程,从业者能够利用以下资源,这些资源由 ClearML MLOps “粘合”在一起:

  • Google Colab – 我们的从业者(就像所有数据科学家和研究人员一样)热爱笔记本。SIL使用GSuite处理大多数文档和共享数据,所以我们也大量使用Google Colab。
  • 私人GPU资源 – SIL中一些长期从事NLP相关工作的人员购买了他们自己的GPU工作站。
  • 共享GPU资源 – 最近,我们购买了一台共享的4X A100 GPU服务器,供我们的内部团队和外部合作伙伴共享使用。
  • AWS S3 – 我们将数据集、模型配置、参考数据集和模型二进制文件存储在AWS S3中(以及其他与S3 API兼容的对象存储,如Digital Ocean Spaces)。
  • Google Drive – 如前所述,我们是Google GSuite的重度用户,因此我们偶尔需要从Drive中提取一些数据或资产。

通过利用ClearML,我们所有的研究人员都可以使用他们已经喜爱的工具和资源,同时我们还可以做到以下几点:

  • 利用ClearML的MLOps功能,集中且一致地跟踪实验输入/输出、数据谱系、模型出处等。
  • 管理我们“大”GPU服务器上的共享GPU队列,方式与管理工作站上的私人GPU队列相同。
  • 在协作者之间共享实验和代码。

因此,我们的NLP研发平台现在看起来就像上面的图示。无论我们的团队成员需要在何处运行他们的实验(Colab、个人GPU或共享GPU),他们都可以导入ClearML python客户端,这将把他们的实验注册到我们集中的ClearML部署中。然后,我们所有团队成员都可以在ClearML Web应用程序中探索和比较在不同基础设施上运行的实验。

来自Google Drive和S3的数据集可以经过预处理并注册为ClearML数据集。每个数据集都会有一个唯一的标识符,可以将该数据集与各种实验关联起来。

最终,以这种方式构建我们的研究和开发正在实现新的工作流程。例如,一个在亚洲工作的人可以在Google Colab中原型开发一些模型训练,并将其连同相应的数据集一起注册到ClearML中。然后,一个在欧洲工作的另一个人可以“克隆”该实验,插入不同的数据集,修改超参数,并(基于第一个实验)排队一个新实验,使其在美国德克萨斯州达拉斯的共享GPU服务器上运行。

我们对这种可追踪的协作将为SIL未来的AI工作带来什么感到非常兴奋。如果您有兴趣尝试使用ClearML进行实验跟踪……您猜怎么着?它是开源的,您只需导入库即可。在这里了解更多:here

Facebook
Twitter
LinkedIn
滚动至顶部