Gpt2-chinois
Description
- Version chinoise du code de formation GPT2, en utilisant Bert Tokenizer ou BPE Tokenizer. Il est basé sur le référentiel extrêmement impressionnant de HuggingFace Team Transformers. Peut écrire des poèmes, des nouvelles, des romans ou des modèles de langue générale. Soutenez le niveau de char, le niveau des mots et le niveau de BPE. Soutenez le grand corpus de formation.
- Le code de formation chinois GPT2 utilise le Tokenizer de Bert ou le modèle BPE de la phrase (grâce à la contribution de Kangzhonghua, la mise en œuvre du modèle BPE nécessite légèrement la modification du code de train.py). Vous pouvez écrire de la poésie, des nouvelles, des romans ou former un modèle de langue commune. Prend en charge l'unité de mots, le mode participe Word ou le mode BPE (nécessite un code Train.py légèrement modifié). Prend en charge la formation des grands corpus.
Mise à jour 04.11.2024
- Merci beaucoup pour votre attention à ce projet. Depuis la sortie de Chatgpt, ce projet a également attiré une certaine attention. Le projet lui-même est un programme de formation pour moi d'apprendre le pytorch par moi-même, et je n'ai aucune intention de faire de la maintenance et des mises à jour à long terme. Si vous êtes intéressé par Big Model LLM, vous pouvez m'envoyer un e-mail ([email protected]) pour rejoindre le groupe pour communiquer ou en discuter en cause.
Mise à jour 02.06.2021
Ce projet a ajouté un modèle général chinois GPT-2 chinois, un petit modèle pré-formé GPT-2 chinois, un modèle pré-formé GPT-2 paroles chinoises et un modèle pré-formé GPT-2 classique. Le modèle est formé par le projet UER-PY et est invité à l'utiliser. De plus, le modèle est téléchargé sur le HuggingFace Model Hub. Pour plus de détails sur le modèle, veuillez vous référer à GPT2-chinois-Cluecorpussmall, GPT2-Distil-chinois-Cluecorpussmall, GPT2-chinois-lyrique et GPT2-chinois.
Lorsque vous générez à l'aide de tous les modèles, vous devez ajouter un symbole de départ avant le texte entré, tel que: si vous voulez entrer "la plus belle chose n'est pas le jour de la pluie, ce sont les avant-toits qui vous sont échappés", le format correct est "[CLS] La plus belle chose n'est pas le jour de pluie, ce sont les Eaves qui vous sont échappés".
Mise à jour 11.03.2020
Ce projet a ajouté l'ancien modèle pré-formé du poème GPT-2 et le modèle pré-formé GPT-2. Le modèle est formé par le projet UER-PY et est invité à l'utiliser. De plus, le modèle est téléchargé sur le HuggingFace Model Hub. Pour plus de détails sur le modèle, veuillez vous référer à GPT2-chinois-poème et à GPT2-chinois-couplet.
Lorsque vous générez à l'aide de l'ancien modèle de poésie, vous devez ajouter un symbole de départ avant le texte entré, tel que: si vous voulez entrer "Meishan est comme Jiqing," le format correct est "[CLS] Meishan est comme Jiqing".
Le format corpus utilisé dans la formation du modèle de couple est "Couplet supérieur du couplet". Lorsque vous utilisez le modèle de couple pour générer, un caractère de départ doit être ajouté avant le texte d'entrée, tel que: si vous voulez entrer "Danfeng River Lengren Chu Go-", le format correct est "[CLS] Danfeng River Lengren Chu Go-".
NOUVELLES 08.11.2020
- CDIAL-GPT (peut être chargé de ce code) a été publié. Ce projet contient un ensemble de données de dialogue chinois à domaine ouvert à grande échelle strictement nettoyé. Ce projet contient également le modèle pré-formé du dialogue GPT formé sur cet ensemble de données et l'échantillon généré. Tout le monde est invité à visiter.
News 12.9.2019
- Le nouveau projet GPT2-Chitchat a été publié, en partie basé sur le code de ce projet. Il contient le modèle de code et de formation pour la formation du modèle de dialogue GPT2, ainsi que pour générer des échantillons. Tout le monde est invité à visiter.
Nouvelles 12.7.2019
- Le nouveau projet Decoders-Chinese-TF2.0 soutient également la formation chinoise pour GPT2, ce qui est plus simple à utiliser et ne cause pas facilement divers problèmes. Il est toujours au stade des tests, et tout le monde est invité à donner ses opinions.
Nouvelles 11.9
- GPT2-ML (aucune association directe avec ce projet) a été publié et contient le modèle GPT2 chinois 1.5b. Si vous êtes intéressé ou en avez besoin, vous pouvez le convertir au format Pytorch soutenu par ce projet pour des tests de formation ou de génération supplémentaires.
Mise à jour 10.25
- Le premier modèle pré-formé de ce projet a été annoncé et est un modèle de génération de prose. Pour plus de détails, veuillez consulter la section de partage du modèle Readme.
État du projet
- Au moment de l'annonce de ce projet, les ressources chinoises GPT2 étaient presque nulles et la situation est maintenant différente. Deuxièmement, les fonctions du projet ont été essentiellement stables, donc ce projet a été temporairement arrêté. Mon intention initiale d'écrire ces codes était de s'entraîner à l'aide de Pytorch. Même si j'ai travaillé dans la dernière étape, il y avait encore de nombreux aspects immatures, alors comprenez.
Comment utiliser
- Créez un dossier de données dans le répertoire racine du projet. Mettez le corpus de formation dans le répertoire de données sous le nom de train.json. Train.json est une liste JSON, et chaque élément de la liste est le contenu texte d'un article à former (pas un lien de fichier) .
- Exécutez le fichier Train.py et vérifiez --RAW pour prétraiter automatiquement les données.
- Une fois le prétraitement terminé, la formation sera effectuée automatiquement.
Générer du texte
python ./generate.py --length=50 --nsamples=4 --prefix=xxx --fast_pattern --save_samples --save_samples_path=/mnt/xx
- --FAST_PATTERN (contribué par leecp8): Si le paramètre de longueur généré est relativement petit et que la vitesse n'est pas différente, j'ai personnellement testé la longueur = 250, qui était de 2 secondes plus rapidement, donc si --fast_pattern n'est pas ajouté, alors la méthode Fast_Pattern n'est pas utilisée par défaut.
- --Save_Sample : Par défaut, l'échantillon de sortie sera imprimé directement sur la console. Passez ce paramètre et sera enregistré dans des échantillons.txt dans le répertoire racine.
- --save_sample_path : Vous pouvez spécifier vous-même le répertoire enregistré. Vous pouvez créer des répertoires à plusieurs niveaux récursivement par défaut. Vous ne pouvez pas passer le nom du fichier. Le nom de fichier est Samples.txt par défaut.
Structure de fichiers
- generate.py et train.py sont des scripts pour la génération et la formation respectivement.
- Train_single.py est une extension de Train.py qui peut être utilisée pour une grande liste d'éléments individuels (comme la formation d'un livre sur le ciel).
- EVAL.PY est utilisé pour évaluer les scores PPL du modèle généré.
- generate_text.py est une extension de generate.py. Il peut générer plusieurs phrases avec les mots clés de départ d'une liste et les publier dans un fichier.
- Train.json est un exemple de format d'échantillons de formation pour référence.
- Le dossier de cache contient plusieurs vocabs Bert. Make_vocab.py est un script qui aide à créer des vocabs sur un fichier de corpus Train.json. Vocab.txt est le Vocab Bert original, vocab_all.txt a ajouté un ancien vocabulaire supplémentaire, et vocab_small.txt est le petit vocabulaire.
- Le dossier des tokennisations est trois types de tokenisers qui peuvent être sélectionnés, y compris le tokenizer Bert par défaut, la version participe de Bert Tokenizer et BPE Tokenizer.
- Les scripts incluent des échantillons de formation et de génération de scripts
Avis
- Ce projet utilise le tokenizer de Bert pour traiter les caractères chinois.
- Si vous n'utilisez pas la version de participe Tokenizer et que vous n'avez pas besoin de classer les mots vous-même à l'avance, le tokenzer vous aidera à le diviser.
- Si vous utilisez la version de participe Tokenizer, il est préférable d'utiliser le fichier make_vocab.py dans le dossier Cache pour créer une liste de vocabulaire pour votre corpus.
- Le modèle doit être calculé par lui-même. Si vous avez terminé la pré-formation, n'hésitez pas à communiquer.
- Si votre mémoire est très grande ou que le corpus est petit, vous pouvez modifier le code correspondant dans les fichiers de construction dans Train.py et prétraiter directement le corpus sans le diviser.
- Si vous utilisez BPE Tokenizer, vous devez créer votre propre liste de mots chinois
Matériels
- Peut être téléchargé à partir d'ici et ici.
- Le Doupo Sky Corpus peut être téléchargé à partir d'ici.
FP16 et support d'accumulation de gradient
- J'ai ajouté FP16 et le support d'accumulation de gradient au fichier Train.py. Si vous installez Apex et savez ce qu'est FP16, vous pouvez modifier la variable fp16 = vrai pour l'activer. Cependant, actuellement, FP16 peut ne pas converger, pour des raisons inconnues.
Contacter l'auteur
Citant
@misc{GPT2-Chinese,
author = {Zeyao Du},
title = {GPT2-Chinese: Tools for training GPT2 model in Chinese language},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/Morizeyao/GPT2-Chinese}},
}
Partage de modèles
| Nom du modèle | Introduction du modèle | Partagé par | Adresse du lien 1 | Adresse du lien 2 |
|---|
| Modèle de prose | Utilisez 130 Mo de célèbre entraînement en prose, en prose émotionnelle et en prose. | Hughqiu | Baidu netdisk 【fpyu】 | Gdrive |
| Modèle de poésie | Les résultats de la formation en utilisant environ 800 000 poèmes anciens en 180 Mo. | HHOU435 | Baidu netdisk 【7fev】 | Gdrive |
| Modèle de distique | La formation des revenus de l'utilisation d'environ 700 000 distiques de 40 Mo. | HHOU435 | Baidu netdisk 【i5n0】 | Gdrive |
| Modèle chinois général | Les résultats obtenus en utilisant la formation ClueCorpussmall Corpus. | HHOU435 | Baidu Netdisk [N3S8] | Gdrive |
| Petit modèle chinois général | Les résultats obtenus en utilisant la formation ClueCorpussmall Corpus. | HHOU435 | Baidu netdisk [rpjk] | Gdrive |
| Modèle de paroles chinoises | Les résultats de la formation ont été obtenus en utilisant environ 150 000 paroles chinoises de 140 Mo. | HHOU435 | Baidu netdisk 【0qnn】 | Gdrive |
| Modèle chinois classique | Environ 3 millions de pièces de formation chinoises classiques ont été obtenues en utilisant 1,8 Go. | HHOU435 | Baidu Netdisk [EK2Z] | Gdrive |
Voici un fichier modèle obtenu à partir de la formation d'amis git enthousiastes et généreux, et il est ouvert à tous les amis à utiliser. Dans le même temps, tous les partenaires sont invités à divulguer le modèle qu'ils ont formé ici.
Démo
- Le modèle formé par l'utilisateur Jameshujy basé sur le code modifié de cet entrepôt est utilisé comme arrière-plan des vers et des quatrains réglementés. La nouvelle version du générateur de poésie à neuf chansons a été lancée.
- Contribué par Leemengtaiwan, il fournit un article qui fournit une introduction directe à GPT-2 et comment visualiser les mécanismes d'auto-attention. Les carnets et modèles Colab sont également fournis à tout utilisateur pour générer de nouveaux exemples en une seule fois.
Générer un échantillon
-Les éléments suivants sont des exemples de la génération d'essais littéraires, apportés par Hughqiu, et le modèle a été partagé dans la liste de partage du modèle. Corpus 130 Mo, taille lot 16, 10 tours de formation à 10 couches de profondeur. 


