우리는 Github에서 사용할 수있는 새로운 프로젝트 Eole을 시작했습니다
기능면에서 OpenNMT-PY의 분사이지만 많은 것들을 개선했습니다.
Eole은 NMT, LLM, 인코더 및 NMT 모델 내에서 새로운 추정기 개념을 처리합니다.이 게시물 과이 뉴스를 참조하십시오.
개발자라면 지금 전환하십시오. 귀하가 사용자 만 있으면 첫 번째 PY-PI 버전을 곧 게시합니다.
OpenNMT-Py는 OpenNMT 프로젝트의 Pytorch 버전 인 Open-Source (MIT) 신경 기계 번역 (및 그 이후) 프레임 워크입니다. 번역, 언어 모델링, 요약 및 기타 여러 NLP 작업의 새로운 아이디어를 시험해 보도록 연구 친화적으로 설계되었습니다. 일부 회사는 코드가 생산 준비임을 입증했습니다.
우리는 기여를 좋아합니다! 기부금 환영 태그로 표시된 문제를 살펴보십시오.
문제를 제기하기 전에 요구 사항과 전체 문서 예제를 읽으십시오.
버그가 없으면 포럼이나 gitter를 사용하여 질문을하십시오.
단계별로 설명하고 설명 된 Tuto (Yasmin Moslem 덕분에) : 튜토리얼
초보자 문제를 제기하기 전에 읽거나 팔로우하십시오.
그렇지 않으면 QuickStart 단계 만 볼 수 있습니다.
scaled_dot_product_attention 문제를 수정하는 pytorch v2가 바람직하게는 v2.2가 필요합니다.NMT를 포함한 모든 usecase의 경우, 이제 멀티 헤드주의 (훈련 및 추론에서 더 빠른) 대신 다비실을 사용하고 모든 선형 (QKV 및 피드 포워드 모듈)에서 바이어스를 제거 할 수 있습니다.
이전 버전의 OpenNMT-PY를 사용한 경우 ChangElog 또는 Breaking 변경 사항을 확인할 수 있습니다.
설정 및 재현성을 용이하게하기 위해 일부 Docker 이미지는 Github 컨테이너 레지스트리를 통해 제공됩니다 : https://github.com/opennmt/opennmt-py/pkgs/container/opennmt-py
Repo의 docker 디렉토리에서 build.sh 및 Dockerfile 사용하여 특정 요구 사항에 따라 워크 플로를 조정하고 자신의 이미지를 만들 수 있습니다.
docker pull ghcr.io/opennmt/opennmt-py:3.4.3-ubuntu22.04-cuda12.1
컨테이너를 실행하고 그 안에 배쉬 쉘을 열 수있는 예제 OneLiner
docker run --rm -it --runtime=nvidia ghcr.io/opennmt/opennmt-py:test-ubuntu22.04-cuda12.1
참고 : CUDA/GPU 기능을 올바르게 활용하려면 NVIDIA 컨테이너 툴킷 (이전 NVIDIA DOCKER)을 설치해야합니다.
필요에 따라 다양한 플래그를 추가 할 수 있습니다.
-p 5000:5000 컨테이너에서 호스트로 노출 된 포트를 전달합니다.-v /some/local/directory:/some/container/directory 일부 지역 디렉토리를 일부 컨테이너 디렉토리에 장착합니다.--entrypoint some_command 컨테이너 입력 지점 (기본 배쉬 쉘 대신)으로 특정 명령을 직접 실행합니다.OpenNMT-Py가 필요합니다.
pip 에서 OpenNMT-py 설치하십시오.
pip install OpenNMT-py또는 소스에서 :
git clone https://github.com/OpenNMT/OpenNMT-py.git
cd OpenNMT-py
pip install -e . 참고 : 설치 중에 MemoryError 발생하면 --no-cache-dir 와 함께 pip 사용하십시오.
(선택 사항) 일부 고급 기능 (예 : 사전 처리 된 모델 또는 특정 변환 작업) 추가 패키지가 필요하므로 다음과 같이 설치할 수 있습니다.
pip install -r requirements.opt.txtApex는 빠른 성능 (특히 Legacy Fusedadam Optimizer 및 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 ..플래시주의 :
2023 년 10 월 현재 플래시주의 1은 Pytorch v2에 상류가되었지만 슬라이딩 윈도우주의 지원을 위해 v2.3.1과 함께 플래시주의 2를 사용하는 것이 좋습니다.
정기적 인 위치 _encoding = max_relative_positions=-1 OpenNNMT-Py가있는 position_encoding=True 또는 로타리를 사용하는 경우 최적화 된 도트 제품 경로를 사용하려고합니다.
플래시주의를 사용하려면 먼저 수동으로 설치해야합니다.
pip install flash-attn --no-build-isolation 플래시주의 2가 설치되지 않으면 pytorch 2.x에서 F.scaled_dot_product_attention 사용합니다.
max_relative_positions > 0 또는 alibi max_relative_positions=-2 OpenNNMT-Py를 사용하면 행렬 곱하기에 레거시 코드를 사용합니다.
플래시주의 및 F.scaled_dot_product_attention 은 약간 빠르며 GPU 메모리를 저장합니다.
AWQ :
추론을 실행하거나 AWQ 모델을 정량화하려면 AutoAWQ가 필요합니다.
Autoawq의 경우 : PIP 설치 AutoAWQ
전체 HTML 문서
FAQ
OpenNMT-PY는 공동 작업 오픈 소스 프로젝트로 운영됩니다. 프로젝트는 2016 년 LUA에서 Systran과 Harvard NLP에 의해 인큐베이션되었으며 2017 년에 Pytorch로 이어졌습니다.
현재 관리자 (2018 년 이후) :
François Hernandez Vincent Nguyen (시드 폴)
학업 작업에 OpenNMT-PY를 사용하는 경우 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}
}