El conjunto de datos utilizado en este experimento es DpgMedia2019: un conjunto de datos de noticias holandesas para la detección del partidismo.
Contiene varias partes, pero la parte principal que uso en este repositorio es un subconjunto de los artículos de noticias originales de 104K. Para cada artículo hay una etiqueta "partidista" que indica si el artículo es partidista o no (Verdadero/Falso). La cantidad de artículos partidistas y no partidistas está aproximadamente equilibrada.
El conjunto de datos fue creado por los autores con el objetivo de contribuir, por ejemplo, a crear un detector de noticias partidistas. En el código Python utilizado en los experimentos, los archivos del conjunto de datos específicos se descargan automáticamente.
Consulte github y el documento para obtener más información sobre el conjunto de datos y cómo se construyó. Consulte las Referencias para obtener información.
NOTA !! A partir de enero de 2023, ya no todos los archivos están disponibles en la ubicación original de GitHub del conjunto de datos. Si necesita los archivos originales, descárguelos del conjunto de datos de Kaggle.
Los subconjuntos de capacitación y validación utilizados en este repositorio están disponibles en la carpeta 'datos'.
En el cuaderno 'Prepare_Train_and_Validation_Datasets.ipynb', el conjunto de datos completo se dividirá en subconjuntos más pequeños que se utilizan para el entrenamiento y la validación.
Estos archivos están disponibles en la carpeta 'datos' de este repositorio.
Las razones principales para crear subconjuntos más pequeños de datos son que un modelo GPT (u otro LLM) solo necesita unos pocos miles de muestras para realizar ajustes en ellos. Conjuntos de datos más pequeños también significan menos tokens y una factura más pequeña para su tarjeta de crédito ;-)
Los subconjuntos más pequeños tienen las siguientes cantidades de muestra:
Los siguientes modelos regulares de Transformer se entrenaron y validaron en el cuaderno 'Transformer_Model_Training_And_Validation.ipynb' en los subconjuntos más pequeños de datos de entrenamiento y validación:
Los modelos PolyLM 1.7B y OpenLLaMA 7B V2 Open LLM se entrenaron previamente en conjuntos de datos multilingües que también contenían el idioma holandés.
En el cuaderno 'Open_LLM_Training_And_Validation.ipynb', los modelos Open LLM están cuantificados a 4 bits y ajustados con una configuración QLoRA para minimizar la huella de memoria de la GPU.
LoraConfig está configurado con un rango de 64 y un alfa de 16.
Después del entrenamiento, el modelo PolyLM 1.7B logra una precisión en el conjunto de validación del 84,4%, mientras que el modelo OpenLLaMA 7B V2 alcanza incluso el 89,5%.
Hice varias carreras de entrenamiento y en varias ocasiones ambos modelos obtuvieron puntuaciones hasta un 0,5 % más altas o más bajas en comparación con el valor mencionado anteriormente.
El código para ajustar GPT-3.5 se puede encontrar en el cuaderno 'Finetune_GPT-3.5.ipynb'. En función de los archivos CSV de capacitación y validación, se crean y cargan archivos específicos en OpenAI que se utilizan para ajustar el modelo GPT-3.5. Los artículos de noticias están incluidos en un mensaje específico diseñado para la clasificación que nos gustaría que el modelo aprendiera mediante ajustes.
El código de validación está disponible en el cuaderno 'Validate_GPT-3.5.ipynb'. para cada registro en el conjunto de validación, el texto del artículo de noticias se incluye en el mensaje y se llama a OpenAI a través de la API para obtener la respuesta de la finalización del chat. La respuesta se convierte en una etiqueta binaria y con las etiquetas reales del terreno se genera el informe de clasificación final.
El modelo OpenAI GPT-3.5 optimizado logra una precisión en el conjunto de validación del 89,4%.
Tenga en cuenta que utilicé OpenAI para el ajuste y la validación y no Azure OpenAI.
En la última versión (5 de diciembre de 2023) de este cuaderno he realizado las siguientes actualizaciones:
Encuentre a continuación los puntajes de precisión logrados en el conjunto de validación para los 3 modelos Transformer y el modelo GPT-3.5.
El modelo GPT-3.5 logra una puntuación de alta precisión después del ajuste fino.
El rendimiento de los 3 modelos Transformer está un poco por detrás. Claramente se beneficiarían de una capacitación con más muestras de datos.
El Open LLM PolyLM logra la puntuación más baja. Sin embargo, el modelo OpenLLaMA 7B V2 logra una puntuación notable del 89,5%, que es comparable a las puntuaciones logradas por los modelos GPT-3.5 Turbo ajustados (0613 y 1106).
(LLM) Tipo de modelo | Precisión de validación (%) Puntuación |
---|---|
PoliLM 1.7B (Lora: r = 64) | 84,4 |
DistilBert multilingüe | 85,6 |
Bert multilingüe | 86,3 |
DeBERTa V3 multilingüe | 85,8 |
OpenLLaMA 7B V2 (Lora:r=64) | 89,5 |
GPT-3.5 Turbo 0613 (afinado) | 90,8 |
GPT-3.5 Turbo 1106 (afinado) | 89,4 |
GPT-3.5 Turbo 1106 (aprendizaje en contexto) | 56.0 |
!! DeBERTa V3 multilingüe (conjunto de datos completo) | 95,2 |
@misc{1908.02322,
Author = {Chia-Lun Yeh and Babak Loni and Mariëlle Hendriks and Henrike Reinhardt and Anne Schuth},
Title = {DpgMedia2019: A Dutch News Dataset for Partisanship Detection},
Year = {2019},
Eprint = {arXiv:1908.02322},
}