家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

Qwen2.5 × Modelfile × Ollama で要約特化モデルを構築する(ローカルRAG環境を高速化)

概要

前回の記事でお便り等の書類をローカルで整理する環境(RAG、Retrieval-Augmented Generation(検索拡張生成))を構築しました。
ただし、精度や応答速度の面で課題を感じていました。
上記の課題について、LLMの変更やテンプレートを定義して体感的には改善できたように思います。
今回の記事では改善できた環境の構築手順をまとめます。

 

Qwen2.5とは

Qwen2.5はAlibabaが開発する LLMシリーズで、3B〜72Bまで幅広いサイズが提供されています。

  • 日本語が強い(特に 3B / 7B)
  • コード生成に強い(Coder 系)
  • 推論速度が速い
  • GGUF 形式でローカル実行が容易

※GGUF(GPT‑Generated Unified Format)はLLMをローカルで動かすために作られたモデルファイル形式。

 

今回はQwen2.5‑Coder‑3Bを使用しました。
Qwen2.5‑Coder‑3Bは、3B(30億パラメータ)という軽量サイズにも関わらず、要約・抽出・構造化タスクに非常に強いという評価があります。

 

Modelfileとは

ModelfileはOllamaでモデルを作成するため設定ファイルで、用途に合わせたLLMをOllamaに登録することができます。

Modelfileには以下のような内容が定義されています。

  1. LLMのファイル(GGUF)指定
    例:FROM ./qwen2.5-coder-3b-instruct-q4_k_m.gguf
  2. SYSTEM(人格)の定義
    例:SYSTEM "あなたは日本語に特化したアシスタントです。"
  3. TEMPLATE(入力構造)の定義
    例:

    TEMPLATE """
    以下の文章を要約してください。

    --- 原文 ---
    {{ .Prompt }}
    --- 要約 ---
    """


     

今回はModelfileを使いOllamaでQwen2.5‑Coder‑3Bを使用する環境を構築しました。

 

Ollama(Docker Desktop)にLLMを追加する手順

GGUFファイルの取得

Qwen2.5‑Coder‑3BのGGUFファイルをダウンロードします。

huggingface.co

 

Modelfile作成

以下の内容を「Modelfile」として作成します。

FROM ./qwen2.5-coder-3b-instruct-q4_k_m.gguf

TEMPLATE """
以下のファイル名と指示に基づいて、ナレッジベースから該当ファイルを検索し、
その内容を要約してください。

--- 指定ファイル名 ---
{{ .Prompt }}

--- 原文(ナレッジベースから自動挿入) ---
{{ .Context }}

--- 要約 ---
"""

SYSTEM """
あなたは日本語文書の要約に特化したアシスタントです。
以下の原則を厳密に守ってください。

1. 文章の意味を変えない
2. 事実を追加・創作しない
3. 曖昧な部分を勝手に補完しない
4. 文書の構造を保ったまま簡潔にまとめる
5. 固有名詞・数値・日付は正確に保持する
6. 不要な挨拶・感想・雑談は一切書かない
7. 箇条書きを優先し、論理的に整理する

あなたの唯一の目的は「正確で簡潔な要約を返すこと」です。
"""

ファイルに関する補足

{{.Prompt}}:ユーザーの入力が入ります。

{{.Context}}:ファイルの中身が入ります。

 

モデルの展開

上記GGUF、Modelfileを同じフォルダに用意します。
OllamaはDocke上にある為、ホスト→Dockerにファイルを移動してモデルを作成します。

 

docker cp "C:\open-webui\qwen2.5-coder-3b\qwen2.5-coder-3b-instruct-q4_k_m.gguf" ollama:/root/
docker cp "C:\open-webui\qwen2.5-coder-3b\Modelfile" ollama:/root/

 

ファイルを移動した後、コンテナへ入ります。
docker exec -it ollama bash
cd /root

 

モデルをビルドします。

ollama create qwen2.5-coder-3b-summary -f Modelfile

※Modelfileを変更した場合はビルドを実行します。

 

ここまで実行することでOllamaよりQwen2.5のモデルを使うことができます。

その他実施したこと

上記以外で、ナレッジベースに登録するファイルについてはテキストデータとしました。

 

動作検証

上記内容で環境を構築しファイルの内容を要約してみました。
前回の環境より、要約された内容、および文章が適切になり、また、気持ち応答が早くなったように思います。