{"id":13414253,"url":"https://github.com/snorkel-team/snorkel","last_synced_at":"2026-02-23T05:01:58.282Z","repository":{"id":40676334,"uuid":"52581991","full_name":"snorkel-team/snorkel","owner":"snorkel-team","description":"A system for quickly generating training data with weak supervision","archived":false,"fork":false,"pushed_at":"2024-05-02T18:39:42.000Z","size":292481,"stargazers_count":5937,"open_issues_count":16,"forks_count":857,"subscribers_count":160,"default_branch":"main","last_synced_at":"2026-01-24T17:59:23.785Z","etag":null,"topics":["ai","data-augmentation","data-science","data-slicing","labeling","machine-learning","python","snorkel","training-data","weak-supervision"],"latest_commit_sha":null,"homepage":"https://snorkel.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snorkel-team.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-02-26T05:52:45.000Z","updated_at":"2026-01-22T12:05:59.000Z","dependencies_parsed_at":"2023-07-15T15:28:45.972Z","dependency_job_id":"a13a2daf-a033-4f87-9abe-5c9b57f7c5d8","html_url":"https://github.com/snorkel-team/snorkel","commit_stats":{"total_commits":2238,"total_committers":83,"mean_commits":26.96385542168675,"dds":0.6899016979445933,"last_synced_commit":"61c60e8496a057057c663912bafb0614ed2fc98a"},"previous_names":["hazyresearch/snorkel"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/snorkel-team/snorkel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snorkel-team%2Fsnorkel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snorkel-team%2Fsnorkel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snorkel-team%2Fsnorkel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snorkel-team%2Fsnorkel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snorkel-team","download_url":"https://codeload.github.com/snorkel-team/snorkel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snorkel-team%2Fsnorkel/sbom","scorecard":{"id":834799,"data":{"date":"2025-08-11","repo":{"name":"github.com/snorkel-team/snorkel","commit":"617c92400c50e95ce41fcee84309a86f76cf525c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":7,"reason":"Found 21/27 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/snorkel-team/snorkel/stale.yml/main?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.10.0 not signed: https://api.github.com/repos/snorkel-team/snorkel/releases/143894804","Warn: release artifact v0.9.9 not signed: https://api.github.com/repos/snorkel-team/snorkel/releases/73124023","Warn: release artifact v0.9.8 not signed: https://api.github.com/repos/snorkel-team/snorkel/releases/53697711","Warn: release artifact v0.9.7 not signed: https://api.github.com/repos/snorkel-team/snorkel/releases/39549043","Warn: release artifact v0.9.6 not signed: https://api.github.com/repos/snorkel-team/snorkel/releases/29482151","Warn: release artifact v0.10.0 does not have provenance: https://api.github.com/repos/snorkel-team/snorkel/releases/143894804","Warn: release artifact v0.9.9 does not have provenance: https://api.github.com/repos/snorkel-team/snorkel/releases/73124023","Warn: release artifact v0.9.8 does not have provenance: https://api.github.com/repos/snorkel-team/snorkel/releases/53697711","Warn: release artifact v0.9.7 does not have provenance: https://api.github.com/repos/snorkel-team/snorkel/releases/39549043","Warn: release artifact v0.9.6 does not have provenance: https://api.github.com/repos/snorkel-team/snorkel/releases/29482151"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"18 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: PYSEC-2021-387 / GHSA-j8fq-86c5-5v2r","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: GHSA-8qvm-5x2c-j2w7","Warn: Project is vulnerable to: PYSEC-2020-107 / GHSA-jjw5-xxj6-pcv5","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: PYSEC-2020-108","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: GHSA-3749-ghw9-m3mg","Warn: Project is vulnerable to: PYSEC-2022-43015 / GHSA-47fc-vmwq-366v","Warn: Project is vulnerable to: PYSEC-2025-41 / GHSA-53q9-r3pm-6pq6","Warn: Project is vulnerable to: PYSEC-2024-252 / GHSA-5pcm-hx3q-hm94","Warn: Project is vulnerable to: GHSA-887c-mr87-cxwp","Warn: Project is vulnerable to: PYSEC-2024-251 / GHSA-pg7h-5qx3-wjr3","Warn: Project is vulnerable to: PYSEC-2024-250","Warn: Project is vulnerable to: PYSEC-2024-259","Warn: Project is vulnerable to: GHSA-g7vv-2v7x-gj9p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T18:42:35.479Z","repository_id":40676334,"created_at":"2025-08-23T18:42:35.479Z","updated_at":"2025-08-23T18:42:35.479Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29738083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T04:51:08.365Z","status":"ssl_error","status_checked_at":"2026-02-23T04:49:15.865Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","data-augmentation","data-science","data-slicing","labeling","machine-learning","python","snorkel","training-data","weak-supervision"],"created_at":"2024-07-30T21:00:17.169Z","updated_at":"2026-02-23T05:01:58.265Z","avatar_url":"https://github.com/snorkel-team.png","language":"Python","funding_links":[],"categories":["Libraries and Tools","Data Annotation","Python","Data Manipulation","Industrial Strength NLP","Python (144)","\u003cspan id=\"head41\"\u003e3.5. Machine Learning and Deep Learning\u003c/span\u003e","AutoML NLP","Data Processing","Data Labelling and Synthesis","1. Core Frameworks \u0026 Libraries","数据读写与提取","其他_机器学习与深度学习","Tools","Data Enrichment","🏷️ Data Labeling \u0026 Curation","🤖 AI \u0026 Machine Learning","5. **Data Generation, Processing and Management**","Tools (GitHub)","Data Loading \u0026 Extraction","Synthetic Data Generation"],"sub_categories":["Data-centric AI","\u003cspan id=\"head42\"\u003e3.5.1. Machine Learning\u003c/span\u003e","Data Pre-processing \u0026 Loading","Synthetic Data","Weak Supervision \u0026 Auto-Labeling","LLMOps vs MLOps"],"readme":"\u003cimg src=\"figs/logo_01.png\" width=\"150\"/\u003e\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/snorkel)\n![PyPI](https://img.shields.io/pypi/v/snorkel)\n![Conda](https://img.shields.io/conda/v/conda-forge/snorkel)\n[![docs](https://readthedocs.org/projects/snorkel/badge/?version=master)](https://snorkel.readthedocs.io/en/master)\n[![coverage](https://codecov.io/gh/snorkel-team/snorkel/branch/master/graph/badge.svg)](https://codecov.io/gh/snorkel-team/snorkel/branch/master)\n[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n***Programmatically Build and Manage Training Data***\n\n## Announcement\n\n**The Snorkel team is now focusing their efforts on Snorkel Flow, an end-to-end AI application development platform based on the core ideas behind Snorkel—you can check it out [here](https://snorkel.ai) or [join us](https://www.snorkel.ai/careers) in building it!**\n\nThe [Snorkel project](https://snorkel.ai/how-to-use-snorkel-to-build-ai-applications/) started at Stanford in 2015 with a simple technical bet: that it would increasingly be the **training data**, not the models, algorithms, or infrastructure, that decided whether a machine learning project succeeded or failed. Given this premise, we set out to explore the radical idea that you could bring mathematical and systems structure to the messy and often entirely manual process of training data creation and management, starting by empowering users to **programmatically label, build, and manage** training data.\n\nTo say that the Snorkel project succeeded and expanded beyond what we had ever expected would be an understatement. The basic goals of a research repo like Snorkel are to provide a minimum viable framework for testing and validating hypotheses. Four years later, we’ve been fortunate to do not just this, but to develop and deploy early versions of Snorkel in partnership with some of the world’s leading organizations like [Google](https://ai.googleblog.com/2019/03/harnessing-organizational-knowledge-for.html), [Intel](https://dl.acm.org/doi/abs/10.1145/3329486.3329492), [Stanford Medicine](https://www.cell.com/patterns/fulltext/S2666-3899(20)30019-2), and many more; author over [sixty peer-reviewed publications](https://snorkel.ai/technology) on our findings around Snorkel and related innovations in weak supervision modeling, data augmentation, multi-task learning, and more; be included in courses at top-tier universities; support production deployments in systems that you’ve likely used in the last few hours; and work with an amazing community of researchers and practitioners from industry, medicine, government, academia, and beyond.\n\nHowever, we realized increasingly–from conversations with users in weekly office hours, workshops, online discussions, and industry partners–that the Snorkel project was just the very first step. The ideas behind Snorkel change not just how you label training data, but so much of the entire lifecycle and pipeline of building, deploying, and managing ML: how users inject their knowledge; how models are constructed, trained, inspected, versioned, and monitored; how entire pipelines are developed iteratively; and how the full set of stakeholders in any ML deployment, from subject matter experts to ML engineers, are incorporated into the process.\n\nOver the last year, we have been building the platform to support this broader vision: [Snorkel Flow](https://snorkel.ai/snorkel-flow-platform/), an end-to-end machine learning platform for developing and deploying AI applications. Snorkel Flow incorporates many of the concepts of the Snorkel project with a range of newer techniques around weak supervision modeling, data augmentation, multi-task learning, data slicing and structuring, monitoring and analysis, and more, all of which integrate in a way that is greater than the sum of its parts–and that we believe makes ML truly faster, more flexible, and more practical than ever before.\n\nMoving forward, we will be focusing our efforts on Snorkel Flow. We are extremely grateful for all of you that have contributed to the Snorkel project, and are excited for you to check out our next chapter [here](https://snorkel.ai).\n\n\n# Quick Links\n* [Snorkel website](https://snorkel.org)\n* [Snorkel tutorials](https://github.com/snorkel-team/snorkel-tutorials)\n* [Snorkel documentation](https://snorkel.readthedocs.io/)\n* [Snorkel community forum](https://spectrum.chat/snorkel)\n* [Snorkel mailing list](https://groups.google.com/forum/#!forum/snorkel-ml)\n* [Snorkel Twitter](https://twitter.com/SnorkelAI)\n\n# Getting Started\nThe quickest way to familiarize yourself with the Snorkel library is to walk through the [Get Started](https://snorkel.org/get-started/) page on the Snorkel website, followed by the full-length tutorials in the [Snorkel tutorials](https://github.com/snorkel-team/snorkel-tutorials) repository.\nThese tutorials demonstrate a variety of tasks, domains, labeling techniques, and integrations that can serve as templates as you apply Snorkel to your own applications.\n\n\n# Installation\n\nSnorkel requires Python 3.11 or later. To install Snorkel, we recommend using `pip`:\n\n```bash\npip install snorkel\n```\n\nor `conda`:\n\n```bash\nconda install snorkel -c conda-forge\n```\n\nFor information on installing from source and contributing to Snorkel, see our\n[contributing guidelines](./CONTRIBUTING.md).\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eDetails on installing with \u003ctt\u003econda\u003c/tt\u003e\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003e\n\nThe following example commands give some more color on installing with `conda`.\nThese commands assume that your `conda` installation is Python 3.11,\nand that you want to use a virtual environment called `snorkel-env`.\n\n```bash\n# [OPTIONAL] Activate a virtual environment called \"snorkel\"\nconda create --yes -n snorkel-env python=3.11\nconda activate snorkel-env\n\n# We specify PyTorch here to ensure compatibility, but it may not be necessary.\nconda install pytorch==1.1.0 -c pytorch\nconda install snorkel==0.9.0 -c conda-forge\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eA quick note for Windows users\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003e\n\nIf you're using Windows, we highly recommend using Docker\n(you can find an example in our\n[tutorials repo](https://github.com/snorkel-team/snorkel-tutorials/blob/master/Dockerfile))\nor the [Linux subsystem](https://docs.microsoft.com/en-us/windows/wsl/faq).\nWe've done limited testing on Windows, so if you want to contribute instructions\nor improvements, feel free to open a PR!\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n# Discussion\n\n## Issues\nWe use [GitHub Issues](https://github.com/snorkel-team/snorkel/issues) for posting bugs and feature requests — anything code-related.\nJust make sure you search for related issues first and use our Issues templates.\nWe may ask for contributions if a prompt fix doesn't fit into the immediate roadmap of the core development team.\n\n## Contributions\nWe welcome contributions from the Snorkel community! \nThis is likely the fastest way to get a change you'd like to see into the library.\n\nSmall contributions can be made directly in a pull request (PR).\nIf you would like to contribute a larger feature, we recommend first creating an issue with a proposed design for discussion. \nFor ideas about what to work on, we've labeled specific issues as [`help wanted`](https://github.com/snorkel-team/snorkel/issues?utf8=%E2%9C%93\u0026q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+).\n\nTo set up a development environment for contributing back to Snorkel, see our [contributing guidelines](./CONTRIBUTING.md).\nAll PRs must pass the continuous integration tests and receive approval from a member of the Snorkel development team before they will be merged.\n\n## Community Forum\nFor broader Q\u0026A, discussions about using Snorkel, tutorial requests, etc., use the [Snorkel community forum](https://spectrum.chat/snorkel) hosted on Spectrum.\nWe hope this will be a venue for you to interact with other Snorkel users — please don't be shy about posting!\n\n## Announcements\nTo stay up-to-date on Snorkel-related announcements (e.g. version releases, upcoming workshops), subscribe to the [Snorkel mailing list](https://groups.google.com/forum/#!forum/snorkel-ml). We promise to respect your inboxes — communication will be sparse!\n\n## Twitter\nFollow us on Twitter [@SnorkelAI](https://twitter.com/SnorkelAI).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnorkel-team%2Fsnorkel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnorkel-team%2Fsnorkel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnorkel-team%2Fsnorkel/lists"}