Match figure styling and labels to the submitted manuscript

Enlarge the in-canvas fonts and line weights of the result figures so
that they stay legible at the printed column width, split the Fig. 5
convergence curve into a pre-meta adaptation entry and the proposed
MAML entry, and rename the autoencoder legend to match the table row.
Add the analytic complexity replot behind Fig. 4, which was missing
from the repository, and correct the table numbering in the README.
This commit is contained in:
KiHoLee
2026-08-03 12:49:53 +09:00
parent 595009b1f6
commit 6c8471ece0
7 changed files with 697 additions and 608 deletions
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
# Replot Fig. 4: demultiplexing-stage complexity ratio vs U/T,
# now including the signed user-wise attention variant.
#
# O_transformer = L * T * d * dff (FFN-dominated, L = 12 layers)
# O_softmax = U * d^2 + U^2 * d (key/value projections + scores)
# O_signed = U^2 * d + U^2 * 2h + h^2 (Gram + score network, h = 64)
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
T, L, d, h = 32, 12, 128, 64
U = np.arange(16, 65)
x = U / T
plt.rcParams.update({"font.size": 13, "axes.labelsize": 13,
"xtick.labelsize": 12, "ytick.labelsize": 12,
"axes.linewidth": 1.1, "grid.linewidth": 0.8,
"xtick.major.width": 1.1, "ytick.major.width": 1.1,
"xtick.minor.width": 0.8, "ytick.minor.width": 0.8,
"xtick.major.size": 4.5, "ytick.major.size": 4.5})
fig = plt.figure(figsize=(5.2, 3.9))
ax = fig.add_axes([0.155, 0.145, 0.82, 0.82])
colors = {1.0: "tab:blue", 0.5: "tab:orange", 0.25: "tab:green"}
for r in [1.0, 0.5, 0.25]: # r = d / dff
dff = d / r
o_tf = L * T * d * dff
o_soft = U * d ** 2 + U ** 2 * d
o_sgn = U ** 2 * d + U ** 2 * 2 * h + h ** 2
ax.plot(x, o_soft / o_tf, color=colors[r], ls="-", lw=1.9,
label=f"Softmax, $d/d_{{\\mathrm{{ff}}}}$={r:g}")
ax.plot(x, o_sgn / o_tf, color=colors[r], ls="--", lw=1.9,
label=f"Signed, $d/d_{{\\mathrm{{ff}}}}$={r:g}")
ax.set_yscale("log")
ax.set_xlabel(r"User-to-token ratio $U/T$")
ax.set_ylabel(r"$\mathcal{O}_{\mathrm{Attention}}/\mathcal{O}_{\mathrm{Transformer}}$")
ax.grid(True, which="both", alpha=0.35)
ax.legend(fontsize=9, ncol=2, loc="lower right")
fig.savefig("fig/complexity_ratio_vs_UT_dff.pdf")
print("saved fig/complexity_ratio_vs_UT_dff.pdf")