Análisis LLM de soluciones ganadoras / Sudo Null IT News

Hace aproximadamente un año, un entusiasta de Kaggle llamado Darek Kleczek llevó a cabo un experimento interesante: recopiló todos los artículos disponibles sobre soluciones ganadoras en Kaggle en los últimos años, los revisó LLM y los combinó. estadísticas generales sobre qué mecánicas y algoritmos resultan ser “los más exitosos”. El informe del chico resultó ser bastante voluminoso, interesante y, a veces, impredecible. Este artículo es un recuento gratuito del ensayo del autor. Dejemos que el prólogo sea una cita de Darek:

“Me encanta ganar. Cuando me uno a un concurso, estudio las soluciones ganadoras de concursos similares anteriores. Toma mucho tiempo leerlos y comprenderlos, pero son una fuente increíble de ideas y conocimientos. Pero, ¿y si pudiéramos aprender de todos? concursos? ¡Esto parece imposible, porque hay muchísimos! Bueno, resulta que con LLM podemos hacerlo…”

Mecánica

Primero, veamos cómo se implementó todo esto. El análisis de Darek se basa en la API GPT-4 de OpenAI. Utilizó este modelo en dos etapas: primero para extraer datos estructurados de las descripciones de las soluciones y luego para limpiar del ruido las listas de métodos extraídos de las soluciones. Los datos de entrada fueron este conjunto de datos.

En el primer paso, cada descripción se introduce en el LLM para que el modelo extraiga de ella una lista de los métodos de aprendizaje automático mencionados. Parecería que esto debería ser suficiente. Sin embargo, resulta que el resultado es una lista bastante ruidosa, por lo que pasamos al siguiente paso. Aquí, todos los métodos extraídos se combinan y se envían nuevamente a LLM, cuya tarea es estandarizar esta lista, es decir, asociar cada método con una categoría más pura o, si se prefiere, un grupo. Por ejemplo, “desenfoque” y “rotación” se combinan en una sola categoría “aumento”.

La tabla resultante. La columna de métodos contiene el método original ruidoso y la columna métodos de limpieza contiene la categoría estandarizada.

La tabla resultante. La columna de métodos contiene el método original ruidoso y la columna métodos de limpieza contiene la categoría estandarizada.

El autor menciona que posteriormente también realizó una limpieza manual adicional de datos: durante esto, corrigió algunas alucinaciones del LLM y eliminó ruidos que el modelo no podía soportar. Darek publicó todo el código. Aquí. Por cierto, también creó el conjunto de datos resultante. compartido. Para que puedas experimentar con ello tú mismo 🙂

Los métodos y técnicas más populares.

Bueno, pasemos ahora a la parte más interesante: veamos qué trucos y métodos utilizan con mayor frecuencia los ganadores de las competiciones de Kaggle. Por cierto, si alguno de los métodos que se presentan a continuación en el gráfico no le resulta familiar, suscríbase a nuestro Secretos de datos del canal tg: allí publicamos análisis diarios de los últimos artículos, materiales útiles y noticias del mundo del ML.

Entonces, el histograma anterior ilustra que Ensemble Methods ocupa un primer lugar seguro en nuestro ranking. Quizás no sea sorprendente. Bueno, en serio, ¿quién de nosotros no ha intentado glasear o mezclar 100.500 modelos?

Meme tomado del canal tg Data Secrets

Meme tomado del canal tg Data Secrets

Además, más interesante. En segundo lugar en el ranking de técnicas utilizadas estaba… el aumento. Pero el impulso favorito de todos cayó a la cuarta posición, siendo superado por las redes neuronales convolucionales.

¿Es importante el aumento?

¿O tal vez no debería sorprendernos tanto que el aumento ocupara un honorable segundo lugar? En la vida real, el aspecto más importante a la hora de crear un buen modelo son los datos. En Kaggle, los datos ya nos los proporciona, y la forma principal de diversificarlos y agrandar el conjunto de datos es el aumento. Si miras esta categoría “bajo un microscopio”, obtendrás la siguiente imagen:

Aquí, además de la categoría general, vemos el popular enfoque TTA (aumento del tiempo de prueba), una gran cantidad de métodos para convertir imágenes y, finalmente, agregar datos de fuentes externas. Sí, sí, tampoco deberías avergonzarte de esto. Especialmente ahora que el LLM está al alcance de la mano.

Hablando de inclinación profunda

