1.日英・英日機械翻訳モデルALMA-7B-Ja-V2の公開まとめ
・先日公開した日英・英日機械翻訳モデルALMA-7B-Jaの性能を更に向上したV2を公開
・70億パラメーターモデルだがMETA社の540億パラメーターモデルに近い性能を達成
・量子化を行いサイズを縮小したGPTQ版の性能もかなり向上し、より扱いやすくなった
2.日英・英日機械翻訳モデルALMA-7B-Ja-V2とは?
ALMA-7B-Jaは最近話題のchatGPTが使っているAIテクノロジー(LLM:大規模言語モデル)を使って学習させた日英・英日機械翻訳用のAIモデルです。chatGPTのように多様な機能を学習させるのではなく、翻訳機能に特化させる事で専門性を高める事を狙っています。
先日、前バージョンである日英・英日機械翻訳AIモデルALMA-7B-Jaを公開したのですがまだまだ改善できる点が沢山ある事がわかっており、どうしても更に性能を改善してみたくなりました。そのため、短期間で実現可能な改善とデータセットの整備を行って性能を底上げした版がALMA-7B-Ja-V2です。本モデルはllama2ライセンスでの公開となるため、自由に商用利用可能です。
ALMA-7B-Ja-V2は性能が一段階底上げされていますが、ファイルサイズは前回モデルと同程度(3.9GB~13.5GB)に留めているため、一般消費者向けのGPU付きパソコンで実用的な速度で動かせる事が特徴です。
ALMA-7B-Ja-V2のベンチマーク結果
ALMA-7B-Ja-V2ではベンチマークをしっかり行い、モデルの現在の性能を明確化する事を試みました。
主観評価ですと、日英・英日に限るとMeta社の超多言語翻訳モデルであるNLLB-200や多言語で且つ音声とテキスト間の翻訳を同時に扱えるSeamlessM4Tと同等程度の性能を達成していると感じています。NLLB-200の540億モデルはデータセンター用の最先端GPUであるA100が6台以上なければ実用的な速度で動かす事は出来ない程の巨大なモデルであるため、一般消費者向けのミドルスペックパソコンで実用的且つ同程度の性能が出せた事は大きな成果と思います。
しかし、現在の最高峰AIモデルやLLMベースではない一線級の機械翻訳モデル群とはまだ1歩~2歩くらいの差がある事も感じており、今回、そこを数値で明確化しています。
今回は3種類のベンチマーク結果を元に比較していますが、まずは各ベンチマークの説明から。
(1)BLEU(Bilingual Evaluation Understudy)
翻訳テキストが元のテキストにどれだけ似ているかを評価する指標です。翻訳モデルの性能を評価する際に一番使われている指標と思います。しかし、単語の出現頻度だけを見ているため、語順の正確さや文の流暢さを十分に評価できないという弱点があります。
(2)chrF++/chrF2++(character n-gram F-score)
文字の組み合わせの一致度と語順に基づいて、翻訳の正確さを評価する指標です。主にアジア系言語の翻訳評価に有効と言われています。弱点としては、長い文章の評価にはやや不向きであることが挙げられます。F2は訳漏れに対してより多くペナルティを課す版です。
(3)comet(Cross-lingual Optimized Metric for Evaluation of Translation)
機械学習モデルを使って翻訳の品質を自動的に評価するツールです。人間の主観的評価に近いと言われていますが、機械学習ベースであるため、元々のモデルが学習に使ったデータに評価が大きく依存するという弱点があります。
ALMA-7B-Ja-V2のFLORES200ベンチマークスコア
Model Name | file size | 英日 chrf++/F2 | 英日 comet | 日英 chrf++/F2 | 日英 comet |
---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 3.9GB | -/33.0 | 0.8818 | -/62.0 | 0.8774 |
ALMA-Ja-V2 | 13.48GB | -/33.9 | 0.8820 | -/63.1 | 0.8873 |
ALMA-Ja-V2-Lora | 13.48GB | -/33.7 | 0.8843 | -/61.1 | 0.8775 |
META社の200言語以上に対応した多言語機械翻訳モデル NLLB 200のFLORES200ベンチマークスコア
Model Name | file size | 英日 chrf++/F2 | 英日 comet | 日英 chrf++/F2 | 日英 comet |
---|---|---|---|---|---|
NLLB-200-Distilled 600M | 2.46GB | 23.6/- | – | 50.2/- | – |
NLLB-200-Distilled 1.3B | 5.48GB | 25.4/- | – | 54.2/- | – |
NLLB-200 1.3B | 5.48GB | 24.2/- | – | 53.6/- | – |
NLLB-200 3.3B | 17.58GB | 25.2/- | – | 55.1/- | – |
NLLB-200 54B | 220.18GB | 27.9/33.2 | 0.8908 | 55.8/59.8 | 0.8792 |
※NLLB-200 54Bは翻訳文を公開してくれているのでchrF2++/cometで再計測して掲載。その他のモデルは公開情報を転載。cspBLEU(spm-200)はベンチマーク環境を再現できなかったため未掲載
参考)前回モデル(ALMA-7B-Ja)FLORES200ベンチマークスコア
Model Name | file size | 英日chrf++/F2 | 英日comet | 日英chrf++/F2 | 日英comet |
webbigdata-ALMA-7B-Ja-q4_K_S | 3.6GB | -/24.2 | 0.8210 | -/54.2 | 0.8559 |
ALMA-7B-Ja-GPTQ-Ja-En | 3.9GB | -/30.8 | 0.8743 | -/60.9 | 0.8743 |
ALMA-Ja | 13.48GB | -/31.8 | 0.8811 | -/61.6 | 0.8773 |
参考)Gemini pro APIのFLORES200ベンチマークスコア
Model Name | file size | 英日chrf++/F2 | 英日comet | 日英chrf++/F2 | 日英comet |
Gemini Pro | – | -/38.3 | 0.9009 | -/57.1 | 0.8725 |
ALMA-7B-Ja-V2を様々なジャンルの文章で現在のトップレベル翻訳ツールと比較した結果は以下です。
政府の公式文書
英日chrF2++ | 英日BLEU | 英日comet | 日英chrF2++ | 日英BLEU | 日英comet | |
---|---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 25.3 | 15.00 | 0.8848 | 60.3 | 26.82 | 0.6189 |
ALMA-Ja-V2 | 27.2 | 15.60 | 0.8868 | 58.5 | 29.27 | 0.6155 |
ALMA-7B-Ja-V2-Lora | 24.5 | 13.58 | 0.8670 | 50.7 | 21.85 | 0.6196 |
SeamlessM4T | 27.3 | 16.76 | 0.9070 | 54.2 | 25.76 | 0.5656 |
gpt-3.5 | 34.6 | 28.33 | 0.8895 | 74.5 | 49.20 | 0.6382 |
Gemini Pro | 38.9 | 31.46 | 0.9210 | 59.8 | 23.96 | 0.6221 |
gpt-4.0 | 36.5 | 28.07 | 0.9255 | 62.5 | 33.63 | 0.6320 |
google-translate | 43.5 | 35.37 | 0.9181 | 62.7 | 29.22 | 0.6446 |
deepl | 43.5 | 35.74 | 0.9301 | 60.1 | 27.40 | 0.6389 |
二次創作文
英日 chrF2++ | 英日 BLEU | 英日 comet | 日英 chrF2++ | 日英 BLEU | 日英 comet | |
---|---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 27.6 | 18.28 | 0.8643 | 52.1 | 24.58 | 0.6106 |
ALMA-Ja-V2 | 20.4 | 8.45 | 0.7870 | 48.7 | 23.06 | 0.6050 |
ALMA-7B-Ja-V2-Lora | 23.9 | 18.55 | 0.8634 | 55.6 | 29.91 | 0.6093 |
SeamlessM4T | 25.5 | 19.97 | 0.8657 | 42.2 | 14.39 | 0.5554 |
gpt-3.5 | 31.2 | 23.37 | 0.9001 | – | – | 0.5948 |
Gemini Pro | 28.6 | 22.89 | 0.8789 | 51.0 | 24.58 | 0.6102 |
gpt-4.0 | 30.7 | 24.31 | 0.8848 | 53.9 | 24.89 | 0.6163 |
google-translate | 32.4 | 25.36 | 0.8968 | 58.5 | 29.88 | 0.6022 |
deepl | 33.5 | 28.38 | 0.9094 | 60.0 | 31.14 | 0.6124 |
テクニカルインタビュー
英日 chrF2++ | 英日 BLEU | 英日 comet | 日英 chrF2++ | 日英 BLEU | 日英 comet | |
---|---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 33.6 | 21.86 | 0.8207 | 59.3 | 23.11 | 0.6250 |
ALMA-Ja-V2 | 34.8 | 23.15 | 0.8481 | 56.0 | 20.96 | 0.6364 |
ALMA-7B-Ja-V2-Lora | 34.3 | 25.59 | 0.8119 | 57.1 | 24.31 | 0.6388 |
gpt-3.5 | 48.3 | 39.26 | 0.8793 | 81.4 | 60.95 | 0.6440 |
Gemini Pro | 53.0 | 43.80 | 0.8956 | 67.3 | 33.38 | 0.6400 |
gpt-4.0 | 45.5 | 34.89 | 0.8822 | 67.2 | 36.26 | 0.6515 |
deepl | 54.9 | 52.65 | 0.8917 | 73.2 | 43.33 | 0.6292 |
google-translate | 57.7 | 50.80 | 0.8890 | 71.3 | 40.18 | 0.6454 |
法的文書
英日 chrF++ | 英日 BLEU | 英日 comet | 日英 chrF++ | 日英 BLEU | 日英 comet | |
---|---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 15.8 | 9.53 | 0.8453 | 40.3 | 16.44 | 0.5686 |
ALMA-Ja-V2 | 18.3 | 9.27 | 0.8691 | 44.4 | 16.30 | 0.5801 |
ALMA-7B-Ja-V2-Lora | 19.5 | 13.04 | 0.8554 | 41.6 | 12.87 | 0.5752 |
gpt-3.5 | – | – | 0.7437 | – | – | 0.6102 |
Gemini Pro | 48.6 | 37.14 | 0.9044 | 51.4 | 21.23 | 0.5941 |
gpt-4.0 | 33.8 | 22.91 | 0.8813 | 49.5 | 21.83 | 0.6030 |
deepl | 77.0 | 66.54 | 0.9481 | 65.7 | 40.25 | 0.6203 |
google-translate | 13.5 | 8.57 | 0.7432 | 31.7 | 7.94 | 0.5856 |
古典文学
英日 chrF2++ | 英日 BLEU | 英日 comet | 日英 chrF2++ | 日英 BLEU | 日英 comet | |
---|---|---|---|---|---|---|
ALMA-7B-Ja-V2-GPTQ-Ja-En | 11.8 | 7.24 | 0.6943 | 31.9 | 9.71 | 0.5617 |
ALMA-Ja-V2 | 10.7 | 4.93 | 0.7202 | 32.9 | 10.52 | 0.5638 |
ALMA-7B-Ja-V2-Lora | 12.3 | 7.25 | 0.7076 | 32.5 | 11.14 | 0.5441 |
gpt-3.5 | – | – | 0.6367 | 69.3 | 46.34 | 0.4922 |
Gemini Pro | 13.5 | 8.86 | 0.7340 | 37.2 | 17.88 | 0.5567 |
gpt-4.0 | 13.3 | 8.33 | 0.7074 | 44.3 | 23.75 | 0.5518 |
deepl | 14.4 | 9.18 | 0.7149 | 34.6 | 10.68 | 0.5787 |
google-translate | 13.5 | 8.57 | 0.7432 | 31.7 | 7.94 | 0.5856 |
llama.cpp(gguf)版のFLORES200ベンチマークスコア
mmngaさんが作成してくれたllama.cpp(gguf)版の全12モデルのFLORES200ベンチマーク結果です。llama.cpp版のモデルを使うと時間はかかりますがGPUがないMac等でも動かす事ができます。1タスクに絞る事で性能と量子化ビット数の関係が明確になりますね。
前回モデル
ビット数 | 英日 chrF2++ | 英日 BLEU | 英日 comet | 日英 chrF2++ | 日英 BLEU | 日英 comet | サイズ |
---|---|---|---|---|---|---|---|
q2_K | 21.9 | 11.34 | 0.7776 | 51.1 | 21.87 | 0.8391 | 2.7GB |
q3_K_S | 21.8 | 10.99 | 0.7856 | 51.6 | 22.40 | 0.8431 | 2.8GB |
q3_K_M | 24.1 | 12.76 | 0.8166 | 53.7 | 24.12 | 0.8541 | 3.1GB |
q3_K_L | 23.4 | 12.47 | 0.8106 | 53.8 | 24.21 | 0.8532 | 3.4GB |
q4_0 | 23.2 | 11.94 | 0.8161 | 53.7 | 24.48 | 0.8548 | 3.6GB |
q4_K_S | 24.2 | 12.56 | 0.8210 | 54.2 | 24.71 | 0.8559 | 3.6GB |
q4_K_M | 24.1 | 12.55 | 0.8203 | 54.1 | 24.54 | 0.8548 | 3.9GB |
q5_0 | 23.9 | 12.55 | 0.8255 | 54.5 | 25.17 | 0.8562 | 4.4GB |
q5_K_S | 24.3 | 12.94 | 0.8271 | 54.5 | 25.21 | 0.8555 | 4.4GB |
q5_K_M | 24.4 | 12.95 | 0.8252 | 54.6 | 25.41 | 0.8582 | 4.5GB |
q6_K | 24.0 | 12.64 | 0.8262 | 54.7 | 25.67 | 0.8568 | 5.2GB |
q8_0 | 24.5 | 13.04 | 0.8296 | 55.2 | 26.09 | 0.8584 | 6.7GB |
今回モデル(前回比で平均7%スコアが向上しています)
chrF2++ | BLEU | comet | chrF2++ | BLEU | comet | サイズ | |
q2_K | 23.2 | 13.12 | 0.8123 | 53.4 | 23.66 | 0.8494 | 2.7GB |
q3_K_S | 23.5 | 13.43 | 0.8198 | 54.2 | 24.87 | 0.8540 | 2.8GB |
q3_K_M | 25.7 | 14.94 | 0.8466 | 56.0 | 27.00 | 0.8631 | 3.1GB |
q3_K_L | 25.7 | 15.07 | 0.8479 | 55.8 | 26.68 | 0.8624 | 3.4GB |
q4_0 | 25.8 | 15.42 | 0.8463 | 55.6 | 26.65 | 0.8613 | 3.6GB |
q4_K_S | 26.3 | 15.53 | 0.8501 | 56.2 | 27.18 | 0.8643 | 3.6GB |
q4_K_M | 27.0 | 16.08 | 0.8553 | 57.1 | 28.42 | 0.8662 | 3.9GB |
q5_0 | 26.8 | 16.06 | 0.8570 | 56.8 | 28.12 | 0.8656 | 4.4GB |
q5_K_S | 26.7 | 15.69 | 0.8559 | 57.0 | 28.40 | 0.8667 | 4.4GB |
q5_K_M | 27.1 | 16.42 | 0.8567 | 57.3 | 28.76 | 0.8661 | 4.5GB |
q6_K | 26.7 | 16.05 | 0.8568 | 56.8 | 27.64 | 0.8664 | 5.2GB |
q8_0 | 27.3 | 16.70 | 0.8595 | 57.4 | 28.30 | 0.8674 | 6.7GB |
ライセンス
Llama 2ライセンス(商用利用可)とします。
オリジナルのALMAモデルはMITライセンスなのですが、微調整元のLlama2に合わせておいた方が良いであろうという判断からです。
使い方/サンプルコード
GoogleのWebサービスであるColabを使うと無料で動かす事ができます。
通常版Colabサンプル(高品質だがGPTQ版に比べると遅い)
ALMA_7B_Ja_V2_Free_Colab_sample.ipynb
GPTQ版Colabサンプル(少し品質が落ちるが高速かつ扱いやすい小さいサイズ)
ALMA_7B_Ja_V2_GPTQ_Ja_En_Free_Colab_sample.ipynb
GPTQ版を使ったテキストファイル一括翻訳のサンプル
ALMA_7B_Ja_GPTQ_Ja_En_batch_translation_sample.ipynb
前述のllama.cpp(gguf)版の比較用サンプル(CPUで実行可能)
ALMA_7B_Ja_gguf_Free_Colab_sample.ipynb
GPTQ版のサンプルコード
pip install auto-gptq==0.4.2
import torch from transformers import AutoTokenizer from auto_gptq import AutoGPTQForCausalLM quantized_model_dir = "webbigdata/ALMA-7B-Ja-V2-GPTQ-Ja-En" model_basename = "model" tokenizer = AutoTokenizer.from_pretrained(quantized_model_dir) model = AutoGPTQForCausalLM.from_quantized( quantized_model_dir, model_basename=model_basename, use_safetensors=True, device="cuda:0") prompt1="Translate this from Japanese to English:\nJapanese: ファイト・クラブのルールその1。ファイト・クラブについて口にするな\nEnglish:" input_ids = tokenizer(prompt1, return_tensors="pt", padding=True, max_length=200, truncation=True).input_ids.cuda() # Translation with torch.no_grad(): generated_ids = model.generate(input_ids=input_ids, num_beams=5, max_new_tokens=200, do_sample=True, temperature=0.6, top_p=0.9) outputs = tokenizer.batch_decode(generated_ids, skip_special_tokens=True) print(outputs) prompt2="Translate this from English to Japanese:\nEnglish: - I can bring you in warm or I can bring you in cold. – Mandalorian.\nJapanese:" input_ids = tokenizer(prompt2, return_tensors="pt", padding=True, max_length=200, truncation=True).input_ids.cuda() with torch.no_grad(): generated_ids = model.generate(input_ids=input_ids, num_beams=5, max_new_tokens=200, do_sample=True, temperature=0.6, top_p=0.9) outputs = tokenizer.batch_decode(generated_ids, skip_special_tokens=True) print(outputs)
V2では実現出来なかった事
・ALMA-Ja-V2に追加学習(LoRA)を行って更に日英・英日翻訳性能だけを底上げする試み(ALMA-7B-Ja-V2-Lora)は思ったような性能向上に繋がらず不完全燃焼でした。
・量子化版であるALMA-7B-Ja-V2-GPTQ-Ja-Enに更に追加学習(LoRA)を行って特定のジャンルの翻訳の流暢さを向上させる試みは出力が異常になり完全に失敗しました。
LoRAは有望な解決策になり得ると考えているため今後、これの失敗原因を追究して改善に努める予定です。
今後の開発予定
ALMA-7B-Ja-V2にも伸びしろはまだまだ沢山あるので、第一線級の翻訳モデルとの差は手の届かないレベルではないと確信しています。
しかし、直近のGPU確保の難しさから、更にモデルを改良するためには何らかの形(クラウドファンディング、補助金申請、法人ユーザーへの保守・カスタマイズサービスの販売、ベストモデルの販売など)で収益基盤を作らないと資金的に息切れしてしまう可能性が高いので、V2の反響を見極めてからもう一歩作業を進めるかを検討する予定です。
3.日英・英日機械翻訳モデルALMA-7B-Ja-V2の公開関連リンク
1)arxiv.org
A Paradigm Shift in Machine Translation: Boosting Translation Performance of Large Language Models
2)huggingface.co
webbigdata/ALMA-7B-Ja-V2
webbigdata/ALMA-7B-Ja-V2-GPTQ-Ja-En
mmnga/webbigdata-ALMA-7B-Ja-V2-gguf
3)github.com
ALMA_7B_Ja_V2_Free_Colab_sample.ipynb (通常版のColabサンプル)
ALMA_7B_Ja_V2_GPTQ_Ja_En_Free_Colab_sample.ipynb (量子化版のColabサンプル)
ALMA_7B_Ja_V2_GPTQ_Ja_En_batch_translation_sample.ipynb (量子化版を使った一括翻訳サンプル)