
Construir y gestionar programáticamente los datos de capacitación
El equipo de snorkel ahora está enfocando sus esfuerzos en el flujo de snorkel, una plataforma de desarrollo de aplicaciones de IA de extremo a extremo basada en las ideas principales detrás de Snorkel: ¡puedes verlo aquí o unirte a nosotros para construirlo!
El proyecto de snorkel comenzó en Stanford en 2015 con una apuesta técnica simple: que serían cada vez más los datos de capacitación , no los modelos, algoritmos o infraestructura, que decidieron si un proyecto de aprendizaje automático tuvo éxito o falló. Dada esta premisa, nos propusimos explorar la idea radical de que podría llevar la estructura matemática y de sistemas al proceso desordenado y, a menudo, completamente manual de la creación y gestión de datos de capacitación, comenzando al capacitar a los usuarios para etiquetar, construir y administrar datos de capacitación.
Decir que el proyecto de snorkel tuvo éxito y expandido más allá de lo que habíamos esperado sería un eufemismo. Los objetivos básicos de un repositorio de investigación como Snorkel son proporcionar un marco mínimo viable para probar y validar hipótesis. Cuatro años después, hemos tenido la suerte de hacer no solo esto, sino también desarrollar e implementar versiones tempranas de Snorkel en asociación con algunas de las organizaciones líderes del mundo como Google, Intel, Stanford Medicine y muchas más; El autor de más de sesenta publicaciones revisadas por pares sobre nuestros hallazgos sobre el snorkel e innovaciones relacionadas en modelado de supervisión débil, aumento de datos, aprendizaje de varias tareas y más; ser incluido en cursos en universidades de primer nivel; admite implementaciones de producción en sistemas que probablemente haya utilizado en las últimas horas; y trabajar con una increíble comunidad de investigadores y profesionales de la industria, la medicina, el gobierno, la academia y más allá.
Sin embargo, nos dimos cuenta cada vez más, desde conversaciones con usuarios en horarios semanales de oficina, talleres, discusiones en línea y socios de la industria, que el proyecto de snorkel fue solo el primer paso. Las ideas detrás de snorkel cambian no solo cómo etiqueta los datos de capacitación, sino que gran parte de todo el ciclo de vida y la tubería de construcción, implementación y gestión de ML: cómo los usuarios inyectan su conocimiento; cómo se construyen, capacitan, inspeccionan, son monitoreados y monitoreados; Cómo se desarrollan iterativamente de las tuberías enteras; y cómo el conjunto completo de partes interesadas en cualquier implementación de ML, desde expertos en la materia hasta ingenieros de ML, se incorporan al proceso.
Durante el último año, hemos estado construyendo la plataforma para apoyar esta visión más amplia: Flowel Flow, una plataforma de aprendizaje automático de extremo a extremo para desarrollar e implementar aplicaciones de IA. El flujo de snorkel incorpora muchos de los conceptos del proyecto de snorkel con una variedad de técnicas más nuevas en torno al modelado de supervisión débil, el aumento de datos, el aprendizaje de varias tareas, el corte y la estructuración de datos, el monitoreo y el análisis, y más, todo lo cual se integra de una manera que es mayor que la suma de sus partes, y que creemos que hace que ML sea realmente más rápido, más flexible y más práctico que nunca.
En el futuro, centraremos nuestros esfuerzos en el flujo de snorkel. Estamos extremadamente agradecidos por todos ustedes que han contribuido al proyecto de snorkel, y estamos entusiasmados de que consulte nuestro próximo capítulo aquí.
La forma más rápida de familiarizarse con la biblioteca de snorkel es caminar por la página de Iniciar en el sitio web de snorkel, seguido de los tutoriales completos en el repositorio de tutoriales de snorkel. Estos tutoriales demuestran una variedad de tareas, dominios, técnicas de etiquetado e integraciones que pueden servir como plantillas a medida que aplica snorkel a sus propias aplicaciones.
Snorkel requiere Python 3.11 o posterior. Para instalar Snorkel, recomendamos usar pip :
pip install snorkel o conda :
conda install snorkel -c conda-forgePara obtener información sobre la instalación desde la fuente y contribuir al snorkel, consulte nuestras pautas contribuyentes.
Los siguientes comandos de ejemplo dan más color al instalar con conda . Estos comandos suponen que la instalación de su conda es Python 3.11 y que desea usar un entorno virtual llamado snorkel-env .
# [OPTIONAL] Activate a virtual environment called "snorkel"
conda create --yes -n snorkel-env python=3.11
conda activate snorkel-env
# We specify PyTorch here to ensure compatibility, but it may not be necessary.
conda install pytorch==1.1.0 -c pytorch
conda install snorkel==0.9.0 -c conda-forgeSi está usando Windows, recomendamos encarecidamente usar Docker (puede encontrar un ejemplo en nuestro repositorio de tutoriales) o en el subsistema de Linux. Hemos realizado pruebas limitadas en Windows, por lo que si desea contribuir con instrucciones o mejoras, ¡no dude en abrir un PR!
Utilizamos problemas de GitHub para publicar errores y solicitudes de funciones, cualquier cosa relacionada con el código. Solo asegúrese de buscar problemas relacionados primero y usar nuestras plantillas de problemas. Podemos solicitar contribuciones si una solución rápida no encaja en la hoja de ruta inmediata del equipo de desarrollo central.
¡Agradecemos las contribuciones de la comunidad de snorkel! Esta es probablemente la forma más rápida de obtener un cambio que le gustaría ver en la biblioteca.
Se pueden hacer pequeñas contribuciones directamente en una solicitud de extracción (PR). Si desea contribuir con una característica más grande, primero recomendamos crear un problema con un diseño propuesto para la discusión. Para obtener ideas sobre en qué trabajar, hemos etiquetado problemas específicos como help wanted .
Para establecer un entorno de desarrollo para contribuir al snorkel, consulte nuestras pautas contribuyentes. Todos los PR deben pasar las pruebas de integración continua y recibir la aprobación de un miembro del equipo de desarrollo de snorkel antes de que se fusionen.
Para preguntas y respuestas más amplias, discusiones sobre el uso de snorkel, solicitudes de tutoriales, etc., use el foro de la comunidad de snorkel alojado en Spectrum. Esperamos que este sea un lugar para que interactúe con otros usuarios de snorkel, ¡no seas tímido para publicar!
Para mantenerse al día con los anuncios relacionados con el snorkel (por ejemplo, los lanzamientos de versión, los próximos talleres), suscríbase a la lista de correo de snorkel. Prometemos respetar sus bandejas de entrada: ¡la comunicación será escasa!
Síganos en Twitter @snorkelai.