Comenzamos un nuevo proyecto Eole disponible en Github
Es un spin-off de OpenNMT-PY en términos de características, pero renovamos muchas cosas.
Eole maneja NMT, LLM, codificadores, así como un nuevo concepto de estimador dentro de un modelo NMT, vea esta publicación y esta noticia
Si eres un desarrollador, cambia ahora. Si es solo un usuario, publicaremos las primeras versiones PY-PI en breve.
OpenNMT-PY es la versión Pytorch del Proyecto OpenNMT, un marco de traducción automática neural de código abierto (MIT) (¡y más allá!). Está diseñado para ser una investigación amigable para probar nuevas ideas en traducción, modelado de idiomas, resumen y muchas otras tareas de PNL. Algunas compañías han demostrado que el código está listo para la producción.
¡Nos encantan las contribuciones! Mire los problemas marcados con la etiqueta de bienvenida de las contribuciones.
Antes de plantear un problema, asegúrese de leer los requisitos y los ejemplos completos de documentación.
A menos que haya un error, use el foro o Gitter para hacer preguntas.
Hay un tuto paso a paso y explicado (gracias a Yasmin Moslem): Tutorial
Intente leer y/o seguir antes de plantear problemas de novatos.
De lo contrario, puede echar un vistazo a los pasos de rápido arranque
scaled_dot_product_attentionPara todos los casos de uso, incluido NMT, ahora puede usar la atención multígual en lugar de la atención de múltiples cabezas (más rápido en el entrenamiento e inferencia) y eliminar los sesgos de todos los módulos lineales (QKV y de alimentación).
Si usó versiones anteriores de OpenNMT-PY, puede verificar el cambio de cambio o los cambios de ruptura
Para facilitar la configuración y la reproducibilidad, algunas imágenes de Docker están disponibles a través del registro de contenedores de GitHub: https://github.com/opennmt/opennmt-py/pkgs/container/opennmt-py
Puede adaptar el flujo de trabajo y construir sus propias imágenes según las necesidades específicas utilizando build.sh y Dockerfile en el directorio docker del repositorio.
docker pull ghcr.io/opennmt/opennmt-py:3.4.3-ubuntu22.04-cuda12.1
Ejemplo OneLiner para ejecutar un contenedor y abrir un caparazón de Bash dentro de él
docker run --rm -it --runtime=nvidia ghcr.io/opennmt/opennmt-py:test-ubuntu22.04-cuda12.1
Nota: Debe tener el kit de herramientas NVIDIA Container (anteriormente Nvidia-Docker) instalado para aprovechar correctamente las funciones de CUDA/GPU.
Dependiendo de sus necesidades, puede agregar varias banderas:
-p 5000:5000 para reenviar un puerto expuesto desde su contenedor a su host;-v /some/local/directory:/some/container/directory para montar algún directorio local en algún directorio de contenedores;--entrypoint some_command para ejecutar directamente algún comando específico como el punto de entrada del contenedor (en lugar del shell bash predeterminado);OpenNmt-Py requiere:
Instale OpenNMT-py desde pip :
pip install OpenNMT-pyo de la fuente:
git clone https://github.com/OpenNMT/OpenNMT-py.git
cd OpenNMT-py
pip install -e . Nota: Si encuentra un MemoryError durante la instalación, intente usar pip con --no-cache-dir .
(Opcional) Algunas características avanzadas (por ejemplo, modelos previos al trabajo o transformaciones específicas) requieren paquetes adicionales, puede instalarlas con:
pip install -r requirements.opt.txtApex se recomienda encarecidamente tener un rendimiento rápido (especialmente el Legacy Fusedadam Optimizer y FusedrmsNorm)
git clone https://github.com/NVIDIA/apex
cd apex
pip3 install -v --no-build-isolation --config-settings --build-option= " --cpp_ext --cuda_ext --deprecated_fused_adam --xentropy --fast_multihead_attn " ./
cd ..Atención flash:
A partir de octubre de 2023, la atención Flash 1 se ha renovado a Pytorch V2, pero se recomienda usar Flash Atting 2 con V2.3.1 para el soporte deslizante de atención de las ventanas.
Cuando se use position_encoding=True o rotativo con max_relative_positions=-1 OpenNMT-PY intentará usar una ruta optimizada de producto DOT.
Si desea utilizar la atención Flash, primero debe instalarla manualmente:
pip install flash-attn --no-build-isolation Si Flash Atention 2 no está instalado, usaremos F.scaled_dot_product_attention de Pytorch 2.x
Cuando se usa max_relative_positions > 0 o alibi max_relative_positions=-2 OpenNMT-PY usará su código heredado para multiplicaciones de matriz.
Flash Attory y F.scaled_dot_product_attention son un poco más rápidos y guarda algo de memoria GPU.
AWQ:
Si desea ejecutar una inferencia o cuantizar un modelo AWQ, necesitará AutoAWQ.
Para AutoAwq: PIP install AutoAwq
Documentación completa de HTML
Preguntas frecuentes
OpenNMT-PY se ejecuta como un proyecto colaborativo de código abierto. El proyecto fue incubado por Systran y Harvard NLP en 2016 en Lua y portó a Pytorch en 2017.
Mantenedores actuales (desde 2018):
François Hernández Vincent Nguyen (SEEDFALL)
Si está utilizando OpenNMT-PY para el trabajo académico, cite el documento de demostración del sistema inicial publicado en ACL 2017:
@misc{klein2018opennmt,
title={OpenNMT: Neural Machine Translation Toolkit},
author={Guillaume Klein and Yoon Kim and Yuntian Deng and Vincent Nguyen and Jean Senellart and Alexander M. Rush},
year={2018},
eprint={1805.11462},
archivePrefix={arXiv},
primaryClass={cs.CL}
}