OpenCompass on Ubuntu — LLMの日本語性能を体系的に評価する方法

AI/MLツール

チャット感覚で「このモデルは日本語が得意そう」と思っても、スコアで裏付けるのは難しいものです。OpenCompass を使えば、TyDi-QA(日本語QA)や Flores(英→日翻訳)などの標準ベンチマークでスコアを出せるので、印象ではなく数値でモデルを評価できます。

本記事では Ubuntu 22.04 LTS に OpenCompass 0.5.2 をインストールし、configs/datasets/ の日本語対応データセットと Python バージョン要件を実際に確認しました。評価設定ファイルの作り方と run.py の使い方は、公式ドキュメントと実リポジトリ構造に基づいて説明します。GPU なしの VPS でも API 評価モードなら動きます。

この記事のポイント

  • Ubuntu 22.04(Python 3.10.12)が最も安定。24.04(3.12.3)でも動作するが 22.04 推奨
  • OpenCompass 0.5.2 には 189 のデータセットが収録。日本語対応は TyDi-QA・Flores・XLSum など 4 種
  • GPU なし環境でも openai 型モデル設定で Ollama に接続して評価できる
  • --dry-run でタスク数と推論コマンドを事前確認してから本実行するのが安全
  • 結果は work_dir/<timestamp>/ 以下に CSV と HTML で自動保存される

動作確認済み環境

項目 確認値 備考
OS Ubuntu 22.04.4 LTS 推奨(Python 3.10.12)
OS(代替) Ubuntu 24.04.4 LTS Python 3.12.3 — 動作可
OpenCompass 0.5.2 2026-06-21 時点の最新安定版
Python 3.10.12 以上 3.12.3 でも可(一部 GPU 依存で注意)
評価モデル接続 Ollama 経由 API GPU 不要。OpenAI 互換エンドポイント
確認方法 Docker + git clone ubuntu:22.04 / ubuntu:24.04 実行

OpenCompass とは

OpenCompass は上海 AI 研究所(Shanghai AI Lab)が開発したオープンソースの LLM 評価フレームワークです。189 種類のベンチマークデータセットを一つのフレームワークで管理し、複数のモデルを同じ条件で評価できます。公式ベンチマークサイト「CompassRank」でも採用されています。

評価の仕組みは、設定ファイル(Python スクリプト)にモデルとデータセットの組み合わせを書いて python run.py config.py を実行するだけです。モデルは HuggingFace のローカルモデル、vLLM/lmdeploy、そして OpenAI 互換の REST API に対応しています。Ollama は OpenAI 互換エンドポイントを提供しているので、GPU なし環境でも API 評価が可能です。

OpenCompass 評価パイプライン全体の流れ(概念図)
OpenCompass 評価パイプライン全体の流れ(概念図)

インストール手順

手順1:Python 環境を確認する

Ubuntu のバージョンによって Python のデフォルトバージョンが異なります。OpenCompass は Python 3.10 以上が必要で、Ubuntu 22.04 の 3.10.12 が最も動作実績があります。

Ubuntu 22.04 / 24.04 での Python バージョン比較(実測)
Ubuntu 22.04 / 24.04 での Python バージョン比較(実測)



ubuntu@linuxlab: ~
$ python3 –version
Python 3.10.12
$ pip3 –version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

Ubuntu 24.04 を使っている場合

Ubuntu 24.04 の Python 3.12.3 でも pip install opencompass は通りますが、GPU ベースのローカルモデル評価で依存ライブラリの競合が起きやすいです。まず API モードで試すなら 24.04 でも問題ありません。

手順2:OpenCompass をインストールする

PyPI から pip でインストールします。依存パッケージが多い(datasetsacceleratetorch など 40 以上)ので、仮想環境を作ってから入れるのが無難です。




ubuntu@linuxlab: ~
$ python3 -m venv venv-ocp
$ source venv-ocp/bin/activate
$ pip install opencompass
Collecting opencompass
Downloading opencompass-0.5.2-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 4.3 MB/s eta 0:00:00

Successfully installed opencompass-0.5.2 datasets-3.5.0 mmengine-lite-0.10.4 …
OpenCompass pip install 実ログ(Python 3.10 環境)
OpenCompass pip install 実ログ(Python 3.10 環境)

インストールが完了したらバージョンを確認します。




ubuntu@linuxlab: ~
$ python -c “import opencompass; print(opencompass.__version__)”
0.5.2

手順3:リポジトリを取得する

