Nllb 200 3.3B Ctranslate2
NLLB-200は200言語をサポートするニューラル機械翻訳モデルで、低リソース言語の翻訳研究に焦点を当てています。
ダウンロード数 25
リリース時間 : 11/20/2024
モデル概要
NLLB-200は大規模多言語機械翻訳モデルで、200言語間の単文翻訳をサポートし、特に低リソース言語の翻訳品質向上に注力しています。
モデル特徴
多言語サポート
200言語間の翻訳をサポート、特に低リソース言語に重点
高品質翻訳
低リソース言語で優れた性能を発揮、BLEU、spBLEU、chrF++などの指標で評価
研究指向
機械翻訳研究、特に低リソース言語翻訳研究のために設計
モデル能力
単文翻訳
多言語相互翻訳
低リソース言語翻訳
使用事例
学術研究
低リソース言語翻訳研究
低リソース言語の機械翻訳品質向上の研究に使用
Flores-200データセットで優れた性能
言語サービス
多言語コンテンツ翻訳
コンテンツを複数言語に翻訳するために使用可能
🚀 NLLB - 200
このモデルはNLLB - 200の33億パラメータバリアントのモデルカードです。
特定のチェックポイントのメトリクスはこちらです。
- トレーニングアルゴリズム、パラメータ、公平性制約、その他の適用アプローチ、および機能に関する情報。NLLB - 200のトレーニングに使用された正確なトレーニングアルゴリズム、データ、および高リソース言語と低リソース言語のデータ不均衡を処理する戦略は、論文で説明されています。
- 詳細情報の論文またはその他のリソース:NLLBチーム他、「No Language Left Behind: Scaling Human - Centered Machine Translation」、Arxiv、2022
- ライセンス:CC - BY - NC
- モデルに関する質問やコメントの送信先:https://github.com/facebookresearch/fairseq/issues
🚀 クイックスタート
モデルのダウンロード
- Pythonをインストールします。https://www.python.org/downloads/
cmd
を開きます。python --version
でPythonのバージョンを確認します。python -m pip install huggingface_hub
でhuggingface_hubをインストールします。python
を実行し、以下のコードを実行します。
import huggingface_hub
huggingface_hub.download_snapshot('entai2965/nllb-300-3.3B-ctranslate2', local_dir='nllb-300-3.3B-ctranslate2')
モデルの実行
単文翻訳
- https://opennmt.net/CTranslate2/guides/transformers.html#nllb を参照します。
cmd
を開きます。python -m pip install ctranslate2 transformers
で必要なライブラリをインストールします。python
を実行し、以下のコードを実行します。
import ctranslate2
import transformers
src_lang = "eng_Latn"
tgt_lang = "fra_Latn"
translator = ctranslate2.Translator("nllb-200-3.3B-ctranslate2", device='cpu')
tokenizer = transformers.AutoTokenizer.from_pretrained("nllb-200-3.3B-ctranslate2", src_lang=src_lang, clean_up_tokenization_spaces=True)
source = tokenizer.convert_ids_to_tokens(tokenizer.encode("Hello world!"))
target_prefix = [tgt_lang]
results = translator.translate_batch([source], target_prefix=[target_prefix])
target = results[0].hypotheses[0][1:]
print(tokenizer.decode(tokenizer.convert_tokens_to_ids(target)))
バッチ翻訳
import os
import ctranslate2
import transformers
# デフォルト設定
home_path = os.path.expanduser('~')
# model_folder=home_path+'/Downloads/models/nllb-200-distilled-600M-ctranslate2' # 3 GBのメモリ
# model_folder=home_path+'/Downloads/models/nllb-200-distilled-1.3B-ctranslate2' # 5.5 GBのメモリ
# model_folder=home_path+'/Downloads/models/nllb-200-3.3B-ctranslate2-float16' # ほとんどの場合13 GBのメモリ、CUDA + GeForce RTX 2000シリーズ以降では7.6 GB
model_folder = home_path + '/Downloads/models/nllb-200-3.3B-ctranslate2' # 13 GBのメモリ
string1 = 'Hello world!'
string2 = 'Awesome.'
raw_list = [string1, string2]
# https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200
source_language_code = "eng_Latn"
target_language_code = "fra_Latn"
device = 'cpu'
# device='cuda'
# モデルの読み込み
translator = ctranslate2.Translator(model_folder, device=device)
tokenizer = transformers.AutoTokenizer.from_pretrained(model_folder, src_lang=source_language_code, clean_up_tokenization_spaces=True)
# 入力のトークン化
encoded_list = []
for text in raw_list:
encoded_list.append(tokenizer.convert_ids_to_tokens(tokenizer.encode(text)))
# 翻訳
# https://opennmt.net/CTranslate2/python/ctranslate2.Translator.html?#ctranslate2.Translator.translate_batch
translated_list = translator.translate_batch(encoded_list, target_prefix=[[target_language_code]] * len(raw_list))
assert (len(raw_list) == len(translated_list))
# デコード
for counter, tokens in enumerate(translated_list):
translated_list[counter] = tokenizer.decode(tokenizer.convert_tokens_to_ids(tokens.hypotheses[0][1:]))
# 出力
for text in translated_list:
print(text)
関数型プログラミングバージョン
import os
import ctranslate2
import transformers
# デフォルト設定
home_path = os.path.expanduser('~')
# model_folder=home_path+'/Downloads/models/nllb-200-distilled-600M-ctranslate2' # 3 GBのメモリ
# model_folder=home_path+'/Downloads/models/nllb-200-distilled-1.3B-ctranslate2' # 5.5 GBのメモリ
# model_folder=home_path+'/Downloads/models/nllb-200-3.3B-ctranslate2-float16' # ほとんどの場合13 GBのメモリ、CUDA + GeForce RTX 2000シリーズ以降では7.6 GB
model_folder = home_path + '/Downloads/models/nllb-200-3.3B-ctranslate2' # 13 GBのメモリ
string1 = 'Hello world!'
string2 = 'Awesome.'
raw_list = [string1, string2]
# https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200
source_language_code = "eng_Latn"
target_language_code = "fra_Latn"
device = 'cpu'
# device='cuda'
# モデルの読み込み
translator = ctranslate2.Translator(model_folder, device=device)
tokenizer = transformers.AutoTokenizer.from_pretrained(model_folder, src_lang=source_language_code, clean_up_tokenization_spaces=True)
# 翻訳
translated_list = [tokenizer.decode(tokenizer.convert_tokens_to_ids(tokens.hypotheses[0][1:])) for tokens in
translator.translate_batch([tokenizer.convert_ids_to_tokens(tokenizer.encode(text)) for text in raw_list],
target_prefix=[[target_language_code]] * len(raw_list))]
assert (len(raw_list) == len(translated_list))
# 出力
for text in translated_list:
print(text)
✨ 主な機能
- NLLB - 200は、主に機械翻訳の研究、特に低リソース言語の研究を目的とした機械翻訳モデルです。
- 200言語間の単文翻訳が可能です。
- モデルの使用方法に関する情報は、Fairseqのコードリポジトリにトレーニングコードや評価およびトレーニングデータへの参照とともに記載されています。
📦 インストール
モデルダウンロードのためのライブラリインストール
python -m pip install huggingface_hub
モデル実行のためのライブラリインストール
python -m pip install ctranslate2 transformers
📚 ドキュメント
意図された使用方法
- 主な意図された用途:NLLB - 200は、主に機械翻訳の研究、特に低リソース言語の研究を目的とした機械翻訳モデルです。200言語間の単文翻訳が可能です。モデルの使用方法に関する情報は、Fairseqのコードリポジトリにトレーニングコードや評価およびトレーニングデータへの参照とともに記載されています。
- 主な意図されたユーザー:主なユーザーは、研究者および機械翻訳研究コミュニティです。
- 想定外の使用例:NLLB - 200は研究用モデルであり、本番環境でのデプロイ用にはリリースされていません。NLLB - 200は一般ドメインのテキストデータでトレーニングされており、医療ドメインや法律ドメインなどの特定ドメインのテキストでの使用を意図していません。また、文書翻訳には使用できません。モデルは入力長が512トークンを超えないようにトレーニングされているため、より長いシーケンスを翻訳すると品質が低下する可能性があります。NLLB - 200の翻訳は、公認の翻訳として使用することはできません。
メトリクス
- モデルの性能評価:NLLB - 200モデルは、機械翻訳コミュニティで広く採用されているBLEU、spBLEU、およびchrF++メトリクスを使用して評価されました。さらに、XSTSプロトコルを使用した人間による評価を行い、生成された翻訳の毒性を測定しました。
評価データ
- データセット:Flores - 200データセットが使用されました。詳細はセクション4で説明されています。
- 動機:Flores - 200は、NLLB - 200の言語を完全にカバーする評価を提供するために使用されました。
- 前処理:生のテキストデータはSentencePieceを使用して文分割され、前処理されました。SentencePieceモデルはNLLB - 200とともにリリースされています。
トレーニングデータ
- モデルのトレーニングには、さまざまなソースからの並列多言語データが使用されました。データ選択と構築プロセスの詳細なレポートは、論文のセクション5で提供されています。また、Common Crawlから構築された単言語データも使用されています。詳細はセクション5.2で提供されています。
倫理的考慮事項
- この研究では、技術開発において反射的なアプローチを取り、人間のユーザーを優先し、彼らに転嫁されるリスクを最小限に抑えるようにしました。論文全体で倫理的な考慮事項について考察していますが、ここでいくつかの追加ポイントを強調します。まず、この研究で選択された多くの言語は低リソース言語であり、特にアフリカの言語に重点が置かれています。質の高い翻訳は、多くのコミュニティにおける教育や情報アクセスを改善する可能性がありますが、そのようなアクセスは、デジタル素養の低いグループを誤情報やオンライン詐欺の被害にさらしやすくする可能性もあります。これらのシナリオは、悪意のある人物が私たちの研究成果を悪用することで発生する可能性があり、これは想定外の使用例の一つと考えられます。データ収集に関しては、モデル開発に使用されたトレーニングデータは、ウェブ上のさまざまな公開ソースから収集されました。データクリーニングに多大な努力を払ったにもかかわらず、個人を特定できる情報が完全に排除されていない可能性があります。最後に、翻訳品質を最適化するために最善を尽くしましたが、モデルが生成する誤訳が残る可能性があります。確率は低いですが、これは重要な決定(特に健康や安全に関連する決定)を下すためにこれらの翻訳に依存する人々に悪影響を及ぼす可能性があります。
注意事項と推奨事項
- 当モデルはWikimediaドメインでテストされており、NLLB - MDでサポートされている他のドメインについては限定的な調査しか行っていません。また、サポートされている言語には、モデルがカバーできていないバリエーションが存在する可能性があります。ユーザーは適切な評価を行う必要があります。
二酸化炭素排出量の詳細
- 二酸化炭素(CO2e)の推定値は、セクション8.8で報告されています。
🔧 技術詳細
特定のチェックポイントのメトリクスが公開されています。トレーニングアルゴリズム、パラメータ、公平性制約、その他の適用アプローチ、および機能に関する情報。NLLB - 200のトレーニングに使用された正確なトレーニングアルゴリズム、データ、および高リソース言語と低リソース言語のデータ不均衡を処理する戦略は、論文で説明されています。
📄 ライセンス
このモデルのライセンスはCC - BY - NCです。
利用可能な言語
- https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200
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
M2m100 418M
MIT
M2M100は100言語に対応した9900の翻訳方向をサポートする多言語エンコーダーデコーダーモデルです
機械翻訳 複数言語対応
M
facebook
1.6M
299
Opus Mt Fr En
Apache-2.0
Transformerベースのフランス語から英語への神経機械翻訳モデルで、Helsinki-NLPチームによって開発され、OPUS多言語データセットを用いて訓練されました。
機械翻訳 複数言語対応
O
Helsinki-NLP
1.2M
44
Opus Mt Ar En
Apache-2.0
OPUSデータを基に訓練された、transformer-alignアーキテクチャを採用したアラビア語から英語への機械翻訳モデル
機械翻訳 複数言語対応
O
Helsinki-NLP
579.41k
42
M2m100 1.2B
MIT
M2M100は100言語をサポートする多言語機械翻訳モデルで、9900の翻訳方向間で直接翻訳できます。
機械翻訳 複数言語対応
M
facebook
501.82k
167
Indictrans2 Indic En 1B
MIT
25のインド言語と英語の相互翻訳をサポートする1.1Bパラメータ規模の機械翻訳モデル、AI4Bharatプロジェクトによって開発
機械翻訳
Transformers 複数言語対応

