paper_note/mlora/overlapping.py
2025-03-05 20:38:41 +08:00

185 lines
3.8 KiB
Python

import marimo
__generated_with = "0.9.17"
app = marimo.App(width="medium")
@app.cell
def __():
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 16
c_1 = (139 / 255, 0 / 255, 0 / 255)
c_2 = (0, 0, 0)
c_3 = (191 / 255, 191 / 255, 191 / 255)
c_4 = (230 / 255, 109 / 255, 104 / 255)
return c_1, c_2, c_3, c_4, np, plt
@app.cell
def __(c_2, c_4, plt):
fig, ax = plt.subplots(1, 2, figsize=(7, 3.5), constrained_layout=True)
space_width = 3 / 22
bar_width = 3 * space_width
x_ticks = [
bar_width,
space_width + 3 * bar_width,
2 * space_width + 5 * bar_width,
]
x_ticks_label = ["1.1B", "7B", "13B"]
ax[1].bar(
space_width,
45,
bar_width,
color=c_2,
)
ax[1].bar(
space_width + bar_width,
55,
bar_width,
color=c_4,
label="Communication",
)
ax[1].bar(
2 * space_width + 2 * bar_width,
75,
bar_width,
color=c_2,
label="Computation",
)
ax[1].bar(
2 * space_width + 3 * bar_width,
25,
bar_width,
color=c_4,
)
ax[1].bar(
3 * space_width + 4 * bar_width,
85,
bar_width,
color=c_2,
)
ax[1].bar(
3 * space_width + 5 * bar_width,
15,
bar_width,
color=c_4,
)
ax[1].set_xticks(x_ticks)
ax[1].set_xticklabels(x_ticks_label)
ax[1].tick_params(bottom=False, labelsize=14, pad=7)
ax[1].set_ylabel("The proportion of \nthe total time (%)", fontsize=16)
ax[1].set_yticks([0, 50, 100])
ax[1].set_yticklabels(
["0", "50", "100"], rotation=90, ha="center", va="center"
)
ax[1].set_title("(b)", fontsize=16)
ax[1].set_xlabel("Base model with \ndifferent parameter scales", fontsize=16)
##### ##### #####
space_width = 3 / 22
bar_width = 3 * space_width
x_ticks = [
bar_width,
space_width + 3 * bar_width,
2 * space_width + 5 * bar_width,
]
x_ticks_label = ["1.1B", "7B", "13B"]
ax[0].bar(
space_width,
7062.16,
bar_width,
color=c_2,
)
ax[0].bar(
space_width + bar_width,
11625,
bar_width,
color=c_4,
label="With overlapping",
)
ax[0].bar(
2 * space_width + 2 * bar_width,
1874.48,
bar_width,
color=c_2,
label="Without overlapping",
)
ax[0].bar(
2 * space_width + 3 * bar_width,
2270,
bar_width,
color=c_4,
)
ax[0].bar(
3 * space_width + 4 * bar_width,
1102,
bar_width,
color=c_2,
)
ax[0].bar(
3 * space_width + 5 * bar_width,
1280,
bar_width,
color=c_4,
)
ax[0].set_xticks(x_ticks)
ax[0].set_xticklabels(x_ticks_label)
ax[0].tick_params(bottom=False, labelsize=14, pad=7)
ax[0].set_ylabel("Throughput (tokens/s)", fontsize=16)
ax[0].set_yticks([0, 2500, 5000, 7500, 10000])
ax[0].set_yticklabels(
["0", "2.5k", "5k", "7.5k", "10k"], rotation=90, ha="center", va="center"
)
ax[0].set_title("(a)", fontsize=16)
ax[0].set_xlabel("Base model with \ndifferent parameter scales", fontsize=16)
ax[1].legend(
ncol=1,
bbox_to_anchor=(0.55, 1),
fancybox=False,
framealpha=0.0,
fontsize=10,
)
ax[0].legend(
ncol=1,
bbox_to_anchor=(0.35, 1),
fancybox=False,
framealpha=0.0,
fontsize=10,
)
plt.savefig("overlapping.pdf", bbox_inches="tight", dpi=1000)
return ax, bar_width, fig, space_width, x_ticks, x_ticks_label
if __name__ == "__main__":
app.run()