Description chinoise | Anglais

Ce projet fournit un modèle pré-formé XLNET pour le chinois, visant à enrichir les ressources de traitement du langage naturel chinois et à fournir une sélection de modèle pré-formée chinoise diversifiée. Nous accueillons tous les experts et les universitaires pour le télécharger et l'utiliser, et promouvoir et développer conjointement la construction de ressources chinoises.
Ce projet est basé sur XLNET officiel de CMU / Google: https://github.com/zihangdai/xlnet
Lert chinois | Pert anglais chinois | Macbert chinois | Electra chinois | Xlnet chinois | Chinois Bert | Outil de distillation de connaissances TextBrewer | Modèle de coupe TextPruner
Voir plus de ressources publiées par l'IFL de Harbin Institute of Technology (HFL): https://github.com/ymcui/hfl-anthology
2023/3/28 Open Source Chinese Llama & Alpaca Big Model, qui peut être rapidement déployé et expérimenté sur PC, Voir: https://github.com/ymcui/chinese-llama-alpaca
2022/10/29 Nous proposons un modèle Lert pré-formé qui intègre des informations linguistiques. Voir: https://github.com/ymcui/lert
2022/3/30 Nous avons open source un nouveau modèle pré-formé Pert. Voir: https://github.com/ymcui/pert
2021/12/17 Iflytek Joint Laboratory lance le modèle de TextPruner de la boîte à outils de coupe du modèle. Voir: https://github.com/airaria/textpruner
2021/10/24 IFLYTEK JOINT LABORATORY a publié un modèle de cino pré-entraîné pour les langues minoritaires ethniques. Voir: https://github.com/ymcui/chinese-minority-plm
2021/7/21 "Traitement du langage naturel: des méthodes basées sur des modèles de pré-formation" écrites par de nombreux chercheurs du Harbin Institute of Technology SCIR ont été publiés, et tout le monde est invité à l'acheter.
2021/1/27 Tous les modèles ont pris en charge TensorFlow 2, veuillez l'appeler ou le télécharger via la bibliothèque Transformers. https://huggingface.co/hfl
2020/8/27 Laboratoire conjoint IFL en tête de liste dans l'évaluation générale de la compréhension du langage naturel général, vérifiez la liste des collectes, les nouvelles.
2020/3/11 Afin de mieux comprendre les besoins, vous êtes invité à remplir le questionnaire pour vous fournir de meilleures ressources.
2020/2/26 IFLYTEK LABORATOIRE JOPOT LABORATOY
2019/12/19 Le modèle publié dans ce répertoire a été connecté à des transformateurs HuggingFace pour afficher le chargement rapide
2019/9/5 XLNet-base est disponible en téléchargement, Voir le modèle Download
2019/8/19 Fournit un modèle chinois XLNet-mid
| chapitre | décrire |
|---|---|
| Téléchargement du modèle | Fournit l'adresse de téléchargement du XLNET pré-formé en chinois |
| Effets du système de base | Énumérez certains effets du système de base |
| Détails de pré-formation | Description des détails de pré-formation |
| Tâche en aval Détails de réglage fin | Descriptions connexes des détails de réglage des tâches en aval |
| FAQ | FAQ et réponses |
| Citation | Rapports techniques dans ce répertoire |
XLNet-mid : 24 couches, 768, 12 têtes, paramètres 209mXLNet-base : 12 couches, 768, 127 m, 117m paramètres| Abréviation du modèle | Matériels | Google Download | Baidu Netdisk Download |
|---|---|---|---|
XLNet-mid, Chinese | Wiki chinois + Données générales [1] | Tensorflow Pytorch | TensorFlow (mot de passe 2JV2) |
XLNet-base, Chinese | Wiki chinois + Données générales [1] | Tensorflow Pytorch | TensorFlow (mot de passe GE7W) |
[1] Les données générales comprennent: Encyclopédie, News, Q&R et d'autres données, avec un nombre total de mots atteignant 5,4b, le même que le corpus de formation Bert-WWM-Ext. Que nous avons publié.
Si vous avez besoin de la version Pytorch,
1) Veuillez le convertir vous-même via le script de conversion fourni par Transformers.
2) ou télécharger directement Pytorch via le site officiel de HuggingFace: https://huggingface.co/hfl
Méthode: cliquez sur n'importe quel modèle que vous souhaitez télécharger → Pulpurez en bas et cliquez sur "Lister tous les fichiers dans le modèle" → Télécharger les fichiers bac et json dans la zone contextuelle.
Il est recommandé d'utiliser des points de téléchargement de Baidu Netdisk en Chine continentale, et les utilisateurs à l'étranger sont recommandés d'utiliser des points de téléchargement Google. XLNet-mid est d'environ 800 m . Prenant TensorFlow Version XLNet-mid, Chinese comme exemple, après téléchargement, décompressez le fichier zip à obtenir:
chinese_xlnet_mid_L-24_H-768_A-12.zip
|- xlnet_model.ckpt # 模型权重
|- xlnet_model.meta # 模型meta信息
|- xlnet_model.index # 模型index信息
|- xlnet_config.json # 模型参数
|- spiece.model # 词表
S'appuyant sur les transformateurs de HuggingFace 2.2.2, les modèles ci-dessus peuvent être facilement appelés.
tokenizer = AutoTokenizer.from_pretrained("MODEL_NAME")
model = AutoModel.from_pretrained("MODEL_NAME")
La liste correspondante de MODEL_NAME est la suivante:
| Nom du modèle | Model_name |
|---|---|
| XLNET-MID | HFL / chinois-xlnet-mid |
| Base xlnet | HFL / chinois-xlnet-base |
Pour comparer l'effet de référence, nous l'avons testé sur les ensembles de données chinoises suivants. Bert chinois, Bert-WWM, Bert-WWM-Ext, XLNET-base, XLNET-MID a été comparé. Parmi eux, les résultats des chinois Bert, Bert-WWM et Bert-WWM-EXT sont tirés du projet chinois Bert-WWM. Le temps et l'énergie sont limités et n'ont pas été en mesure de couvrir plus de catégories de tâches. Veuillez l'essayer vous-même.
Remarque: Pour garantir la fiabilité des résultats, pour le même modèle, nous exécutons 10 fois (différentes graines aléatoires) pour signaler les valeurs maximales et moyennes des performances du modèle. Si rien de inattendu ne se produit, le résultat de votre opération doit être dans cette plage.
Dans l'indicateur d'évaluation, la valeur moyenne est représentée dans les supports et la valeur maximale est représentée des supports extérieurs.
** L'ensemble de données CMRC 2018 ** est les données de compréhension de la lecture de machines chinoises publiées par Iflytek Joint Laboratory. Selon une question donnée, le système doit extraire des fragments du chapitre comme réponse, sous la même forme que Squad. Les indicateurs d'évaluation sont: EM / F1
| Modèle | Ensemble de développement | Test de test | Défi |
|---|---|---|---|
| Bert | 65,5 (64,4) / 84,5 (84,0) | 70.0 (68.7) / 87.0 (86.3) | 18.6 (17.0) / 43.3 (41.3) |
| Bert-wwm | 66.3 (65.0) / 85.6 (84,7) | 70,5 (69.1) / 87.4 (86.7) | 21.0 (19.3) / 47.0 (43,9) |
| Bert-wwm- | 67.1 (65.6) / 85.7 (85,0) | 71.4 (70.0) / 87.7 (87.0) | 24.0 (20.0) / 47.3 (44,6) |
| Base xlnet | 65.2 (63.0) / 86.9 (85.9) | 67.0 (65.8) / 87.2 (86.8) | 25.0 (22.7) / 51.3 (49,5) |
| XLNET-MID | 66.8 (66.3) / 88.4 (88.1) | 69.3 (68,5) / 89.2 (88,8) | 29.1 (27.1) / 55.8 (54,9) |
** DRCD Dataset ** est publié par le Delta Research Institute, Taiwan, Chine. Sa forme est la même que l'escouade et est un ensemble de données de compréhension en lecture extrait basé sur le chinois traditionnel. Les indicateurs d'évaluation sont: EM / F1
| Modèle | Ensemble de développement | Test de test |
|---|---|---|
| Bert | 83.1 (82.7) / 89.9 (89,6) | 82.2 (81.6) / 89.2 (88,8) |
| Bert-wwm | 84.3 (83.4) / 90,5 (90,2) | 82.8 (81.8) / 89.7 (89.0) |
| Bert-wwm- | 85.0 (84,5) / 91.2 (90,9) | 83.6 (83,0) / 90,4 (89,9) |
| Base xlnet | 83.8 (83.2) / 92.3 (92.0) | 83,5 (82.8) / 92.2 (91,8) |
| XLNET-MID | 85,3 (84,9) / 93,5 (93,3) | 85,5 (84,8) / 93.6 (93.2) |
Dans la tâche de classification des émotions, nous avons utilisé l'ensemble de données ChnSenticorp. Le modèle doit diviser le texte en deux catégories:积极et消极. L'indicateur d'évaluation est: précision
| Modèle | Ensemble de développement | Test de test |
|---|---|---|
| Bert | 94.7 (94.3) | 95.0 (94,7) |
| Bert-wwm | 95.1 (94,5) | 95,4 (95,0) |
| Base xlnet | ||
| XLNET-MID | 95,8 (95,2) | 95,4 (94,9) |
Ce qui suit est de décrire les détails de pré-formation en utilisant XLNet-mid comme exemple.
Suivez les étapes du tutoriel officiel XLNET, vous devez d'abord utiliser la pièce de phrase pour générer une liste de vocabulaire. Dans ce projet, nous avons utilisé une taille de vocabulaire de 32000, et le reste des paramètres est configuré dans la configuration par défaut dans l'exemple officiel.
spm_train
--input=wiki.zh.txt
--model_prefix=sp10m.cased.v3
--vocab_size=32000
--character_coverage=0.99995
--model_type=unigram
--control_symbols=<cls>,<sep>,<pad>,<mask>,<eod>
--user_defined_symbols=<eop>,.,(,),",-,–,£,€
--shuffle_input_sentence
--input_sentence_size=10000000
Après avoir généré la liste de vocabulaire, le corpus de texte d'origine est utilisé pour générer le fichier de formation TF_Records. Le texte original est construit de la même manière que le tutoriel d'origine:
Voici les commandes lors de la génération de données (veuillez définir num_task et task en fonction du nombre réel de tranches):
SAVE_DIR=./output_b32
INPUT=./data/*.proc.txt
python data_utils.py
--bsz_per_host=32
--num_core_per_host=8
--seq_len=512
--reuse_len=256
--input_glob=${INPUT}
--save_dir=${SAVE_DIR}
--num_passes=20
--bi_data=True
--sp_path=spiece.model
--mask_alpha=6
--mask_beta=1
--num_predict=85
--uncased=False
--num_task=10
--task=1
Après avoir obtenu les données ci-dessus, la pré-formation XLNET commence officiellement. La raison pour laquelle il est appelé XLNet-mid est que le nombre de couches est augmenté uniquement par rapport à XLNet-base (12 couches augmentent à 24 couches), et les paramètres restants n'ont pas changé, principalement en raison des limites des dispositifs informatiques. Les commandes utilisées sont les suivantes:
DATA=YOUR_GS_BUCKET_PATH_TO_TFRECORDS
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
TPU_NAME=v3-xlnet
TPU_ZONE=us-central1-b
python train.py
--record_info_dir=$DATA
--model_dir=$MODEL_DIR
--train_batch_size=32
--seq_len=512
--reuse_len=256
--mem_len=384
--perm_size=256
--n_layer=24
--d_model=768
--d_embed=768
--n_head=12
--d_head=64
--d_inner=3072
--untie_r=True
--mask_alpha=6
--mask_beta=1
--num_predict=85
--uncased=False
--train_steps=2000000
--save_steps=20000
--warmup_steps=20000
--max_save=20
--weight_decay=0.01
--adam_epsilon=1e-6
--learning_rate=1e-4
--dropout=0.1
--dropatt=0.1
--tpu=$TPU_NAME
--tpu_zone=$TPU_ZONE
--use_tpu=True
L'appareil utilisé pour le réglage fin des tâches en aval est Google Cloud TPU V2 (64g HBM). Ce qui suit décrit brièvement la configuration de chaque tâche lorsque le réglage fin est effectué. Si vous utilisez le GPU pour un ajustement fin, veuillez modifier les paramètres correspondants pour s'adapter, en particulier batch_size , learning_rate et d'autres paramètres. Pour le code connexe, veuillez vérifier le répertoire src .
Pour les tâches de compréhension en lecture, les données TF_Records sont d'abord nécessaires. Veuillez vous référer à la méthode de traitement Squad 2.0 du tutoriel officiel XLNET, qui ne sera pas décrit ici. Voici les paramètres de script utilisés dans la tâche de compréhension de la lecture de la machine CMRC 2018:
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_cmrc_drcd.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--tpu_zone=${TPU_ZONE}
--use_tpu=True
--tpu=${TPU_NAME}
--num_hosts=1
--num_core_per_host=8
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--predict_dir=${MODEL_DIR}/eval
--train_file=${DATA_DIR}/cmrc2018_train.json
--predict_file=${DATA_DIR}/cmrc2018_dev.json
--uncased=False
--max_answer_length=40
--max_seq_length=512
--do_train=True
--train_batch_size=16
--do_predict=True
--predict_batch_size=16
--learning_rate=3e-5
--adam_epsilon=1e-6
--iterations=1000
--save_steps=2000
--train_steps=2400
--warmup_steps=240
Voici les paramètres de script utilisés dans la tâche de compréhension de la lecture de la machine traditionnelle de la DRCD:
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_cmrc_drcd.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--tpu_zone=${TPU_ZONE}
--use_tpu=True
--tpu=${TPU_NAME}
--num_hosts=1
--num_core_per_host=8
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--predict_dir=${MODEL_DIR}/eval
--train_file=${DATA_DIR}/DRCD_training.json
--predict_file=${DATA_DIR}/DRCD_dev.json
--uncased=False
--max_answer_length=30
--max_seq_length=512
--do_train=True
--train_batch_size=16
--do_predict=True
--predict_batch_size=16
--learning_rate=3e-5
--adam_epsilon=1e-6
--iterations=1000
--save_steps=2000
--train_steps=3600
--warmup_steps=360
Contrairement aux tâches de compréhension en lecture, les tâches de classification n'ont pas besoin de générer à l'avance TF_RECORDS. Voici les paramètres de script utilisés dans la tâche de classification des émotions ChnSenticorp:
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_classifier.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--task_name=csc
--do_train=True
--do_eval=True
--eval_all_ckpt=False
--uncased=False
--data_dir=${RAW_DIR}
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--train_batch_size=48
--eval_batch_size=48
--num_hosts=1
--num_core_per_host=8
--num_train_epochs=3
--max_seq_length=256
--learning_rate=2e-5
--save_steps=5000
--use_tpu=True
--tpu=${TPU_NAME}
--tpu_zone=${TPU_ZONE}
Q: Un modèle plus grand sera-t-il publié?
R: Je ne sais pas, pas garanti. Si nous obtenons des améliorations de performances significatives, nous envisagerons de publier.
Q: Pas bon sur certains ensembles de données?
R: Choisissez d'autres modèles ou continuez à utiliser vos données pour la pré-formation sur ce point de contrôle.
Q: Les données de pré-formation seront-elles publiées?
R: Désolé, il ne peut pas être publié en raison de problèmes de droit d'auteur.
Q: Combien de temps faut-il pour former XLNET?
R: XLNet-mid Formé 2 m étapes (lot = 32) Utilisation de Cloud TPU V3 (128g HBM), qui prend environ 3 semaines. ÉTAPES DE 4M FORMÉS DE XLNet-base .
Q: Pourquoi XLNET n'a-t-il pas officiellement publié des multilingues ou chinois XLNET?
R: (Voici des opinions personnelles) Il est inconnu, de nombreuses personnes ont laissé des messages disant qu'ils espèrent qu'il y en a, cliquez sur XLNET-Issue - # 3. Avec la technologie officielle de XLNET et le pouvoir informatique, la formation d'un tel modèle n'est pas difficile (la version multilingue peut être plus compliquée et nécessite une prise en compte de l'équilibre entre les différentes langues. Vous pouvez également vous référer à la description dans Muliligual-Bert.). Mais en y réfléchissant en revanche, les auteurs ne sont pas obligés de le faire. En tant que chercheurs, leur contribution technique est suffisante et ils ne devraient pas être critiqués s'ils ne sont pas publiés, et ils appellent tout le monde à traiter le travail des autres rationnellement.
Q: XLNET est-il meilleur que Bert dans la plupart des cas?
R: À l'heure actuelle, il semble qu'au moins les tâches ci-dessus soient efficaces, et les données utilisées sont les mêmes que le Bert-WWM-EXT que nous avons publié.
Q:?
UN: .
Si le contenu de ce répertoire est utile à vos travaux de recherche, veuillez vous référer au rapport technique suivant dans votre article: https://arxiv.org/abs/2004.13922
@inproceedings{cui-etal-2020-revisiting,
title = "Revisiting Pre-Trained Models for {C}hinese Natural Language Processing",
author = "Cui, Yiming and
Che, Wanxiang and
Liu, Ting and
Qin, Bing and
Wang, Shijin and
Hu, Guoping",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings",
month = nov,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.findings-emnlp.58",
pages = "657--668",
}
Auteurs du projet: Cui Yiming (Iflytek Joint Laboratory), Che Wanxiang (Harbin Institute of Technology), Liu Ting (Harbin Institute of Technology), Wang Shijin (Iflytek), Hu Guoping (Iflytek)
Ce projet est financé par le programme Tensorflow Research Cloud (TFRC) de Google.
Lors de la construction de ce projet, nous avons fait référence à l'entrepôt suivant et nous tenons à exprimer nos remerciements ici:
Ce projet n'est pas le modèle XLNET chinois officiellement publié par XLNET. Dans le même temps, ce projet n'est pas un produit officiel du Harbin Institute of Technology ou Iflytek. Le contenu de ce projet concerne uniquement la référence de la recherche technique et n'est pas utilisé comme base de conclusion. Les utilisateurs peuvent utiliser le modèle à tout moment dans le cadre de la licence, mais nous ne sommes pas responsables des pertes directes ou indirectes causées par l'utilisation du contenu du projet.
Bienvenue à suivre le compte officiel officiel officiel de Iflytek Joint Laboratory.

Si vous avez des questions, veuillez la soumettre dans le problème de GitHub.
Nous n'avons pas d'opérations et encourageons les internautes pour s'entraider à résoudre les problèmes.
Si vous trouvez des problèmes de mise en œuvre ou si vous êtes prêt à construire conjointement le projet, veuillez soumettre une demande de traction.