import%20marimo%0A%0A__generated_with%20%3D%20%220.23.16%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20METADATA%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22id%22%3A%20%22diffusion_model%22%2C%0A%20%20%20%20%20%20%20%20%22name%22%3A%20%22Diffusion%20Model%22%2C%0A%20%20%20%20%20%20%20%20%22types%22%3A%20%5B%22architecture%22%5D%2C%0A%20%20%20%20%20%20%20%20%22families%22%3A%20%5B%22generative%22%2C%20%22diffusion%22%2C%20%22neural_networks%22%5D%2C%0A%20%20%20%20%20%20%20%20%22tasks%22%3A%20%5B%22generation%22%2C%20%22representation%22%5D%2C%0A%20%20%20%20%20%20%20%20%22data%22%3A%20%5B%22image%22%2C%20%22audio%22%2C%20%22video%22%5D%2C%0A%20%20%20%20%20%20%20%20%22learning%22%3A%20%5B%22self_supervised%22%5D%2C%0A%20%20%20%20%20%20%20%20%22capacity%22%3A%20%22parametric%22%2C%0A%20%20%20%20%20%20%20%20%22mechanisms%22%3A%20%5B%22iterative_denoising%22%2C%20%22noise_prediction%22%2C%20%22backpropagation%22%5D%2C%0A%20%20%20%20%20%20%20%20%22properties%22%3A%20%5B%22generative%22%2C%20%22representation_learning%22%2C%20%22stochastic_generation%22%5D%2C%0A%20%20%20%20%20%20%20%20%22constraints%22%3A%20%5B%22high_compute%22%2C%20%22high_memory%22%2C%20%22requires_large_data%22%2C%20%22slow_inference%22%5D%2C%0A%20%20%20%20%20%20%20%20%22difficulty%22%3A%20%22advanced%22%2C%0A%20%20%20%20%20%20%20%20%22status%22%3A%20%22complete%22%2C%0A%20%20%20%20%20%20%20%20%22explainability%22%3A%20%22low%22%2C%0A%20%20%20%20%20%20%20%20%22training_cost%22%3A%20%22high%22%2C%0A%20%20%20%20%20%20%20%20%22inference_cost%22%3A%20%22high%22%2C%0A%20%20%20%20%20%20%20%20%22data_appetite%22%3A%20%22high%22%2C%0A%20%20%20%20%7D%0A%0A%20%20%20%20mo.md(f%22%23%20%7BMETADATA%5B'name'%5D%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20In%20one%20sentence%0A%0A%20%20%20%20A%20diffusion%20model%20learns%20to%20turn%20noise%20into%20structured%20data%20by%20repeatedly%20reversing%20a%20gradual%20corruption%20process.%0A%0A%20%20%20%20%23%23%20Mental%20model%0A%0A%20%20%20%20Take%20an%20image%20and%20add%20a%20little%20noise%20many%20times%20until%20almost%20nothing%20recognizable%20remains.%20Training%20shows%20the%20model%20noisy%20examples%20and%20asks%20it%20to%20estimate%20what%20noise%20or%20clean%20structure%20should%20be%20removed.%20Generation%20starts%20from%20random%20noise%20and%20applies%20those%20learned%20denoising%20steps%20in%20reverse.%0A%0A%20%20%20%20The%20reverse%20process%20is%20learned%20and%20stochastic%3B%20it%20is%20not%20simply%20sharpening%20a%20hidden%20original%20image.%0A%0A%20%20%20%20%23%23%20Input%20and%20output%0A%0A%20%20%20%20-%20**Training%20input%3A**%20clean%20examples%20transformed%20to%20random%20noise%20levels%2C%20often%20with%20conditioning%20text%20or%20labels.%0A%20%20%20%20-%20**Generation%20input%3A**%20random%20noise%20plus%20optional%20conditions.%0A%20%20%20%20-%20**Output%3A**%20an%20image%2C%20audio%20signal%2C%20video%2C%20latent%20representation%2C%20or%20other%20continuous%20data.%0A%20%20%20%20-%20**Learns%3A**%20a%20denoising%20direction%2C%20score%2C%20velocity%2C%20or%20related%20parameterization.%0A%0A%20%20%20%20%23%23%20How%20it%20works%0A%0A%20%20%20%20The%20forward%20process%20gradually%20perturbs%20data%20according%20to%20a%20noise%20schedule.%20A%20neural%20network%20receives%20a%20noisy%20sample%20and%20timestep%20and%20predicts%20a%20target%20related%20to%20the%20added%20noise.%0A%0A%20%20%20%20At%20generation%20time%2C%20a%20sampler%20moves%20from%20noise%20toward%20a%20plausible%20example%20over%20multiple%20steps.%20Classifier-free%20guidance%20can%20strengthen%20alignment%20with%20a%20condition%20by%20combining%20conditional%20and%20unconditional%20predictions%2C%20usually%20trading%20diversity%20or%20naturalness%20for%20stronger%20prompt%20adherence.%0A%0A%20%20%20%20Latent%20diffusion%20performs%20the%20process%20in%20a%20compressed%20autoencoder%20space%2C%20reducing%20cost%20compared%20with%20pixel-space%20diffusion.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20A%20practical%20example%0A%0A%20%20%20%20For%20product%20concept%20images%2C%20a%20text-conditioned%20latent%20diffusion%20model%20generates%20diverse%20candidates.%20The%20operational%20system%20also%20needs%20prompt%20handling%2C%20safety%20filters%2C%20provenance%20policy%2C%20human%20review%2C%20and%20perhaps%20reference-image%20conditioning.%20The%20model%20is%20one%20component%20of%20the%20product.%0A%0A%20%20%20%20%23%23%20When%20to%20use%20it%0A%0A%20%20%20%20-%20High-fidelity%20continuous-data%20generation%20is%20required.%0A%20%20%20%20-%20Iterative%20sampling%20latency%20is%20acceptable.%0A%20%20%20%20-%20Conditioning%20and%20editing%20controls%20matter.%0A%20%20%20%20-%20Adequate%20pretrained%20models%20or%20substantial%20data%20and%20compute%20are%20available.%0A%20%20%20%20-%20Diversity%20is%20valuable%20and%20can%20be%20evaluated.%0A%0A%20%20%20%20%23%23%20When%20to%20avoid%20it%0A%0A%20%20%20%20-%20Millisecond%20generation%20latency%20is%20mandatory.%0A%20%20%20%20-%20Exact%20factual%20or%20geometric%20correctness%20must%20be%20guaranteed.%0A%20%20%20%20-%20Training%20data%20rights%2C%20provenance%2C%20or%20safety%20cannot%20be%20managed.%0A%20%20%20%20-%20A%20deterministic%20graphics%20or%20retrieval%20pipeline%20solves%20the%20need%20better.%0A%20%20%20%20-%20Compute%20and%20memory%20budgets%20cannot%20support%20the%20model%20and%20sampler.%0A%0A%20%20%20%20%23%23%20Important%20controls%0A%0A%20%20%20%20%7C%20Control%20%7C%20Role%20%7C%0A%20%20%20%20%7C---------%7C------%7C%0A%20%20%20%20%7C%20Noise%20schedule%20%7C%20Corruption%20and%20denoising%20difficulty%20across%20time%20%7C%0A%20%20%20%20%7C%20Number%20of%20sampling%20steps%20%7C%20Quality-latency%20trade-off%20%7C%0A%20%20%20%20%7C%20Sampler%20%7C%20Numerical%20path%20through%20the%20reverse%20process%20%7C%0A%20%20%20%20%7C%20Guidance%20scale%20%7C%20Condition%20strength%20versus%20diversity%20and%20artifacts%20%7C%0A%20%20%20%20%7C%20Resolution%20%2F%20latent%20size%20%7C%20Detail%20and%20computational%20cost%20%7C%0A%20%20%20%20%7C%20Conditioning%20architecture%20%7C%20Text%2C%20class%2C%20image%2C%20control%20signals%2C%20or%20combinations%20%7C%0A%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20Notebook%20%E2%80%94%20forward%20noising%20under%20a%20microscope%0A%0A%20%20%20%20**Question%3A**%20what%20information%20remains%20as%20noise%20level%20increases%3F%0A%0A%20%20%20%20This%20notebook%20visualizes%20the%20corruption%20process%20and%20an%20oracle%20reconstruction.%20A%20real%20diffusion%20model%20learns%20the%20denoising%20direction%20from%20data.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20size%20%3D%2064%0A%20%20%20%20x%20%3D%20np.linspace(-1%2C%201%2C%20size)%0A%20%20%20%20xx%2C%20yy%20%3D%20np.meshgrid(x%2C%20x)%0A%20%20%20%20clean%20%3D%20np.exp(-((xx%20%2B%200.3)%20**%202%20%2B%20yy**2)%20%2F%200.08)%0A%20%20%20%20clean%20%2B%3D%200.8%20*%20np.exp(-((xx%20-%200.35)%20**%202%20%2B%20(yy%20-%200.2)%20**%202)%20%2F%200.035)%0A%20%20%20%20clean%20%3D%20clean%20%2F%20clean.max()%0A%20%20%20%20rng%20%3D%20np.random.default_rng(11)%0A%20%20%20%20fixed_noise%20%3D%20rng.normal(size%3Dclean.shape)%0A%20%20%20%20return%20clean%2C%20fixed_noise%2C%20np%2C%20plt%0A%0A%0A%40app.cell%0Adef%20_(clean%2C%20fixed_noise%2C%20np%2C%20plt)%3A%0A%20%20%20%20noise_levels%20%3D%20%5B0%2C%200.15%2C%200.4%2C%200.7%2C%200.95%5D%0A%20%20%20%20_fig%2C%20_axes%20%3D%20plt.subplots(1%2C%20len(noise_levels)%2C%20figsize%3D(15%2C%203))%0A%20%20%20%20for%20_ax%2C%20_level%20in%20zip(_axes%2C%20noise_levels)%3A%0A%20%20%20%20%20%20%20%20_noisy%20%3D%20np.sqrt(1%20-%20_level)%20*%20clean%20%2B%20np.sqrt(_level)%20*%20fixed_noise%0A%20%20%20%20%20%20%20%20_ax.imshow(_noisy%2C%20cmap%3D%22magma%22)%0A%20%20%20%20%20%20%20%20_ax.set_title(f%22noise%3D%7B_level%3A.2f%7D%22)%0A%20%20%20%20%20%20%20%20_ax.axis(%22off%22)%0A%20%20%20%20plt.suptitle(%22Forward%20process%3A%20signal%20is%20gradually%20corrupted%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(clean%2C%20fixed_noise%2C%20np%2C%20plt)%3A%0A%20%20%20%20%23%20Oracle%20reconstruction%3A%20possible%20only%20because%20we%20kept%20the%20exact%20added%20noise.%0A%20%20%20%20_level%20%3D%200.7%0A%20%20%20%20_noisy%20%3D%20np.sqrt(1%20-%20_level)%20*%20clean%20%2B%20np.sqrt(_level)%20*%20fixed_noise%0A%20%20%20%20oracle%20%3D%20(_noisy%20-%20np.sqrt(_level)%20*%20fixed_noise)%20%2F%20np.sqrt(1%20-%20_level)%0A%20%20%20%20_fig%2C%20_axes%20%3D%20plt.subplots(1%2C%203%2C%20figsize%3D(9%2C%203))%0A%20%20%20%20for%20_ax%2C%20image%2C%20title%20in%20zip(%0A%20%20%20%20%20%20%20%20_axes%2C%20%5Bclean%2C%20_noisy%2C%20oracle%5D%2C%20%5B%22clean%22%2C%20%22noisy%22%2C%20%22oracle%20reconstruction%22%5D%0A%20%20%20%20)%3A%0A%20%20%20%20%20%20%20%20_ax.imshow(image%2C%20cmap%3D%22magma%22)%0A%20%20%20%20%20%20%20%20_ax.set_title(title)%0A%20%20%20%20%20%20%20%20_ax.axis(%22off%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20Evaluation%20and%20diagnosis%0A%0A%20%20%20%20Evaluate%20more%20than%20visual%20appeal%3A%20prompt%20or%20condition%20alignment%2C%20diversity%20and%20duplicate%20rate%2C%20local%20artifacts%20and%20global%20consistency%2C%20performance%20on%20difficult%20subgroups%2C%20latency%2C%20memory%2C%20and%20energy%2C%20safety%2C%20attribution%2C%20and%20provenance%2C%20usefulness%20in%20the%20downstream%20workflow.%0A%0A%20%20%20%20Automated%20distribution%20metrics%20can%20compare%20batches%20but%20rarely%20replace%20human%20or%20task-specific%20evaluation.%0A%0A%20%20%20%20%23%23%20Cost%20profile%0A%0A%20%20%20%20Training%20is%20expensive%20because%20many%20noisy%20variants%20and%20a%20large%20denoiser%20are%20involved.%20Generation%20traditionally%20requires%20many%20network%20evaluations%2C%20though%20improved%20samplers%20and%20distilled%20models%20reduce%20the%20step%20count.%0A%0A%20%20%20%20%23%23%20Related%20models%0A%0A%20%20%20%20-%20Variational%20autoencoders%20learn%20a%20latent%20distribution%20and%20fast%20decoder.%0A%20%20%20%20-%20GANs%20use%20an%20adversarial%20discriminator%20and%20usually%20generate%20in%20one%20forward%20pass.%0A%20%20%20%20-%20Autoregressive%20models%20generate%20elements%20sequentially.%0A%20%20%20%20-%20**Transformer**%20may%20serve%20as%20a%20text%20encoder%2C%20denoiser%20backbone%2C%20or%20autoregressive%20alternative.%0A%0A%20%20%20%20%23%23%20Practical%20takeaway%0A%0A%20%20%20%20Diffusion%20trades%20iterative%20computation%20for%20flexible%2C%20high-quality%20generation.%20Judge%20the%20whole%20generation%20system%2C%20not%20only%20its%20best%20samples.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
71933ab47707276f501ddf6f81d86ebc