翻訳モデル「Marco-MT」を試す
ここで知った。
#WMT2025 での私たちの画期的な成果を共有できることを大変嬉しく思います!
私たちのMarco-MT(Team Algharb)は、素晴らしい成果を上げました: 英語→中国語翻訳で第1位を獲得し、これはClaude-4やGPT-4.1などの主要なAIシステムを上回るだけでなく、人間の翻訳者を凌駕し、私たちのモデルの一般的な翻訳タスクにおける優位性を証明しています。私たちが参加した13の言語ペアのうち、Maroc-MT-Algharbは以下を達成しました:
🏅6つの1位
🥈4つの2位
🥉2つの3位私たちは以下の主要な革新によりこれを実現しました:
• 新しいM2PO翻訳パラダイム
• 2段階SFT + CPO+MPO強化学習
• 単語アライメントとMBRを組み合わせたハイブリッドデコーディング詳細はこちら:
🔧デモ: https://huggingface.co/spaces/AIDC-AI/Marco-MT-Algharb
📄技術レポート: https://www2.statmt.org/wmt25/pdf/2025.wmt-1.33.pdf
🤗Hugging Face: https://huggingface.co/AIDC-AI/Marco-MT-Algharb#NLP #WMT2025 #MarcoMT
開発元はアリババグループでおそらくECとかをやっている部門らしい。(というか、Qwenもアリババだし、モデル開発をやっている部門が複数あるってなんなんだろう・・・)
以前に試したOvisシリーズの開発元でもある。
この中でも、Ovis2は、軽量ながら、日本語が普通に使える、かつ日本語文字の認識精度も非常に高い、という点で、当時はとても印象的だった。そこから個人的にずっと注目しているベンダー。
GitHubレポジトリ、と言っても現時点ではコードはない。
Marco-MT-Algharb
本リポジトリには、アルガルブ向けのシステムと、Alibaba International Digital Commerce(AIDC)のマルコ翻訳チームがWMT 2025汎用機械翻訳共有タスクに提出した翻訳システムのソースコードが含まれます。
はじめに
Algharbシステムは、Qwen3-14B基盤モデルをベースに構築された大規模翻訳モデルです。13種類の多様な言語ペアにおいて高品質な翻訳を実現し、最先端の性能を発揮します。 当社のアプローチは、翻訳の流暢性と忠実性を段階的に向上させるマルチステージの精緻化パイプラインを中核としています。
主な特徴
🏆 WMT 2025における圧倒的な性能
13の言語ペアを対象としたコンテストで12個のメダル(金メダル6個、銀メダル4個、銅メダル2個)を獲得し、最先端の性能を実証しました。
🚀 EN→ZH翻訳における画期的な成果
競争の激しい英語→中国語方向において、人間の翻訳者、GPT-4.1、Claude-4を凌駕する第1位の成績を収めました。
💡 中核となる技術革新
- 2段階のSFT(Supervised Fine-Tuning)パイプラインに以下の機能を追加強化しました:
強化学習手法を採用しています。 CPO/M^2PO - 単語アライメントとMBR(最小ベイズリスク)を組み合わせたハイブリッドデコーディング戦略を採用しています。
性能
WMT 2025評価実験において、当社のMarco-MT-Algharbシステムは優れた性能を発揮しました。特に英語から中国語への汎用翻訳タスクでは、当社システムが第1位を獲得し、GPT-4.1やClaude-4といった最先端AIシステムを凌駕する結果となりました。
referred from https://github.com/AIDC-AI/Marco-MT使用方法
本モデルは翻訳処理を行う際、特定の指示形式を必要とします。以下に示す例では、効率的な推論のためにvllmライブラリを使用してプロンプトを構築し、生成を実行する方法を説明します。
対応言語ペア:
言語ペア 説明 en2zh 英語 → 中国語 en2ja 英語 → 日本語 en2ko 英語 → 韓国語 en2ar 英語 → アラビア語 en2et 英語 → エストニア語 en2sr_latin 英語 → セルビア語(ラテン文字表記) en2ru 英語 → ロシア語 en2uk 英語 → ウクライナ語 en2cs 英語 → チェコ語 en2bho 英語 → ボージュプリー語 cs2uk チェコ語 → ウクライナ語 cs2de チェコ語 → ドイツ語 ja2zh 日本語 → 中国語
ライセンス
本モデルはApache License 2.0の下で公開されています。完全なライセンス条項はこちらでご確認いただけます。
モデルはこちら。15B。
デモはこちら。ただし、自分が短い文章で英語→日本語翻訳を試した限りは、10分経っても結果が出なかったので止めた。
Colaboratoryだと、モデルのサイズ的にA100じゃないと厳しそう。
あと、vLLMのデフォルトだとVRAMの90%がインスタンスに割り当てられて、その中でモデルのロードに必要な分、残りはKVキャッシュとなるので、単純にモデルロードでどれぐらい必要か?ってのがわからないな。
RTX4090(VRAM24GB)あたりで動かすなら量子化が必要かな。
ということでA100で試してみた。VRAMは40GBの方(ハイメモリではない。ハイメモリだと80GBになる)
必要なパッケージをインストール。今回はuvを使った。インストール後にランタイムを再起動しておくこと。
!uv pip install torch transformers==4.55.0 vllm==0.10.0 unbabel-comet==2.2.2 --torch-backend=auto --system
モデルをクローン。vLLMで直接HFのレポジトリ名を指定してロードもできるけど、なんとなくどこまで進んでいるかがわかりにくく感じたので、個別に実施した。
!git lfs install
!git clone https://huggingface.co/AIDC-AI/Marco-MT-Algharb
モデルをロード。ここでvLLMのインスタンスが起動されているのだと思う。だいたい2分ぐらいかかる。
from vllm import LLM, SamplingParams
model_path = "./Marco-MT-Algharb"
llm = LLM(model=model_path)
モデルロード後のVRAM消費。上にも書いたけど、vLLMだと、モデルが必要とするVRAM消費がちょっとよくわからない。

