Uma implementação de Pytorch de um modelo de linguagem probabilística neural. Código para treinamento e carregamento de dados com base no modelo de idioma de nível de palavra pytorch.
Para obter o conjunto de dados Wikitext-2, execute:
./get-data.shUm exemplo no nível da palavra:
./main.py train --name wiki --order 5 --batch-size 32Um exemplo no nível do personagem:
./main.py train --name wiki-char --use-char --order 12 --emb-dim 20 --batch-size 1024Se você tiver vetores de luvas pré -tenham, você pode usá -los:
./main.py train --name wiki --use-glove --glove-dir your/glove/dir --emb-dim 50Alguns outros argumentos de dados são:
--lower # Lowercase all words in training data.
--no-headers # Remove all headers such as `=== History ===`. Com os seguintes argumentos, uma época leva cerca de 45 minutos:
./main.py train --name wiki --order 5 --use-glove --emb-dim 50 --hidden-dims 100
--batch-size 128 --epochs 10 # Test perplexity 224.89 
Podemos explorar os limites:
./main.py train --name wiki --order 13 --emb-dim 100 --hidden-dims 500
--epochs 40 --batch-size 512 --dropout 0.5 # Test perplexity 153.12 
./main.py train --name wiki --order 13 --emb-dim 300 --hidden-dims 1400
--epochs 40 --batch-size 256 --dropout 0.65 # Test perplexity 152.64 
Para gerar texto, use:
./main.py generate --checkpoint path/to/saved/model O token <eos> é substituído por uma nova linha e o restante é impresso como está.
Outros argumentos de geração são:
--temperature 0.9 # Temperature to manipulate distribution.
--start # Provide an optional start of the generated text (can be longer than order)
--no-unk # Do not generate unks, especially useful for low --temperature.
--no-sos # Do not print <sos> tokensVeja algum texto gerado no generate.txt.
Para visualizar as incorporações treinadas do modelo, use:
./main.py plot --checkpoint path/to/saved/modelIsso se encaixa em um gráfico 2D T-SNE com coloração de cluster k-means das 1000 palavras mais comuns no conjunto de dados. O requer bokeh para plotar e scikit-learn para t-sne e k-means.
Veja um exemplo html aqui. (O Github não renderiza arquivos HTML. Para renderizar, baixar e abrir ou usar este link.)
python>=3.6
torch==0.3.0.post4
numpy
tqdm