Estás leyendo la publicación: Conozca ‘Codeball’: un revisor de código automatizado basado en aprendizaje profundo que ayudará a los mantenedores a revisar las solicitudes de extracción de Github
Los datos en todas sus formas, ya sean fotos, música o código, se crean a gran escala. Muchos envíos de código de GitHub requieren que los revisores lean el código y recomienden modificaciones. La revisión del código requiere una cantidad significativa de tiempo y esfuerzo por parte del desarrollador. Codeball llena este vacío. Codeball es una IA de revisión de código que aprueba las solicitudes de extracción que un humano habría autorizado. La IA detecta y acepta contribuciones seguras, lo que permite a los revisores centrar sus esfuerzos en las más difíciles. Permitir tiempos de espera más cortos ahorra una cantidad significativa de dinero durante el proceso de evaluación.
Se utilizaron metadatos de más de un millón de solicitudes de extracción y miles de repositorios diferentes para entrenar Codeball. Codeball extrae características para cada PR utilizando nuestra técnica de derivación patentada, construyendo el contexto más grande en el que se presentó el PR. Por ejemplo, con qué frecuencia y quién modificó los archivos afectados, la semántica de las diferencias y, por supuesto, si la solicitud de extracción se aceptó y fusionó sin objeciones ni más comentarios.
Como modelo de predicción, Codeball utiliza un modelo de aprendizaje profundo que ha sido entrenado en más de 1 millón de contribuciones públicas y privadas de diferentes organizaciones. Al hacerlo, emplea una red neuronal clasificadora Perceptron multicapa. En su capa de entrada, el modelo toma cientos de entradas, tiene dos capas ocultas y una única salida evalúa la posibilidad de que se conceda una solicitud de extracción. Cada solicitud de extracción tiene cientos de indicaciones (la capa de entrada). Se clasifican en términos generales en tres tipos básicos, derivados y categóricos.
- Básico: metadatos que están directamente relacionados con la solicitud de extracción. Por ejemplo, se pueden agregar o quitar varias líneas.
- Derivado: datos que están relacionados con la solicitud de extracción de alguna manera. Algunos ejemplos son la cantidad de días desde la última actualización del archivo, las proporciones de propiedad de los archivos, la puntuación de volatilidad del archivo y la puntuación del archivo del autor.
- Variables categóricas: clasificaciones derivadas de la solicitud de extracción, como categorías de tipo de archivo.
Por favor, no olvides unirte a nuestro Subreddit de aprendizaje automático
El rendimiento del modelo de Codeball siempre se prueba utilizando contribuciones de código en las que nunca se ha entrenado previamente. La precisión (verdaderos positivos / (verdaderos positivos + falsos positivos)) es el criterio fundamental para el que se ha optimizado. Codeball tiene una precisión de más de 0,99.
La revisión consiste principalmente en la coincidencia de patrones. De acuerdo con la Publicación en el foro de Ycombinators, en Codeball, la tasa de falsos positivos es menor que 1%. Codeball tiene una precisión del 99 por ciento y un 25 por ciento de recuperación.yo Codeball no acepta todos los PR potencialmente “aprobables”, y cuando lo hace, es bastante seguro que será aceptado. Según las prácticas de trabajo y el estado del repositorio, estos valores pueden ser más significativos o más bajos (idealmente más altos). El retiro es una mejor manera de dar cuenta de esto. Codeball tiene un recuerdo de 48%lo que significa que sólo 48% de los RP realmente autorizados se esperaba que fueran aprobables. Para ser cauteloso, Codeball etiquetó erróneamente 52 por ciento de los RP aprobables como no aprobables.
Para comenzar a trabajar con Codeball, es necesario agregar un archivo en el repositorio de Github:
Crear un nuevo archivo llamado .github/workflows/codeball.yml con el siguiente contenido:
Eso es todo lo que hay; Codeball ahora observará todas las solicitudes de incorporación de cambios y aprobará las excelentes.
Al igual que con otras tecnologías de IA en desarrollo, algunas personas dan la bienvenida al cambio, mientras que a otras les preocupa que arruine la cultura de revisión y pueda traer código peligroso a la base de código. Queda por ver cómo evolucionan los revisores de código porque, sin duda, pueden ayudar a reducir los gastos a corto plazo y el tiempo de revisión.
Este artículo está escrito como un resumen por el personal de Marktechpost basado en el página de código, publicación en el foro de reddit y publicación en el foro ycombinator. Todo el crédito de esta investigación es para los investigadores de este proyecto. Revisar la Acción de GitHub y preguntas frecuentes.
Por favor, no olvides unirte a nuestro Subreddit de aprendizaje automático
Echa un vistazo a https://aitoolsclub.com para encontrar 100 de Cool AI Tools