- Ce qui suit est un échantillon de génération de Doupo CANGQIONG. GPT2 avec environ 50 m de paramètres a été formé sur un nouveau contenu Doupo CANGQIONG de 16 Mo avec une taille 32batch. Ici [Sep] signifie une nouvelle ligne.

- Ce qui suit est un échantillon de la génération de poèmes anciens, qui sont calculés et apportés par l'utilisateur Jameshujy.


- Ce qui suit est une génération d'échantillons après la génération de l'ancien poème, qui est calculé et apporté par l'utilisateur Jameshujy.



- Ce qui suit est l'exemple de texte du script généré, qui est calculé et apporté par l'utilisateur Chiangandy.
[StartText] L'intrigue du jeu d'amour raconte l'histoire de l'amour mignon entre père et fille de piano, un public avec un travail acharné et une valeur pour la réalité pour la vie, et l'obtention d'une série d'amour. Les médias d'enregistrement des actions des années 80 ont été partagés par des internautes. C'était le frère du directeur de la marque du principal créateur Chen Layun en 2014, le grand pays de la rivière Shanghai Huaihe. Bien que les jeunes de l'entreprise de première ligne n'aient pas eu de carrière, Lan Zhengshi a refusé de la comprendre. L'émergence du concept d'aide de Lan Yue a ouvert un malentendu clair et les affaires sont devenues une rivière Love. Dans une série télévisée accidentelle, la série télévisée a changé son sort. Les trois ont été affectés à leurs créations dans un accident de voiture. Ils ont été interrogés sur les malentendus et les talents discrets de l'industrie. Chen Zhao et Tang Shishiyan ont commencé une "relation" complètement différente de 2014. Les deux avaient un caractère mutuel et avaient un remède mutuel. Bien qu'ils soient un petit voyage de dortoir enregistré par l'Université Huaqiao de Pékin, une génération post-90 et des jeunes exceptionnels tels que Tang Ru et Sheng, comment la vie des gens a-t-elle été à l'encontre de leurs souhaits et a créé ensemble? Et pourquoi ont-ils eu le succès et l'inquiétude les uns des autres? [EndText]
[StartText] Learning Love raconte principalement l'histoire de deux paires de Xiaoman. Après un test ridicule, ils ont finalement choisi trois enfants et ont lancé une entreprise ensemble pour créer quatre enfants, et ont lancé une entreprise prospère dans une grande ville. Les deux sociétés ont rejoint Pékin City, et après une période de temps, la ville a été transformée en troubles et différents, ils ont finalement gagné le véritable amour de leurs rêves. La cérémonie d'ouverture des principaux personnages entrepreneuriaux tels que les idéaux de sponsor, les séries télévisées, les drames, etc. a eu lieu à Pékin. Le drame est basé sur le point de vue du téléviseur de trois nouveaux arrivants à Hainan. Il raconte l'histoire de plusieurs jeunes qui ont amélioré les non-romantiques dans les générations de Pékin et de comédie. Avec les jeunes uniques de l'ère double de Pékin à Pékin, l'urbanisation de la Chine, les grandes villes chinoises ont disparu. Avec les changements dans les villes linguistiques, tandis que leurs modes de vie progressifs ont mis en scène une vulgarité aussi simple pour leur propre direction. Il est filmé à l'époque contemporaine. Comment être dans cette ville? Une ville calme est donc le style de la ville. Zhang Jiahe soutient la création de travaux, et c'est un point qu'il est nécessaire de créer une réunion d'équipe de théâtre d'aéroport. Les gens qui se transforment en échecs et en cultures sont très uniques et sensationnels, entrelacés, drôles et viennent du magnifique nord-est et du continent, et les deux filles osent être appelées filles muettes. Les gens de l'entrelacement ont fait une blague, et le tempérament impressionnant a rendu les gens très comiques. Ce qu'ils savaient, c'était un partisan de la famille étrangère "nord-est", ce qui la faisait bien paraître dans la lecture de drames. Après cela, Qi Fei, Qi Fei, Fan Er, Chu Yuezi et Bai Tianjie qui ont exprimé l'amour pour lui. L'amitié entre les deux générations semble être sans la combinaison de déclarations joyeuses et merveilleuses. [EndText]
- Ce qui suit est un exemple de la génération de romans Jin Yong et Wu Qi, contribué par Leengtaiwan. La taille du modèle est d'environ 82 m, le matériel linguistique est de 50 Mo et la taille du lot est 16. Fournit un article pour introduire le GPT-2 et comment visualiser les mécanismes d'auto-attention. Les carnets et modèles Colab sont également fournis à tout utilisateur pour générer de nouveaux exemples en une seule fois.



