{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": ["# Experiment 04 — Perplexity Comparison Table\n", "Collects results from all ablations and renders a comparison table."] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "# Fill these in after running experiments 01-03\n", "results = {\n", " 'Model': ['Vanilla Transformer', 'Mesh Attention Only', 'Full TMT'],\n", " 'Perplexity': [None, None, None], # replace with actual values\n", " 'Avg Compute / Token': ['100%', '~60%', '~50%'],\n", " 'Innovations': [\n", " 'none',\n", " 'mesh attention',\n", " 'mesh + temporal decay + adaptive depth + dual-stream FFN + memory anchors'\n", " ]\n", "}\n", "\n", "df = pd.DataFrame(results)\n", "print(df.to_markdown(index=False))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(8, 4))\n", "valid = [(m, p) for m, p in zip(results['Model'], results['Perplexity']) if p is not None]\n", "if valid:\n", " models, ppls = zip(*valid)\n", " bars = ax.bar(models, ppls, color=['#4C72B0', '#DD8452', '#55A868'])\n", " ax.bar_label(bars, fmt='%.1f')\n", " ax.set_ylabel('Perplexity (lower is better)')\n", " ax.set_title('TemporalMesh Transformer Ablation Study')\n", " plt.tight_layout()\n", " plt.savefig('ablation_perplexity.png', dpi=150)\n", " plt.show()\n", "else:\n", " print('Run experiments 01-03 first, then fill in the Perplexity values above.')" ] } ], "metadata": { "kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"name": "python", "version": "3.10.0"} }, "nbformat": 4, "nbformat_minor": 4 }