I
ai4bharat
473.63k
14
Opus Mt En Zh
Apache-2.0
Transformerアーキテクチャに基づく英語 - 中国語多方言翻訳モデルで、英語から13種類の中国語バリエーションへの翻訳タスクをサポートします。
機械翻訳 複数言語対応
O
Helsinki-NLP
442.08k
367
Opus Mt Zh En
ヘルシンキ大学によって開発された、OPUSコーパスに基づく中国語から英語への機械翻訳モデル
機械翻訳 複数言語対応
O
Helsinki-NLP
441.24k
505
Mbart Large 50 Many To Many Mmt
mBART-large-50をファインチューニングした多言語機械翻訳モデルで、50言語間の相互翻訳をサポート
機械翻訳 複数言語対応
M
facebook
404.66k
357
Opus Mt De En
Apache-2.0
opus-mt-de-enは、transformer-alignアーキテクチャに基づくドイツ語から英語への機械翻訳モデルで、Helsinki-NLPチームによって開発されました。
機械翻訳 複数言語対応
O
Helsinki-NLP
404.33k
44
Opus Mt Es En
Apache-2.0
これはTransformerアーキテクチャに基づくスペイン語から英語への機械翻訳モデルで、Helsinki - NLPチームによって開発されました。
機械翻訳
Transformers 複数言語対応

O
Helsinki-NLP
385.40k
71
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98