> 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-how-to-run-and-fine-tune.md).

# DeepSeek-OCR: 実行とファインチューニングの方法

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

**DeepSeek-OCR** OCRと文書理解向けの3Bパラメータのビジョンモデルです。これは *コンテキスト光学圧縮* を使って2次元レイアウトをビジョントークンに変換し、効率的な長文脈処理を可能にします。

表、文書、手書きに対応でき、DeepSeek-OCRは97%の精度を達成しつつ、テキストトークンの10分の1のビジョントークンしか使用しません。—つまり、テキストベースのLLMより10倍効率的です。

DeepSeek-OCRをファインチューニングして、視覚または言語性能を向上させることができます。私たちのUnsloth [**無料のファインチューニングノートブック**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Deepseek_OCR_\(3B\).ipynb)では、 [88.26%の改善](#fine-tuning-deepseek-ocr) 言語理解向けに示しました。

<a href="#running-deepseek-ocr" class="button primary">DeepSeek-OCRの実行</a><a href="#fine-tuning-deepseek-ocr" class="button primary">DeepSeek-OCRのファインチューニング</a>

> **ファインチューニング＋より多くの推論サポートを可能にする、私たちのモデルのアップロード:** [**DeepSeek-OCR**](https://huggingface.co/unsloth/DeepSeek-OCR)

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

モデルを実行するには [vLLM](#vllm-run-deepseek-ocr-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`

### 📖 vLLM: DeepSeek-OCR実行チュートリアル

1. 最新の `vLLM` 方法:

```bash
uv venv
source .venv/bin/activate
# v0.11.1リリースまでは、vLLMをnightly buildからインストールする必要があります
uv pip install -U vllm --pre --extra-index-url https://wheels.vllm.ai/nightly
```

2. 次に、以下のコードを実行します:

{% code overflow="wrap" %}

```python
from vllm import LLM, SamplingParams
from vllm.model_executor.models.deepseek_ocr import NGramPerReqLogitsProcessor
from PIL import Image

# モデルインスタンスを作成
llm = LLM(
    model="unsloth/DeepSeek-OCR",
    enable_prefix_caching=False,
    mm_processor_cache_gb=0,
    logits_processors=[NGramPerReqLogitsProcessor]
)

# 画像ファイルを使ってバッチ入力を準備
image_1 = Image.open("path/to/your/image_1.png").convert("RGB")
image_2 = Image.open("path/to/your/image_2.png").convert("RGB")
prompt = "<image>\nFree OCR."

model_input = [
    {
        "prompt": prompt,
        "multi_modal_data": {"image": image_1}
    },
    {
        "prompt": prompt,
        "multi_modal_data": {"image": image_2}
    }
]

sampling_param = SamplingParams(
    temperature=0.0,
    max_tokens=8192,
    # ngram logit processorの引数
    extra_args=dict(
        ngram_size=30,
        window_size=90,
        whitelist_token_ids={128821, 128822},  # ホワイトリスト: <td>, </td>
    ),
    skip_special_tokens=False,
)
# 出力を生成
model_outputs = llm.generate(model_input, sampling_param)

# 出力を表示
for output in model_outputs:
    print(output.outputs[0].text)
```

{% endcode %}

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

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

{% 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", 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 %}

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

UnslothはDeepSeek-OCRのファインチューニングをサポートしています。デフォルトモデルは最新の `transformers` 版では実行できないため、 [Stranger Vision HF](https://huggingface.co/strangervisionhf) チームの変更を取り込み、推論を有効化しました。いつものように、UnslothはDeepSeek-OCRをVRAMを40%削減し、コンテキスト長を5倍長くして1.4倍高速に学習できます — 精度低下はありません。\n\n評価あり／なしの2つの無料DeepSeek-OCR Colabノートブックを作成しました:

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

200K件のサンプルを含むペルシア語データセットでDeepSeek-OCRをファインチューニングしたところ、ペルシア語テキストの検出と理解が大幅に向上しました。ベースモデルとファインチューニング版を200件のペルシア語文字起こしサンプルで評価したところ、 **88.26%の絶対改善** を文字誤り率（CER）で達成しました。わずか60ステップの学習（バッチサイズ = 8）後、平均CERは **149.07%** から平均 **60.81%**&#x307E;で低下しました。つまり、このファインチューニング済みモデルは **57%** ペルシア語の理解精度がより高いです。

ペルシア語データセットを自分のデータセットに置き換えて、他のユースケース向けにDeepSeek-OCRを改善できます。\n\nreplica-tableの評価結果については、上の評価ノートブックを使用してください。詳細な評価結果は以下をご覧ください:

### ファインチューニング後の評価結果:

{% columns fullWidth="true" %}
{% column %}
**DeepSeek-OCRベースライン**

この評価セットにおけるベースラインモデルの平均性能: CER 149.07%！

```
============================================================
ベースラインモデルの性能
============================================================
サンプル数: 200
平均CER: 149.07%
中央値CER: 80.00%
標準偏差: 310.39%
最小CER: 0.00%
最大CER: 3500.00%
============================================================

 最良の予測（最小CER）:

サンプル 5024（CER: 0.00%）
参照:  چون هستی خیلی زیاد...
予測: چون هستی خیلی زیاد...

サンプル 3517（CER: 0.00%）
参照:  تو ایران هیچوقت از اینها وجود نخواهد داشت...
予測: تو ایران هیچوقت از اینها وجود نخواهد داشت...

サンプル 9949（CER: 0.00%）
参照:  کاش میدونستم هیچی بیخیال...
予測: کاش میدونستم هیچی بیخیال...

 最悪の予測（最大CER）:

サンプル 11155（CER: 3500.00%）
参照:  خسو...
予測: \[ \text{CH}_3\text{CH}_2\text{CH}_2\text{CH}_2\text{CH}_2\text{CH}_2\text{CH}_2\text{CH}_2\text{CH}...

サンプル 13366（CER: 1900.00%）
参照:  مشو...
予測: \[\begin{align*}\underline{\mathfrak{su}}_0\end{align*}\]...

サンプル 10552（CER: 1014.29%）
参照:  هیییییچ...
予測: e
```

{% endcolumn %}

{% column %}
**DeepSeek-OCR ファインチューニング済み**

60ステップで、CERを149.07%から60.43%へ削減しました（CER改善89%）

<pre><code><strong>============================================================
</strong>ファインチューニング済みモデルの性能
============================================================
サンプル数: 200
平均CER: 60.43%
中央値CER: 50.00%
標準偏差: 80.63%
最小CER: 0.00%
最大CER: 916.67%
============================================================

 最良の予測（最小CER）:

サンプル 301（CER: 0.00%）
参照:  باشه بابا تو لاکچری، تو خاص، تو خفن...
予測: باشه بابا تو لاکچری، تو خاص، تو خفن...

サンプル 2512（CER: 0.00%）
参照:  از شخص حاج عبدالله زنجبیلی میگیرنش...
予測: از شخص حاج عبدالله زنجبیلی میگیرنش...

サンプル 2713（CER: 0.00%）
参照:  نمی دونم والا تحمل نقد ندارن ظاهرا...
予測: نمی دونم والا تحمل نقد ندارن ظاهرا...

 最悪の予測（最大CER）:

サンプル 14270（CER: 916.67%）
参照:  ۴۳۵۹۴۷۴۷۳۸۹۰...
予測: پروپریپریپریپریپریپریپریپریپریپریپریپریپریپریپریپریپریپریپیپریپریپریپریپریپریپریپریپریپریپریپریپریپر...

サンプル 3919（CER: 380.00%）
参照:  ۷۵۵۰۷۱۰۶۵۹...
予測: وادووووووووووووووووووووووووووووووووووو...

サンプル 3718（CER: 333.33%）
参照:  ۳۲۶۷۲۲۶۵۵۸۴۶...
予測: پُپُسوپُسوپُسوپُسوپُسوپُسوپُسوپُسوپُسوپُ...
</code></pre>

{% endcolumn %}
{% endcolumns %}

使用した200K件のペルシア語データセットの例です（自分のデータセットを使用しても構いません）。左に画像、右に対応するテキストを示しています。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-2afa75f90055db094d5cae1c635b200c05e97aac%2FScreenshot%202025-11-04%20at%206.10.16%E2%80%AFAM.png?alt=media" alt="" width="563"><figcaption></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-how-to-run-and-fine-tune.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.
