استخدمنا KoGPT2، الذي تم تدريبه مسبقًا بواسطة SKT-AI بحوالي 20 جيجابايت من البيانات الكورية. أولاً، لكتابة كلمات الأغاني، قمنا بضبط البيانات الغنائية المكررة والروايات والمقالات وما إلى ذلك التي انتهت صلاحية حقوق النشر الخاصة بها، مع إعطاء أوزان مختلفة لكل بيانات. يمكنك أيضًا تلقي الأنواع والاطلاع على نتائج تعلم الكلمات لكل نوع موسيقي.
بالإضافة إلى ذلك، قامت Colab بربط Google Drive وDropbbox للتعلم السلس. بعد نقل النتائج المتوسطة التي تم تعلمها من Google Drive إلى Dropbbox، قم بحذف النتائج من Google Drive. الكود المتعلق بهذا
إذا كان من الصعب العمل مع KoGPT2-FineTuning مع كود الإصدار 2 الذي تم تغييره، والذي يتلقى مجموعات بيانات بتنسيق CSV لكل نوع موسيقي، فيرجى استخدام الإصدار 1.1.
أدناه، يمكنك التحقق من نتائج تعلم العديد من كلمات الأغاني الكورية. وسوف نعمل على مشاريع أخرى مختلفة كذلك.
وزن | النوع | كلمات |
---|---|---|
1100.0 | قصيدة | 'أنت تعرف ما أشعر بهnnnأنا فقط أحدق فيك وأنت تقف خالي الوفاض مثل فرعونnnnليس لدي خيار سوى الاستسلام...' |
... |
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 를 지정합니다." )
يمكنك تشغيل كود الضبط الدقيق باستخدام 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 = "학습된 결과물을 저장하는 경로입니다." )
يمكنك تشغيل المولد باستخدام Colab.
للتحقق من التغييرات الناتجة عن التعلم، قم بالوصول إلى لوحة الشد وتحقق من الخسارة والنص.
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}},
}
ويمكن الاطلاع على النتائج التفصيلية في العينات. يمكن العثور على مزيد من المعلومات حول التعلم في المنشورات ذات الصلة.
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/narativeKoGPT2
https://github.com/ssut/py-hanspell
https://github.com/likejazz/korean-sentence-splitter