Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 2品質スコア 64/100

evaluating-code-models

HumanEval、MBPP、MultiPL-Eなど15以上のベンチマークを用いて、コード生成モデルを評価します。pass@kメトリクスで性能を測定できます。コードモデルのベンチマーク実施、コーディング能力の比較、多言語対応のテスト、コード生成品質の測定が必要な場合に利用してください。BigCodeプロジェクトの業界標準仕様で、HuggingFaceのリーダーボードでも採用されています。

description の原文を見る

Evaluates code generation models across HumanEval, MBPP, MultiPL-E, and 15+ benchmarks with pass@k metrics. Use when benchmarking code models, comparing coding abilities, testing multi-language support, or measuring code generation quality. Industry standard from BigCode Project used by HuggingFace leaderboards.

SKILL.md 本文

BigCode Evaluation Harness - コードモデルベンチマーク

クイックスタート

BigCode Evaluation HarnessはHumanEval、MBPP、MultiPL-E(18言語)を含む15以上のベンチマーク全体でコード生成モデルを評価します。

インストール:

git clone https://github.com/bigcode-project/bigcode-evaluation-harness.git
cd bigcode-evaluation-harness
pip install -e .
accelerate config

HumanEvalで評価する:

accelerate launch main.py \
  --model bigcode/starcoder2-7b \
  --tasks humaneval \
  --max_length_generation 512 \
  --temperature 0.2 \
  --n_samples 20 \
  --batch_size 10 \
  --allow_code_execution \
  --save_generations

利用可能なタスクを表示:

python -c "from bigcode_eval.tasks import ALL_TASKS; print(ALL_TASKS)"

一般的なワークフロー

ワークフロー1: 標準コードベンチマーク評価

コアコードベンチマーク(HumanEval、MBPP、HumanEval+)でモデルを評価します。

チェックリスト:

コードベンチマーク評価:
- [ ] ステップ1: ベンチマークスイートを選択
- [ ] ステップ2: モデルと生成設定を構成
- [ ] ステップ3: コード実行で評価を実行
- [ ] ステップ4: pass@k結果を分析

ステップ1: ベンチマークスイートを選択

Pythonコード生成(最も一般的):

  • HumanEval: 164個の手作成問題、関数補完
  • HumanEval+: 同じ164個の問題にテストが80倍多い(より厳密)
  • MBPP: 500個のクラウドソース問題、初級難易度
  • MBPP+: 399個の厳選問題でテストが35倍多い

マルチ言語(18言語):

  • MultiPL-E: HumanEval/MBPPをC++、Java、JavaScript、Go、Rustなどに翻訳

上級:

  • APPS: 10,000個の問題(入門/面接/競技レベル)
  • DS-1000: 7つのライブラリにまたがる1,000個のデータサイエンス問題

ステップ2: モデルと生成設定を構成

# 標準HuggingFaceモデル
accelerate launch main.py \
  --model bigcode/starcoder2-7b \
  --tasks humaneval \
  --max_length_generation 512 \
  --temperature 0.2 \
  --do_sample True \
  --n_samples 200 \
  --batch_size 50 \
  --allow_code_execution

# 量子化モデル(4-bit)
accelerate launch main.py \
  --model codellama/CodeLlama-34b-hf \
  --tasks humaneval \
  --load_in_4bit \
  --max_length_generation 512 \
  --allow_code_execution

# カスタム/プライベートモデル
accelerate launch main.py \
  --model /path/to/my-code-model \
  --tasks humaneval \
  --trust_remote_code \
  --use_auth_token \
  --allow_code_execution

ステップ3: 評価を実行

# pass@k推定を含む完全評価(k=1,10,100)
accelerate launch main.py \
  --model bigcode/starcoder2-7b \
  --tasks humaneval \
  --temperature 0.8 \
  --n_samples 200 \
  --batch_size 50 \
  --allow_code_execution \
  --save_generations \
  --metric_output_path results/starcoder2-humaneval.json

ステップ4: 結果を分析

results/starcoder2-humaneval.jsonの結果:

{
  "humaneval": {
    "pass@1": 0.354,
    "pass@10": 0.521,
    "pass@100": 0.689
  },
  "config": {
    "model": "bigcode/starcoder2-7b",
    "temperature": 0.8,
    "n_samples": 200
  }
}

