เราเริ่มโครงการใหม่ที่มีอยู่ใน GitHub
มันเป็นแบบแยกของ OpenNMT-PY ในแง่ของคุณสมบัติ แต่เราได้ปรับปรุงสิ่งต่าง ๆ มากมาย
eole จัดการ NMT, LLM, encoders รวมถึงแนวคิดใหม่ของตัวประมาณค่าภายในโมเดล NMT ดูโพสต์นี้และข่าวนี้
หากคุณเป็นนักพัฒนาให้สลับทันที หากคุณเป็นผู้ใช้เท่านั้นเราจะเผยแพร่เวอร์ชัน PY-PI แรกในไม่ช้า
OpenNMT-PY เป็นรุ่น Pytorch ของโครงการ OpenNMT ซึ่งเป็นกรอบการแปลของเครื่องประสาทโอเพนซอร์ซ (MIT) (และอื่น ๆ !) มันถูกออกแบบมาให้วิจัยเป็นมิตรเพื่อลองแนวคิดใหม่ ๆ ในการแปลการสร้างแบบจำลองภาษาการสรุปและงาน NLP อื่น ๆ อีกมากมาย บาง บริษัท ได้พิสูจน์แล้วว่ารหัสนั้นพร้อมที่จะผลิต
เรารักการมีส่วนร่วม! โปรดดูปัญหาที่ทำเครื่องหมายด้วยแท็กยินดีต้อนรับ
ก่อนที่จะมีปัญหาให้แน่ใจว่าคุณได้อ่านข้อกำหนดและตัวอย่างเอกสารฉบับเต็ม
เว้นแต่จะมีข้อผิดพลาดโปรดใช้ฟอรัมหรือ Gitter เพื่อถามคำถาม
มี tuto ทีละขั้นตอนและอธิบาย (ขอบคุณ Yasmin Moslem): การสอน
โปรดลองอ่านและ/หรือติดตามก่อนที่จะหาปัญหามือใหม่
มิฉะนั้นคุณสามารถดูขั้นตอน QuickStart ได้
scaled_dot_product_attention บางอย่างสำหรับ USEcases ทั้งหมดรวมถึง NMT ตอนนี้คุณสามารถใช้หลายทางแทนที่จะเป็นความสนใจแบบหลายหัว (เร็วขึ้นในการฝึกอบรมและการอนุมาน) และลบอคติออกจากเชิงเส้นทั้งหมด (QKV รวมถึงโมดูล Feedforward)
หากคุณใช้ OpenNMT-PY เวอร์ชันก่อนหน้าคุณสามารถตรวจสอบการเปลี่ยนแปลงหรือการเปลี่ยนแปลงที่แตกหัก
เพื่ออำนวยความสะดวกในการตั้งค่าและการทำซ้ำรูปภาพ Docker บางภาพจะมีให้บริการผ่าน GitHub Container Registry: https://github.com/opennmt/opennmt-py/pkgs/container/opennmt-py
คุณสามารถปรับเวิร์กโฟลว์และสร้างภาพของคุณเองขึ้นอยู่กับความต้องการเฉพาะโดยใช้ build.sh และ Dockerfile ในไดเรกทอรี docker ของ repo
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
หมายเหตุ: คุณต้องมีชุดเครื่องมือคอนเทนเนอร์ NVIDIA (เดิมชื่อ NVIDIA-DOCKER) ที่ติดตั้งเพื่อใช้ประโยชน์จากคุณสมบัติ CUDA/GPU อย่างถูกต้อง
ขึ้นอยู่กับความต้องการของคุณคุณสามารถเพิ่มธงต่างๆ:
-p 5000:5000 เพื่อส่งต่อพอร์ตที่เปิดออกจากคอนเทนเนอร์ของคุณไปยังโฮสต์ของคุณ-v /some/local/directory:/some/container/directory เพื่อติดตั้งไดเรกทอรีท้องถิ่นบางตัวไปยังไดเรกทอรีคอนเทนเนอร์บางตัว;--entrypoint some_command เพื่อเรียกใช้คำสั่งเฉพาะบางส่วนเป็นจุดเข้าคอนเทนเนอร์ (แทนที่จะเป็นเชลล์ทุบตีเริ่มต้น);Opennmt-py ต้องการ:
ติดตั้ง OpenNMT-py จาก pip :
pip install OpenNMT-pyหรือจากแหล่งที่มา:
git clone https://github.com/OpenNMT/OpenNMT-py.git
cd OpenNMT-py
pip install -e . หมายเหตุ: หากคุณพบ MemoryError ในระหว่างการติดตั้งให้ลองใช้ pip กับ --no-cache-dir
(ไม่บังคับ) คุณสมบัติขั้นสูงบางอย่าง (เช่นรุ่นที่ผ่านการฝึกอบรมหรือการแปลงเฉพาะ) ต้องการแพ็คเกจเพิ่มเติมคุณสามารถติดตั้งได้ด้วย:
pip install -r requirements.opt.txtขอแนะนำให้ Apex มีประสิทธิภาพที่รวดเร็ว (โดยเฉพาะอย่างยิ่งตัวเพิ่มประสิทธิภาพแบบดั้งเดิม Fusedadam และ 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 Flash Attention 1 ได้รับการอัปสตรีมไปยัง Pytorch V2 แต่ขอแนะนำให้ใช้ Flash Attention 2 กับ V2.3.1 สำหรับการรองรับความสนใจของหน้าต่างเลื่อน
เมื่อใช้ตำแหน่งปกติ position_encoding=True หรือโรตารี่กับ max_relative_positions=-1 opennmt-py จะพยายามใช้เส้นทาง dot-product ที่ดีที่สุด
หากคุณต้องการใช้ความสนใจของแฟลชคุณต้องติดตั้งด้วยตนเองก่อน:
pip install flash-attn --no-build-isolation หากไม่ได้ติดตั้งแฟลชความสนใจ 2 เราจะใช้ F.scaled_dot_product_attention จาก pytorch 2.x
เมื่อใช้ max_relative_positions > 0 หรือ alibi max_relative_positions=-2 opennmt-py จะใช้รหัสดั้งเดิมสำหรับการคูณเมทริกซ์
Flash Attention และ F.scaled_dot_product_attention เร็วขึ้นเล็กน้อยและบันทึกหน่วยความจำ GPU บางส่วน
awq:
หากคุณต้องการเรียกใช้การอนุมานหรือสร้างปริมาณแบบจำลอง AWQ คุณจะต้องใช้ AutoAWQ
สำหรับ AutoAWQ: PIP ติดตั้ง autoAwq
เอกสาร HTML เต็มรูปแบบ
คำถามที่พบบ่อย
OpenNMT-PY ดำเนินการเป็นโครงการโอเพนซอร์ซที่ทำงานร่วมกัน โครงการถูกบ่มโดย Systran และ Harvard NLP ในปี 2559 ใน Lua และส่งไปยัง Pytorch ในปี 2560
ผู้ดูแลปัจจุบัน (ตั้งแต่ปี 2561):
François Hernandez Vincent Nguyen (Seedfall)
หากคุณใช้ 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}
}