設定ファイルのテンプレートは GitHub リポジトリに収録されています。pip install だけでは設定ファイル群が入らないので、リポジトリもクローンしておきます。




ubuntu@linuxlab: ~
$ git clone –depth=1 https://github.com/open-compass/opencompass.git
$ cd opencompass
$ ls opencompass/configs/datasets | wc -l
225
# 225 個の設定ディレクトリが入っている(データセット対応数)
git clone 後の実データ確認(バージョン・データセット数・TyDiQA言語リスト、実測)
git clone 後の実データ確認(バージョン・データセット数・TyDiQA言語リスト、実測)

日本語評価に使えるデータセット

OpenCompass 0.5.2 に収録されている 189 のデータセット(225 設定ディレクトリ)のうち、日本語に対応しているのは 4 データセットです。実際に configs/datasets/ を解析した結果です。

OpenCompass 日本語対応データセット一覧(実測)
OpenCompass 日本語対応データセット一覧(実測)
OpenCompass データセット数カテゴリ別内訳(実測)
OpenCompass データセット数カテゴリ別内訳(実測)

正直、日本語特化のベンチマーク(JMT-Bench や JMMLU など)は OpenCompass 本体には未収録で、別途自分でデータセットを用意して設定する必要があります。ただし TyDi-QA は読解力(日本語 QA)を測る標準的な指標として使えます。

データセット名 タスク種別 日本語の扱い 評価指標
TyDi-QA 抽出型QA(読解) 11 言語中に日本語を収録。日本語プロンプト付き F1 スコア
Flores / PMMEval 機械翻訳(英→日) 9 言語対応。この文を英語から日本語に翻訳してください BLEU / chrF
XLSum 多言語テキスト要約 多言語コーパス(日本語データ含む csebuetnlp/xlsum) ROUGE-L
IWSLT2017 口語翻訳 多言語翻訳タスク BLEU

設定ファイルを書く(API モード)

OpenCompass の設定ファイルは Python スクリプトで、models リストと datasets リストを定義します。Ollama がローカルで動いていれば、以下の設定ファイル一枚で TyDi-QA 日本語タスクを評価できます。

OpenCompass 設定ファイル例(TyDi-QA + Ollama API)
OpenCompass 設定ファイル例(TyDi-QA + Ollama API)



ubuntu@linuxlab: ~/opencompass
$ cat configs/myeval_tydiqa_ollama.py
# configs/myeval_tydiqa_ollama.py
from mmengine.config import read_base

with read_base():
    from opencompass.configs.datasets.tydiqa.tydiqa_gen_978d2a import tydiqa_datasets

# Ollama の OpenAI 互換エンドポイントに接続
models = [
    dict(
        abbr='qwen2.5-7b-ollama',
        type='openai',
        path='qwen2.5:7b',
        key='ollama',
        openai_api_base='http://localhost:11434/v1/chat/completions',
        max_out_len=512,
        batch_size=4,
    )
]

# TyDi-QA(日本語含む 11 言語)
datasets = [*tydiqa_datasets]

work_dir = './outputs/qwen25_tydiqa_eval'

type='openai' を指定すると OpenAI 互換 API として扱われます。key='ollama' はダミー API キー(Ollama は認証不要ですが、パラメータとして必要)、openai_api_base に Ollama のエンドポイントを指定します。

Ollama の事前準備

評価を実行する前に Ollama でモデルを pull しておきます。ollama pull qwen2.5:7b でダウンロード後、ollama serve(または systemd で常駐)で API サーバーを起動してください。Ollama のデフォルトポートは 11434 です。

評価を実行する

手順1:ドライランで事前確認する

いきなり本実行すると、設定ミスで長い待ち時間を無駄にすることがあります。--dry-run でタスク数と設定を確認してから進めるのが安全です。実行すると次のような出力が表示されます(出力形式の例)。




ubuntu@linuxlab: ~/opencompass(出力形式例)
$ python run.py configs/myeval_tydiqa_ollama.py –dry-run
MM/DD HH:MM:SS – OpenCompass – INFO – Config loaded successfully
MM/DD HH:MM:SS – OpenCompass – INFO – Partitioning OpenICL infer tasks:
MM/DD HH:MM:SS – OpenCompass – INFO – tydiqa/japanese [numfewshot=0]
MM/DD HH:MM:SS – OpenCompass – INFO – 11 tasks (11 languages), 0 done / 11 remaining
MM/DD HH:MM:SS – OpenCompass – INFO – DRY RUN mode — no inference executed

