PLaMo翻訳

2025年6月10日、PLaMo翻訳CLIが出て、簡単にPLaMo翻訳が使えるようになった。デフォルトでは4ビット量子化だが、--precision 8bit オプションで8ビットモデル、--precision bf16 オプションでbf16モデルが使える。PLaMo翻訳モデルのベースはPLaMo2-8Bなので、4ビットなら4Gバイト+α、8ビットなら8Gバイト+α、bf16なら16Gバイト+αのGPUメモリが必要である。

起動は重いので、何度も使うなら、サーバとして起動したままにしておくのが便利である:

plamo-translate --precision bf16 server &

サーバが立ち上がっていれば、plamo-translate コマンドは(--precision bf16 などを付けなくても)起動しているサーバに聞きに行ってくれるようだ。

git --help | plamo-translate

みたいにすれば英語のヘルプでも日本語で表示できる。あるいは、Macで

pbpaste | plamo-translate

とすれば、クリップボード(pasteboard)に入っているものを翻訳できる。

ただ、数kB程度を超えると一部しか訳されないようである。

以下は古い内容。


2025年5月27日、日本語の翻訳に特化した大規模言語モデルPLaMo翻訳を発売というアナウンスが出た。PLaMo翻訳のページで使うなら無料である。

年商10億円未満の企業や個人はHugging Faceの pfnet/plamo-2-translate からモデルをダウンロードしてローカルで使うことができる。このページの例の vllm はMacではうまく動作しない。Mac用には mlx-community/plamo-2-translate のほうを使うのがよい。あらかじめ pip install mlx-lm numba しておいて、ターミナルに例えば

python3 -m mlx_lm generate \
  --model mlx-community/plamo-2-translate \
  --extra-eos-token '<|plamo:op|>' \
  --prompt 'あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。'

と打ち込むと、初回はモデルがダウンロードされ、翻訳結果が出力される。

Pythonでプログラムを書いて使うには、例えば次のようにする。

from mlx_lm import load, generate

model, tokenizer = load("mlx-community/plamo-2-translate",
                        tokenizer_config={"trust_remote_code": True})
tokenizer.add_eos_token("<|plamo:op|>")

prompt = r'''<|plamo:op|>dataset
translation
<|plamo:op|>input lang=Japanese
あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。
<|plamo:op|>output lang=English
'''

response = generate(
    model, 
    tokenizer, 
    prompt=prompt,
    max_tokens=1024,  # 生成する最大トークン数
    verbose=True,     # 生成過程を表示
)

# print(response) # 翻訳結果を表示(verbose=Trueならすでに出力済み)