ワークフロー2: マルチ言語評価(MultiPL-E)

18のプログラミング言語全体でコード生成を評価します。

チェックリスト:

マルチ言語評価:
- [ ] ステップ1: ソリューションを生成(ホストマシン)
- [ ] ステップ2: Dockerで評価を実行(安全な実行)
- [ ] ステップ3: 言語全体で比較

ステップ1: ホスト上でソリューションを生成

# 実行なしで生成(安全)
accelerate launch main.py \
  --model bigcode/starcoder2-7b \
  --tasks multiple-py,multiple-js,multiple-java,multiple-cpp \
  --max_length_generation 650 \
  --temperature 0.8 \
  --n_samples 50 \
  --batch_size 50 \
  --generation_only \
  --save_generations \
  --save_generations_path generations_multi.json

ステップ2: Dockerコンテナで評価

# MultiPL-E Dockerイメージをプル
docker pull ghcr.io/bigcode-project/evaluation-harness-multiple

# コンテナ内で評価を実行
docker run -v $(pwd)/generations_multi.json:/app/generations.json:ro \
  -it evaluation-harness-multiple python3 main.py \
  --model bigcode/starcoder2-7b \
  --tasks multiple-py,multiple-js,multiple-java,multiple-cpp \
  --load_generations_path /app/generations.json \
  --allow_code_execution \
  --n_samples 50

サポート言語: Python、JavaScript、Java、C++、Go、Rust、TypeScript、C#、PHP、Ruby、Swift、Kotlin、Scala、Perl、Julia、Lua、R、Racket

ワークフロー3: インストラクション調整モデルの評価

適切なフォーマットでチャット/インストラクションモデルを評価します。

チェックリスト:

インストラクションモデル評価:
- [ ] ステップ1: インストラクション調整タスクを使用
- [ ] ステップ2: インストラクショントークンを構成
- [ ] ステップ3: 評価を実行

ステップ1: インストラクションタスクを選択

  • instruct-humaneval: インストラクションプロンプト付きのHumanEval
  • humanevalsynthesize-{lang}: HumanEvalPackシンセシスタスク

ステップ2: インストラクショントークンを構成

# チャットテンプレート付きモデル向け(例: CodeLlama-Instruct)
accelerate launch main.py \
  --model codellama/CodeLlama-7b-Instruct-hf \
  --tasks instruct-humaneval \
  --instruction_tokens "<s>[INST],</s>,[/INST]" \
  --max_length_generation 512 \
  --allow_code_execution

ステップ3: インストラクションモデル向けHumanEvalPack

# 6言語全体でコードシンセシスをテスト
accelerate launch main.py \
  --model codellama/CodeLlama-7b-Instruct-hf \
  --tasks humanevalsynthesize-python,humanevalsynthesize-js \
  --prompt instruct \
  --max_length_generation 512 \
  --allow_code_execution

ワークフロー4: 複数モデルを比較

モデル比較用のベンチマークスイート。

ステップ1: 評価スクリプトを作成

#!/bin/bash
# eval_models.sh

MODELS=(
  "bigcode/starcoder2-7b"
  "codellama/CodeLlama-7b-hf"
  "deepseek-ai/deepseek-coder-6.7b-base"
)
TASKS="humaneval,mbpp"

for model in "${MODELS[@]}"; do
  model_name=$(echo $model | tr '/' '-')
  echo "Evaluating $model"

  accelerate launch main.py \
    --model $model \
    --tasks $TASKS \
    --temperature 0.2 \
    --n_samples 20 \
    --batch_size 20 \
    --allow_code_execution \
    --metric_output_path results/${model_name}.json
done

ステップ2: 比較表を生成

import json
import pandas as pd

models = ["bigcode-starcoder2-7b", "codellama-CodeLlama-7b-hf", "deepseek-ai-deepseek-coder-6.7b-base"]
results = []

for model in models:
    with open(f"results/{model}.json") as f:
        data = json.load(f)
        results.append({
            "Model": model,
            "HumanEval pass@1": f"{data['humaneval']['pass@1']:.3f}",
            "MBPP pass@1": f"{data['mbpp']['pass@1']:.3f}"
        })

df = pd.DataFrame(results)
print(df.to_markdown(index=False))

使い分けと代替案