手順2:本実行する

--dry-run を外して本実行します。TyDi-QA の日本語タスクはテスト問題が約 1000 問あるので、バッチサイズ 4 だと 10〜20 分かかります(モデルの速度次第)。終了時の出力形式は次の通りです。




ubuntu@linuxlab: ~/opencompass(出力形式例)
$ python run.py configs/myeval_tydiqa_ollama.py
MM/DD HH:MM:SS – OpenCompass – INFO – Starting task: tydiqa/japanese <model-name>
MM/DD HH:MM:SS – OpenCompass – INFO – Inferencing … (batch_size=4)
(Ollama API 経由でタスク実行中 — タスク数・所要時間はモデルとVPS性能による)
MM/DD HH:MM:SS – OpenCompass – INFO – Task finished. Results saved to:
./outputs/<runname>/<timestamp>/results.csv
OpenCompass 評価実行コマンドと結果サマリ(出力形式例)
OpenCompass 評価実行コマンドと結果サマリ(出力形式例)

途中でやめたときは --reuse で再開できる

実行中断した場合は python run.py configs/myeval.py --reuse で、完了済みタスクの結果を再利用して続きから再開できます。タイムスタンプを指定する場合は --reuse <timestamp> のように書きます。

結果の読み方

実行が完了すると work_dir/<timestamp>/ に結果が保存されます。コンソールにもサマリテーブルが表示されます。




ubuntu@linuxlab: ~/opencompass
# 結果サマリの表示形式(概念例)
dataset version metric mode qwen2.5-7b-ollama
───────────────────────────────────────────────────────────────
tydiqa/japanese 978d2a f1 gen 72.4
tydiqa/english 978d2a f1 gen 85.1

上の数値は「この記事の実測結果」ではありません。実際のスコアはモデルによって大きく変わります(公式ドキュメントによると GPT-4o クラスで F1 90 以上、7B クラスで 60〜75 程度の傾向)。自分のモデルを評価した際の数値を確認してください。

結果ファイルの内訳:

  • results.csv — 全モデル×データセットのスコア表(CSV)
  • predictions/ — モデルの生出力テキスト(デバッグに使う)
  • logs/ — 推論時のログ

よくあるエラーと解決策

①ModuleNotFoundError: No module named 'opencompass'

仮想環境外で実行した可能性があります。source venv-ocp/bin/activate を確認してください。which python でパスが venv-ocp/bin/python になっていれば OK です。

②Connection refused(Ollama 接続エラー)

Ollama が起動していないか、ポートが異なります。curl http://localhost:11434/v1/models でモデル一覧が返ってくるか確認してください。




ubuntu@linuxlab: ~
$ curl -s http://localhost:11434/v1/models | python3 -m json.tool | head -10
{
“object”: “list”,
“data”: [{“id”: “qwen2.5:7b”, …}]
}

③ pip install が途中でコケる(ERROR: Could not find a version that satisfies the requirement)

Python 3.13 以上だと依存ライブラリのバイナリが未対応のことがあります。pyenvconda で Python 3.10.x 環境を作ってから再試行してください。

④ 評価に時間がかかりすぎる

TyDi-QA は全 11 言語で約 1 万問あります。開発中は設定ファイルで abbr_dict={'tydiqa_japanese': 'tydiqa/japanese'} 等を使って言語を絞るか、limit パラメータでサンプル数を制限してください。

# データセット設定でサンプル数を制限する例(テスト時)
from opencompass.openicl.icl_prompt_template import PromptTemplate
reader_cfg = dict(
    input_columns=['passage_text', 'question_text'],
    output_column='answer',
    test_split='test',
    test_size=100  # 100 問に絞って動作確認
)

まとめ

OpenCompass は手順さえ理解すれば設定ファイル 1 枚でモデルを比較評価できます。日本語に使えるのは TyDi-QA(読解 F1)・Flores(翻訳 BLEU)・XLSum(要約 ROUGE)・IWSLT2017(翻訳 BLEU)の 4 種で、どれも Ollama API 経由で GPU なしでも動かせます。

評価環境として VPS を使う場合、Vultr の東京リージョンは Ollama の推論速度も安定しており、月 $6(2vCPU/2GB)から試せます。

本記事では「すでに Ollama が動いている環境」を前提にしましたが、Ollama のセットアップ自体は にまとめています。あわせてどうぞ。

コメント

タイトルとURLをコピーしました