Algum código para fazer modelagem de idiomas com Keras, em particular para tarefas de resposta a perguntas. Eu escrevi uma postagem de blog muito longa que explica como isso funciona, o que pode ser encontrado aqui.
attention_lstm.py : Atenção LSTM, com base em um dos trabalhos mencionados na postagem do blog e em outros. Um aplicativo o usou para a legenda da imagem. É inicializado com um vetor de atenção que fornece o componente de atenção para a rede neural.insurance_qa_eval.py : estrutura de avaliação para o conjunto de dados Insuranceqa. Para fazer isso funcionar, clone o repositório de dados e defina a variável de ambiente INSURANCE_QA para o repositório clonado. A alteração config ajustará como o modelo é treinado.keras-language-model.py : A classe LanguageModel usa as configurações config para gerar um modelo de treinamento e um modelo de teste. O modelo pode ser treinado passando um vetor de perguntas, um vetor de resposta da verdade e um vetor de resposta ruim para fit . Em seguida, predict calcula a semelhança entre uma pergunta e resposta. Substitua o método de build com qualquer modelo de idioma que você deseja obter um modelo treinável. Exemplos são fornecidos na parte inferior, incluindo o EmbeddingModel , ConvolutionModel e RecurrentModel . # Install Keras (may also need dependencies)
git clone https://github.com/fchollet/keras
cd keras
sudo python setup.py install
# Clone InsuranceQA dataset
git clone https://github.com/codekansas/insurance_qa_python
export INSURANCE_QA= $( pwd ) /insurance_qa_python
# Run insurance_qa_eval.py
git clone https://github.com/codekansas/keras-language-modeling
cd keras-language-modeling/
python insurance_qa_eval.pyComo alternativa, escrevi um script para começar em uma instância do Google Cloud Platform (Ubuntu 16.04) que pode ser executada via
cd ~
git clone https://github.com/codekansas/keras-language-modeling
cd keras-language-modeling
source install.pyEu tenho trabalhado para disponibilizar esses modelos prontos para uso. Você precisa instalar a filial do Git de Keras (e talvez fazer algumas modificações) para executar alguns desses modelos; O projeto Keras pode ser encontrado aqui.
O programa Runnable é insurance_qa_eval.py . Isso criará um models/ diretório que armazenará um histórico dos pesos do modelo à medida que é criado. Você precisa definir uma variável de ambiente para dizer onde está o conjunto de dados Insurance_QA.
Finalmente, minha configuração (que eu acho bastante comum) é ter um SSD com meu sistema operacional e um HDD com arquivos de dados maiores. Por isso, eu recomendaria criar um models/ symblink do diretório do projeto para algum lugar do seu HDD, se você tiver uma configuração semelhante.
Adicionei um argumento da linha de comando que usa o Flask para servir a uma porta. Depois de instalar o Flask, você pode executar:
python insurance_qa_eval.py serveIsso é útil em combinação com o NGROK para monitorar o progresso do treinamento, longe do seu desktop.