El proyecto Collective Knowledge ( CK ) es un marco y repositorio de código abierto que permite la investigación y el desarrollo colaborativos, reproducibles y sostenibles de sistemas computacionales complejos. [ 2 ] CK es una infraestructura pequeña, portátil, personalizable y descentralizada que ayuda a investigadores y profesionales a:
- comparten su código, datos y modelos como componentes Python reutilizables y acciones de automatización [ 3 ] con una API JSON unificada , metainformación JSON y un UID basado en los principios FAIR [ 2 ].
- ensamblar flujos de trabajo portátiles a partir de componentes compartidos (como el autoajuste multiobjetivo y la exploración del espacio de diseño [ 4 ] ).
- automatizar, obtener mediante crowdsourcing y reproducir la evaluación comparativa de sistemas computacionales complejos [ 5 ]
- Unificar el análisis predictivo ( scikit-learn , R , DNN)
- permitir artículos reproducibles e interactivos [ 6 ]
Usos destacados
- ARM utiliza CK para acelerar la ingeniería informática [ 7 ]
- Varias conferencias patrocinadas por ACM utilizan CK para automatizar el proceso de evaluación de artefactos [ 8 ] [ 9 ].
- Imperial College (Londres) utiliza CK para automatizar y obtener mediante crowdsourcing la detección de errores de compilación [ 10 ].
- Investigadores de la Universidad de Cambridge utilizaron CK para ayudar a la comunidad a reproducir los resultados de su publicación en el Simposio Internacional sobre Generación y Optimización de Código (CGO'17) durante la Evaluación de Artefactos [ 11 ].
- General Motors (EE. UU.) utiliza CK para realizar una evaluación comparativa colectiva de las optimizaciones de redes neuronales convolucionales [ 12 ] [ 13 ].
- La Fundación Raspberry Pi y la fundación cTuning publicaron un flujo de trabajo CK con un documento "en vivo" reproducible para permitir la investigación colaborativa en técnicas de autoajuste multiobjetivo y aprendizaje automático [ 4 ].
- IBM utiliza CK para reproducir resultados cuánticos de la naturaleza [ 14 ].
- CK se utiliza para automatizar la evaluación comparativa de MLPerf [ 15 ] [ 16 ]
Gestor de paquetes portátil para flujos de trabajo portátiles
CK cuenta con un gestor de paquetes multiplataforma integrado con scripts de Python , API JSON y metadescripción JSON para reconstruir automáticamente el entorno de software en la máquina del usuario necesario para ejecutar un flujo de trabajo de investigación determinado. [ 17 ]
Reproducibilidad de los experimentos
CK permite la reproducibilidad de los resultados experimentales mediante la participación de la comunidad, de forma similar a Wikipedia y la física . Cuando se comparte un nuevo flujo de trabajo con todos sus componentes a través de GitHub, cualquiera puede probarlo en una máquina diferente, con un entorno distinto y utilizando opciones ligeramente diferentes (compiladores, bibliotecas, conjuntos de datos). Si se detecta un comportamiento inesperado o erróneo, la comunidad lo explica, corrige los componentes y los comparte, tal como se describe en [ 4 ] .
Referencias
- ↑ Paquete CK en PYPI
- 1 2 Fursin, Grigori (29 de marzo de 2021). Conocimiento colectivo: organización de proyectos de investigación como una base de datos de componentes reutilizables y flujos de trabajo portátiles con API comunes . Philosophical Transactions of the Royal Society . arXiv : 2011.01149 . doi : 10.1098/rsta.2020.0211 .
- ↑ Componentes y acciones reutilizables de CK para automatizar tareas de investigación comunes
- 1 2 3 Documento en vivo con experimentos reproducibles para facilitar la investigación colaborativa sobre técnicas de autoajuste y aprendizaje automático multiobjetivo.
- ↑ Repositorio en línea con resultados reproducidos
- ↑ Índice de artículos reproducidos
- ↑ Ed Plowman; Grigori Fursin, presentación en ARM TechCon'16 "¡Conozca sus cargas de trabajo: diseñe sistemas más eficientes!"
- ↑ Evaluación de artefactos para conferencias sobre sistemas y aprendizaje automático
- ↑ Charla técnica de ACM sobre cómo reproducir 150 artículos de investigación y ponerlos a prueba en el mundo real.
- ↑ Proyecto EU TETRACOM para combinar CK y CLSmith (PDF) , archivado del original (PDF) el 5 de marzo de 2017 , consultado el 15 de septiembre de 2016.
- ↑ Reproducción de la evaluación del artefacto "Precarga de software para accesos indirectos a memoria", CGO 2017, usando CK , 16 de octubre de 2022
- ↑ Sitio web de desarrollo de GitHub para Caffe con tecnología CK , 11 de octubre de 2022
- ↑ Aplicación Android de código abierto para permitir que la comunidad participe en la evaluación comparativa y optimización colaborativa de varias bibliotecas y modelos de redes neuronales profundas (DNN).
- ↑ Reproducir resultados cuánticos de la naturaleza: ¿qué tan difícil podría ser?
- ↑ Evaluación comparativa colaborativa de MLPerf
- ↑ Guía de automatización de pruebas de inferencia de MLPerf , 17 de octubre de 2022
- ↑ Lista de paquetes CK compartidos
Enlaces externos
- Sitio de desarrollo:
- Documentación:
- Repositorio público con experimentos colaborativos:
- El Taller Internacional sobre Sistemas de Computación Adaptativos y Autoajustables (ADAPT) utiliza CK para permitir la revisión pública de publicaciones y artefactos a través de Reddit :
- Aplicaciones de flujo de trabajo
- Automatización de compilaciones