Игра, в которой вам нужно угадать, поступает ли твит от человека или из модели языка нейронной сети, обученной категории твитов.
Этот проект использует следующие проекты с открытым исходным кодом для разработки наших моделей:
Twint для очистки данных Twitter из набора имен пользователей. Для некоторых более крупных наборов данных Scrapoxy используется в качестве прокси -пула для избежания IP -списка IP в Твиттере.
Обнимание трансформаторов лица для точной настройки модели Open AI GPT-2 по дополнительным данным.
Модели развернуты в моделировании зоопарка для конечной точки HTTP в реальном времени.
Приложение Frontend React представляет собой обертку вокруг набора данных статических твитов и модельных конечных точек http. См. Документацию Frontend для получения более подробной информации.
Скрипт download-tweets.sh содержит нашу методологию для соскоба набора данных Twitter с помощью Twint. Сценарий принимает один аргумент $name и ищет sources/$name.txt , который должен указать список ручек в Твиттере, чтобы скрепить. Сценарий скребки применяет некоторую грубую эвристику, чтобы попытаться отфильтровать твиты, которые (1) являются ответами на другие твиты и (2), которые имеют ссылки в них. Эта эвристика не идеальна, но я обнаружил, что они работали достаточно хорошо.
При подготовке нескольких наборов данных с Twint я обнаружил, что Twitter часто вбрасывает нашу IP на несколько минут в процессе очистки. Чтобы обойти это, я использовал Scrapoxy на EC2, чтобы сбрасывать из пяти различных экземпляров EC2 сразу.
Несколько наборов данных были подготовлены и выпущены на AWS, которые вы можете использовать:
| Набор данных | Файл источников | AWS S3 URL |
|---|---|---|
| Венчурный капитал | https://github.com/model-zoo/twitter-tring-test/blob/master/sources/vc.txt | s3://modelzoo-datasets/text-generation/vc |
| Республиканцы | https://github.com/model-zoo/twitter-tring-test/blob/master/sources/republicans.txt | s3://modelzoo-datasets/text-generation/republicans |
| Демократы | https://github.com/model-zoo/twitter-tring-test/blob/master/sources/democrats.txt | s3://modelzoo-datasets/text-generation/democrats |
| COVID-19 | https://github.com/model-zoo/twitter-tring-test/blob/master/sources/covid19.txt | s3://modelzoo-datasets/text-generation/covid19 |
Спасибо Minimaxir/Download-Tweets-AI-Textgen за предоставление списка ручек республиканцев и демократов в Твиттере.
Script train.py включает в себя код для загрузки предварительно подготовленных весов и тонкой настройки модели, в основном адаптированной из примера моделирования языка обнимающего лица. Каждая модель была обучена на одном графическом процессоре K80. Все модели были обучены одной эпохе, за исключением Covid-19, который был немного меньшим набором данных и обученным для двух эпох. Обучение модели заняла где -то от 6 до 16 часов для каждой модели.
Процесс обучения может быть улучшен с помощью оптимизации гиперпараметров и дополнительных экспериментов. Это осталось в качестве упражнения для читателя :)
Модель автоматически развернута после обучения, используя поддержку transformers модели и несколько строк кода:
textgen = pipeline("text-generation", model=model, tokenizer=tokenizer)
modelzoo.transformers.deploy(
textgen,
model_name="..."
resources_config=modelzoo.ResourcesConfig(memory_mb=2048, cpu_units=1024),
)
Пожалуйста, убедитесь, что вы запускаете $ modelzoo auth для создания или входа в систему в учетной записи модельного зоопарка в вашей учебной среде. В качестве альтернативы, вы можете установить переменную среды MODELZOO_API_KEY соответственно.
См. modelzoo.transformers.deploy для получения более подробной информации.