では翻訳。まずはサンプルコード通りに英語から中国語。モデルカードによると、プロンプトは特定の形式で決まっているみたい。
source_text = "This paper presents the Algharb system, our submission to the WMT 2025."
source_lang_code = "en"
target_lang_code = "zh"
lang_name_map = {
"en": "english", # サンプルコードではカンマが抜けている
"zh": "chinese",
"ko": "korean",
"ja": "japanese",
"ar": "arabic",
"cs": "czech",
"ru": "russian",
"uk": "ukraine",
"et": "estonian",
"bho": "bhojpuri",
"sr_latin": "serbian",
"de": "german",
}
target_language_name = lang_name_map.get(target_lang_code, "the target language")
prompt = (
f"Human: Please translate the following text into {target_language_name}: \n"
f"{source_text}<|im_end|>\n"
f"Assistant:"
)
prompts_to_generate = [prompt]
print("Formatted Prompt:\n", prompt)
sampling_params = SamplingParams(
n=1,
temperature=0.001,
top_p=0.001,
max_tokens=512
)
outputs = llm.generate(prompts_to_generate, sampling_params)
for output in outputs:
generated_text = output.outputs[0].text # サンプルコードでは `.strip()`しているがそんなメソッドはないと言われる
print(f"translation: {generated_text}")
結果は非常に高速。
translation: 本文介绍了Algharb系统,这是我们提交给WMT 2025的系统。
DeepLで逆翻訳してみるとこんな感じなのでまあ合ってるのだろうと思う。
This paper introduces the Algharb system, which is our submission to WMT 2025.
次に日本語を試してみる。日本語での使い方は、
- 英語→日本語
- 日本語→中国語
のみとなる。日本語→英語もできればいうことないんだけどね。
英語→日本語
source_text = "This paper presents the Algharb system, our submission to the WMT 2025."
source_lang_code = "en"
target_lang_code = "ja"
(snip)
translation: 本論文では、WMT 2025 への我々の提出システムである Algharb システムについて紹介します。
うーん、ちょっと微妙?
比較として、DeepLとPLaMo翻訳の結果。
本論文では、WMT 2025への提出システムであるAlgharbシステムを提示する。
本論文では、WMT 2025に提出したアルゴリズム「Algharb」システムについて発表します。
PLaMo翻訳が、意味としては近しいし日本語としても自然かな。ただ、「アルゴリズム」ってのはどこにも書いてないので、ちょっとハルシネーションっぽさがある。
なお、モデルカードの冒頭の文章がサンプルの文章の内容と非常に近しい。
This repository contains the system for Algharb, the submission from the Marco Translation Team of Alibaba International Digital Commerce (AIDC) to the WMT 2025 General Machine Translation Shared Task.
これをそれぞれで翻訳してみると以下となった。
このリポジトリには、Algharbのシステムが含まれています。これは、アリババ・インターナショナル・デジタル・コマース(AIDC)のマルコ翻訳チームがWMT 2025 General Machine Translation Shared Taskに提出したものです。
このリポジトリには、Alibaba International Digital Commerce(AIDC)のMarco翻訳チームがWMT 2025一般機械翻訳共有タスクに提出したアルガルブ向けシステムが含まれています。
本リポジトリには、Alibaba International Digital Commerce(AIDC)のMarco翻訳チームがWMT 2025汎用機械翻訳共有タスクに提出したAlgharbシステムの実装コードが含まれています。
サンプルの文章はとても短いので、翻訳に必要なコンテキストが含まれているとは言い難い。ある程度の文章量を渡して上げたほうが当然精度は高くなるのではないかと思う。これぐらいになるとMarco-MTの翻訳は悪くないように思える。ただまあ三者三様という感はある。
上のサンプルコードでは、サンプリングパラメータは以下となっていた。
sampling_params = SamplingParams(
n=1,
temperature=0.001,
top_p=0.001,
max_tokens=512
)
temperatureやtop_pが非常に小さく、結果として非常に決定的な出力が生成されることになる。
GitHubのREADMEにもあるが、Marco−MTの特徴として、以下のようなものがある。
- 単語アライメントとMBR(最小ベイズリスク)を組み合わせたハイブリッドデコーディング戦略を採用しています。
自分の認識が正しいかはわからないが、
- 翻訳を大量に生成する
- COMETを使ってリランキングを行い、最もリスクが低いものを選択
という形になるみたい。
COMETって全く知らなかったのだが、機械翻訳の評価を行うためのフレームワークらしく、いろいろな評価に応じたモデルなどがあるみたい。
ここはちょっとよくわからない。出力結果を元にリランキングするならばそれはリランカー(今回の例だとCOMET)の結果では?という気もするし。
ただ以下のような記載もあるし、COMET自体がどういうものかを自分は理解していないので、ここは判断ができないかな。
注: MBR再ランキング用の単語アライメント機能は近日中に利用可能になる予定です。
まとめ
自分は最近PLaMo翻訳をメインに変えて、ある程度ハルシネーションはあるだろう、とは思っていたけど、普段の自分の使い方ではそこまで細かいところを気にすることはないし、なんか変だなーと思っても大意に影響なければ無視したりする。翻訳品質についてはDeepLよりも文章が自然である程度品質ありそう、ぐらいのイメージ。
あとは、PLaMo翻訳はChrome拡張で便利に使えるな、というか、ここが一番便利なポイント(ChatGPTなどにコピペする手間が省ける、見ているデザインのまま読める、DeepLを使っていたのはこれが理由)として使っているので、翻訳精度だけじゃなくて使い勝手の部分も自分の中では大きいのかなぁと思う。
なので、Marco-MTを試してみて、翻訳そのものの品質を評価する、みたいなのは難しいなと改めて感じた。
ただPLaMoやDeepLなどと比較してみて各モデルの特性みたいなものが垣間見れたような気がしたのは良かった(少しだけだけど)。
もうちょっと軽量に使えるとかだと選択要因になるかもしれないね。
