リポジトリには、GPT アーキテクチャの生成言語モデルを使用して短い詩を生成するためのコードが含まれています。
GPT アーキテクチャに基づいた変革的な言語モデルが使用されます。このモデルは、ロシア語の文法 (rupt などの言語モデルと同様) と、韻の規則や詩的な韻律の構築を含む音声学の両方を考慮します。詳細はプレゼンテーションに記載されています。
モデル バイナリは、inkoziev/verslibre:latest docker イメージで入手できます。
イメージをダウンロードして実行します。
sudo docker pull inkoziev/verslibre:latest
sudo docker run -it inkoziev/verslibre:latest
起動後、プログラムは電報ボットのトークンを入力するように求めます。
すべてのモデルをロードした後、/start コマンドを使用してチャットでボットを開始できます。ボットは、エッセイの 3 つのランダムなトピックから 1 つを選択するか、独自のトピックを入力するように求めます。トピックには、「詩ジェネレーター」など、名詞が主役の任意のフレーズを使用できます。
このボットはテレグラムで @verslibre_bot として利用できます
生成例:
* * *
Любовь - источник вдохновения,
Души непризнанных людей.
И день весеннего цветения,
Омытый зеленью дождей…
* * *
Душа, гонимая страстями,
Тревожит, веет теплотой.
Любовь, хранимая стихами,
И примиренье, и покой.
生成モデル自体に加えて、トレーニング モデルのソース詩をマークする詩のトランスクリプトも、適切な動作のために非常に重要です。トランスクリプトの仕事について詳しくは、こちらをご覧ください。
Docker イメージ inkoziev/haiku:latest は、ジェネレーターを電報ボットとして実行するために利用できます。
イメージをダウンロードして実行します。
sudo docker pull inkoziev/haiku:latest
sudo docker run -it inkoziev/haiku
プログラムは、電報ボット トークンを入力するように求めます。その後、モデルが読み込まれ (約 1 分)、ボットと通信できるようになります。シード (名詞またはフレーズ) を入力します。 CPU 上でいくつかのオプションを生成するには、約 30 秒かかります。次に、ボットは最初のオプションを表示してそれを評価するか、次のオプションを表示します。
このボットは電報で @haiku_guru_bot として利用できます。
これはランダム化された生成モデルであるため、通常は同じシードを導入するだけではその結果を再現できません。良い結果をコピーし、ruDALLE などの例示的なモデルで補足すると、完全に独自のコンテンツが得られます。
他の俳句の例は私のブログでご覧いただけます。
tmp サブディレクトリには、トレーニング データの一部を含むファイルが含まれています。
詩_コーパス.txt - フィルタリングされた四行詩のコーパス、シンボル |行区切り文字として。 ruGPT モデルの追加トレーニングに使用されます。
poem_generator_dataset.dat - ruGPT をトレーニングするためのデータセット。トピック (キー フレーズ) ごとに詩のテキストを生成します。
captions_generator_rugpt.dat - ruGPT をトレーニングし、その内容に基づいて詩のタイトルを生成するためのデータセット。
訓練部隊の準備プロセスの説明はここにあります。