El proyecto Collective Knowledge ( CK ) es un repositorio y marco de código abierto que permite la investigación y el desarrollo colaborativos, reproducibles y sostenibles de sistemas computacionales complejos. [1] [2] CK es una infraestructura pequeña, portátil, personalizable y descentralizada que ayuda a investigadores y profesionales a:
- compartir su código, datos y modelos como componentes de Python reutilizables y acciones de automatización [3] con una API JSON unificada , metainformación JSON y un UID basado en principios FAIR [1]
- 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, colaborar y reproducir evaluaciones comparativas de sistemas computacionales complejos [5]
- unificar el análisis predictivo ( scikit-learn , R , DNN)
- permitir documentos interactivos y reproducibles [6]
Desarrollador (es) | Grigori Fursin y la fundación cTuning |
---|---|
Versión inicial | 2015 |
Lanzamiento estable | 2.5.6 / 8 de julio de 2021 |
Escrito en | Pitón |
Sistema operativo | Linux , Mac OS X , Microsoft Windows , Android |
Tipo | La gestión del conocimiento , los datos FAIR , MLOps , gestión de datos , evaluación de artefactos , sistema de gestión de paquetes , sistema de flujo de trabajo científico , DevOps , integración continua , reproducibilidad |
Licencia | Licencia Apache para la versión 2.0 y Licencia BSD de 3 cláusulas para la versión 1.0 |
Sitio web | github |
Usos notables
- ARM utiliza CK para acelerar la ingeniería informática [7] [2] [8]
- Association for Computing Machinery evalúa CK para una posible integración con la Biblioteca Digital ACM patrocinada por la Fundación Sloan [9] y para investigación reproducible [10]
- Varias conferencias patrocinadas por ACM utilizan CK para el proceso de evaluación de artefactos [11]
- Imperial College (Londres) utiliza CK para automatizar y colaborar en la detección de errores del compilador [12]
- 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 [13]
- General Motors (EE. UU.) Utiliza CK para comparar optimizaciones de redes neuronales convolucionales [14] [15]
- La Raspberry Pi Foundation y la cTuning Foundation lanzaron un flujo de trabajo de 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 Nature [16]
- CK se utiliza para automatizar la referencia MLPerf [17] [18]
Administrador de paquetes portátil para flujos de trabajo portátiles
CK tiene un administrador de paquetes multiplataforma integrado con scripts de Python , API JSON y metadescripción JSON para reconstruir automáticamente el entorno de software en una máquina de usuario necesaria para ejecutar un flujo de trabajo de investigación determinado. [19]
Reproducibilidad de experimentos
CK permite la reproducibilidad de los resultados experimentales a través de la participación de la comunidad similar a Wikipedia y la física . Siempre que se comparte un nuevo flujo de trabajo con todos los componentes a través de GitHub, cualquiera puede probarlo en una máquina diferente, con un entorno diferente y usando opciones ligeramente diferentes (compiladores, bibliotecas, conjuntos de datos). Siempre que se encuentra un comportamiento inesperado o incorrecto, la comunidad lo explica, corrige componentes y los comparte como se describe en. [4]
Referencias
- ^ a b Fursin, Grigori (octubre de 2020). 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 (PDF) . Transacciones filosóficas de la Royal Society . arXiv : 2011.01149 . Consultado el 22 de octubre de 2020 .
- ^ a b Fursin, Grigori ; Anton Lokhmotov; Ed Plowman (enero de 2016). Conocimientos Colectivos: hacia la I + D de sostenibilidad . Actas del 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE) . Consultado el 14 de septiembre de 2016 .
- ^ componentes y acciones de CK reutilizables para automatizar tareas de investigación comunes
- ↑ a b c Grigori Fursin , Anton Lokhmotov, Dmitry Savenko, Eben Upton . Un flujo de trabajo de conocimiento colectivo para la investigación colaborativa en técnicas de autoajuste multiobjetivo y aprendizaje automático , arXiv: 1801.08024, enero de 2018 ( enlace arXiv , informe interactivo con experimentos reproducibles )
- ^ Repositorio en línea con resultados reproducidos
- ^ Índice de artículos reproducidos
- ^ Información de HiPEAC (página 17) (PDF) , enero de 2016
- ^ Ed Plowman; Grigori Fursin, presentación de ARM TechCon'16 "Conozca sus cargas de trabajo: ¡Diseñe sistemas más eficientes!"
- ^ Reproducibilidad de resultados en la biblioteca digital de ACM
- ^ ACM TechTalk sobre la reproducción de 150 artículos de investigación y su prueba en el mundo real
- ^ Evaluación de artefactos para conferencias de sistemas y aprendizaje automático
- ^ Proyecto EU TETRACOM para combinar CK y CLSmith (PDF) , archivado desde el original (PDF) el 2017-03-05 , consultado el 2016-09-15
- ^ Reproducción de evaluación de artefactos para "Precarga de software para accesos indirectos a memoria", CGO 2017, utilizando CK
- ^ Sitio web de desarrollo de GitHub para Caffe con tecnología CK
- ^ Aplicación de Android de código abierto para permitir que la comunidad participe en la evaluación comparativa colaborativa y la optimización de varias bibliotecas y modelos de DNN
- ^ Reproducir los resultados cuánticos de la naturaleza: ¿qué tan difícil podría ser?
- ^ Evaluación comparativa de multitudes de MLPerf
- ^ Guía de automatización de referencia de inferencia MLPerf
- ^ Lista de paquetes CK compartidos
enlaces externos
- Sitio de desarrollo: [1]
- Documentación: [2]
- Repositorio público con experimentos de colaboración colectiva: [3]
- El Taller Internacional sobre Sistema de Computación Adaptativa de Autoajuste (ADAPT) utiliza CK para permitir la revisión pública de publicaciones y artefactos a través de Reddit : [4]