Halo, Sobat Kampus! Buat kalian yang mendalami dunia kecerdasan buatan, Machine Learning, atau sedang mengerjakan tugas akhir berbasis Artificial Intelligence, memahami cara kerja evaluasi model AI adalah sebuah kewajiban. Di era modern ini, agen AI semakin canggih dan kompleks. Namun, bagaimana cara kita mengukur performa mereka secara akurat? Mari kita bedah tutorial EdgeBench untuk mengevaluasi agen AI tingkat lanjut lintas kategori tugas, environment runtime, dan batas waktu interaksi (time budgets).
Sebelum kita menyelam lebih dalam, pastikan kalian sudah menyiapkan environment Python dan mengunduh library yang dibutuhkan. EdgeBench menyediakan sekumpulan data yang sangat kaya untuk menganalisis bagaimana model-model besar seperti Claude atau GPT merespons berbagai tantangan pemrograman dan logika. Yuk, kita mulai langkah-langkah praktisnya dengan menjalankan perintah instalasi di bawah ini:
pip -q install "huggingface_hub>=0.23" pandas numpy scipy matplotlib pyyaml
Setelah instalasi selesai, kita perlu mengimpor modul analitik yang diperlukan serta mengonfigurasi pengaturan tampilan dataframe agar rapi saat dieksekusi di Jupyter Notebook atau Google Colab.
import os, glob, json, textwrap, warnings
import numpy as np, pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from huggingface_hub import snapshot_download
warnings.filterwarnings("ignore")
pd.set_option("display.max_colwidth", 90)
pd.set_option("display.width", 160)
REPO_ID = "ByteDance-Seed/EdgeBench"
TIME_BUDGETS = [2, 4, 6, 8, 10, 12]
MODELS = ["Claude Opus 4.8", "GPT-5.5", "GPT-5.4", "GLM-5.1", "DS-V4-Pro"]
def banner(t):
print("\n" + "=" * 78 + f"\n {t}\n" + "=" * 78)
def canon_model(name):
n = name.lower()
if "opus" in n:
return "Claude Opus 4.8"
if "5.5" in n:
return "GPT-5.5"
if "5.4" in n:
return "GPT-5.4"
if "glm" in n:
return "GLM-5.1"
if "ds-v4" in n or "deepseek" in n:
return "DS-V4-Pro"
return name
Mengunduh Snapshot Dataset dari Hugging Face
Langkah awal dari analisis riset ini adalah mengunduh dataset lengkap EdgeBench langsung dari repositori Hugging Face. Snapshot ini berisi seluruh spesifikasi tugas, parameter evaluasi, dan metadata penilaian yang krusial untuk eksperimen kita.
banner("1. DOWNLOADING DATASET SNAPSHOT")
local_dir = snapshot_download(repo_id=REPO_ID, repo_type="dataset")
print("Snapshot cached at:", local_dir)
Dengan mengunduh dataset ini secara lokal, kita bisa memprosesnya secara offline tanpa takut koneksi internet kampus yang kadang kurang stabil saat dipakai nugas bareng di cafe.
Memuat Spesifikasi Tugas dan Taksonomi Benchmark
Setiap tugas dalam EdgeBench memiliki konfigurasi unik, mulai dari environment runtime, kebutuhan internet, hingga parameter judging. Kita mem-parsing setiap file JSON ke dalam tabel terstruktur agar mudah dianalisis menggunakan Pandas.
banner("2. LOADING TASK SPECIFICATIONS")
def flatten_task(d):
work, judge = d.get("work", {}) or {}, d.get("judge", {}) or {}
rescale = judge.get("rescale", {}) or {}
return {
"task_id": d.get("task_id"),
"name": d.get("name"),
"category": d.get("category"),
"base_image": d.get("base_image"),
"internet": d.get("internet"),
"game_mode": d.get("game_mode", False),
"cwd": d.get("cwd"),
"n_submit": len(d.get("submit_paths", []) or []),
"submit_paths": ", ".join(d.get("submit_paths", []) or []) or "(interactive)",
"parser": judge.get("parser") or "(game)",
"score_dir": judge.get("score_direction", "n/a"),
"selection": judge.get("selection"),
"eval_timeout": judge.get("eval_timeout"),
"rescale_kind": rescale.get("kind"),
"rescale": rescale,
"agent_query": work.get("agent_query", "")
}
records = []
for fp in sorted(glob.glob(os.path.join(local_dir, "*.json"))):
try:
with open(fp) as f:
records.append(flatten_task(json.load(f)))
except Exception as e:
print(" ! skipped", os.path.basename(fp), "->", e)
df = pd.DataFrame(records).dropna(subset=["task_id"]).reset_index(drop=True)
print(f"Loaded {len(df)} task specifications.\n")
Membaca Data Leaderboard dan Hukum Scaling Log-Sigmoid
Setelah data spesifikasi siap, kita melangkah ke bagian paling menarik: menganalisis performa model berdasarkan alokasi waktu interaksi. Apakah semakin lama waktu yang diberikan membuat agen AI semakin pintar? Jawabannya bisa kita temukan dengan menerapkan kurva fitting log-sigmoid.
banner("5. LOG-SIGMOID SCALING LAW")
def log_sigmoid(t, lo, hi, k, t0):
return lo + (hi - lo) / (1.0 + np.exp(-k * (np.log(t) - np.log(t0))))
def r2(y, yhat):
ssr = np.nansum((y - yhat) ** 2)
sst = np.nansum((y - np.nanmean(y)) ** 2)
return 1 - ssr / sst if sst > 0 else np.nan
agg = (
scores.groupby(["model", "hours"])["score"]
.mean()
.unstack("hours")
.reindex(index=MODELS)[TIME_BUDGETS]
)
print("Per-task mean by model & hour:\n", agg.round(2).to_string(), "\n")
Worth It Gak Buat Mahasiswa?
- Kelebihan: Memberikan pemahaman mendalam secara hands-on mengenai evaluasi agen AI skala riset yang dapat langsung diaplikasikan untuk penelitian skripsi atau proyek machine learning kalian.
- Kekurangan: Membutuhkan spesifikasi hardware yang memadai dan pemahaman pustaka Python tingkat lanjut seperti Pandas dan Scipy agar skrip berjalan lancar tanpa error.
- Kesimpulan: Sangat worth it bagi mahasiswa ilmu komputer atau teknik informatika yang ingin mendalami teknik benchmarking model bahasa besar (LLM) secara profesional.
Jangan ragu untuk terus mengasah kemampuan coding kalian, pelajari dokumentasi resminya, dan siapkan portofolio terbaik kalian sekarang juga demi masa depan karier tech yang cemerlang!