ローカルでドキュメントを翻訳:の代替案 DeepL
DeepLやChatGPTに契約書、財務報告書、人事関連の資料を貼り付けることは、自分では管理できないサーバーにその文書を送ることを意味します。ローカルAI翻訳はこの問題を解決します。多言語LLMが手元のマシンで動作し、データは一切外部に出ません。このガイドでは、選ぶべきモデル、ファイルの書式を維持する方法、そして簡単なOllamaスクリプトで数十件の文書を一括翻訳する方法を紹介します。
#文書をDeepLに送らない理由
DeepL と Google Translate は優れていますが、そのビジネスモデルはクラウドに依存しています。テキストは各社のサーバーを経由し、利用するプランによっては保存されたり、モデルの改善に使われたりする可能性があります。差し障りのないメールなら、大した問題ではありません。しかし、NDAの対象となる契約書、出願手続き中の特許、貸借対照表、従業員の個人データでは、具体的な法的リスクや競争上のリスクになります。
ローカルでのAI翻訳は状況を変えます:モデルはあなたのディスクにダウンロードされ、あなたのCPUまたはGPUで実行されます。ネットワークリクエストも、アカウントも、容量制限もありません。機密文書のフォルダ全体を、1バイトもあなたの端末を離れることなく翻訳できます。オフライン、飛行機内、または隔離されたネットワークでも同様です。
- プライバシー
- 契約書、特許、医療データまたは人事データは、あなたのマシン上に残ります。
- 利用コストゼロ
- サブスクリプションも文字数に応じた課金もありません。10ページでも10,000ページでも、同じ料金で翻訳できます。
- オフライン
- ネットワーク接続なしで動作するため、ネットワークから隔離された端末や移動中の利用に便利です。
- 処理量は無制限
- クラウドAPIにあるような月間利用枠やスロットリングはありません。
#本当に正確に翻訳できるローカルモデルはどれか
あなたのドキュメント、あなたのAI:あなたのPDF、メモ、メールを扱う信頼性の高いローカルRAG。何もクラウドに送信しません。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
LLM の翻訳性能は一様ではありません。優れたローカル翻訳モデルには、大規模な多言語コーパスで学習され、フランス語をきめ細かく扱えることが求められます。2026年現在、セルフホストでの利用に適したモデル群の中では、いくつかのファミリーが明確に際立っています。
- Qwen 3.5 9B
- 多言語に優れ、フランス語も非常に得意で、ニュアンスや専門用語を適切に扱えます。Q4で約6.6 GB、コンテキスト256k、Apache 2.0ライセンス。2026年における品質とリソースのバランスが最も優れた選択肢です。品質が十分でなければ、Qwen 3.8 27B(約18 GB)に切り替えてください。
- Gemma 4 12B
- 流暢で自然な翻訳で、フランス語の句読点も丁寧に扱います。マルチモーダルに対応し、現在はApache 2.0ライセンスです(Gemmaは2026年にApache 2.0へ移行しました)。Q4で約7.6 GBで、12〜16 GBのGPUやユニファイドメモリ搭載のMacで余裕を持って動作します。
- Qwen 3.5 4B
- 2026年の小型多言語モデルの定番:約3.4GBしか必要とせず、どこでも、CPUだけでも動作します。このサイズとしては、すでに驚くほど優れた翻訳ができます。Apache 2.0。
- Mistral Small 24B
- フランス語に強く、高速で、Q4では約14GB。幅広い用途で安定した性能を発揮し、16GBのGPUで大量の処理をこなす際に非常に良い選択肢です。
- Qwen 3.6 35B-A3B
- MoEアーキテクチャによりクラウドに近い品質を実現し、現在では32 GBから利用できます(Q4で約23 GB、RTX 4090または大容量のユニファイドメモリを搭載したMac)。高い品質が求められる翻訳向けです。
NLLBやOpus-MTのような翻訳専用モデルもあり、非常に軽量です。ただし、最近の汎用LLMは、長文の翻訳や文脈の尊重(文体、専門用語、文書全体の一貫性)では、これらを上回ることがよくあります。
#前提条件とインストール
基本構成は定番です。推論エンジンにはOllama、多言語モデルを使用し、ファイル処理スクリプトにはPythonを使います。Ollamaはデフォルトで http://localhost:11434 で待ち受けます。
- Ollama インストール済み
- モデルをダウンロードして実行するデーモン。まだインストールしていなければ、インストールガイドを参照すること。
- 余裕を持って使えるGPU
- 12GBのRTX 3060は、Qwen 3.5 9B をQ4(約6.6GB)でスムーズに動作させることができます。CPUでも動作は可能ですがあまり高速ではありません。
- Python 3.10+
- DOCX、PDF、Markdownを扱い、OllamaのAPIを呼び出すため
#翻訳の初期テスト
自動化する前に、代表的なサンプルで品質を確認してください。良好なローカル翻訳の鍵はシステムプロンプトにあります。プロンプトは役割、ターゲット言語、そして特に「追加しない」という指示を定義します。
#フォーマットの保持(DOCX、PDF、Markdown)
プレーンテキストを翻訳するのは簡単ですが、実際の文書の書式を保つのはそれほど簡単ではありません。適切な方法は、ファイル全体をモデルに丸ごと渡すのではなく、文書の構造をそのまま保ちながら、各テキスト部分を元の位置で翻訳することです。
#Wordファイル(DOCX)
python-docx では、各段落と表の各セルにアクセスできます。スタイルを維持しながら各「run」のテキストを翻訳し、その後ファイルを書き直します。レイアウト、見出し、表は保持されます。
#Markdown
Markdownは、形式を保ちながら翻訳するのが最も簡単なフォーマットです。モデルに構文を維持するよう指示するだけで済みます。プロンプトでそのように指定すれば、見出し、リスト、リンク、コードブロックはそのまま維持されます。
PDFは最も扱いが難しい形式です。内容そのものではなく、表示上の体裁を表す形式だからです。pypdfでテキストを抽出し、翻訳してから、新しい文書(多くの場合はDOCXまたは新たに生成したPDF)に出力します。PDFのレイアウトを正確に再現する作業は、費用や手間に見合うことがほとんどありません。ピクセル単位で一致するコピーよりも、読みやすい文書を目指してください。
#Ollama でバッチ翻訳
ローカル実行の大きな利点は、利用料金を気にせず大量に処理できることです。フォルダ内を巡回して各ファイルを翻訳するスクリプトを使えば、手元のPCが一括翻訳サービスになります。以下は、ディレクトリ内のすべての.docxファイルを処理するスクリプトです。
#翻訳の品質を向上させる
ローカル LLM は初期設定でもうまく翻訳できますが、いくつかの設定を調整すると、特に専門業務に関する文章では、仕上がりを「まずまず」から「公開できる水準」へ引き上げられます。
- 01用語集を提供するシステムプロンプトに、業務用語とその指定訳をまとめた用語集(正式な会社名、製品名、略語)を追加してください。モデルは訳語を勝手に作らず、指定した用語に従います。
- 02適切に分割する一文ずつではなく、段落またはセクション単位で翻訳してください。文法上の一致、代名詞が何を指すか、文体や言葉遣いを適切に扱うには、モデルに文脈が必要です。
- 03ドキュメントのコンテキストを提供するプロンプトで文章の種類(「商取引契約書」「技術説明書」「社内メール」)を明示してください。文体や語彙がそれに応じて調整されます。
- 04重要な箇所を読み直す契約書や法的文書では、重要な条項を人間が確認することが引き続き不可欠です。ローカル実行で機密性は確保できますが、誤りがなくなるわけではありません。
- 05必要に応じてモデルをアップグレードする品質が頭打ちになったら、Qwen 3.5 9BからQwen 3.8 27Bに切り替えてください(推論レベルを「low」に設定することを忘れないでください。デフォルトでは考えすぎるため、翻訳には不要です)。あるいは、Qwen 3.6 35B-A3BのようなMoEモデルに切り替えることも検討してください。長い文や用語の細かなニュアンスでは、明確な改善が得られます。
#トラブルシューティング
- モデルがコメントを追加する
- 「翻訳だけを返す」という指示を強調し、温度を下げてください。一部のモデルは「以下が翻訳です:」という前置きを付けるため、必要に応じて後処理で削除してください。
- 誤った言語に翻訳しています
- プロンプトで翻訳先の言語を明示し、例を示してください。短いテキストでは、モデルが翻訳先の言語を間違えることがあります。
- DOCXの書式が失われる
- para.textを置き換えると、複数のrunがまとめられ、個別の書式が失われます。書式設定の多い文書では、runごとに翻訳してください。
- 大量のテキストを翻訳すると遅い
- モデルが VRAM に収まることを確認してください(収まらない場合は CPU にオフロードされ、動作が遅くなります)。モデルのサイズを小さくするか、OLLAMA_KEEP_ALIVE を使用してください。
- Markdown 形式のコードブロックが翻訳されています
- プロンプトで「コードブロック内の内容は翻訳しないでください」と明確に強調してください。それ以外の方法として、翻訳前にコードブロックを取り出し、翻訳後に元に戻してください。
- コンテキストが長すぎたため切り捨てられました
- 非常に大きな文書はコンテキストウィンドウに収まりません。セクションに分割し、それぞれを個別に翻訳してください。
#さらに詳しく
ローカルAI翻訳の基盤となるのは、適切に選んだOllamaの構成です。導入を補う当サイトのガイドはこちらです:
- Ollama のインストール
- 推論エンジンをまだインストールしていない場合に、インストールするためのガイドです。
- Q4、Q5、Q8:どの量子化を選ぶべきか
- お使いの GPU に応じて、翻訳品質、速度、VRAM 使用量のバランスを判断するために。
- n8n + Ollama:ローカルAIで自動化を実現
- 翻訳をノーコードのワークフロー(受信メール、アップロードされたファイルなど)に組み込むために。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。