La revolución de la IA tardó décadas en gestarse. Era un campo lleno de emoción, pero a menudo salpicado de decepciones e " ". Pero recientemente, algo cambió. Los modelos de lenguaje grande (LLM) como ChatGPT, Claude y Bard catapultaron a la IA de la curiosidad del laboratorio a la . inviernos de IA corriente principal Este cambio no fue solo un triunfo de la IA, sino también una victoria sobre las complejidades de los datos grandes y desordenados. Como dice el dicho, “entra basura, sale basura”. Están surgiendo nuevas herramientas que se centran en mejorar los datos subyacentes y, por lo tanto, mejorar los LLM. El doble desafío de los LLM El término "Modelos de lenguaje grande" encierra dos grandes desafíos. En primer lugar, el gran volumen de datos. Estamos hablando de más de un (un millón de gigabytes) de datos para GPT-4, que abarcan millones de libros, blogs, publicaciones en redes sociales, transcripciones de videos y más. Esta escala colosal ofrece un gran potencial, pero también plantea importantes consideraciones logísticas. petabyte En segundo lugar, la complejidad del lenguaje natural. Los datos lingüísticos dependientes del contexto, ambiguos y diversos son una bestia salvaje que incluso los mejores algoritmos luchan por domar. Es imposible etiquetar con precisión todos estos datos, lo que inevitablemente significa que incluso los LLM de última generación están capacitados en toneladas de datos etiquetados incorrectamente. Al enfrentar estos desafíos, surgieron nuevas herramientas y metodologías centradas en datos, lo que permitió un verdadero salto en lo que la IA es capaz de hacer. Soluciones como Cleanlab y otras comenzaron a ofrecer formas de recopilar diversos datos, automatizar el control de calidad y procesar el lenguaje en una forma adecuada para los modelos de IA. Estas herramientas no solo ofrecían mejoras incrementales; reformaron fundamentalmente el enfoque del manejo de datos de IA. Transformaron la tarea de manejar datos lingüísticos a gran escala de un proceso manual y propenso a errores a uno automatizado y preciso, democratizando el campo y permitiendo avances a un ritmo sin precedentes. Por qué se necesita IA centrada en datos (con una demostración de Python) En IA, los conjuntos de datos del mundo real contienen . Estas imperfecciones dificultan significativamente la formación y la evaluación. La IA centrada en datos enfatiza la mejora de la calidad del propio conjunto de datos. errores de anotación que van del 7 al 50 % de OpenAI, por ejemplo, ilustra este énfasis: “Priorizamos filtrar todos los datos malos en vez de dejar todos los datos buenos. Esto se debe a que siempre podemos ajustar nuestro modelo con más datos más adelante para enseñarle cosas nuevas, pero es mucho más difícil hacer que el modelo olvide algo que ya ha aprendido”. La estrategia Sin embargo, un enfoque de filtrado manual de datos requiere mucho tiempo y es costoso. El es un marco de código abierto popular para practicar la IA centrada en datos en la actualidad. Le permite ejecutar algoritmos de calidad de datos en las salidas de su modelo ML entrenado para detectar problemas comunes de conjuntos de datos como errores de etiqueta, valores atípicos, deriva y más. paquete Cleanlab Con solo unas pocas líneas de código, puede encontrar e identificar automáticamente problemas en varios tipos de datos, como imágenes, texto, tablas y audio. Al usar el paquete Cleanlab, puede decidir cómo mejorar su conjunto de datos y modelo, volver a entrenar su modelo ML y ver cómo mejora su rendimiento sin ningún cambio en su código existente. Cleanlab Studio, por otro lado, es más que una simple extensión del paquete Cleanlab; es una plataforma sin código diseñada para encontrar y solucionar problemas en conjuntos de datos del mundo real. No solo se detiene en la detección de problemas, sino que va más allá en el manejo de la curación y corrección de datos, e incluso automatiza casi todas las partes difíciles de convertir datos sin procesar en ML o Analytics confiables. Usemos el paquete Cleanlab para demostrar el poder de la IA centrada en datos. 1. Preparación de datos y ajuste Comenzamos con el . Asegúrese de tener el y los conjuntos cargados. En esta demostración, ajustaremos el Davinci LLM para la clasificación de 3 clases, primero sin Cleanlab, y luego veremos cómo podemos mejorar la precisión centrándonos en los datos. Podemos ejecutar un comando bash simple para entrenar un modelo. conjunto de datos de cortesía de Stanford tren de prueba !openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline" Cuando haya terminado, podemos consultar un punto final para ver la precisión de la prueba. fine_tunes.results !openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv `df = pd.read_csv('baseline.csv') línea base_acc = df.iloc[-1]['clasificación/precisión']` Obtenemos un resultado de 63% de precisión. A ver si podemos mejorar esto. 2. Obtenga las probabilidades de clase pronosticadas Ahora, usemos la API de OpenAI para calcular incrustaciones y ajustar un modelo de regresión logística para obtener probabilidades de clase predichas fuera de la muestra. # Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values # Get out-of-sample predicted class probabilities via cross-validation. from sklearn.linear_model import LogisticRegression model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba") Con solo una línea de código, Cleanlab estima qué ejemplos tienen problemas de etiquetas en nuestro conjunto de datos de entrenamiento. from cleanlab.filter import find_label_issues Ahora podemos obtener índices de ejemplos que se estima que tienen problemas de etiquetas: issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error 3. Filtrar problemas de etiquetas y volver a entrenar Ahora, extrajimos automáticamente los índices de ejemplos potencialmente mal etiquetados, para que podamos eliminarlos y entrenar un nuevo clasificador. # Remove the label errors train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl") Ahora entrenemos un clasificador más robusto con mejores datos. !openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped" # Evaluate model on test data !openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy'] Obtenemos una precisión de más del 66%, mejorando un modelo de ajuste fino de última generación (GPT-3, ya que no se puede ajustar GPT-4), simplemente mejorando automáticamente el conjunto de datos, sin ningún cambio. al modelo Con Cleanlab Studio, también es posible corregir automáticamente las etiquetas incorrectas en lugar de simplemente eliminarlas por completo, lo que mejora aún más la precisión. Una de Cleanlab muestra que esto lleva la precisión hasta un 77%. guía comida para llevar Al usar herramientas centradas en datos como Cleanlab, puede encontrar y corregir problemas de datos y etiquetas de manera eficiente, lo que lleva a mejoras significativas en el rendimiento de LLM como Davinci. Este enfoque no altera la arquitectura del modelo ni los hiperparámetros y se enfoca solo en mejorar la calidad de los datos de entrenamiento. El enfoque descrito en esta guía podría ser la clave para desbloquear una mayor precisión y solidez en los modelos de IA, incluso con futuros LLM avanzados como GPT-5.