ツイートが人間から来るか、ツイートのカテゴリーでトレーニングされたニューラルネットワーク言語モデルから来るかを推測する必要があるゲーム。
このプロジェクトでは、モデルを開発するために次のオープンソースプロジェクトを使用しています。
ユーザー名のセットからTwitterデータをスクレイピングするためのトウント。いくつかのより大きなデータセットの場合、スクラポキシはTwitterのIPブラックリストを避けるためのプロキシプールとして使用されます。
追加データでオープンAI GPT-2モデルを微調整するためのフェイストランスを抱きしめます。
モデルは、リアルタイムのHTTPエンドポイントのモデル動物園に展開されます。
Frontend Reactアプリケーションは、静的ツイートとモデル動物園HTTPエンドポイントのデータセットをめぐるラッパーです。詳細については、FrontEndドキュメントを参照してください。
スクリプトdownload-tweets.shには、TwitterデータセットをTwintで削減するための方法論が含まれています。スクリプトは単一の引数$nameを受け入れ、surage sources/$name.txtを検索します。スクレイピングスクリプトは、(1)他のツイートへの返信であり、(2)リンクを持っているツイートを除外しようとするために、いくつかの粗いヒューリスティックを適用します。これらのヒューリスティックは完璧ではありませんが、私は彼らが十分にうまく機能していることがわかりました。
Twintでいくつかのデータセットを準備する際に、Twitterがスクレイピングプロセスの数分後にIPをブラックリストに登録することが多いことがわかりました。これを回避するために、EC2でスクラポキシを使用して、5つの異なるEC2プロキシインスタンスから一度にこすります。
いくつかのデータセットが準備され、AWSで公開され、自由に使用できるようになりました。
| データセット | ソースファイル | AWS S3 URL |
|---|---|---|
| ベンチャーキャピタル | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/vc.txt | s3://modelzoo-datasets/text-generation/vc |
| 共和党員 | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/republicans.txt | s3://modelzoo-datasets/text-generation/republicans |
| 民主党 | 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 |
共和党と民主党のTwitterハンドルのリストを提供してくれたMinimaxir/download-tweets-ai-textgenに感謝します。
スクリプトtrain.pyには、前提条件の重みをロードし、モデルを微調整するコードが含まれています。各モデルは、単一のK80 GPUでトレーニングされました。すべてのモデルは、Covid-19を除き、単一のエポックのためにトレーニングされました。これはわずかに小さいデータセットであり、2つのエポックのためにトレーニングされました。モデルトレーニングは、各モデルの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),
)
トレーニング環境でモデルZooアカウントを作成またはログインするために$ modelzoo authを実行してください。または、それに応じて環境変数MODELZOO_API_KEYを設定できます。
詳細については、 modelzoo.transformers.deploy参照してください。