BigCode Evaluation Harnessを使用する場合:

  • コード生成モデルを特に評価する場合
  • マルチ言語評価が必要な場合(MultiPL-E経由で18言語)
  • ユニットテストを使用した機能的正確性をテストする場合(pass@k)
  • BigCode/HuggingFaceリーダーボード用にベンチマークする場合
  • fill-in-the-middle(FIM)機能を評価する場合

代わりに代替案を使用する場合:

  • lm-evaluation-harness: 一般的なLLMベンチマーク(MMLU、GSM8K、HellaSwag)
  • EvalPlus: より厳密なHumanEval+/MBPP+でテストケースが多い
  • SWE-bench: 実際のGitHubイシュー解決
  • LiveCodeBench: 汚染なし、継続的に更新された問題
  • CodeXGLUE: コード理解タスク(クローン検出、欠陥予測)

サポートベンチマーク

ベンチマーク問題数言語メトリクス用途
HumanEval164Pythonpass@k標準コード補完
HumanEval+164Pythonpass@kより厳密な評価(テスト80倍)
MBPP500Pythonpass@k初級問題
MBPP+399Pythonpass@kより厳密な評価(テスト35倍)
MultiPL-E164×1818言語pass@kマルチ言語評価
APPS10,000Pythonpass@k競技レベル
DS-10001,000Pythonpass@kデータサイエンス(pandas、numpyなど)
HumanEvalPack164×3×66言語pass@kシンセシス/修正/説明
Mercury1,889Python効率計算効率

よくある問題

問題: 論文で報告された結果と異なる結果

以下の要因をチェック:

# 1. n_samplesを確認(pass@kの正確性には200が必要)
--n_samples 200

# 2. 温度を確認(0.2でグリーディ的、0.8でサンプリング)
--temperature 0.8

# 3. タスク名が正確に一致することを確認
--tasks humaneval  # "human_eval"や"HumanEval"ではなく

# 4. max_length_generationをチェック
--max_length_generation 512  # 長い問題の場合は増加

問題: CUDAメモリ不足

# 量子化を使用
--load_in_8bit
# または
--load_in_4bit

# バッチサイズを削減
--batch_size 1

# メモリ制限を設定
--max_memory_per_gpu "20GiB"

問題: コード実行がハングまたはタイムアウト

安全な実行にはDockerを使用:

# ホスト上で生成(実行なし)
--generation_only --save_generations

# Dockerで評価
docker run ... --allow_code_execution --load_generations_path ...

問題: インストラクションモデルのスコアが低い

適切なインストラクションフォーマットを確認:

# インストラクション固有のタスクを使用
--tasks instruct-humaneval

# モデル用のインストラクショントークンを設定
--instruction_tokens "<s>[INST],</s>,[/INST]"

問題: MultiPL-E言語エラー

専用Dockerイメージを使用:

docker pull ghcr.io/bigcode-project/evaluation-harness-multiple

コマンドリファレンス

引数デフォルト説明
--model-HuggingFaceモデルIDまたはローカルパス
--tasks-コンマ区切りのタスク名
--n_samples1問題ごとのサンプル数(pass@kは200)
--temperature0.2サンプリング温度
--max_length_generation512最大トークン数(プロンプト+生成)
--batch_size1GPU1台あたりのバッチサイズ
--allow_code_executionFalseコード実行を有効化(必須)
--generation_onlyFalse評価なしで生成
--load_generations_path-事前生成ソリューションをロード
--save_generationsFalse生成コードを保存
--metric_output_pathresults.jsonメトリクス出力ファイル
--load_in_8bitFalse8-bit量子化
--load_in_4bitFalse4-bit量子化
--trust_remote_codeFalseカスタムモデルコードを許可
--precisionfp32モデル精度(fp32/fp16/bf16)

ハードウェア要件

モデルサイズVRAM(fp16)VRAM(4-bit)時間(HumanEval、n=200)
7B14GB6GB~30分(A100)
13B26GB10GB~1時間(A100)
34B68GB20GB~2時間(A100)

リソース

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
daeha76
リポジトリ
daeha76/RianFriends
ライセンス
MIT
最終更新
2026/4/6

Source: https://github.com/daeha76/RianFriends / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: daeha76 · daeha76/RianFriends · ライセンス: MIT