<img src="https://yellow-cdn.veclightyear.com/35dd4d3f/df12b40f-b2f6-463e-82ff-43eda4a0734f.png" width="150"/>
![PyPI - Python Version](https://yellow-cdn.veclightyear.com/35dd4d3f/72de20a5-16e7-4e74-a545-32c69910b525.png)
![PyPI](https://yellow-cdn.veclightyear.com/35dd4d3f/5a333f2d-92e7-4523-82f0-088c0c4422a5.png)
![Conda](https://yellow-cdn.veclightyear.com/35dd4d3f/c44d13b5-88fe-42a4-be51-207b18889753.png)
[![docs](https://yellow-cdn.veclightyear.com/35dd4d3f/d749ed38-994d-4b25-9408-36e7fa5dcd15.png)](https://snorkel.readthedocs.io/en/master)
[![coverage](https://yellow-cdn.veclightyear.com/35dd4d3f/0f2b1a33-0da7-45c1-b5e8-cadbb2dea0ad.svg)](https://codecov.io/gh/snorkel-team/snorkel/branch/master)
[![license](https://yellow-cdn.veclightyear.com/35dd4d3f/11458005-6996-43d6-829e-f427d265ece4.svg)](https://opensource.org/licenses/Apache-2.0)
***程序化构建和管理训练数据***
## 公告
**Snorkel团队目前正将他们的努力集中在Snorkel Flow上,这是一个基于Snorkel核心理念的端到端AI应用开发平台,你可以在[这里](https://snorkel.ai)查看,或者[加入我们](https://www.snorkel.ai/careers)来共同构建它!**
[Snorkel项目](https://snorkel.ai/how-to-use-snorkel-to-build-ai-applications/)于2015年在斯坦福大学启动,核心理念很简单:决定机器学习项目成败的核心在于**训练数据**,而不是模型、算法或基础设施。基于这一理念,我们开始探索一个激进的想法,即通过数学和系统结构来推动训练数据创建和管理这一混乱且往往完全手动的过程,从而使用户能够**程序化地标注、构建和管理**训练数据。
可以说,Snorkel项目的成功和扩展超出了我们预期。像Snorkel这样的研究项目,主要目标是提供一个最低可行框架,用于测试和验证假设。四年后,我们不仅仅达成了这一步,还与谷歌、英特尔、斯坦福医学等世界领先组织合作,开发和部署了Snorkel的早期版本;发表了超过[六十篇同行评审论文](https://snorkel.ai/technology),内容涉及Snorkel及其相关创新,如弱监管建模、数据增强、多任务学习等;被列入顶级大学的课程中;支持你可能在过去几个小时内使用过的系统中的生产部署;并与来自产业、医学、政府、学术界的研究人员和实践者社区合作。
然而,通过与用户在每周办公室时间、研讨会、在线讨论和行业合作伙伴的对话中,我们越来越意识到,Snorkel项目只是第一步。Snorkel背后的理念不仅改变了你标注训练数据的方式,还改变了ML构建、部署和管理的整个生命周期和管道:用户如何注入他们的知识;模型如何构建、训练、检查、版本化和监控;整个管道如何迭代开发;以及任何ML部署中的所有利益相关者(从主题专家到ML工程师)如何被纳入过程。
在过去的一年里,我们一直在构建支持这一广泛愿景的平台:[Snorkel Flow](https://snorkel.ai/snorkel-flow-platform/),一个端到端的机器学习平台,用于开发和部署AI应用。Snorkel Flow综合了许多Snorkel项目的概念,并融合了弱监管建模、数据增强、多任务学习、数据切片和结构化、监控和分析等新技术,所有这些技术整合在一起,其效果远大于各部分简单相加的效果——我们相信,这使得ML真正变得比以往更快、更灵活、更实用。
未来,我们将把精力集中在Snorkel Flow上。我们对所有为Snorkel项目做出贡献的人表示极大的感谢,并期待你查看我们下一个篇章[这里](https://snorkel.ai)。
# 快速链接
* [Snorkel官网](https://snorkel.org)
* [Snorkel教程](https://github.com/snorkel-team/snorkel-tutorials)
* [Snorkel文档](https://snorkel.readthedocs.io/)
* [Snorkel社区论坛](https://spectrum.chat/snorkel)
* [Snorkel邮件列表](https://groups.google.com/forum/#!forum/snorkel-ml)
* [Snorkel推特](https://twitter.com/SnorkelAI)
# 入门指南
最快熟悉Snorkel库的方法是浏览Snorkel官网上的[入门页面](https://snorkel.org/get-started/),然后再查看[Snorkel教程](https://github.com/snorkel-team/snorkel-tutorials)库中的全长教程。
这些教程展示了各种任务、领域、标注技术和集成,可以作为你将Snorkel应用于自己的应用时的模板。
# 安装
Snorkel需要Python 3.11或更高版本。安装Snorkel,推荐使用`pip`:
```bash
pip install snorkel
或者使用conda
:
conda install snorkel -c conda-forge
有关源码安装和对Snorkel贡献的信息,请参阅我们的 贡献指南。
使用conda安装的详细信息
以下示例命令提供了使用conda
安装的一些详细信息。
这些命令假设你的conda
安装的是Python 3.11,并且你想使用一个名为snorkel-env
的虚拟环境。
# [可选] 激活一个名为"snorkel"的虚拟环境
conda create --yes -n snorkel-env python=3.11
conda activate snorkel-env
# 我们在这里指定PyTorch以确保兼容,但这可能不是必须的。
conda install pytorch==1.1.0 -c pytorch
conda install snorkel==0.9.0 -c conda-forge
给Windows用户的一些快速提示
如果你使用的是Windows,我们强烈推荐使用Docker (你可以在我们的 教程库中找到一个示例) 或者使用Linux子系统。 我们在Windows上的测试有限,所以如果你想贡献安装说明或改进,请随时提交PR!
讨论
问题
我们使用GitHub Issues来发布bug和功能请求——任何与代码相关的问题。 只需确保首先搜索相关问题并使用我们的Issues模板。如果立即修复不在核心开发团队的近期计划内,我们可能会请求贡献。
贡献
我们欢迎来自Snorkel社区的贡献! 这是将你希望看到的更改迅速应用到库中的最快方法。
小贡献可以直接在拉取请求(PR)中进行。
如果你想贡献一个较大的功能,我们建议首先创建一个带有建议设计的Issue进行讨论。
有关可工作事项的想法,我们已对特定问题进行了分类标记,如help wanted
。
有关回馈Snorkel的开发环境设置,请参阅我们的贡献指南。 所有PR必须通过持续集成测试,并获得Snorkel开发团队成员的批准,才能被合并。
社区论坛
对于更广泛的问答、使用Snorkel的讨论、教程请求等,请使用Spectrum上的Snorkel社区论坛。 我们希望这成为你与其他Snorkel用户互动的一个场所——请不要害羞,尽管发布!
公告
要保持最新的Snorkel相关公告(例如版本发布,未来的研讨会),请订阅Snorkel邮件列表。我们保证尊重你的收件箱——沟通会非常简短!
推特
在推特上关注我们@SnorkelAI。