Benchmark: output-tokenit yhteenvetotaulussa per skenaario ja yhteensä

This commit is contained in:
2026-04-14 08:20:32 +03:00
parent b3abf4e89f
commit 02e3701d77

View File

@@ -502,8 +502,9 @@ async function main() {
console.log('\n'); console.log('\n');
const mHeader = [ const mHeader = [
'Malli'.padEnd(35), 'Malli'.padEnd(35),
...scenarioIds.map(s => s.padEnd(18)), ...scenarioIds.map(s => s.padEnd(22)),
'Yht.'.padEnd(8), 'Yht.'.padEnd(8),
'Out'.padEnd(7),
'Aika'.padEnd(8), 'Aika'.padEnd(8),
'tok/s'.padEnd(7), 'tok/s'.padEnd(7),
'Pisteet', 'Pisteet',
@@ -515,21 +516,25 @@ async function main() {
const mrs = results.filter(r => r.model === model); const mrs = results.filter(r => r.model === model);
const cols = scenarioIds.map(sid => { const cols = scenarioIds.map(sid => {
const r = mrs.find(r => r.scenario === sid); const r = mrs.find(r => r.scenario === sid);
if (!r) return '-'.padEnd(18); if (!r) return '-'.padEnd(22);
const t = r.testsTotal > 0 ? `${r.testsPassed}/${r.testsTotal}` : '-'; const t = r.testsTotal > 0 ? `${r.testsPassed}/${r.testsTotal}` : '-';
const s = `${(r.totalDurationMs/1000).toFixed(0)}s`; const s = `${(r.totalDurationMs/1000).toFixed(0)}s`;
return `${t} ${s}`.padEnd(18); const tok = r.totalTokens > 1000 ? `${(r.totalTokens/1000).toFixed(1)}K` : `${r.totalTokens}`;
return `${t} ${s} ${tok}`.padEnd(22);
}); });
const totalPassed = mrs.reduce((s, r) => s + r.testsPassed, 0); const totalPassed = mrs.reduce((s, r) => s + r.testsPassed, 0);
const totalTests = mrs.reduce((s, r) => s + r.testsTotal, 0); const totalTests = mrs.reduce((s, r) => s + r.testsTotal, 0);
const totalTokens = mrs.reduce((s, r) => s + r.totalTokens, 0);
const totalTime = mrs.reduce((s, r) => s + r.totalDurationMs, 0); const totalTime = mrs.reduce((s, r) => s + r.totalDurationMs, 0);
const avgSpeed = mrs.length > 0 ? Math.round(mrs.reduce((s, r) => s + r.avgTokPerSec, 0) / mrs.length) : 0; const avgSpeed = mrs.length > 0 ? Math.round(mrs.reduce((s, r) => s + r.avgTokPerSec, 0) / mrs.length) : 0;
const avgScoreModel = mrs.length > 0 ? Math.round(mrs.reduce((s, r) => s + r.score, 0) / mrs.length) : 0; const avgScoreModel = mrs.length > 0 ? Math.round(mrs.reduce((s, r) => s + r.score, 0) / mrs.length) : 0;
const pct = totalTests > 0 ? Math.round(totalPassed / totalTests * 100) : 0; const pct = totalTests > 0 ? Math.round(totalPassed / totalTests * 100) : 0;
const tokStr = totalTokens > 1000 ? `${(totalTokens/1000).toFixed(1)}K` : `${totalTokens}`;
const row = [ const row = [
model.padEnd(35), model.padEnd(35),
...cols, ...cols,
`${totalPassed}/${totalTests}`.padEnd(8), `${totalPassed}/${totalTests}`.padEnd(8),
tokStr.padEnd(7),
`${(totalTime/1000).toFixed(0)}s`.padEnd(8), `${(totalTime/1000).toFixed(0)}s`.padEnd(8),
`${avgSpeed}`.padEnd(7), `${avgSpeed}`.padEnd(7),
`${starsForScore(avgScoreModel)} ${avgScoreModel}p (${pct}%)`, `${starsForScore(avgScoreModel)} ${avgScoreModel}p (${pct}%)`,