Kami memulai proyek baru EOLE yang tersedia di GitHub
Ini adalah spin-off Opennmt-py dalam hal fitur tetapi kami mengubah banyak hal.
Eole menangani NMT, LLM, encoder serta konsep baru penaksir dalam model NMT lihat posting ini dan berita ini
Jika Anda seorang pengembang, ganti sekarang. Jika Anda hanya pengguna, maka kami akan menerbitkan versi PY-PI pertama segera.
Opennmt-py adalah versi Pytorch dari Proyek OpenNMT, kerangka Terjemahan Mesin Saraf Open-Source (MIT) (dan Beyond!). Ini dirancang untuk menjadi ramah penelitian untuk mencoba ide -ide baru dalam terjemahan, pemodelan bahasa, peringkasan, dan banyak tugas NLP lainnya. Beberapa perusahaan telah membuktikan kode tersebut siap produksi.
Kami menyukai kontribusi! Silakan lihat masalah yang ditandai dengan tag selamat datang kontribusi.
Sebelum mengangkat masalah, pastikan Anda membaca persyaratan dan contoh dokumentasi lengkap.
Kecuali ada bug, silakan gunakan forum atau gitter untuk mengajukan pertanyaan.
Ada selangkah demi selangkah dan dijelaskan Tuto (terima kasih kepada Yasmin Muslim): Tutorial
Silakan coba baca dan/atau ikuti sebelum mengangkat masalah pemula.
Kalau tidak, Anda bisa melihat langkah QuickStart
scaled_dot_product_attentionUntuk semua usecases termasuk NMT, Anda sekarang dapat menggunakan multiquery alih -alih perhatian multi -kepala (lebih cepat pada pelatihan dan inferensi) dan menghilangkan bias dari semua linier (QKV serta modul feedforward).
Jika Anda menggunakan versi OpenNMT-PY sebelumnya, Anda dapat memeriksa changelog atau perubahan yang melanggar
Untuk memfasilitasi pengaturan dan reproduktifitas, beberapa gambar Docker tersedia melalui Registry Kontainer GitHub: https://github.com/opennmt/opennmt-py/pkgs/container/opennmt-py
Anda dapat menyesuaikan alur kerja dan membangun gambar Anda sendiri tergantung pada kebutuhan spesifik dengan menggunakan build.sh dan Dockerfile di direktori docker repo.
docker pull ghcr.io/opennmt/opennmt-py:3.4.3-ubuntu22.04-cuda12.1
Contoh oneliner untuk menjalankan wadah dan membuka shell bash di dalamnya
docker run --rm -it --runtime=nvidia ghcr.io/opennmt/opennmt-py:test-ubuntu22.04-cuda12.1
Catatan: Anda harus memasang NVIDIA Container Toolkit (sebelumnya NVIDIA-DOCKER) untuk memanfaatkan fitur CUDA/GPU dengan benar.
Bergantung pada kebutuhan Anda, Anda dapat menambahkan berbagai bendera:
-p 5000:5000 untuk meneruskan beberapa port yang terbuka dari wadah Anda ke host Anda;-v /some/local/directory:/some/container/directory untuk memasang beberapa direktori lokal ke beberapa direktori wadah;--entrypoint some_command untuk langsung menjalankan beberapa perintah spesifik sebagai titik masuk kontainer (bukan shell bash default);Opennmt-py membutuhkan:
Instal OpenNMT-py dari pip :
pip install OpenNMT-pyatau dari sumbernya:
git clone https://github.com/OpenNMT/OpenNMT-py.git
cd OpenNMT-py
pip install -e . CATATAN: Jika Anda menemukan MemoryError selama instalasi, cobalah untuk menggunakan pip dengan --no-cache-dir .
(Opsional) Beberapa fitur canggih (misalnya model pretrained yang berfungsi atau transformasi spesifik) memerlukan paket tambahan, Anda dapat menginstalnya dengan:
pip install -r requirements.opt.txtApex sangat disarankan untuk memiliki kinerja yang cepat (terutama pengoptimal legacy fusedadam dan 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 ..Perhatian Flash:
Pada Oktober 2023 Flash Attention 1 telah ditingkatkan ke Pytorch V2 tetapi disarankan untuk menggunakan Flash Attention 2 dengan v2.3.1 untuk dukungan perhatian jendela geser.
Saat menggunakan position_encoding=True atau rotary dengan max_relative_positions=-1 Opennmt-py akan mencoba menggunakan jalur produk dot yang dioptimalkan.
Jika Anda ingin menggunakan perhatian flash maka Anda harus menginstalnya secara manual terlebih dahulu:
pip install flash-attn --no-build-isolation Jika Flash Attention 2 tidak diinstal, maka kami akan menggunakan F.scaled_dot_product_attention dari Pytorch 2.x
Saat menggunakan max_relative_positions > 0 atau alibi max_relative_positions=-2 opennmt-py akan menggunakan kode warisan untuk multiplikasi matriks.
Perhatian flash dan F.scaled_dot_product_attention sedikit lebih cepat dan menyimpan beberapa memori GPU.
AWQ:
Jika Anda ingin menjalankan inferensi atau mengukur model AWQ, Anda akan memerlukan Autoawq.
Untuk autoawq: pip instal autoawq
Dokumentasi HTML lengkap
FAQ
OpenNMT-PY dijalankan sebagai proyek sumber terbuka kolaboratif. Proyek diinkubasi oleh Systran dan Harvard NLP pada tahun 2016 di Lua dan diangkut ke Pytorch pada 2017.
Pemelihara saat ini (sejak 2018):
François Hernandez Vincent Nguyen (Benih)
Jika Anda menggunakan OpenNMT-PY untuk pekerjaan akademik, silakan kutip makalah demonstrasi sistem awal yang diterbitkan dalam 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}
}