🚀 基於Ctranslate2的快速推理模型
本項目通過在CPU或GPU上使用C++進行int8推理,在減少2 - 4倍內存使用的同時加速推理。它是facebook/nllb - 200 - 3.3B的量化版本。
🚀 快速開始
安裝依賴
pip install ctranslate2
檢查點兼容性
本項目的檢查點與 ctranslate2>=3.22.0 兼容:
- 當
device="cuda"
時,使用 compute_type=int8_float16
- 當
device="cpu"
時,使用 compute_type=int8
模型轉換代碼
本模型於2023 - 12 - 01使用CTranslate2==3.22.0進行轉換,轉換代碼如下:
from ctranslate2.converters import TransformersConverter
TransformersConverter(
"facebook/nllb-200-3.3B",
activation_scales=None,
copy_files=['tokenizer.json', 'generation_config.json', 'README.md', 'special_tokens_map.json', 'tokenizer_config.json', '.gitattributes'],
load_as_float16=True,
revision=None,
low_cpu_mem_usage=True,
trust_remote_code=True,
).convert(
output_dir=str(tmp_dir),
vmap = None,
quantization="int8",
force = True,
)
✨ 主要特性
- 支持語言眾多:支持多種語言,包括ace、acm、acq等約200種語言。
- 推理加速:使用int8推理,在減少內存使用的同時加速推理。
- 兼容性強:檢查點與 ctranslate2>=3.22.0 兼容。
📚 詳細文檔
支持語言列表
ace, acm, acq, aeb, af, ajp, ak, als, am, apc, ar, ars, ary, arz, as, ast, awa, ayr, azb, azj, ba, bm, ban, be, bem, bn, bho, bjn, bo, bs, bug, bg, ca, ceb, cs, cjk, ckb, crh, cy, da, de, dik, dyu, dz, el, en, eo, et, eu, ee, fo, fj, fi, fon, fr, fur, fuv, gaz, gd, ga, gl, gn, gu, ht, ha, he, hi, hne, hr, hu, hy, ig, ilo, id, is, it, jv, ja, kab, kac, kam, kn, ks, ka, kk, kbp, kea, khk, km, ki, rw, ky, kmb, kmr, knc, kg, ko, lo, lij, li, ln, lt, lmo, ltg, lb, lua, lg, luo, lus, lvs, mag, mai, ml, mar, min, mk, mt, mni, mos, mi, my, nl, nn, nb, npi, nso, nus, ny, oc, ory, pag, pa, pap, pbt, pes, plt, pl, pt, prs, quy, ro, rn, ru, sg, sa, sat, scn, shn, si, sk, sl, sm, sn, sd, so, st, es, sc, sr, ss, su, sv, swh, szl, ta, taq, tt, te, tg, tl, th, ti, tpi, tn, ts, tk, tum, tr, tw, tzm, ug, uk, umb, ur, uzn, vec, vi, war, wo, xh, ydd, yo, yue, zh, zsm, zu
語言詳情
ace_Arab, ace_Latn, acm_Arab, acq_Arab, aeb_Arab, afr_Latn, ajp_Arab, aka_Latn, amh_Ethi, apc_Arab, arb_Arab, ars_Arab, ary_Arab, arz_Arab, asm_Beng, ast_Latn, awa_Deva, ayr_Latn, azb_Arab, azj_Latn, bak_Cyrl, bam_Latn, ban_Latn,bel_Cyrl, bem_Latn, ben_Beng, bho_Deva, bjn_Arab, bjn_Latn, bod_Tibt, bos_Latn, bug_Latn, bul_Cyrl, cat_Latn, ceb_Latn, ces_Latn, cjk_Latn, ckb_Arab, crh_Latn, cym_Latn, dan_Latn, deu_Latn, dik_Latn, dyu_Latn, dzo_Tibt, ell_Grek, eng_Latn, epo_Latn, est_Latn, eus_Latn, ewe_Latn, fao_Latn, pes_Arab, fij_Latn, fin_Latn, fon_Latn, fra_Latn, fur_Latn, fuv_Latn, gla_Latn, gle_Latn, glg_Latn, grn_Latn, guj_Gujr, hat_Latn, hau_Latn, heb_Hebr, hin_Deva, hne_Deva, hrv_Latn, hun_Latn, hye_Armn, ibo_Latn, ilo_Latn, ind_Latn, isl_Latn, ita_Latn, jav_Latn, jpn_Jpan, kab_Latn, kac_Latn, kam_Latn, kan_Knda, kas_Arab, kas_Deva, kat_Geor, knc_Arab, knc_Latn, kaz_Cyrl, kbp_Latn, kea_Latn, khm_Khmr, kik_Latn, kin_Latn, kir_Cyrl, kmb_Latn, kon_Latn, kor_Hang, kmr_Latn, lao_Laoo, lvs_Latn, lij_Latn, lim_Latn, lin_Latn, lit_Latn, lmo_Latn, ltg_Latn, ltz_Latn, lua_Latn, lug_Latn, luo_Latn, lus_Latn, mag_Deva, mai_Deva, mal_Mlym, mar_Deva, min_Latn, mkd_Cyrl, plt_Latn, mlt_Latn, mni_Beng, khk_Cyrl, mos_Latn, mri_Latn, zsm_Latn, mya_Mymr, nld_Latn, nno_Latn, nob_Latn, npi_Deva, nso_Latn, nus_Latn, nya_Latn, oci_Latn, gaz_Latn, ory_Orya, pag_Latn, pan_Guru, pap_Latn, pol_Latn, por_Latn, prs_Arab, pbt_Arab, quy_Latn, ron_Latn, run_Latn, rus_Cyrl, sag_Latn, san_Deva, sat_Beng, scn_Latn, shn_Mymr, sin_Sinh, slk_Latn, slv_Latn, smo_Latn, sna_Latn, snd_Arab, som_Latn, sot_Latn, spa_Latn, als_Latn, srd_Latn, srp_Cyrl, ssw_Latn, sun_Latn, swe_Latn, swh_Latn, szl_Latn, tam_Taml, tat_Cyrl, tel_Telu, tgk_Cyrl, tgl_Latn, tha_Thai, tir_Ethi, taq_Latn, taq_Tfng, tpi_Latn, tsn_Latn, tso_Latn, tuk_Latn, tum_Latn, tur_Latn, twi_Latn, tzm_Tfng, uig_Arab, ukr_Cyrl, umb_Latn, urd_Arab, uzn_Latn, vec_Latn, vie_Latn, war_Latn, wol_Latn, xho_Latn, ydd_Hebr, yor_Latn, yue_Hant, zho_Hans, zho_Hant, zul_Latn
標籤
- ctranslate2
- int8
- float16
- nllb
- translation
數據集
評估指標
推理設置
推理功能已關閉(inference: false)
🔧 技術細節
模型評估
NLLB - 200模型使用了機器翻譯社區廣泛採用的BLEU、spBLEU和chrF++指標進行評估。此外,還使用XSTS協議進行了人工評估,並測量了生成翻譯的毒性。
訓練數據
- 使用了來自各種來源的平行多語言數據進行模型訓練。具體的訓練算法、數據以及處理高資源和低資源語言數據不平衡的策略在論文中有詳細描述。
- 還使用了從Common Crawl構建的單語數據。
倫理考量
- 本項目在技術開發中採取了反思性方法,以確保優先考慮人類用戶並儘量減少可能轉移給他們的風險。
- 由於選擇的許多語言是低資源語言,特別是非洲語言,高質量的翻譯雖然可以改善這些社區的教育和信息獲取,但也可能使數字素養較低的群體更容易受到錯誤信息或網絡詐騙的影響。
- 訓練數據是從網絡上各種公開可用的來源挖掘的,儘管進行了大量的數據清理,但可能仍未完全消除個人可識別信息。
- 儘管盡力優化翻譯質量,但模型產生的誤譯仍可能存在,這可能會對依賴這些翻譯做出重要決策的人產生不利影響。
注意事項和建議
- 模型僅在Wikimedia領域進行了測試,對NLLB - MD支持的其他領域的研究有限。
- 支持的語言可能存在模型未涵蓋的變體,用戶應進行適當評估。
碳足跡詳情
二氧化碳(CO2e)估計值在論文的第8.8節中報告。
📄 許可證
本項目採用CC - BY - NC - 4.0許可證,這只是一個量化版本,許可證條件與原始huggingface倉庫相同。
原始模型描述
本部分內容複製自 https://huggingface.co/facebook/nllb - 200 - 3.3B
模型用途
- 主要用途:NLLB - 200是一個機器翻譯模型,主要用於機器翻譯研究,特別是低資源語言的翻譯研究。它允許在200種語言之間進行單句翻譯。使用該模型的信息可以在Fairseq代碼倉庫中找到,同時還有訓練代碼以及評估和訓練數據的參考。
- 主要用戶:主要用戶是研究人員和機器翻譯研究社區。
- 不適用場景:NLLB - 200是一個研究模型,不用於生產部署。它是在通用領域文本數據上訓練的,不適合用於特定領域的文本,如醫學領域或法律領域。該模型也不用於文檔翻譯。由於模型訓練時輸入長度不超過512個標記,因此翻譯較長序列可能會導致質量下降。NLLB - 200的翻譯不能用作認證翻譯。
模型指標
這裡是該特定檢查點的指標。模型性能通過BLEU、spBLEU和chrF++等指標進行衡量。
論文引用
NLLB Team et al, No Language Left Behind: Scaling Human - Centered Machine Translation, Arxiv, 2022
問題反饋
關於該模型的問題或評論,請發送至:https://github.com/facebookresearch/fairseq/issues