Gpt2-Chinese
Descrição
- Versão chinesa do código de treinamento GPT2, usando o Bert Tokenizer ou BPE Tokenizer. É baseado no repositório extremamente incrível dos Transformers do Hugging Space Team. Pode escrever poemas, notícias, romances ou treinar modelos de idiomas em geral. Suporte ao nível de char, nível de palavra e nível de BPE. Apoie o grande corpus de treinamento.
- O Código de Treinamento GPT2 chinês usa o modelo BPE do Bert Tokenizer ou da Sinencepiece (graças à contribuição de Kangzhonghua, a implementação do modelo BPE requer modificação ligeiramente do código de trem.py). Você pode escrever poesia, notícias, romances ou treinar um modelo de idioma comum. Suporta a unidade de palavras, o modo de particípio da palavra ou o modo BPE (requer código de trem.py ligeiramente modificado). Apoia um grande treinamento de corpus.
Atualização 04.11.2024
- Muito obrigado por sua atenção a este projeto. Desde o lançamento do ChatGPT, este projeto também atraiu alguma atenção novamente. O projeto em si é um programa de treinamento para eu aprender Pytorch sozinho, e não tenho intenção de fazer manutenção e atualizações de longo prazo. Se você estiver interessado no Big Model LLM, pode me enviar um e -mail ([email protected]) para ingressar no grupo para se comunicar ou discuti -lo em questão.
Atualização 02.06.2021
Este projeto adicionou um modelo pré-treino em geral do GPT-2 chinês, um modelo pequeno de pequeno treino do GPT-2 chinês, um modelo pré-treinado por letras chinesas GPT-2 e um modelo pré-treinado clássico do GPT-2 chinês. O modelo é treinado pelo projeto UER-PY e pode usá-lo. Além disso, o modelo é carregado no hub do modelo Huggingface. Para obter mais detalhes do modelo, consulte o GPT2-Chinese-ClueCorpussmall, GPT2-Distil-Chinese-ClueCorpussmall, GPT2-Chinese-Lyric e Gpt2-Chinese-Ancient.
Ao gerar o uso de todos os modelos, você precisa adicionar um símbolo inicial antes do texto inserido, como: se você deseja entrar "a coisa mais bonita não é o dia chuvoso, são os beirais que escaparam de você", o formato correto é "[CLS] a coisa mais bonita não é o dia chuvoso, é o eves que escaparam de você".
Atualização 11.03.2020
Este projeto adicionou o modelo pré-treino do Poema GPT-2 e o modelo pré-treinado GPT-2 do CouPet GPT. O modelo é treinado pelo projeto UER-PY e pode usá-lo. Além disso, o modelo é carregado no hub do modelo Huggingface. Para mais detalhes do modelo, consulte o GPT2-Chinese-Poem e o GPT2-Chinese-Couplet.
Ao gerar usando o modelo de poesia antiga, você precisa adicionar um símbolo inicial antes do texto inserido, como: se você deseja entrar "meishan é como jiqing", o formato correto é "[cls] meishan é como jiqing".
O formato de corpus usado no treinamento do modelo de dístico é "o dístico de lower de dica superior". Ao usar o modelo de dístico para gerar, um caractere inicial precisa ser adicionado antes do texto de entrada, como: se você deseja entrar "o rio Danfeng Lengren Chu Go-", o formato correto é "[cls] Danfeng River Lengren Chu Go-".
Notícias 08.11.2020
- O CDial-GPT (pode ser carregado com este código) foi publicado. Este projeto contém um conjunto de dados de diálogo chinês em larga escala em larga escala. Este projeto também contém o modelo pré-treinado de diálogo GPT treinado nesse conjunto de dados e a amostra gerada. Todos são bem -vindos para visitar.
Notícias 12.9.2019
- O novo Project GPT2-CHITCHAT foi lançado, em parte com base no código deste projeto. Ele contém o modelo de código e treinamento para treinamento do modelo de diálogo GPT2, além de gerar amostras. Todos são bem -vindos para visitar.
Notícias 12.7.2019
- O novo projeto Decoders-Chinese-TF2.0 também suporta treinamento chinês para o GPT2, que é mais simples de usar e não causa facilmente vários problemas. Ainda está no estágio de teste, e todos são convidados a dar suas opiniões.
Notícias 11.9
- GPT2-ML (nenhuma associação direta com este projeto) foi lançada e contém o modelo GPT2 chinês de 1,5b. Se você estiver interessado ou precisar, poderá convertê -lo no formato Pytorch suportado por este projeto para testes adicionais de treinamento ou geração.
Atualização 10.25
- O primeiro modelo pré-treinado deste projeto foi anunciado e é um modelo de geração de prosa. Para detalhes, verifique a seção de compartilhamento de modelos de leitura.
Status do projeto
- No momento do anúncio deste projeto, os recursos chineses do GPT2 eram quase zero, e a situação agora é diferente. Em segundo lugar, as funções do projeto foram basicamente estáveis, então esse projeto foi temporariamente interrompido. Minha intenção original de escrever esses códigos era praticar o uso de Pytorch. Mesmo se eu fizesse algum trabalho no estágio posterior, ainda havia muitos aspectos imaturos, por isso, por favor, entenda.
Como usar
- Crie uma pasta de dados no diretório raiz do projeto. Coloque o corpus de treinamento no diretório de dados sob o nome Train.json. Train.json é uma lista JSON e cada elemento da lista é o conteúdo de texto de um artigo a ser treinado (não um link de arquivo) .
- Execute o arquivo Train.py e verifique -Raw para pré -processar os dados automaticamente.
- Após a conclusão do pré -processamento, o treinamento será realizado automaticamente.
Gerar texto
python ./generate.py --length=50 --nsamples=4 --prefix=xxx --fast_pattern --save_samples --save_samples_path=/mnt/xx
- --Fast_Pattern (contribuído pelo LEECP8): Se o parâmetro de comprimento gerado for relativamente pequeno e a velocidade basicamente não for diferente, eu pessoalmente testei o comprimento = 250, que foi 2 segundos mais rápido; portanto, se--Fast_pattern não for adicionado, o método fast_pattern não será usado por padrão.
- --save_samples : Por padrão, a amostra de saída será impressa diretamente no console. Passe este parâmetro e será salvo em amostras.txt no diretório raiz.
- --save_samples_path : você pode especificar você mesmo o diretório salvo. Você pode criar diretórios de vários níveis recursivamente por padrão. Você não pode passar o nome do arquivo. O nome do arquivo é sampos.txt por padrão.
Estrutura de arquivo
- generate.py e trem.py são scripts para geração e treinamento, respectivamente.
- Train_single.py é uma extensão do trem.py que pode ser usada para uma grande lista de elementos individuais (como treinar um livro no céu).
- Eval.py é usado para avaliar as pontuações de PPL do modelo gerado.
- generate_texts.py é uma extensão do generate.py. Ele pode gerar várias frases com as palavras -chave inicial de uma lista e gerá -las para um arquivo.
- Train.json é um exemplo de formato de amostras de treinamento para referência.
- A pasta de cache contém vários vocabs Bert. make_vocab.py é um script que ajuda a criar vocable em um arquivo de trens.json corpus. O vocab.txt é o vocabulário original, vocab_all.txt adicionou vocabulário antigo adicional e vocab_small.txt é o pequeno vocabulário.
- A pasta Tokenizations são três tipos de tokenizadores que podem ser selecionados, incluindo o tokenizador BERT padrão, a versão Particípio do Bert Tokenizer e BPE Tokenizer.
- Os scripts incluem treinamento de amostra e scripts de geração
Perceber
- Este projeto usa o Tokenizer de Bert para processar caracteres chineses.
- Se você não usar a versão do particípio do Tokenizer e não precisar classificar as palavras com antecedência, o Tokenizer o ajudará a dividi -lo.
- Se você usar a versão do particípio do tokenizer, é melhor usar o arquivo make_vocab.py na pasta de cache para criar uma lista de vocabulário para o seu corpus.
- O modelo precisa ser calculado por si só. Se você concluiu o pré-treinamento, sinta-se à vontade para se comunicar.
- Se sua memória for muito grande ou o corpus for pequeno, você poderá alterar o código correspondente nos arquivos de construção em Train.py e pré -processar o corpus diretamente sem dividi -lo.
- Se você usar o BPE Tokenizer, precisará criar sua própria lista de palavras chinesas
Materiais
- Pode ser baixado aqui e aqui.
- O Doupo Sky Corpus pode ser baixado a partir daqui.
FP16 e suporte de acumulação de gradiente
- Eu adicionei o suporte de acumulação FP16 e gradiente ao arquivo Train.py. Se você instalar o APEX e saber o que é FP16, poderá alterar a variável fp16 = true para ativá -lo. No entanto, atualmente, o FP16 pode não convergir, por razões desconhecidas.
Entre em contato com o autor
Citando
@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}},
}
Compartilhamento de modelos
| Nome do modelo | Introdução ao modelo | Compartilhado por | Endereço de link 1 | Endereço de link 2 |
|---|
| Modelo de prosa | Use 130 MB de famosa prosa, prosa emocional e treinamento de poesia em prosa. | Hughqiu | Baidu Netdisk 【fpyu】 | Gdrive |
| Modelo de poesia | Os resultados do treinamento usando cerca de 800.000 poemas antigos em 180 MB. | Hhou435 | Baidu Netdisk 【7fev】 | Gdrive |
| Modelo de dístico | A receita de treinamento do uso de cerca de 700.000 dísticos de 40 MB. | Hhou435 | Baidu Netdisk 【i5n0】 | Gdrive |
| Modelo Chinês Geral | Os resultados obtidos usando o treinamento do ClueCorpussmall Corpus. | Hhou435 | Baidu Netdisk [N3S8] | Gdrive |
| Modelo pequeno chinês em geral | Os resultados obtidos usando o treinamento do ClueCorpussmall Corpus. | Hhou435 | Baidu Netdisk [RPJK] | Gdrive |
| Modelo de letras chinesas | Os resultados do treinamento foram obtidos usando cerca de 150.000 letras chinesas de 140 MB. | Hhou435 | Baidu NetDisk 【0Qnn】 | Gdrive |
| Modelo chinês clássico | Cerca de 3 milhões de peças de treinamento chinesas clássicas foram obtidas usando 1,8 GB. | Hhou435 | Baidu Netdisk [ek2z] | Gdrive |
Aqui está um arquivo modelo obtido com o treinamento de amigos entusiasmados e generosos e generosos, e é aberto a todos os amigos para uso. Ao mesmo tempo, todos os parceiros podem divulgar o modelo que treinaram aqui.
Demonstração
- O modelo treinado pelo usuário Jameshujy com base no código modificado deste armazém é usado como pano de fundo do verso e quadras regulamentadas. A nova versão do Gerador de Poesia das Nove Canções foi lançada.
- Contribuído pelo Leemengtaiwan, ele fornece um artigo que fornece uma introdução direta ao GPT-2 e como visualizar mecanismos de auto-ataque. Notebooks e modelos do COLAB também são fornecidos para qualquer usuário gerar novos exemplos de uma só vez.
Gerar amostra
-O seguinte são exemplos da geração de ensaios literários, contribuídos por Hughqiu, e o modelo foi compartilhado na lista de compartilhamento de modelos. Corpus 130 MB, tamanho do lote 16, 10 rodadas de treinamento em 10 camadas de profundidade. 


