小規模モデル向けRLタスクセット「SmolDataEnvs」公開

基本情報
| 項目 | 内容 |
|---|---|
| リポジトリ | FineEnvs/SmolDataEnvs |
| 公開日 | 2026-09-24 |
| 出典の種類 | 公開元の一次情報(HuggingFace公式リポジトリが一次情報) |
収集・肉付けの時点で当サイトのコードが確定させた値です。日付はJST。
概要
FineEnvs/SmolDataEnvsは、コードおよびデータサイエンス領域における小規模モデルの山登り法(hill-climbing)による最適化を目的とした、5.5K以上の強化学習(RL)タスクを収録したデータセットです。本データセットは、実行環境(ランタイム)や特定のフレームワークを必要とせず、ロードするだけで即座に利用可能なプレーンな形式で提供されています。各行には、実際のテーブルデータセット、それに対する質問、および同梱のグレーダーで決定論的に検証可能な正解(gold answer)が含まれており、ローカル環境の小規模モデルでも容易にプロンプトのテストや評価が行えます。
主張と根拠
発表者であるFineEnvsは、本データセットが小規模モデルの強化学習や評価において、極めて信頼性の高い決定論的なシグナルを提供できると主張しています。この主張を支える根拠として、以下の特徴とデータ構成が示されています。
1. 厳格な検証プロセスを経たタスク群
収録されているすべてのタスクは、jupyter-agent datasetをベースに構築されています。これは471個のKaggleデータセットにわたる実際のデータサイエンスノートブックから抽出されたものです。抽出されたすべての質問と回答のペアは、強力なエージェントモデルがライブサンドボックス環境で実際にタスクを解決し、決定論的な採点のもとで正解を再現できるかどうかの検証を通過しています。曖昧なタスクや検証不可能なタスクはすべて排除されているため、収録されているすべてのタスクは「解決可能」かつ「客観的に採点可能」であることが保証されています。
2. LLMに依存しない決定論的な評価システム
本データセットの評価(報酬シグナル)の経路には、LLMによる判定(LLM-as-a-judge)が一切介在しません。同梱されている grader.py は、完全一致、許容誤差(atol/rtol)を考慮した数値比較、リストやパーセントの正規化、記号的等価性の検証といった、段階的なルールベースのチェックを行います。これにより、評価モデルの変更による評価基準のブレ(ドリフト)が発生せず、常に一定の基準でモデルの性能を測定できます。
3. 意図的に難易度を上げた評価用スプリット
テストおよび評価用のスプリットは、学習用スプリット(train)よりも難易度が高くなるように設計されています。具体的には、trainスプリットはeasyが29%、hardが14%であるのに対し、ホールドアウトされた評価用スプリット(testおよびeval)はeasyが11〜13%、hardが38〜40%で構成されています。これにより、モデルの汎化性能をより厳しく測定することが可能です。データ分割の詳細は以下の通りです。
→ 横にスクロールできます
| Split | Tasks | Easy | Medium | Hard | What it’s for |
|---|---|---|---|---|---|
train |
5,000 | 1,433 | 2,845 | 722 | training |
test |
250 | 33 | 118 | 99 | held-out benchmark, deliberately harder |
eval |
144 | 16 | 74 | 54 | quick validation during a run |
4. 豊富なメタデータを含むデータ構造
データセットの各行には、タスクの実行と評価に必要な情報が網羅されています。
| Column | Meaning |
|---|---|
task_id, source_row_id |
identifiers |
question |
the question to answer |
answer |
the gold answer |
reward_mode, atol, rtol |
how to grade it: match type and numeric tolerances |
difficulty_level (1–5), difficulty_tier |
difficulty |
kaggle_dataset |
the source dataset |
hf_bucket, bucket_prefix, files |
where the input files live and what they are |
instruction |
the full agent prompt |
package_tier |
environment sizing hint |
5. 用途に応じたファミリーリポジトリの展開
SmolDataEnvsは、単純なデータセットとしての提供にとどまらず、教師あり微調整(SFT)用の軌跡データや、サンドボックス環境として実行可能なHarborスイートなど、目的に応じた複数のリポジトリで構成されています。
| Repo | What it is |
|---|---|
SmolDataEnvs |
the tasks as plain rows, load it and prompt any model |
SmolDataEnvs-sft |
4,677 verified agent trajectories, TRL-ready |
SmolDataEnvs-harbor-train |
5,000 tasks as Harbor environments |
SmolDataEnvs-harbor-test |
250 held-out, deliberately harder |
SmolDataEnvs-harbor-eval |
144 for quick validation during a run |
前提条件
本データセットおよび評価コードを利用するにあたり、資料で示されている前提条件は以下の通りです。
- 対象モデル: 主に小規模モデル(記述では2Bモデルの例に言及)の強化学習および評価を対象としています。
- ライセンス: MITライセンスのもとで公開されています。
- データ形式: Parquet形式で提供され、テキストデータおよびテーブルデータを取り扱います。
- 必要なソフトウェア・ライブラリ: Python環境を基本とし、
datasets、huggingface_hubなどのライブラリが必要です。タグ情報にはpandas、polars、mlcroissantが挙げられています。 - 実行環境の制約: データセット自体はランタイムや特定の実行フレームワークを必要とせず(「no runtime, no framework required」)、行単位で独立したデータとして読み込み可能です。なお、入力となるテーブルデータファイルはHugging FaceのBucket機能経由で配信されています。
手元で再現できる範囲
本データセットの取得、タスク用テーブルデータのダウンロード、採点スクリプトの実行、および学習用スクリプトの参照については、公開されているコードをもとに手元で実行可能です。
1. データセットのロード
datasetsライブラリを使用して、以下のようにスプリットを指定してロードできます。
from datasets import load_dataset
ds = load_dataset("FineEnvs/SmolDataEnvs", split="test")
row = ds[0]
print(row["question"], "→", row["answer"], f"({row['reward_mode']})")
2. タスク用データファイルの取得
各タスクで使用する入力テーブルファイルはHugging Face Bucket上に保管されているため、huggingface_hubのBucket APIを用いて取得します。
from huggingface_hub import list_bucket_tree, download_bucket_files
prefix = row["bucket_prefix"].rstrip("/") + "/"
items = [i for i in list_bucket_tree(row["hf_bucket"], prefix=prefix, recursive=True)
if getattr(i, "type", None) == "file"]
download_bucket_files(row["hf_bucket"],
files=[(i.path, "input/" + i.path.split("/")[-1]) for i in items])
3. グレーダーによる推論結果の採点
リポジトリ内に含まれる grader.py をダウンロードして動的にインポートし、モデルの出力結果を正解値と照合して評価します。許容誤差(atol/rtol)や比較モード(reward_mode)はデータセット内のメタデータから渡す仕様になっています。
from huggingface_hub import hf_hub_download
import importlib.util, sys
path = hf_hub_download("FineEnvs/SmolDataEnvs", "grader.py", repo_type="dataset")
spec = importlib.util.spec_from_file_location("grader", path)
grader = importlib.util.module_from_spec(spec)
sys.modules["grader"] = grader # 内部のdataclassの動作に必要
spec.loader.exec_module(grader)
r = grader.grade(row["answer"], my_prediction, reward_mode=row["reward_mode"],
abs_tol=row["atol"], rel_tol=row["rtol"])
print(r.reward, r.method) # 1.0 exact | 0.0 miss
4. 学習環境と周辺リポジトリ
学習スクリプトおよびノートブックは、GitHubの FineEnvs/04-smoldataenvs に単一ファイルスクリプトとして公開されており、HF Jobs等に渡して実行できる形式とされています。 また、目的別の派生リポジトリとして、TRLに対応した4,677件のエージェント軌跡データ SmolDataEnvs-sft や、サンドボックス環境向けのHarborスイート(SmolDataEnvs-harbor-train、SmolDataEnvs-harbor-test、SmolDataEnvs-harbor-eval)が利用可能です。
資料が触れていないこと
- 検証実験に用いられたモデルの詳細: 説明文中で「A 2B model on these tasks」と触れられている2Bモデルについて、具体的なベースモデル名やモデルファミリーは明記されていません。
- 実験結果の具体的な数値: シャッフル順と難易度順カリキュラムで実行した2つの学習比較(「Two runs over the same 5,000 tasks」)について、達成されたスコアや性能差などの具体的な数値データは資料内に記載されていません。
- タスク検証に使用されたエージェントモデルの名称: データ抽出時にタスクの正答可能性を検証するために使用された「strong agent models」の具体的なモデル名やシステムプロンプトの構成は明らかにされていません。
関連記事
出典
- FineEnvs/SmolDataEnvs (Hugging Face Datasets)
- FineEnvs/04-smoldataenvs (GitHub)
- FineEnvs/SmolDataEnvs-sft (Hugging Face Datasets)
- FineEnvs/SmolDataEnvs-harbor-train (Hugging Face Datasets)
- FineEnvs/SmolDataEnvs-harbor-test (Hugging Face Datasets)
- FineEnvs/SmolDataEnvs-harbor-eval (Hugging Face Datasets)
- jupyter-agent dataset (Hugging Face Datasets)

