Algunos código para hacer modelado de idiomas con Keras, en particular para tareas de preguntas. Escribí una publicación de blog muy larga que explica cómo funciona mucho, que se puede encontrar aquí.
attention_lstm.py : LSTM atencional, basado en uno de los artículos a los que se hace referencia en la publicación del blog y otros. Una aplicación lo usó para subtítulos. Se inicializa con un vector de atención que proporciona el componente de atención para la red neuronal.insurance_qa_eval.py : marco de evaluación para el conjunto de datos de segurosqa. Para que esto funcione, clone el repositorio de datos y establezca la variable de entorno INSURANCE_QA en el repositorio clonado. Cambiar config ajustará cómo se capacita el modelo.keras-language-model.py : la clase LanguageModel utiliza la configuración config para generar un modelo de entrenamiento y un modelo de prueba. El modelo puede ser entrenado pasando un vector de preguntas, un vector de respuesta de verdad de tierra y un vector de respuesta mala para que fit . Entonces predict calcula la similitud entre una pregunta y respuesta. Anule el método build con cualquier modelo de idioma que desee obtener un modelo entrenable. Se proporcionan ejemplos en la parte inferior, incluido el EmbeddingModel , ConvolutionModel y 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.pyAlternativamente, escribí un script para comenzar en una instancia de la plataforma de Google Cloud (Ubuntu 16.04) que se puede ejecutar a través de
cd ~
git clone https://github.com/codekansas/keras-language-modeling
cd keras-language-modeling
source install.pyHe estado trabajando en hacer que estos modelos estén disponibles fuera de la caja. Debe instalar la rama GIT de Keras (y tal vez hacer algunas modificaciones) para ejecutar algunos de estos modelos; El proyecto Keras se puede encontrar aquí.
El programa Runnable es insurance_qa_eval.py . Esto creará un models/ directorio que almacenará un historial de pesas del modelo a medida que se cree. Debe establecer una variable de entorno para decirle dónde está el conjunto de datos Insurance_QA.
Finalmente, mi configuración (que creo que es bastante común) es tener un SSD con mi sistema operativo y un HDD con archivos de datos más grandes. Por lo tanto, recomendaría crear un models/ enlace simbólico desde el directorio del proyecto a algún lugar de su HDD, si tiene una configuración similar.
Agregué un argumento de línea de comando que usa Flask para servir a un puerto. Una vez que haya instalado Flask, puede ejecutar:
python insurance_qa_eval.py serveEsto es útil en combinación con NGROK para monitorear el progreso de la capacitación lejos de su escritorio.