- A seguir, é apresentada uma geração de amostra de Doupo Cangqiong. O GPT2 com cerca de 50m parâmetros foi treinado em um novo conteúdo de 16 MB Doupo CANGQiong com tamanho de 32 batch. Aqui [setembro] significa uma nova linha.

- A seguir, é apresentada uma amostra da geração de poemas antigos, que são calculados e contribuídos pelo usuário Jameshujy.


- A seguir, é apresentada uma geração de amostra após a geração do poema antigo, que é calculado e contribuído pelo usuário Jameshujy.



- A seguir, é apresentado o texto da amostra do script gerado, que é calculado e contribuído pelo usuário Chiangandy.
[StartText] O enredo do jogo de amor conta a história do amor fofo entre pai e filha do piano, uma audiência com trabalho duro e valor para a realidade para a vida, e obter uma série de amor. A mídia de gravação de ações dos anos 80 foi compartilhada pelos internautas. Foi o irmão do diretor da marca do criador principal Chen Layun em 2014, o grande país do rio Shanghai Huaihe. Embora os jovens da empresa de linha de frente não tivessem uma carreira, Lan Zhengshi se recusou a entendê-la. O surgimento do conceito de ajuda de Lan Yue abriu um claro mal -entendido e os negócios se tornaram um rio Love. Em uma série acidental de TV, a série de TV mudou seu destino. Os três foram designados para suas criações em um acidente de carro. Eles foram questionados sobre o mal-entendido e o talento discreto na indústria. Chen Zhao e Tang Shishiyan começaram um "relacionamento de 2014" completamente diferente. Os dois tinham caráter mútuo e tinham cura mútua. Embora tenham sido uma pequena jornada de dormitório registrada pela Universidade de Pequim Huaqiao, uma geração pós-90 e jovens destacados como Tang Ru e Sheng, como a vida das pessoas foi contra seus desejos e criou juntos? E por que eles tiveram o sucesso e a preocupação um do outro? [EndText]
[StartText] Learning Love conta principalmente a história de dois pares de Xiaoman. Após um teste ridículo, eles finalmente escolheram três filhos e começaram um negócio juntos para criar quatro crianças e começaram um negócio de sucesso em uma cidade grande. As duas empresas se juntaram a Pequim. Após um período de tempo, eles obtiveram coisas diferentes após o caos e as diferenças e, finalmente, ganharam o verdadeiro amor de seus sonhos. A cerimônia de abertura dos principais personagens empreendedores, como ideais de patrocinador, série de TV, dramas etc. foi realizada em Pequim. O drama é baseado na perspectiva da TV de três recém -chegados em Hainan. Ele conta a história de vários jovens que aprimoraram não-românticos nas gerações de Pequim e comédia. Com os jovens únicos da era dupla de Pequim a Pequim, a urbanização da China, as grandes cidades da China ficaram fora de desenvolvimento. Com as mudanças nas cidades do idioma, enquanto seus estilos de vida graduais encenaram uma vulgaridade tão simples por sua própria direção. É filmado nos tempos contemporâneos. Como estar nesta cidade? Então, uma cidade calma é o estilo da cidade. Zhang Jiahe apóia a criação do trabalho, e esse é um ponto em que é necessário criar uma reunião de tripulação de drama do aeroporto. As pessoas que se transformam em xadrez e culturas são muito únicas e sensacionais, entrelaçadas, engraçadas e vêm do belo nordeste e do continente, e as duas garotas ousam ser chamadas de garotas mudo. As pessoas no entrelaçamento fizeram uma piada, e o temperamento impressionante fez as pessoas parecerem muito cômicas. O que eles sabiam era um defensor da família estrangeira "nordeste", o que a fez parecer boa em ler dramas. Depois disso, Qi Fei, Qi Fei, Fan Er, Chu Yuezi e Bai Tianjie, que expressaram amor por ele. A amizade entre as duas gerações parece estar sem a combinação de expressões legais e maravilhosas. [EndText]
- A seguir, é apresentado um exemplo da geração de romances de Jin Yong e Wu Qi, contribuída por Leemengtaiwan. O tamanho do modelo é de cerca de 82m, o material do idioma é de 50 MB e o tamanho do lote é 16. Fornece um artigo para introduzir o GPT-2 e como visualizar mecanismos de auto-ataque. Notebooks e modelos do COLAB também são fornecidos para qualquer usuário gerar novos exemplos de uma só vez.



