Nous avons utilisé KoGPT2, qui a été pré-entraîné par SKT-AI avec environ 20 Go de données coréennes. Premièrement, pour écrire des paroles, nous avons affiné les données de paroles affinées, les romans, les articles, etc. dont les droits d'auteur ont expiré, en attribuant des poids différents à chaque donnée. Vous pouvez également recevoir des genres et voir les résultats d’apprentissage des paroles pour chaque genre musical.
De plus, Colab a associé Google Drive et Dropbbox pour un apprentissage fluide. Après avoir déplacé les résultats intermédiaires appris de Google Drive vers Dropbbox, supprimez les résultats de Google Drive. Code lié à ceci
S'il est difficile de travailler avec KoGPT2-FineTuning avec le code modifié de la version 2, qui reçoit des ensembles de données au format CSV pour chaque genre musical, veuillez utiliser la version 1.1.
Ci-dessous, vous pouvez vérifier les résultats de l’apprentissage de diverses paroles coréennes. Nous travaillerons également sur divers autres projets.
poids | Genre | paroles |
---|---|---|
1100,0 | ballade | 'Tu sais ce que je ressensnnnJe te regarde juste debout, vide comme PharaonnnnJe n'ai pas d'autre choix que d'abandonner...' |
... |
python main.py --epoch=200 --data_file_path=./dataset/lyrics_dataset.csv --save_path=./checkpoint/ --load_path=./checkpoint/genre/KoGPT2_checkpoint_296000.tar --batch_size=1
parser . add_argument ( '--epoch' , type = int , default = 200 ,
help = "epoch 를 통해서 학습 범위를 조절합니다." )
parser . add_argument ( '--save_path' , type = str , default = './checkpoint/' ,
help = "학습 결과를 저장하는 경로입니다." )
parser . add_argument ( '--load_path' , type = str , default = './checkpoint/Alls/KoGPT2_checkpoint_296000.tar' ,
help = "학습된 결과를 불러오는 경로입니다." )
parser . add_argument ( '--samples' , type = str , default = "samples/" ,
help = "생성 결과를 저장할 경로입니다." )
parser . add_argument ( '--data_file_path' , type = str , default = 'dataset/lyrics_dataset.txt' ,
help = "학습할 데이터를 불러오는 경로입니다." )
parser . add_argument ( '--batch_size' , type = int , default = 8 ,
help = "batch_size 를 지정합니다." )
Vous pouvez exécuter du code de réglage fin à l'aide de Colab.
function ClickConnect ( ) {
// 백엔드를 할당하지 못했습니다.
// GPU이(가) 있는 백엔드를 사용할 수 없습니다. 가속기가 없는 런타임을 사용하시겠습니까?
// 취소 버튼을 찾아서 클릭
var buttons = document . querySelectorAll ( "colab-dialog.yes-no-dialog paper-button#cancel" ) ;
buttons . forEach ( function ( btn ) {
btn . click ( ) ;
} ) ;
console . log ( "1분 마다 다시 연결" ) ;
document . querySelector ( "#top-toolbar > colab-connect-button" ) . click ( ) ;
}
setInterval ( ClickConnect , 1000 * 60 ) ;
function CleanCurrentOutput ( ) {
var btn = document . querySelector ( ".output-icon.clear_outputs_enabled.output-icon-selected[title$='현재 실행 중...'] iron-icon[command=clear-focused-or-selected-outputs]" ) ;
if ( btn ) {
console . log ( "10분 마다 출력 지우기" ) ;
btn . click ( ) ;
}
}
setInterval ( CleanCurrentOutput , 1000 * 60 * 10 ) ;
nvidia-smi.exe
python generator.py --temperature=1.0 --text_size=1000 --tmp_sent=""
python generator.py --temperature=5.0 --text_size=500 --tmp_sent=""
parser . add_argument ( '--temperature' , type = float , default = 0.7 ,
help = "temperature 를 통해서 글의 창의성을 조절합니다." )
parser . add_argument ( '--top_p' , type = float , default = 0.9 ,
help = "top_p 를 통해서 글의 표현 범위를 조절합니다." )
parser . add_argument ( '--top_k' , type = int , default = 40 ,
help = "top_k 를 통해서 글의 표현 범위를 조절합니다." )
parser . add_argument ( '--text_size' , type = int , default = 250 ,
help = "결과물의 길이를 조정합니다." )
parser . add_argument ( '--loops' , type = int , default = - 1 ,
help = "글을 몇 번 반복할지 지정합니다. -1은 무한반복입니다." )
parser . add_argument ( '--tmp_sent' , type = str , default = "사랑" ,
help = "글의 시작 문장입니다." )
parser . add_argument ( '--load_path' , type = str , default = "./checkpoint/Alls/KoGPT2_checkpoint_296000.tar" ,
help = "학습된 결과물을 저장하는 경로입니다." )
Vous pouvez exécuter le générateur à l'aide de Colab.
Pour vérifier les changements dus à l'apprentissage, accédez au tableau tensoriel et vérifiez la perte et le texte.
tensorboard --logdir=runs
@misc{KoGPT2-FineTuning,
author = {gyung},
title = {KoGPT2-FineTuning},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/gyunggyung/KoGPT2-FineTuning}},
}
Les résultats détaillés peuvent être trouvés dans les échantillons. Plus d’informations sur l’apprentissage peuvent être trouvées dans les articles connexes.
https://github.com/openai/gpt-2
https://github.com/nshepperd/gpt-2
https://github.com/SKT-AI/KoGPT2
https://github.com/asyml/texar-pytorch/tree/master/examples/gpt-2
https://github.com/graykode/gpt-2-Pytorch
https://gist.github.com/thomwolf/1a5a29f6962089e871b94cbd09daf317
https://github.com/shbictai/narrativeKoGPT2
https://github.com/ssut/py-hanspell
https://github.com/likejazz/korean-sentence-splitter