¿Qué pasa con CNN? ¿Qué se olvidaron de los paquetes en tercer lugar? Aquí debes recordar que los concursos de visión por computadora fueron increíblemente populares en Kaggle en 2018-2023. Por lo tanto, es posible que simplemente dominaran el conjunto de datos original a partir del cual se recopiló el análisis. Sin embargo, el autor también estaba interesado en estas estadísticas y decidió comparar la dinámica de popularidad de las tres arquitecturas principales de redes neuronales: convolución, redes recurrentes y transformadores, que ahora se consideran por defecto la mejor arquitectura para casi cualquier tarea. Esto es lo que pasó:

El gráfico muestra cómo el aprendizaje profundo entra en la escena de Kaggle en 2016. Primero nos volvimos adictos a las CNN y pronto les siguieron las RNN. Transformers se inventó en 2017, comenzó a aparecer en Kaggle en 2019 y alcanzó su punto máximo en 2022. A medida que creció la popularidad de Transformers, el amor por las RNN comenzó a disminuir notablemente, pero las CNN inicialmente continuaron floreciendo. Sólo en 2022, cuando el transformador adquirió verdadera fama, su popularidad comenzó a decaer.

Aumento de gradiente

Aquí hay otro gráfico donde el aumento de gradiente se une a nuestra trinidad de aprendizaje profundo:

Qué puedo decir, una caída realmente dramática. El predominio del aumento de gradiente antes de la era del aprendizaje profundo quizás no sea sorprendente, especialmente dada la popularidad de las competiciones de cuadros en ese momento. Por supuesto, entonces, a medida que Kaggle agregó más y más competencias de CV y ​​PNL, el método dejó de ser tan común.

Pero preste atención al año 2022: en este momento, la popularidad del impulso comienza a crecer nuevamente (el diagrama, por cierto, está en una escala logarítmica). El caso es que Muchos participantes se han adaptado al uso de GBDT en combinación con transformadores u otras arquitecturas DL.. Por ejemplo, en competiciones de PNL. Si desea ver cómo se implementan dichas colaboraciones en la práctica, puede consultar el conjunto de datos anterior y utilizar este script:

combined_methods = df.groupby(('year', 'competition_name', 'place', 'link')).agg({'cleaned_methods' : list}).reset_index()
combined_methods('both') = combined_methods.cleaned_methods.apply(lambda x: 'Gradient Boosting' in x and ('Transformers' in x or 'CNNs' in x or 'RNNs' in x))
sample = combined_methods(combined_methods.both == True).sample(n=5, random_state=1)
for i, (_, row) in enumerate(sample.iterrows()):
    print(f'({14 + i}) {row.place}st place in {row.competition_name} ({row.year}): {row.link}')

Pérdida y optimizadores.

¿Qué más es importante cuando hablamos de formar un modelo de calidad para la competición? Por supuesto, la posibilidad de sintonizarlo bien. La optimización de los hiperparámetros es una de las partes más importantes para ganar. Darek presentó en su análisis dos gráficos interesantes sobre este tema: las pérdidas más “ganadoras” y los optimizadores.

Resulta ser una imagen bastante interesante: ¡las pérdidas predeterminadas y los optimizadores resultan ser los más confiables! Probablemente no en vano se los considera predeterminados 🙂 Entonces, la familia Adam ha tomado por completo el poder en el mundo de los optimizadores. Con las pérdidas ocurre más o menos lo mismo: a excepción de la pérdida focal (puedes leer sobre esto Aquí) La mayoría de las soluciones utilizan el estándar CE/BCE/MSE.

Etiquetado y posprocesamiento

No en vano el autor analizó estos apartados por separado: existe la opinión de que en ellos reside toda la magia de la victoria. En cualquier caso, estos son los principales métodos que debes tener en tu arsenal:

No es sorprendente que la característica favorita de los ganadores sea el pseudoetiquetado y el suavizado de etiquetas. Realmente funcionan bien. Bueno, en cuanto al posprocesamiento, definitivamente hay magia en este top: retención de basura, promedio, promedio ponderado: definitivamente vale la pena tener en cuenta todo esto.

Conclusiones

Entonces. Esto es lo que nos enseña todo lo anterior, también conocido como su lista de verificación para la próxima competencia de Kaggle:

  • Los datos son la clave: procesarlos correctamente y complementarlos sabiamente

  • ¡No te olvides de GBDT, CNN y RNN! Siempre tendrás tiempo para recordar los transformadores 🙂

  • No ignore las configuraciones predeterminadas (optimizadores, funciones de pérdida)

  • Pruebe el pseudoetiquetado

  • Dedique mucho tiempo y esfuerzo al posprocesamiento.

  • Y, por supuesto, ¡usa buenos conjuntos antiguos!

Más noticias, memes y huevos de Pascua del mundo de ML en nuestro canal tg. Podpishis¡para que no te pierdas nada!

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *