This commit is contained in:
Yuge Zhang
2025-11-04 01:23:21 +08:00
parent d7749a0ad3
commit 8c8d474b65
7 changed files with 3308 additions and 0 deletions
+379
View File
@@ -0,0 +1,379 @@
import csv
import json
import pandas as pd
# Price configuration
TINKER_PRICE_TABLE = {
"Qwen/Qwen3-4B-Instruct-2507": {
"prompt": 0.07, # per M tokens
"completion": 0.22,
"training": 0.22,
},
"Qwen/Qwen3-30B-A3B-Instruct-2507": {
"prompt": 0.12,
"completion": 0.30,
"training": 0.36,
},
}
A100_PRICE_PER_HOUR = 3.673
# File mappings
training_files = {
"q20_no_search_4b": {
"file": "train_q20_no_search_4b.jsonl",
"model": "Qwen/Qwen3-4B-Instruct-2507",
"name": "Tinker Qwen3-4B",
},
"q20_no_search_30b": {
"file": "train_q20_no_search_30b.jsonl",
"model": "Qwen/Qwen3-30B-A3B-Instruct-2507",
"name": "Tinker Qwen3-30B",
},
"q20_search_4b": {
"file": "train_q20_search_4b.jsonl",
"model": "Qwen/Qwen3-4B-Instruct-2507",
"name": "Tinker Qwen3-4B + Tool",
},
}
verl_file = "AgentLightningQ20VERL_05kd8o8n_metrics.csv"
def load_training_data(filename):
"""Load training metrics from JSONL file."""
data = []
with open(filename, "r") as f:
for line in f:
entry = json.loads(line)
data.append(entry)
return data
def load_verl_data(filename):
"""Load VERL metrics from CSV file."""
df = pd.read_csv(filename)
return df
def compute_tinker_cost(entry, model_name):
"""Compute cost for a Tinker training step."""
prices = TINKER_PRICE_TABLE[model_name]
# Get tokens
prompt_tokens = entry.get("env/all/total_ob_tokens", 0)
completion_tokens = entry.get("env/all/total_ac_tokens", 0)
# Training tokens = 4 * (prompt + completion)
training_tokens = 4 * (prompt_tokens + completion_tokens)
# Calculate cost (prices are per million tokens)
cost = (
prompt_tokens * prices["prompt"] / 1_000_000
+ completion_tokens * prices["completion"] / 1_000_000
+ training_tokens * prices["training"] / 1_000_000
)
return cost
# Load all training data
all_training_data = {}
for key, config in training_files.items():
all_training_data[key] = load_training_data(config["file"])
# Load VERL data
verl_data = load_verl_data(verl_file)
# ===== 1. Four separate figures for training and val accuracy =====
for key, config in training_files.items():
data = all_training_data[key]
chart_data = []
for entry in data:
step = entry.get("step", 0)
# Training accuracy
if "env/all/reward/total" in entry:
chart_data.append({"step": step, "accuracy": entry["env/all/reward/total"], "type": "Train"})
# Val accuracy
if "test/env/all/reward/total" in entry:
chart_data.append({"step": step, "accuracy": entry["test/env/all/reward/total"], "type": "Val"})
vega_spec = {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": f"Training and Val Accuracy - {config['name']}",
"width": 600,
"height": 400,
"config": {
"axis": {"labelFontSize": 14, "titleFontSize": 16, "titleFontWeight": "normal"},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5,
},
},
"data": {"values": chart_data},
"mark": {"type": "line", "point": True, "strokeWidth": 2.5},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {"domain": [0, max(d["step"] for d in chart_data)]},
},
"y": {"field": "accuracy", "type": "quantitative", "title": "Accuracy"},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {"domain": ["Train", "Val"], "range": ["#2E86AB", "#E63946"]},
"legend": {
"orient": "bottom-right" if "no_search" in key else "bottom-left",
},
},
},
}
with open(f"lineplot_accuracy_{key}.json", "w") as f:
json.dump(vega_spec, f, indent=2)
# VERL training and val accuracy
verl_chart_data = []
for _, row in verl_data.iterrows():
step = row["_step"]
if pd.notna(row.get("training/reward")):
verl_chart_data.append({"step": step, "accuracy": row["training/reward"], "type": "Train"})
if pd.notna(row.get("val/reward")):
verl_chart_data.append({"step": step, "accuracy": row["val/reward"], "type": "Val"})
vega_spec_verl = {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Training and Val Accuracy - VERL",
"width": 600,
"height": 400,
"config": {
"axis": {"labelFontSize": 14, "titleFontSize": 16, "titleFontWeight": "normal"},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5,
},
},
"data": {"values": verl_chart_data},
"mark": {"type": "line", "point": True, "strokeWidth": 2.5},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {"domain": [0, max(d["step"] for d in verl_chart_data)]},
},
"y": {"field": "accuracy", "type": "quantitative", "title": "Accuracy"},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {"domain": ["Train", "Val"], "range": ["#2E86AB", "#E63946"]},
"legend": {
"orient": "bottom-right",
},
},
},
}
with open("lineplot_accuracy_verl.json", "w") as f:
json.dump(vega_spec_verl, f, indent=2)
# ===== 2. Compare env/all/ac_tokens_per_turn =====
tokens_chart_data = []
for key in ["q20_no_search_4b", "q20_no_search_30b", "q20_search_4b"]:
config = training_files[key]
data = all_training_data[key]
for entry in data:
step = entry.get("step", 0)
if "env/all/ac_tokens_per_turn" in entry:
tokens_chart_data.append(
{
"step": step,
"tokens_per_turn": entry["env/all/ac_tokens_per_turn"],
"configuration": config["name"],
}
)
vega_spec_tokens = {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Action Tokens Per Turn Comparison",
"width": 600,
"height": 400,
"config": {
"axis": {"labelFontSize": 14, "titleFontSize": 16, "titleFontWeight": "normal"},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5,
},
},
"data": {"values": tokens_chart_data},
"mark": {"type": "line", "point": True, "strokeWidth": 2.5},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {"domain": [0, max(d["step"] for d in tokens_chart_data)]},
},
"y": {
"field": "tokens_per_turn",
"type": "quantitative",
"title": "Action Tokens Per Turn",
},
"color": {
"field": "configuration",
"type": "nominal",
"title": "Configuration",
"scale": {
"domain": ["Tinker Qwen3-4B", "Tinker Qwen3-30B", "Tinker Qwen3-4B + Tool"],
"range": ["#2E86AB", "#E63946", "#06A77D"],
},
"legend": {
"orient": "top-left",
},
},
},
}
with open("lineplot_tokens_per_turn.json", "w") as f:
json.dump(vega_spec_tokens, f, indent=2)
# ===== 3. Compare val accuracy vs cost =====
cost_chart_data = []
# Process Tinker data
for key in ["q20_no_search_4b", "q20_no_search_30b"]:
config = training_files[key]
data = all_training_data[key]
cumulative_cost = 0
for entry in data:
step = entry.get("step", 0)
cumulative_cost += compute_tinker_cost(entry, config["model"])
if "test/env/all/reward/total" in entry:
cost_chart_data.append(
{
"cost": cumulative_cost,
"val_accuracy": entry["test/env/all/reward/total"],
"configuration": config["name"],
}
)
# Process VERL data
cumulative_verl_cost = 0
for _, row in verl_data.iterrows():
if pd.notna(row.get("timing_s/step")):
# Cost = (timing_s/step / 3600) * A100_PRICE_PER_HOUR
step_cost = (row["timing_s/step"] / 3600) * A100_PRICE_PER_HOUR
cumulative_verl_cost += step_cost
if pd.notna(row.get("val/reward")):
cost_chart_data.append(
{
"cost": cumulative_verl_cost,
"val_accuracy": row["val/reward"],
"configuration": "VERL Qwen2.5-3B",
}
)
vega_spec_cost = {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Val Accuracy vs Cost",
"width": 600,
"height": 400,
"config": {
"axis": {"labelFontSize": 14, "titleFontSize": 16, "titleFontWeight": "normal"},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5,
},
},
"data": {"values": cost_chart_data},
"mark": {"type": "line", "point": True, "strokeWidth": 2.5},
"encoding": {
"x": {
"field": "cost",
"type": "quantitative",
"title": "Cost ($)",
},
"y": {"field": "val_accuracy", "type": "quantitative", "title": "Val Accuracy"},
"color": {
"field": "configuration",
"type": "nominal",
"title": "Configuration",
"scale": {
"domain": ["Tinker Qwen3-4B", "Tinker Qwen3-30B", "VERL Qwen2.5-3B"],
"range": ["#2E86AB", "#E63946", "#06A77D"],
},
"legend": {
"orient": "bottom-right",
},
},
},
}
with open("lineplot_cost_vs_accuracy.json", "w") as f:
json.dump(vega_spec_cost, f, indent=2)
print("Created line plot specifications:")
print(" - lineplot_accuracy_q20_no_search_4b.json")
print(" - lineplot_accuracy_q20_no_search_30b.json")
print(" - lineplot_accuracy_q20_search_4b.json")
print(" - lineplot_accuracy_verl.json")
print(" - lineplot_tokens_per_turn.json")
print(" - lineplot_cost_vs_accuracy.json")
# Print summary statistics
print("\n=== Final Validation Accuracy ===")
for key, config in training_files.items():
data = all_training_data[key]
final_val_acc = None
for entry in reversed(data):
if "test/env/all/reward/total" in entry:
final_val_acc = entry["test/env/all/reward/total"]
break
if final_val_acc is not None:
print(f"{config['name']:25s}: {final_val_acc:.4f}")
verl_final_val = verl_data[verl_data["val/reward"].notna()]["val/reward"].iloc[-1]
print(f"{'VERL':25s}: {verl_final_val:.4f}")
print("\n=== Total Cost ===")
for key, config in training_files.items():
data = all_training_data[key]
total_cost = sum(compute_tinker_cost(entry, config["model"]) for entry in data)
print(f"{config['name']:25s}: ${total_cost:.2f}")
verl_total_cost = sum(
(row["timing_s/step"] / 3600) * A100_PRICE_PER_HOUR
for _, row in verl_data.iterrows()
if pd.notna(row.get("timing_s/step"))
)
print(f"{'VERL':25s}: ${verl_total_cost:.2f}")
@@ -0,0 +1,456 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Training and Val Accuracy - Tinker Qwen3-30B",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"step": 0,
"accuracy": 0.4296875,
"type": "Train"
},
{
"step": 0,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 1,
"accuracy": 0.5703125,
"type": "Train"
},
{
"step": 2,
"accuracy": 0.59375,
"type": "Train"
},
{
"step": 3,
"accuracy": 0.578125,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.5625,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.55,
"type": "Val"
},
{
"step": 5,
"accuracy": 0.55078125,
"type": "Train"
},
{
"step": 6,
"accuracy": 0.60546875,
"type": "Train"
},
{
"step": 7,
"accuracy": 0.609375,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.56640625,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.55,
"type": "Val"
},
{
"step": 9,
"accuracy": 0.41015625,
"type": "Train"
},
{
"step": 10,
"accuracy": 0.47265625,
"type": "Train"
},
{
"step": 11,
"accuracy": 0.48828125,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.5625,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.35,
"type": "Val"
},
{
"step": 13,
"accuracy": 0.62109375,
"type": "Train"
},
{
"step": 14,
"accuracy": 0.71484375,
"type": "Train"
},
{
"step": 15,
"accuracy": 0.53515625,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.5546875,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.425,
"type": "Val"
},
{
"step": 17,
"accuracy": 0.48828125,
"type": "Train"
},
{
"step": 18,
"accuracy": 0.46484375,
"type": "Train"
},
{
"step": 19,
"accuracy": 0.484375,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.6953125,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.65,
"type": "Val"
},
{
"step": 21,
"accuracy": 0.6875,
"type": "Train"
},
{
"step": 22,
"accuracy": 0.68359375,
"type": "Train"
},
{
"step": 23,
"accuracy": 0.83984375,
"type": "Train"
},
{
"step": 24,
"accuracy": 0.6015625,
"type": "Train"
},
{
"step": 24,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 25,
"accuracy": 0.30078125,
"type": "Train"
},
{
"step": 26,
"accuracy": 0.46875,
"type": "Train"
},
{
"step": 27,
"accuracy": 0.8203125,
"type": "Train"
},
{
"step": 28,
"accuracy": 0.7890625,
"type": "Train"
},
{
"step": 28,
"accuracy": 0.65,
"type": "Val"
},
{
"step": 29,
"accuracy": 0.73046875,
"type": "Train"
},
{
"step": 30,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 31,
"accuracy": 0.51171875,
"type": "Train"
},
{
"step": 32,
"accuracy": 0.6953125,
"type": "Train"
},
{
"step": 32,
"accuracy": 0.475,
"type": "Val"
},
{
"step": 33,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 34,
"accuracy": 0.84375,
"type": "Train"
},
{
"step": 35,
"accuracy": 0.8125,
"type": "Train"
},
{
"step": 36,
"accuracy": 0.87109375,
"type": "Train"
},
{
"step": 36,
"accuracy": 0.55,
"type": "Val"
},
{
"step": 37,
"accuracy": 0.7734375,
"type": "Train"
},
{
"step": 38,
"accuracy": 0.79296875,
"type": "Train"
},
{
"step": 39,
"accuracy": 0.66796875,
"type": "Train"
},
{
"step": 40,
"accuracy": 0.796875,
"type": "Train"
},
{
"step": 40,
"accuracy": 0.575,
"type": "Val"
},
{
"step": 41,
"accuracy": 0.8125,
"type": "Train"
},
{
"step": 42,
"accuracy": 0.6484375,
"type": "Train"
},
{
"step": 43,
"accuracy": 0.7734375,
"type": "Train"
},
{
"step": 44,
"accuracy": 0.53515625,
"type": "Train"
},
{
"step": 44,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 45,
"accuracy": 0.6484375,
"type": "Train"
},
{
"step": 46,
"accuracy": 0.6015625,
"type": "Train"
},
{
"step": 47,
"accuracy": 0.40234375,
"type": "Train"
},
{
"step": 48,
"accuracy": 0.5,
"type": "Train"
},
{
"step": 48,
"accuracy": 0.475,
"type": "Val"
},
{
"step": 49,
"accuracy": 0.3515625,
"type": "Train"
},
{
"step": 50,
"accuracy": 0.62890625,
"type": "Train"
},
{
"step": 51,
"accuracy": 0.63671875,
"type": "Train"
},
{
"step": 52,
"accuracy": 0.44921875,
"type": "Train"
},
{
"step": 52,
"accuracy": 0.4,
"type": "Val"
},
{
"step": 53,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 54,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 55,
"accuracy": 0.3984375,
"type": "Train"
},
{
"step": 56,
"accuracy": 0.6640625,
"type": "Train"
},
{
"step": 56,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 57,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 58,
"accuracy": 0.55859375,
"type": "Train"
},
{
"step": 59,
"accuracy": 0.625,
"type": "Train"
},
{
"step": 60,
"accuracy": 0.60546875,
"type": "Train"
},
{
"step": 60,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 61,
"accuracy": 0.44921875,
"type": "Train"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {
"domain": [
0,
61
]
}
},
"y": {
"field": "accuracy",
"type": "quantitative",
"title": "Accuracy"
},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {
"domain": [
"Train",
"Val"
],
"range": [
"#2E86AB",
"#E63946"
]
},
"legend": {
"orient": "bottom-right"
}
}
}
}
@@ -0,0 +1,441 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Training and Val Accuracy - Tinker Qwen3-4B",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"step": 0,
"accuracy": 0.16015625,
"type": "Train"
},
{
"step": 0,
"accuracy": 0.075,
"type": "Val"
},
{
"step": 1,
"accuracy": 0.4140625,
"type": "Train"
},
{
"step": 2,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 3,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.48828125,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 5,
"accuracy": 0.359375,
"type": "Train"
},
{
"step": 6,
"accuracy": 0.4140625,
"type": "Train"
},
{
"step": 7,
"accuracy": 0.4765625,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.33984375,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 9,
"accuracy": 0.40625,
"type": "Train"
},
{
"step": 10,
"accuracy": 0.41796875,
"type": "Train"
},
{
"step": 11,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.66015625,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.475,
"type": "Val"
},
{
"step": 13,
"accuracy": 0.640625,
"type": "Train"
},
{
"step": 14,
"accuracy": 0.5703125,
"type": "Train"
},
{
"step": 15,
"accuracy": 0.64453125,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.62109375,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.5,
"type": "Val"
},
{
"step": 17,
"accuracy": 0.6484375,
"type": "Train"
},
{
"step": 18,
"accuracy": 0.578125,
"type": "Train"
},
{
"step": 19,
"accuracy": 0.5078125,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.5,
"type": "Val"
},
{
"step": 21,
"accuracy": 0.53515625,
"type": "Train"
},
{
"step": 22,
"accuracy": 0.69140625,
"type": "Train"
},
{
"step": 23,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 24,
"accuracy": 0.4765625,
"type": "Train"
},
{
"step": 24,
"accuracy": 0.525,
"type": "Val"
},
{
"step": 25,
"accuracy": 0.7734375,
"type": "Train"
},
{
"step": 26,
"accuracy": 0.56640625,
"type": "Train"
},
{
"step": 27,
"accuracy": 0.53125,
"type": "Train"
},
{
"step": 28,
"accuracy": 0.625,
"type": "Train"
},
{
"step": 28,
"accuracy": 0.525,
"type": "Val"
},
{
"step": 29,
"accuracy": 0.53515625,
"type": "Train"
},
{
"step": 30,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 31,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 32,
"accuracy": 0.58203125,
"type": "Train"
},
{
"step": 32,
"accuracy": 0.6,
"type": "Val"
},
{
"step": 33,
"accuracy": 0.5625,
"type": "Train"
},
{
"step": 34,
"accuracy": 0.66015625,
"type": "Train"
},
{
"step": 35,
"accuracy": 0.64453125,
"type": "Train"
},
{
"step": 36,
"accuracy": 0.75,
"type": "Train"
},
{
"step": 36,
"accuracy": 0.525,
"type": "Val"
},
{
"step": 37,
"accuracy": 0.63671875,
"type": "Train"
},
{
"step": 38,
"accuracy": 0.671875,
"type": "Train"
},
{
"step": 39,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 40,
"accuracy": 0.671875,
"type": "Train"
},
{
"step": 40,
"accuracy": 0.475,
"type": "Val"
},
{
"step": 41,
"accuracy": 0.70703125,
"type": "Train"
},
{
"step": 42,
"accuracy": 0.67578125,
"type": "Train"
},
{
"step": 43,
"accuracy": 0.61328125,
"type": "Train"
},
{
"step": 44,
"accuracy": 0.54296875,
"type": "Train"
},
{
"step": 44,
"accuracy": 0.55,
"type": "Val"
},
{
"step": 45,
"accuracy": 0.546875,
"type": "Train"
},
{
"step": 46,
"accuracy": 0.80859375,
"type": "Train"
},
{
"step": 47,
"accuracy": 0.63671875,
"type": "Train"
},
{
"step": 48,
"accuracy": 0.7421875,
"type": "Train"
},
{
"step": 48,
"accuracy": 0.55,
"type": "Val"
},
{
"step": 49,
"accuracy": 0.66015625,
"type": "Train"
},
{
"step": 50,
"accuracy": 0.71484375,
"type": "Train"
},
{
"step": 51,
"accuracy": 0.77734375,
"type": "Train"
},
{
"step": 52,
"accuracy": 0.70703125,
"type": "Train"
},
{
"step": 52,
"accuracy": 0.6,
"type": "Val"
},
{
"step": 53,
"accuracy": 0.65234375,
"type": "Train"
},
{
"step": 54,
"accuracy": 0.65234375,
"type": "Train"
},
{
"step": 55,
"accuracy": 0.5703125,
"type": "Train"
},
{
"step": 56,
"accuracy": 0.8046875,
"type": "Train"
},
{
"step": 56,
"accuracy": 0.5,
"type": "Val"
},
{
"step": 57,
"accuracy": 0.66796875,
"type": "Train"
},
{
"step": 58,
"accuracy": 0.8671875,
"type": "Train"
},
{
"step": 59,
"accuracy": 0.78515625,
"type": "Train"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {
"domain": [
0,
59
]
}
},
"y": {
"field": "accuracy",
"type": "quantitative",
"title": "Accuracy"
},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {
"domain": [
"Train",
"Val"
],
"range": [
"#2E86AB",
"#E63946"
]
},
"legend": {
"orient": "bottom-right"
}
}
}
}
@@ -0,0 +1,206 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Training and Val Accuracy - Tinker Qwen3-4B + Tool",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"step": 0,
"accuracy": 0.53125,
"type": "Train"
},
{
"step": 0,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 1,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 2,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 3,
"accuracy": 0.5546875,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.5546875,
"type": "Train"
},
{
"step": 4,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 5,
"accuracy": 0.44921875,
"type": "Train"
},
{
"step": 6,
"accuracy": 0.5625,
"type": "Train"
},
{
"step": 7,
"accuracy": 0.4765625,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.48046875,
"type": "Train"
},
{
"step": 8,
"accuracy": 0.4,
"type": "Val"
},
{
"step": 9,
"accuracy": 0.39453125,
"type": "Train"
},
{
"step": 10,
"accuracy": 0.34765625,
"type": "Train"
},
{
"step": 11,
"accuracy": 0.52734375,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.5390625,
"type": "Train"
},
{
"step": 12,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 13,
"accuracy": 0.65234375,
"type": "Train"
},
{
"step": 14,
"accuracy": 0.578125,
"type": "Train"
},
{
"step": 15,
"accuracy": 0.47265625,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.54296875,
"type": "Train"
},
{
"step": 16,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 17,
"accuracy": 0.47265625,
"type": "Train"
},
{
"step": 18,
"accuracy": 0.22265625,
"type": "Train"
},
{
"step": 19,
"accuracy": 0.08203125,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.27734375,
"type": "Train"
},
{
"step": 20,
"accuracy": 0.2,
"type": "Val"
},
{
"step": 21,
"accuracy": 0.1328125,
"type": "Train"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {
"domain": [
0,
21
]
}
},
"y": {
"field": "accuracy",
"type": "quantitative",
"title": "Accuracy"
},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {
"domain": [
"Train",
"Val"
],
"range": [
"#2E86AB",
"#E63946"
]
},
"legend": {
"orient": "bottom-left"
}
}
}
}
@@ -0,0 +1,696 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Training and Val Accuracy - VERL",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"step": 0.0,
"accuracy": 0.1,
"type": "Val"
},
{
"step": 1.0,
"accuracy": 0.3046875,
"type": "Train"
},
{
"step": 2.0,
"accuracy": 0.3046875,
"type": "Train"
},
{
"step": 3.0,
"accuracy": 0.3046875,
"type": "Train"
},
{
"step": 4.0,
"accuracy": 0.1953125,
"type": "Train"
},
{
"step": 4.0,
"accuracy": 0.175,
"type": "Val"
},
{
"step": 5.0,
"accuracy": 0.328125,
"type": "Train"
},
{
"step": 6.0,
"accuracy": 0.234375,
"type": "Train"
},
{
"step": 7.0,
"accuracy": 0.3828125,
"type": "Train"
},
{
"step": 8.0,
"accuracy": 0.140625,
"type": "Train"
},
{
"step": 8.0,
"accuracy": 0.2,
"type": "Val"
},
{
"step": 9.0,
"accuracy": 0.125,
"type": "Train"
},
{
"step": 10.0,
"accuracy": 0.3125,
"type": "Train"
},
{
"step": 11.0,
"accuracy": 0.3125,
"type": "Train"
},
{
"step": 12.0,
"accuracy": 0.25,
"type": "Train"
},
{
"step": 12.0,
"accuracy": 0.2,
"type": "Val"
},
{
"step": 13.0,
"accuracy": 0.28125,
"type": "Train"
},
{
"step": 14.0,
"accuracy": 0.328125,
"type": "Train"
},
{
"step": 15.0,
"accuracy": 0.5078125,
"type": "Train"
},
{
"step": 16.0,
"accuracy": 0.375,
"type": "Train"
},
{
"step": 16.0,
"accuracy": 0.225,
"type": "Val"
},
{
"step": 17.0,
"accuracy": 0.25,
"type": "Train"
},
{
"step": 18.0,
"accuracy": 0.328125,
"type": "Train"
},
{
"step": 19.0,
"accuracy": 0.359375,
"type": "Train"
},
{
"step": 20.0,
"accuracy": 0.3515625,
"type": "Train"
},
{
"step": 20.0,
"accuracy": 0.3,
"type": "Val"
},
{
"step": 21.0,
"accuracy": 0.578125,
"type": "Train"
},
{
"step": 22.0,
"accuracy": 0.3515625,
"type": "Train"
},
{
"step": 23.0,
"accuracy": 0.3671875,
"type": "Train"
},
{
"step": 24.0,
"accuracy": 0.515625,
"type": "Train"
},
{
"step": 24.0,
"accuracy": 0.225,
"type": "Val"
},
{
"step": 25.0,
"accuracy": 0.3046875,
"type": "Train"
},
{
"step": 26.0,
"accuracy": 0.5078125,
"type": "Train"
},
{
"step": 27.0,
"accuracy": 0.40625,
"type": "Train"
},
{
"step": 28.0,
"accuracy": 0.2578125,
"type": "Train"
},
{
"step": 28.0,
"accuracy": 0.3,
"type": "Val"
},
{
"step": 29.0,
"accuracy": 0.5,
"type": "Train"
},
{
"step": 30.0,
"accuracy": 0.3515625,
"type": "Train"
},
{
"step": 31.0,
"accuracy": 0.328125,
"type": "Train"
},
{
"step": 32.0,
"accuracy": 0.34375,
"type": "Train"
},
{
"step": 32.0,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 33.0,
"accuracy": 0.515625,
"type": "Train"
},
{
"step": 34.0,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 35.0,
"accuracy": 0.34375,
"type": "Train"
},
{
"step": 36.0,
"accuracy": 0.578125,
"type": "Train"
},
{
"step": 36.0,
"accuracy": 0.35,
"type": "Val"
},
{
"step": 37.0,
"accuracy": 0.6640625,
"type": "Train"
},
{
"step": 38.0,
"accuracy": 0.34375,
"type": "Train"
},
{
"step": 39.0,
"accuracy": 0.4609375,
"type": "Train"
},
{
"step": 40.0,
"accuracy": 0.4921875,
"type": "Train"
},
{
"step": 40.0,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 41.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 42.0,
"accuracy": 0.71875,
"type": "Train"
},
{
"step": 43.0,
"accuracy": 0.609375,
"type": "Train"
},
{
"step": 44.0,
"accuracy": 0.53125,
"type": "Train"
},
{
"step": 44.0,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 45.0,
"accuracy": 0.421875,
"type": "Train"
},
{
"step": 46.0,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 47.0,
"accuracy": 0.5078125,
"type": "Train"
},
{
"step": 48.0,
"accuracy": 0.5390625,
"type": "Train"
},
{
"step": 48.0,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 49.0,
"accuracy": 0.5546875,
"type": "Train"
},
{
"step": 50.0,
"accuracy": 0.3359375,
"type": "Train"
},
{
"step": 51.0,
"accuracy": 0.7265625,
"type": "Train"
},
{
"step": 52.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 52.0,
"accuracy": 0.375,
"type": "Val"
},
{
"step": 53.0,
"accuracy": 0.4375,
"type": "Train"
},
{
"step": 54.0,
"accuracy": 0.59375,
"type": "Train"
},
{
"step": 55.0,
"accuracy": 0.6484375,
"type": "Train"
},
{
"step": 56.0,
"accuracy": 0.3671875,
"type": "Train"
},
{
"step": 56.0,
"accuracy": 0.35,
"type": "Val"
},
{
"step": 57.0,
"accuracy": 0.5390625,
"type": "Train"
},
{
"step": 58.0,
"accuracy": 0.4765625,
"type": "Train"
},
{
"step": 59.0,
"accuracy": 0.5546875,
"type": "Train"
},
{
"step": 60.0,
"accuracy": 0.609375,
"type": "Train"
},
{
"step": 60.0,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 61.0,
"accuracy": 0.7734375,
"type": "Train"
},
{
"step": 62.0,
"accuracy": 0.421875,
"type": "Train"
},
{
"step": 63.0,
"accuracy": 0.546875,
"type": "Train"
},
{
"step": 64.0,
"accuracy": 0.6953125,
"type": "Train"
},
{
"step": 64.0,
"accuracy": 0.45,
"type": "Val"
},
{
"step": 65.0,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 66.0,
"accuracy": 0.4609375,
"type": "Train"
},
{
"step": 67.0,
"accuracy": 0.671875,
"type": "Train"
},
{
"step": 68.0,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 68.0,
"accuracy": 0.425,
"type": "Val"
},
{
"step": 69.0,
"accuracy": 0.515625,
"type": "Train"
},
{
"step": 70.0,
"accuracy": 0.4921875,
"type": "Train"
},
{
"step": 71.0,
"accuracy": 0.5390625,
"type": "Train"
},
{
"step": 72.0,
"accuracy": 0.3125,
"type": "Train"
},
{
"step": 72.0,
"accuracy": 0.275,
"type": "Val"
},
{
"step": 73.0,
"accuracy": 0.5859375,
"type": "Train"
},
{
"step": 74.0,
"accuracy": 0.625,
"type": "Train"
},
{
"step": 75.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 76.0,
"accuracy": 0.6171875,
"type": "Train"
},
{
"step": 76.0,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 77.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 78.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 79.0,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 80.0,
"accuracy": 0.5,
"type": "Train"
},
{
"step": 80.0,
"accuracy": 0.3,
"type": "Val"
},
{
"step": 81.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 82.0,
"accuracy": 0.5,
"type": "Train"
},
{
"step": 83.0,
"accuracy": 0.71875,
"type": "Train"
},
{
"step": 84.0,
"accuracy": 0.640625,
"type": "Train"
},
{
"step": 84.0,
"accuracy": 0.4,
"type": "Val"
},
{
"step": 85.0,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 86.0,
"accuracy": 0.609375,
"type": "Train"
},
{
"step": 87.0,
"accuracy": 0.7734375,
"type": "Train"
},
{
"step": 88.0,
"accuracy": 0.5234375,
"type": "Train"
},
{
"step": 88.0,
"accuracy": 0.325,
"type": "Val"
},
{
"step": 89.0,
"accuracy": 0.4921875,
"type": "Train"
},
{
"step": 90.0,
"accuracy": 0.5390625,
"type": "Train"
},
{
"step": 91.0,
"accuracy": 0.515625,
"type": "Train"
},
{
"step": 92.0,
"accuracy": 0.6640625,
"type": "Train"
},
{
"step": 92.0,
"accuracy": 0.425,
"type": "Val"
},
{
"step": 93.0,
"accuracy": 0.7890625,
"type": "Train"
},
{
"step": 94.0,
"accuracy": 0.5703125,
"type": "Train"
},
{
"step": 95.0,
"accuracy": 0.5625,
"type": "Train"
},
{
"step": 96.0,
"accuracy": 0.4765625,
"type": "Train"
},
{
"step": 96.0,
"accuracy": 0.475,
"type": "Val"
},
{
"step": 97.0,
"accuracy": 0.703125,
"type": "Train"
},
{
"step": 98.0,
"accuracy": 0.6328125,
"type": "Train"
},
{
"step": 99.0,
"accuracy": 0.65625,
"type": "Train"
},
{
"step": 100.0,
"accuracy": 0.46875,
"type": "Train"
},
{
"step": 100.0,
"accuracy": 0.425,
"type": "Val"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {
"domain": [
0,
100.0
]
}
},
"y": {
"field": "accuracy",
"type": "quantitative",
"title": "Accuracy"
},
"color": {
"field": "type",
"type": "nominal",
"title": "Type",
"scale": {
"domain": [
"Train",
"Val"
],
"range": [
"#2E86AB",
"#E63946"
]
},
"legend": {
"orient": "bottom-right"
}
}
}
}
@@ -0,0 +1,342 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Val Accuracy vs Cost",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"cost": 3.7392773500000005,
"val_accuracy": 0.075,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 14.95379565,
"val_accuracy": 0.325,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 27.66787565,
"val_accuracy": 0.45,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 47.911811650000004,
"val_accuracy": 0.475,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 65.1157225,
"val_accuracy": 0.5,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 81.66279970000001,
"val_accuracy": 0.5,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 101.13140965000001,
"val_accuracy": 0.525,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 116.8564511,
"val_accuracy": 0.525,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 135.12867545,
"val_accuracy": 0.6,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 153.6816058,
"val_accuracy": 0.525,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 167.44704445,
"val_accuracy": 0.475,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 181.8056233,
"val_accuracy": 0.55,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 198.6999795,
"val_accuracy": 0.55,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 227.40255685000002,
"val_accuracy": 0.6,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 251.62529285000002,
"val_accuracy": 0.5,
"configuration": "Tinker Qwen3-4B"
},
{
"cost": 5.624407739999999,
"val_accuracy": 0.45,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 23.97244242,
"val_accuracy": 0.55,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 42.03107424,
"val_accuracy": 0.55,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 59.24323644,
"val_accuracy": 0.35,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 74.73064284,
"val_accuracy": 0.425,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 94.90378338,
"val_accuracy": 0.65,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 110.74922045999999,
"val_accuracy": 0.375,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 124.05859518,
"val_accuracy": 0.65,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 139.97157606000002,
"val_accuracy": 0.475,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 154.39442820000002,
"val_accuracy": 0.55,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 168.87388362000002,
"val_accuracy": 0.575,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 184.0533441,
"val_accuracy": 0.45,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 201.06419861999998,
"val_accuracy": 0.475,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 218.93213687999997,
"val_accuracy": 0.4,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 235.73605745999998,
"val_accuracy": 0.45,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 252.83231526,
"val_accuracy": 0.375,
"configuration": "Tinker Qwen3-30B"
},
{
"cost": 4.770676390511556,
"val_accuracy": 0.175,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 9.587738320584943,
"val_accuracy": 0.2,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 14.620960502684383,
"val_accuracy": 0.2,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 19.098718912799843,
"val_accuracy": 0.225,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 24.147201265893468,
"val_accuracy": 0.3,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 28.66900346650494,
"val_accuracy": 0.225,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 33.47634962459037,
"val_accuracy": 0.3,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 38.46955601493755,
"val_accuracy": 0.325,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 42.84779342914499,
"val_accuracy": 0.35,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 47.15873886757922,
"val_accuracy": 0.375,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 51.041183419879324,
"val_accuracy": 0.325,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 55.261045190994224,
"val_accuracy": 0.45,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 59.18169967970278,
"val_accuracy": 0.375,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 63.30254289794692,
"val_accuracy": 0.35,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 68.08947399764628,
"val_accuracy": 0.325,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 72.40797675581084,
"val_accuracy": 0.45,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 76.53497794975237,
"val_accuracy": 0.425,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 81.40697471974832,
"val_accuracy": 0.275,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 85.61240914113371,
"val_accuracy": 0.325,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 89.89745430964997,
"val_accuracy": 0.3,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 94.20346553989157,
"val_accuracy": 0.4,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 98.52909191982053,
"val_accuracy": 0.325,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 103.0916357339543,
"val_accuracy": 0.425,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 107.82360165101095,
"val_accuracy": 0.475,
"configuration": "VERL Qwen2.5-3B"
},
{
"cost": 112.76253944943569,
"val_accuracy": 0.425,
"configuration": "VERL Qwen2.5-3B"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "cost",
"type": "quantitative",
"title": "Cost ($)"
},
"y": {
"field": "val_accuracy",
"type": "quantitative",
"title": "Val Accuracy"
},
"color": {
"field": "configuration",
"type": "nominal",
"title": "Configuration",
"scale": {
"domain": [
"Tinker Qwen3-4B",
"Tinker Qwen3-30B",
"VERL Qwen2.5-3B"
],
"range": [
"#2E86AB",
"#E63946",
"#06A77D"
]
},
"legend": {
"orient": "bottom-right"
}
}
}
}
@@ -0,0 +1,788 @@
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Action Tokens Per Turn Comparison",
"width": 600,
"height": 400,
"config": {
"axis": {
"labelFontSize": 14,
"titleFontSize": 16,
"titleFontWeight": "normal"
},
"legend": {
"labelFontSize": 14,
"titleFontSize": 14,
"fillColor": "white",
"strokeColor": "#ccc",
"padding": 10,
"cornerRadius": 5
}
},
"data": {
"values": [
{
"step": 0,
"tokens_per_turn": 10.84292082360433,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 1,
"tokens_per_turn": 17.040462427745666,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 2,
"tokens_per_turn": 19.226602467649712,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 3,
"tokens_per_turn": 19.229078613694,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 4,
"tokens_per_turn": 19.452207937395194,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 5,
"tokens_per_turn": 18.964934409687185,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 6,
"tokens_per_turn": 20.577408256880734,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 7,
"tokens_per_turn": 202.28745072273324,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 8,
"tokens_per_turn": 262.01701323251416,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 9,
"tokens_per_turn": 303.62201656113007,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 10,
"tokens_per_turn": 271.5405667231775,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 11,
"tokens_per_turn": 306.1193776520509,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 12,
"tokens_per_turn": 271.14108830237865,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 13,
"tokens_per_turn": 293.46173469387753,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 14,
"tokens_per_turn": 397.12382445141066,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 15,
"tokens_per_turn": 320.1151816206147,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 16,
"tokens_per_turn": 264.6111111111111,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 17,
"tokens_per_turn": 238.92634643377002,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 18,
"tokens_per_turn": 251.2981612446959,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 19,
"tokens_per_turn": 275.0129232359783,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 20,
"tokens_per_turn": 274.1205400192864,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 21,
"tokens_per_turn": 363.8806929309863,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 22,
"tokens_per_turn": 320.3224254090472,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 23,
"tokens_per_turn": 307.72612055641423,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 24,
"tokens_per_turn": 326.91166358106324,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 25,
"tokens_per_turn": 237.49561557348298,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 26,
"tokens_per_turn": 288.19513513513516,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 27,
"tokens_per_turn": 311.4904214559387,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 28,
"tokens_per_turn": 258.8397394136808,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 29,
"tokens_per_turn": 311.28252480705623,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 30,
"tokens_per_turn": 307.71352702280535,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 31,
"tokens_per_turn": 341.4409015942826,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 32,
"tokens_per_turn": 331.9624168834923,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 33,
"tokens_per_turn": 350.26873156342185,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 34,
"tokens_per_turn": 383.07463976945246,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 35,
"tokens_per_turn": 406.3917022574741,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 36,
"tokens_per_turn": 380.7557395558901,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 37,
"tokens_per_turn": 236.79851411589897,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 38,
"tokens_per_turn": 169.3174698795181,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 39,
"tokens_per_turn": 192.09332974717591,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 40,
"tokens_per_turn": 224.9321047526673,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 41,
"tokens_per_turn": 237.0116318850496,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 42,
"tokens_per_turn": 230.68977415307404,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 43,
"tokens_per_turn": 232.1818181818182,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 44,
"tokens_per_turn": 247.30457267283614,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 45,
"tokens_per_turn": 318.63033305807875,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 46,
"tokens_per_turn": 291.3779166666667,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 47,
"tokens_per_turn": 371.8033917792469,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 48,
"tokens_per_turn": 360.741146403797,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 49,
"tokens_per_turn": 554.9695753928452,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 50,
"tokens_per_turn": 605.9398252992559,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 51,
"tokens_per_turn": 439.35208497246265,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 52,
"tokens_per_turn": 602.9775463716238,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 53,
"tokens_per_turn": 496.06776499844574,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 54,
"tokens_per_turn": 503.6168253968254,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 55,
"tokens_per_turn": 525.3027011156782,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 56,
"tokens_per_turn": 488.0728670816551,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 57,
"tokens_per_turn": 547.2383506537043,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 58,
"tokens_per_turn": 412.719967199672,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 59,
"tokens_per_turn": 419.679843444227,
"configuration": "Tinker Qwen3-4B"
},
{
"step": 0,
"tokens_per_turn": 14.589561091340451,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 1,
"tokens_per_turn": 16.39477503628447,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 2,
"tokens_per_turn": 21.06334434103873,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 3,
"tokens_per_turn": 20.642736960179473,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 4,
"tokens_per_turn": 20.790917691579942,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 5,
"tokens_per_turn": 22.70949720670391,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 6,
"tokens_per_turn": 23.781633906633907,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 7,
"tokens_per_turn": 21.777342657342658,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 8,
"tokens_per_turn": 21.864993026499302,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 9,
"tokens_per_turn": 21.887614678899084,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 10,
"tokens_per_turn": 20.514492753623188,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 11,
"tokens_per_turn": 18.67866473149492,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 12,
"tokens_per_turn": 19.046985564675914,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 13,
"tokens_per_turn": 19.163094440723377,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 14,
"tokens_per_turn": 19.61511423550088,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 15,
"tokens_per_turn": 19.29924480805538,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 16,
"tokens_per_turn": 19.060841983852363,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 17,
"tokens_per_turn": 19.025021085184143,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 18,
"tokens_per_turn": 19.00432459933859,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 19,
"tokens_per_turn": 24.367880276971185,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 20,
"tokens_per_turn": 22.185911016949152,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 21,
"tokens_per_turn": 21.10884930732259,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 22,
"tokens_per_turn": 20.36131271694541,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 23,
"tokens_per_turn": 19.981538461538463,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 24,
"tokens_per_turn": 19.548079699682358,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 25,
"tokens_per_turn": 19.42005076142132,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 26,
"tokens_per_turn": 19.310438074634938,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 27,
"tokens_per_turn": 21.395283350932772,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 28,
"tokens_per_turn": 20.811956110480516,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 29,
"tokens_per_turn": 19.421426157485637,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 30,
"tokens_per_turn": 19.23582837456937,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 31,
"tokens_per_turn": 19.12336339831248,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 32,
"tokens_per_turn": 19.314538250533374,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 33,
"tokens_per_turn": 19.63292181069959,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 34,
"tokens_per_turn": 19.884480337078653,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 35,
"tokens_per_turn": 19.873958710612097,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 36,
"tokens_per_turn": 19.72174590802806,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 37,
"tokens_per_turn": 19.828388401888066,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 38,
"tokens_per_turn": 19.989621694007365,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 39,
"tokens_per_turn": 20.14512785072564,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 40,
"tokens_per_turn": 19.925142665323936,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 41,
"tokens_per_turn": 19.872705018359852,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 42,
"tokens_per_turn": 19.591796228911676,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 43,
"tokens_per_turn": 19.65451230628988,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 44,
"tokens_per_turn": 19.513475575519372,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 45,
"tokens_per_turn": 19.469111969111967,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 46,
"tokens_per_turn": 19.477763659466326,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 47,
"tokens_per_turn": 19.225692695214107,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 48,
"tokens_per_turn": 19.036710719530102,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 49,
"tokens_per_turn": 18.994319585082735,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 50,
"tokens_per_turn": 19.107879924953096,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 51,
"tokens_per_turn": 19.60715416270972,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 52,
"tokens_per_turn": 19.840501792114697,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 53,
"tokens_per_turn": 19.81584699453552,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 54,
"tokens_per_turn": 19.74383477188656,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 55,
"tokens_per_turn": 19.94179600886918,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 56,
"tokens_per_turn": 20.085819644653032,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 57,
"tokens_per_turn": 21.385698808234018,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 58,
"tokens_per_turn": 20.53149721652505,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 59,
"tokens_per_turn": 20.40258620689655,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 60,
"tokens_per_turn": 20.329295505259804,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 61,
"tokens_per_turn": 20.020318930041153,
"configuration": "Tinker Qwen3-30B"
},
{
"step": 0,
"tokens_per_turn": 122.75873221216041,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 1,
"tokens_per_turn": 158.65698895279832,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 2,
"tokens_per_turn": 192.28079967525878,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 3,
"tokens_per_turn": 182.0920598388953,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 4,
"tokens_per_turn": 221.60054137664346,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 5,
"tokens_per_turn": 228.1719982145514,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 6,
"tokens_per_turn": 201.47628789287708,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 7,
"tokens_per_turn": 205.00295358649788,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 8,
"tokens_per_turn": 159.96290671184065,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 9,
"tokens_per_turn": 264.84606015674643,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 10,
"tokens_per_turn": 230.98643315244203,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 11,
"tokens_per_turn": 253.31232002490466,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 12,
"tokens_per_turn": 122.12485939257593,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 13,
"tokens_per_turn": 130.17827598609279,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 14,
"tokens_per_turn": 60.48143274853801,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 15,
"tokens_per_turn": 164.51486138896828,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 16,
"tokens_per_turn": 217.45074780814852,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 17,
"tokens_per_turn": 16.288164912786506,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 18,
"tokens_per_turn": 15.517383254474389,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 19,
"tokens_per_turn": 10.104420884176836,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 20,
"tokens_per_turn": 9.695346197502838,
"configuration": "Tinker Qwen3-4B + Tool"
},
{
"step": 21,
"tokens_per_turn": 8.420275192229866,
"configuration": "Tinker Qwen3-4B + Tool"
}
]
},
"mark": {
"type": "line",
"point": true,
"strokeWidth": 2.5
},
"encoding": {
"x": {
"field": "step",
"type": "quantitative",
"title": "Step",
"scale": {
"domain": [
0,
61
]
}
},
"y": {
"field": "tokens_per_turn",
"type": "quantitative",
"title": "Action Tokens Per Turn"
},
"color": {
"field": "configuration",
"type": "nominal",
"title": "Configuration",
"scale": {
"domain": [
"Tinker Qwen3-4B",
"Tinker Qwen3-30B",
"Tinker Qwen3-4B + Tool"
],
"range": [
"#2E86AB",
"#E63946",
"#06A77D"
]
},
"legend": {
"orient": "top-left"
}
}
}
}