rubenaghayan commited on
Commit
f9d6101
·
1 Parent(s): 75dbc58

add readme for hf spaces

Browse files
Files changed (6) hide show
  1. .gitignore +2 -0
  2. .gradio/certificate.pem +0 -31
  3. README.md +6 -0
  4. app.py +5 -19
  5. calculator.py +1 -1
  6. details.py +6 -1
.gitignore CHANGED
@@ -19,8 +19,10 @@ venv/
19
  .idea/
20
 
21
  # Claude Code
 
22
  claude/
23
 
24
  # Gradio
 
25
  gradio_cached_examples/
26
  flagged/
 
19
  .idea/
20
 
21
  # Claude Code
22
+ .claude/
23
  claude/
24
 
25
  # Gradio
26
+ .gradio/
27
  gradio_cached_examples/
28
  flagged/
.gradio/certificate.pem DELETED
@@ -1,31 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13
- 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
- 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
- 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
- jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17
- 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
- rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29
- 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
- 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
31
- -----END CERTIFICATE-----
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ title: LLM Training Memory Visualizer
2
+ emoji: 🧮
3
+ app_file: app.py
4
+ pinned: True
5
+ sdk: gradio
6
+ sdk_version: 5.47.1
app.py CHANGED
@@ -5,7 +5,7 @@ import gradio as gr
5
  import pandas as pd
6
  from functools import partial
7
  from defaults import DEFAULTS
8
- from details import DETAILS
9
  from state import Model, Parallelism, Training
10
  from calculator import MemoryCalculation
11
  from dtypes import DType
@@ -233,19 +233,11 @@ def calculate(tp, pp, cp, ep, fsdp_enabled, fsdp_parallelism, fsdp_strategy, lay
233
 
234
  memory_data = pd.DataFrame(individual_data)
235
 
236
- color_map = {
237
- 'Parameter': '#C2A9CE',
238
- 'Gradient': '#AADB86',
239
- 'Optimizer': '#F79090',
240
- 'Activation': '#9EC7DD',
241
- }
242
-
243
  return gr.BarPlot(
244
  value=memory_data,
245
  x="Component",
246
  y="Memory (GB)",
247
  color="Type",
248
- color_map=color_map,
249
  title="LLM Memory Usage Breakdown",
250
  container=False,
251
  y_lim=[0, None],
@@ -276,17 +268,12 @@ css = """
276
  }
277
  """
278
 
279
- with gr.Blocks(theme='Base', css=css) as demo:
280
  with gr.Column():
281
  gr.Markdown("# LLM Training Memory Visualizer")
282
- gr.Markdown(
283
- """
284
- ## How to Use
285
- 1. Use Presets OR Adjust the parallelism, model, and training panels to match your run.
286
- 2. Press **Calculate** to refresh the memory breakdown chart.
287
- 3. Review the details and references below for context on the estimates.
288
- """
289
- )
290
  with gr.Row(equal_height=True):
291
  tp, pp, cp, ep, fsdp_enabled, fsdp_parallelism, fsdp_strategy = create_parallelism_block()
292
  layers, vocab, hidden, intermediate, active_experts, total_experts, is_moe, presets, weight_tied_embeddings = create_model_block()
@@ -329,5 +316,4 @@ with gr.Blocks(theme='Base', css=css) as demo:
329
  gr.Markdown(LIMITATIONS)
330
  gr.Markdown(DETAILS)
331
 
332
-
333
  demo.launch()
 
5
  import pandas as pd
6
  from functools import partial
7
  from defaults import DEFAULTS
8
+ from details import DETAILS, INSTRUCTIONS
9
  from state import Model, Parallelism, Training
10
  from calculator import MemoryCalculation
11
  from dtypes import DType
 
233
 
234
  memory_data = pd.DataFrame(individual_data)
235
 
 
 
 
 
 
 
 
236
  return gr.BarPlot(
237
  value=memory_data,
238
  x="Component",
239
  y="Memory (GB)",
240
  color="Type",
 
241
  title="LLM Memory Usage Breakdown",
242
  container=False,
243
  y_lim=[0, None],
 
268
  }
269
  """
270
 
271
+ with gr.Blocks(theme='Default', css=css) as demo:
272
  with gr.Column():
273
  gr.Markdown("# LLM Training Memory Visualizer")
274
+ gr.Markdown("<sub>🔧 Built by [Ruben Aghayan](https://www.linkedin.com/in/ruben-aghayan-37885690/)</sub>")
275
+ gr.Markdown("---")
276
+ gr.Markdown(INSTRUCTIONS)
 
 
 
 
 
277
  with gr.Row(equal_height=True):
278
  tp, pp, cp, ep, fsdp_enabled, fsdp_parallelism, fsdp_strategy = create_parallelism_block()
279
  layers, vocab, hidden, intermediate, active_experts, total_experts, is_moe, presets, weight_tied_embeddings = create_model_block()
 
316
  gr.Markdown(LIMITATIONS)
317
  gr.Markdown(DETAILS)
318
 
 
319
  demo.launch()
calculator.py CHANGED
@@ -172,7 +172,7 @@ class MemoryCalculation:
172
  # Other
173
  embed = 0
174
  final_layer_out = (
175
- s * b * h / cp / tp
176
  ) # both sequence and context parallelism
177
  final_norm = s * b * h / cp / sp
178
  unembed = s * b * v / cp / tp
 
172
  # Other
173
  embed = 0
174
  final_layer_out = (
175
+ s * b * h / cp / sp
176
  ) # both sequence and context parallelism
177
  final_norm = s * b * h / cp / sp
178
  unembed = s * b * v / cp / tp
details.py CHANGED
@@ -15,4 +15,9 @@ Helpful resources used while building this:
15
  - [Transformer Math 101](https://blog.eleuther.ai/transformer-math/)
16
  """
17
 
18
- INSTRUCTIONS = """ """
 
 
 
 
 
 
15
  - [Transformer Math 101](https://blog.eleuther.ai/transformer-math/)
16
  """
17
 
18
+ INSTRUCTIONS = """
19
+ ## How to Use
20
+ 1. Use Presets OR Adjust the parallelism, model, and training panels to match your run.
21
+ 2. Press **Calculate** to refresh the memory breakdown chart.
22
+ 3. Review the details and references below for context on the estimates.
23
+ """