Un juego en el que debes adivinar si un tweet proviene de un humano o de un modelo de lenguaje de red neuronal entrenado en una categoría de tweets.
Este proyecto utiliza los siguientes proyectos de código abierto para desarrollar nuestros modelos:
Hingo para raspar los datos de Twitter de un conjunto de nombres de usuario. Para algunos conjuntos de datos más grandes, Srapoxy se usa como un grupo proxy para evitar la lista negra de IP IP de Twitter.
Abrazando los transformadores faciales para ajustar el modelo Open AI AI GPT-2 en datos adicionales.
Los modelos se implementan para modelar el zoológico para un punto final HTTP en tiempo real.
La aplicación React Frontend es un envoltorio alrededor de un conjunto de datos de tweets estáticos y los puntos finales HTTP del zoológico modelo. Consulte la documentación frontend para obtener más detalles.
El script download-tweets.sh contiene nuestra metodología para raspar un conjunto de datos de Twitter con Twint. El script acepta un solo argumento $name y busca un archivo sources/$name.txt que debería especificar una lista de manijas de Twitter para raspar. El script de raspado aplica algunas heurísticas crudas para intentar filtrar tweets que (1) son respuestas a otros tweets y (2) que tienen enlaces en ellos. Estas heurísticas no son perfectas, pero descubrí que funcionaban lo suficientemente bien.
Al preparar varios conjuntos de datos con Twint, descubrí que Twitter a menudo estaba en la lista negra de nuestra IP unos minutos en el proceso de raspado. Para evitar esto, utilicé Srapoxy en EC2 para raspar de cinco instancias de proxy EC2 diferentes a la vez.
Varios conjuntos de datos se han preparado y lanzado públicamente en AWS que puede usar:
| Conjunto de datos | Archivo de fuentes | AWS S3 URL |
|---|---|---|
| Capital de riesgo | https://github.com/model-zoo/twitter-turing-turing/blob/master/sources/vc.txt | s3://modelzoo-datasets/text-generation/vc |
| Republicanos | https://github.com/model-zoo/twitter-turing-turing/blob/master/sources/republicans.txt | s3://modelzoo-datasets/text-generation/republicans |
| Demócrata | https://github.com/model-zoo/twitter-turing-turing/blob/master/sources/democrats.txt | s3://modelzoo-datasets/text-generation/democrats |
| COVID-19 | https://github.com/model-zoo/twitter-turing-turing/blob/master/sources/covid19.txt | s3://modelzoo-datasets/text-generation/covid19 |
Gracias a Minimaxir/Descargar-Tweets-Ai-Textgen por suministrar una lista de mangos de Twitter republicanos y demócratas.
El script train.py incluye el código para cargar pesos previos a la aparición y ajustar el modelo, adaptado en gran medida del ejemplo de modelado de lenguaje de la cara. Cada modelo fue entrenado en una sola GPU K80. Todos los modelos fueron entrenados para una sola época, excepto Covid-19, que era un conjunto de datos ligeramente más pequeño y entrenados para dos épocas. El entrenamiento modelo tomó en algún lugar entre 6 y 16 horas para cada modelo.
El proceso de entrenamiento podría mejorarse aún más con la optimización de hiperparameter y la experimentación adicional. Esto se deja como un ejercicio para el lector :)
El modelo se implementa automáticamente después de la capacitación utilizando el soporte transformers del zoológico modelo y algunas líneas de código:
textgen = pipeline("text-generation", model=model, tokenizer=tokenizer)
modelzoo.transformers.deploy(
textgen,
model_name="..."
resources_config=modelzoo.ResourcesConfig(memory_mb=2048, cpu_units=1024),
)
Asegúrese de ejecutar $ modelzoo auth para crear o iniciar sesión en una cuenta Model Zoo en su entorno de capacitación. Alternativamente, puede establecer la variable de entorno MODELZOO_API_KEY en consecuencia.
Consulte modelzoo.transformers.deploy para obtener más detalles.