Um jogo em que você precisa adivinhar se um tweet vem de um humano ou de um modelo de idioma de rede neural treinado em uma categoria de tweets.
Este projeto usa os seguintes projetos de código aberto para o desenvolvimento de nossos modelos:
Twint para raspar os dados do Twitter de um conjunto de nomes de usuário. Para alguns conjuntos de dados maiores, o Scrapoxy é usado como um pool de proxy para evitar a lista negra IP do Twitter.
Abraçando os transformadores de rosto para ajustar o modelo aberto de AI GPT-2 em dados adicionais.
Os modelos são implantados para modelar o zoológico para um terminal HTTP em tempo real.
O aplicativo React do front -end é um invólucro em torno de um conjunto de dados de tweets estáticos e os terminais do Model Zoo HTTP. Consulte a documentação do front -end para obter mais detalhes.
O script download-tweets.sh contém nossa metodologia para raspar um conjunto de dados do Twitter com TWINT. O script aceita um único argumento $name e pesquisa as sources/$name.txt que deve especificar uma lista de manipuladores do Twitter para raspar. O script de raspagem aplica algumas heurísticas brutas para tentar filtrar os tweets que (1) são respostas a outros tweets e (2) que têm links neles. Essas heurísticas não são perfeitas, mas descobri que elas funcionavam o suficiente.
Ao preparar vários conjuntos de dados com TWINT, descobri que o Twitter costumava ser uma lista negra de alguns minutos no processo de raspagem. Para contornar isso, usei o ScrapOxy no EC2 para raspar de cinco instâncias diferentes de proxy do EC2 de uma só vez.
Vários conjuntos de dados foram preparados e lançados publicamente na AWS que você é livre para usar:
| Conjunto de dados | Arquivo de fontes | AWS S3 URL |
|---|---|---|
| Capital de risco | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/vc.txt | s3://modelzoo-datasets/text-generation/vc |
| Republicanos | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/republicans.txt | s3://modelzoo-datasets/text-generation/republicans |
| Democratas | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/democrats.txt | s3://modelzoo-datasets/text-generation/democrats |
| COVID 19 | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/covid19.txt | s3://modelzoo-datasets/text-generation/covid19 |
Obrigado ao Minimaxir/Download-Tweets-Ai-Textgen por fornecer uma lista de alças republicanas e democratas no Twitter.
O train.py do script.py inclui código para carregar pesos pré-terenciados e ajustar o modelo, amplamente adaptado do exemplo de modelagem de linguagem de rosto abraçando. Cada modelo foi treinado em uma única GPU K80. Todos os modelos foram treinados para uma única época, exceto o Covid-19, que era um conjunto de dados um pouco menor e treinado para duas épocas. O treinamento do modelo levou algo entre 6 e 16 horas para cada modelo.
O processo de treinamento pode ser melhorado ainda mais com a otimização de hiperparâmetro e experimentação adicional. Isso é deixado como um exercício para o leitor :)
O modelo é implantado automaticamente após o treinamento, usando o suporte do Model Zoo transformers e algumas linhas 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),
)
Certifique -se de executar $ modelzoo auth para criar ou fazer login em uma conta de zoológico modelo em seu ambiente de treinamento. Como alternativa, você pode definir a variável de ambiente MODELZOO_API_KEY de acordo.
Consulte modelzoo.transformers.deploy para obter mais detalhes.