> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/jp/moderu/tutorials/deepseek-ocr-2.md).

# DeepSeek-OCR 2: 実行とファインチューニングのガイド

DeepSeek-OCR-2をローカルで実行・ファインチューニングする方法のガイド。

**DeepSeek-OCR 2** DeepSeek により 2026年1月27日に公開された、SOTA の視覚および文書理解向けの新しい 3B パラメータモデルです。このモデルは、単なるテキスト抽出ではなく、より強い視覚推論を伴う画像からテキストへの変換に重点を置いています。

DeepSeek-OCR 2 は DeepEncoder V2 を導入し、人間と同じ論理的な順序で画像を「見る」ことを可能にします。

従来の、固定グリッド（左上 → 右下）で画像を走査する視覚 LLM とは異なり、DeepEncoder V2 はまず全体を理解し、その後で人間のような読み順、つまり最初にどこに注目し、次にどこに注目するかを学習します。これにより、列をより適切に追い、ラベルと値を結び付け、表を一貫して読み取り、テキストと構造が混在するレイアウトを扱うことで、複雑なレイアウトでの OCR が向上します。

Unsloth で DeepSeek-OCR 2 をファインチューニングできるようになりました。私たちの [**無料のファインチューニングノートブック**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Deepseek_OCR_\(3B\).ipynb)**.** 私たちは、 [88.6% の改善を](#fine-tuning-deepseek-ocr) 言語理解向けに示しました。

<a href="/docs/jp/moderu/tutorials/deepseek-ocr-2.md#running-deepseek-ocr-2" class="button primary">DeepSeek-OCR 2 の実行</a><a href="/docs/jp/moderu/tutorials/deepseek-ocr-2.md#fine-tuning-deepseek-ocr-2" class="button secondary">DeepSeek-OCR 2 のファインチューニング</a>

## 🖥️ **DeepSeek-OCR 2 の実行**

最初のモデルと同様に、このモデルを実行するために、DeepSeek-OCR 2 は最新の transformers で推論と学習ができるように編集されました（精度の変化はありません）。こちらで確認できます [こちら](https://huggingface.co/unsloth/DeepSeek-OCR-2).

モデルを実行するには [transformers](#transformers-run-deepseek-ocr-2-tutorial) または [Unsloth](#unsloth-run-deepseek-ocr-tutorial)、推奨設定は次のとおりです：

### :gear: 推奨設定

DeepSeek は以下の設定を推奨しています：

* <mark style="background-color:blue;">**Temperature = 0.0**</mark>
* `max_tokens = 8192`
* `ngram_size = 30`
* `window_size = 90`

**サポートモード - 動的解像度：**

* デフォルト: (0-6)×768×768 + 1×1024×1024 — (0-6)×144 + 256 個の視覚トークン

**プロンプト例：**

```
# 文書: <image>\n<|grounding|>文書を markdown に変換してください。
# その他の画像: <image>\n<|grounding|>この画像を OCR してください。
# レイアウトなし: <image>\n自由形式 OCR。
# 文書内の図: <image>\n図を解析してください。
# 一般: <image>\nこの画像を詳細に説明してください。
# 参照: <image>\n画像内の <|ref|>xxxx<|/ref|> の位置を特定してください。
```

<div align="center"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FGff3UBRgiu0aFXsbwll2%2Ffig1.png?alt=media&amp;token=58864777-114a-450a-ab56-3cabc9219cf7" alt="" width="375"><figcaption><p>Visual Causal Flow を使って、あらゆる文書を markdown に変換します。</p></figcaption></figure></div>

### 🦥 Unsloth: DeepSeek-OCR 2 実行チュートリアル

1. 最新の `unsloth` を通じて `pip install --upgrade unsloth` 。すでに Unsloth をお使いの場合は、次で更新してください `pip install --upgrade --force-reinstall --no-deps --no-cache-dir unsloth unsloth_zoo`
2. それでは、以下のコードを使って DeepSeek-OCR 2 を実行してください：

{% code overflow="wrap" %}

```python
from unsloth import FastVisionModel
import torch
from transformers import AutoModel
import os
os.environ["UNSLOTH_WARN_UNINITIALIZED"] = '0'

from huggingface_hub import snapshot_download
snapshot_download("unsloth/DeepSeek-OCR-2", local_dir = "deepseek_ocr")
model, tokenizer = FastVisionModel.from_pretrained(
    "./deepseek_ocr",
    load_in_4bit = False, # メモリ使用量を減らすには 4bit を使用します。16bit LoRA では False。
    auto_model = AutoModel,
    trust_remote_code = True,
    unsloth_force_compile = True,
    use_gradient_checkpointing = "unsloth", # 長いコンテキストにはTrueまたは"unsloth"
)

prompt = "<image>\n自由形式 OCR。 "
image_file = 'your_image.jpg'
output_path = 'your/output/dir'
res = model.infer(tokenizer, prompt=prompt, image_file=image_file, output_path = output_path, base_size = 1024, image_size = 640, crop_mode=True, save_results = True, test_compress = False)
```

{% endcode %}

### 🤗 Transformers: DeepSeek-OCR 2 実行チュートリアル

NVIDIA GPU 上で Hugging Face Transformers を使用した推論。python 3.12.9 + CUDA11.8 で要件をテスト済み：

```bash
torch==2.6.0
transformers==4.46.3
tokenizers==0.20.3
einops
addict 
easydict
pip install flash-attn==2.7.3 --no-build-isolation
```

```python
from transformers import AutoModel, AutoTokenizer
import torch
import os
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
model_name = 'unsloth/DeepSeek-OCR-2'

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, _attn_implementation='flash_attention_2', trust_remote_code=True, use_safetensors=True)
model = model.eval().cuda().to(torch.bfloat16)

# prompt = "<image>\n自由形式 OCR。 "
prompt = "<image>\n<|grounding|>文書を markdown に変換してください。 "
image_file = 'your_image.jpg'
output_path = 'your/output/dir'

res = model.infer(tokenizer, prompt=prompt, image_file=image_file, output_path = output_path, base_size = 1024, image_size = 768, crop_mode=True, save_results = True)
```

## 🦥 **DeepSeek-OCR 2 のファインチューニング**

Unsloth は DeepSeek-OCR 2 のファインチューニングをサポートするようになりました。最初のモデルと同様に、私たちの [カスタムアップロード](https://huggingface.co/unsloth/DeepSeek-OCR-2) を使う必要があります `transformers` （精度の変化はありません）。最初のモデルと同様に、Unsloth は DeepSeek-OCR-2 を VRAM を 40% 削減しつつ 1.4 倍高速で、精度劣化なしにコンテキスト長を 5 倍長く学習できます。\n\n今なら、私たちの無料 Colab ノートブックで DeepSeek-OCR 2 をファインチューニングできます。

* DeepSeek-OCR 2： [ファインチューニング専用ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Deepseek_OCR_2_\(3B\).ipynb)

以下は、ペルシア語における CER（文字誤り率）の精度向上です：

#### サンプルごとの CER（10 サンプル）

| idx  | OCR1 前 | OCR1 後 |  OCR2 前 | OCR2 後 |
| ---- | -----: | -----: | ------: | -----: |
| 1520 | 1.0000 | 0.8000 | 10.4000 | 1.0000 |
| 1521 | 0.0000 | 0.0000 |  2.6809 | 0.0213 |
| 1522 | 2.0833 | 0.5833 |  4.4167 | 1.0000 |
| 1523 | 0.2258 | 0.0645 |  0.8710 | 0.0968 |
| 1524 | 0.0882 | 0.1176 |  2.7647 | 0.0882 |
| 1525 | 0.1111 | 0.1111 |  0.9444 | 0.2222 |
| 1526 | 2.8571 | 0.8571 |  4.2857 | 0.7143 |
| 1527 | 3.5000 | 1.5000 | 13.2500 | 1.0000 |
| 1528 | 2.7500 | 1.5000 |  1.0000 | 1.0000 |
| 1529 | 2.2500 | 0.8750 |  1.2500 | 0.8750 |

#### 平均 CER（10 サンプル）

* **OCR1：** 先に **1.4866**、後 **0.6409** (**-57%**)
* **OCR2：** 先に **4.1863**、後 **0.6018** (**-86%**)

## 📊 ベンチマーク

DeepSeek-OCR 2 モデルのベンチマークは、公式研究論文に基づいています。

**表1：** OmniDocBench v1.5 における文書読解の包括的評価。V-token𝑚𝑎𝑥\nは、このベンチマークでページごとに使用される視覚トークンの最大数を表します。R-order\nは読み順を示します。DeepSeek OCR と DeepSeek OCR 2 を除き、この表の他のすべてのモデル結果\nは OmniDocBench リポジトリから取得しています。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F7CjBxsi10P3kqyF3utpq%2FScreenshot%202026-01-27%20at%201.14.02%E2%80%AFAM.png?alt=media&amp;token=08fc9963-15d1-4d7a-9fb5-93749913928c" alt="" width="375"><figcaption></figcaption></figure>

**表2：** OmniDocBench v1.5 における文書要素の各カテゴリの編集距離。\nV-token𝑚𝑎𝑥 は、最小の最大視覚トークン数を示します。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FcTVu52ugTwQAqLdnQLLz%2FScreenshot%202026-01-27%20at%201.14.15%E2%80%AFAM.png?alt=media&amp;token=ec92a4a1-facb-4b63-90cd-73d23a41dcfb" alt="" width="563"><figcaption><p>OmniDocBench で Gemini-3 Pro を上回る</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/jp/moderu/tutorials/deepseek-ocr-2.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
