CTRANSLATE2 เป็นไลบรารี C ++ และ Python สำหรับการอนุมานอย่างมีประสิทธิภาพด้วยโมเดลหม้อแปลง
โครงการใช้งานรันไทม์ที่กำหนดเองซึ่งใช้เทคนิคการเพิ่มประสิทธิภาพประสิทธิภาพจำนวนมากเช่นการหาปริมาณน้ำหนัก, เลเยอร์ฟิวชั่น, การจัดลำดับใหม่ของแบทช์ ฯลฯ เพื่อเร่งความเร็วและลดการใช้หน่วยความจำของโมเดลหม้อแปลงใน CPU และ GPU
ปัจจุบันรองรับรุ่นต่อไปนี้:
โมเดลที่เข้ากันได้ควรถูกแปลงเป็นรูปแบบโมเดลที่ดีที่สุดเป็นครั้งแรก ห้องสมุดมีตัวแปลงสำหรับหลายเฟรมเวิร์ก:
โครงการนี้มุ่งเน้นการผลิตและมาพร้อมกับการรับประกันความเข้ากันได้ย้อนหลัง แต่ยังรวมถึงคุณสมบัติการทดลองที่เกี่ยวข้องกับการบีบอัดแบบจำลองและการเร่งความเร็ว
คุณสมบัติบางอย่างเหล่านี้ยากที่จะประสบความสำเร็จด้วยกรอบการเรียนรู้เชิงลึกมาตรฐานและเป็นแรงจูงใจสำหรับโครงการนี้
CTRANSLATE2 สามารถติดตั้งด้วย PIP:
pip install ctranslate2โมดูล Python ใช้ในการแปลงรุ่นและสามารถแปลหรือสร้างข้อความด้วยรหัสไม่กี่บรรทัด:
translator = ctranslate2 . Translator ( translation_model_path )
translator . translate_batch ( tokens )
generator = ctranslate2 . Generator ( generation_model_path )
generator . generate_batch ( start_tokens )ดูเอกสารสำหรับข้อมูลเพิ่มเติมและตัวอย่าง
เราแปลชุดทดสอบ en-> de newstest2014 ด้วยหลายรุ่น:
เกณฑ์มาตรฐานรายงานจำนวนโทเค็นเป้าหมายที่สร้างขึ้นต่อวินาที (สูงกว่าดีกว่า) ผลลัพธ์จะถูกรวมเข้าด้วยกันหลายครั้ง ดูสคริปต์มาตรฐานสำหรับรายละเอียดเพิ่มเติมและทำซ้ำตัวเลขเหล่านี้
โปรดทราบว่าผลลัพธ์ที่นำเสนอด้านล่างนั้นใช้ได้เฉพาะสำหรับการกำหนดค่าที่ใช้ในระหว่างเกณฑ์มาตรฐานนี้: ประสิทธิภาพสัมบูรณ์และประสิทธิภาพสัมพัทธ์อาจเปลี่ยนแปลงได้ตามการตั้งค่าที่แตกต่างกัน
| โทเค็นต่อวินาที | สูงสุด หน่วยความจำ | เบลา | |
|---|---|---|---|
| รุ่น OpenNMT-TF WMT14 | |||
| OpenNMT-TF 2.31.0 (พร้อม TensorFlow 2.11.0) | 209.2 | 2653MB | 26.93 |
| รุ่น OpenNMT-PY WMT14 | |||
| OpenNMT-PY 3.0.4 (พร้อม pytorch 1.13.1) | 275.8 | 2012mb | 26.77 |
| - int8 | 323.3 | 1359MB | 26.72 |
| ctranslate2 3.6.0 | 658.8 | 849MB | 26.77 |
| - int16 | 733.0 | 672MB | 26.82 |
| - int8 | 860.2 | 529MB | 26.78 |
| - int8 + vmap | 1126.2 | 598MB | 26.64 |
| Opus-MT Model | |||
| Transformers 4.26.1 (ด้วย Pytorch 1.13.1) | 147.3 | 2332MB | 27.90 |
| Marian 1.11.0 | 344.5 | 7605MB | 27.93 |
| - int16 | 330.2 | 5901MB | 27.65 |
| - int8 | 355.8 | 4763MB | 27.27 |
| ctranslate2 3.6.0 | 525.0 | 721MB | 27.92 |
| - int16 | 596.1 | 660MB | 27.53 |
| - int8 | 696.1 | 516MB | 27.65 |
ดำเนินการด้วย 4 เธรดบนอินสแตนซ์ c5.2xlarge Amazon EC2 ที่ติดตั้ง Intel (R) Xeon (R) Platinum 8275CL CPU
| โทเค็นต่อวินาที | สูงสุด หน่วยความจำ GPU | สูงสุด หน่วยความจำ CPU | เบลา | |
|---|---|---|---|---|
| รุ่น OpenNMT-TF WMT14 | ||||
| OpenNMT-TF 2.31.0 (พร้อม TensorFlow 2.11.0) | 1483.5 | 3031MB | 3122MB | 26.94 |
| รุ่น OpenNMT-PY WMT14 | ||||
| OpenNMT-PY 3.0.4 (พร้อม pytorch 1.13.1) | 2338.2 | 2973MB | 3099MB | 26.77 |
| FasterTransformer 5.3 | 6979.0 | 2402MB | 1131MB | 26.77 |
| - ลอย 16 | 8592.5 | 1360MB | 1135MB | 26.80 |
| ctranslate2 3.6.0 | 6634.7 | 1261MB | 953MB | 26.77 |
| - int8 | 8567.2 | 1005MB | 807MB | 26.85 |
| - ลอย 16 | 10990.7 | 941MB | 807MB | 26.77 |
| - int8 + float16 | 8725.4 | 813MB | 800MB | 26.83 |
| Opus-MT Model | ||||
| Transformers 4.26.1 (ด้วย Pytorch 1.13.1) | 1022.9 | 4097MB | 2109MB | 27.90 |
| Marian 1.11.0 | 3241.0 | 3381MB | 2156MB | 27.92 |
| - ลอย 16 | 3962.4 | 3239MB | 1976MB | 27.94 |
| ctranslate2 3.6.0 | 5876.4 | 1197MB | 754MB | 27.92 |
| - int8 | 7521.9 | 1005MB | 792MB | 27.79 |
| - ลอย 16 | 9296.7 | 909MB | 814MB | 27.90 |
| - int8 + float16 | 8362.7 | 813MB | 766MB | 27.90 |
ดำเนินการกับ CUDA 11 บนอินสแตนซ์ G5.xlarge Amazon EC2 ที่ติดตั้ง Nvidia A10G GPU (เวอร์ชันไดรเวอร์: 510.47.03)