En un nuevo estudio, un grupo de investigadores de Apple describió un enfoque muy interesante que han adoptado, esencialmente, para obtener un modelo de código abierto para enseñar a sí misma cómo construir buenas interfaces en Swiftui. Así es como lo hicieron
En el periódico Uicoder: Fineting Language Models para generar código de interfaz de usuario a través de comentarios automatizadosLos investigadores explican que incluso si los LLM han mejorado en varias tareas de escritura, incluida la escritura creativa y la codificación, siempre tienen problemas para «generar de manera confiable el código sintácticamente correcto y bien diseñado para interfaces de usuario». También tienen una buena idea por qué:
Incluso en los conjuntos de datos de finales de finales organizados o escritos manualmente, los ejemplos de código de interfaz de usuario son extremadamente raros, en algunos casos, lo que representa menos del uno por ciento de los ejemplos generales en los conjuntos de datos de código.
Para atacarlo, comenzaron con Starchat-Beta, un LLM de código abierto especializado en codificación. Le dieron una lista de descripciones de interfaz de usuario y le pidieron que generara un conjunto de datos sintéticos masivos de programas Swiftui a partir de estas descripciones.
Luego, ejecutaron cada pieza de código a través de un compilador Swift para asegurarse de que realmente funcionara, seguido de un análisis GPT-4V, un modelo de visión en el lenguaje que comparó la interfaz compilada con la descripción original.
Se lanzaron todas las salidas que no tuvieron éxito, no parecían ingredientes o fueron duplicados. Las salidas restantes han formado un conjunto de entrenamiento de alta calidad, que luego se utilizó para refinar el modelo.
Repitieron este proceso varias veces y señalaron que en cada iteración, el modelo mejorado ha generado un mejor código Swiftui que antes. Esto, a su vez, se ha alimentado a un conjunto de datos aún más limpio.
Después de cinco vueltas, tenían casi un millón de programas Swiftui (996,000 para ser precisos) y un modelo que llaman Uicoder, que compiló y produce sistemáticamente interfaces mucho más cerca de los invitados que el modelo titular.
De hecho, según sus pruebas, para imponer considerablemente desactualizado el modelo básico de almidón beta en medidas automatizadas y evaluaciones humanas.
Uicoder también estuvo cerca de corresponder a GPT-4 en la calidad general y, de hecho, lo superó en la tasa de éxito de la compilación.
Aquí está el pateador: el conjunto de datos original excluyó accidentalmente el código Swiftui
Uno de los hechos más interesantes del estudio provino de una ligera visión. El modelo original Starchat-Beta se formó principalmente en tres corpus de datos:
- TheStack, un gran conjunto de datos (tokens 250b) de estándares de código autorizados con licencia;
- Páginas web rastreadas;
- OpenSistant-Guanaco, un pequeño conjunto de datos de instrucciones.
El problema, como explicaron los investigadores de Apple:
En particular, los datos de entrenamiento Starchat-Beta contienen pocos o ningún datos de Swiftui. Los puntos de referencia del código SWIFT se excluyeron por accidente al crear el conjunto de datos de The Stestack, y durante la inspección manual, descubrimos que el conjunto de datos OpenEassist-Guanaco contiene solo un ejemplo (de diez mil) con cualquier código rápido en el campo de respuesta. Presumimos que todos los ejemplos rápidos vistos por Starchat-beta durante el entrenamiento probablemente provienen de páginas web que se arrastran, que quizás son una calidad más baja y menos estructurada que el código de referencia.
Esto significa que las ganancias de Uicoder no vienen a reparar simplemente ejemplos de swiftui que ya había visto (porque no había casi ninguno en sus datos de entrenamiento originales), sino de los conjuntos de datos autogenerados y organizado por Apple construido gracias a su ciclo de retroalimentación automatizado.
Incluidos fotos e íconos. El código generado por el modelo de ninguna manera se ha modificado, excepto para actualizar la imagen
Nombres activos. «
Esto en realidad ha llevado a los investigadores a plantear la hipótesis de que incluso si su método ha demostrado ser efectivo en la implementación de UI utilizando swiftui, probablemente estaría muy extendido en otros idiomas y kits de herramientas de interfaz de usuario «, lo que también es bastante bueno.
El estudio, Uicoder: Fineting Language Models para generar código de interfaz de usuario a través de comentarios automatizados, es Disponible en arxiv.