التدفقات المتناسبة وتدفقات المصلحة
Type: Build
Languages: Python
Prerequisites: Phase 8 · 06 (DDPM), Phase 1 · Calculus
Time: ~45 minutes
المشكلة
عملية العكس في DDPM هي 1000 خطوة من المشيN(0, I)المُحَرِّر هو أنّ ODE يُحلّ العملية العكسية صلبة، المسار منحني.
إذا كنت تستطيع تدريب النموذج بحيث يكون المسار من الضوضاء إلى البيانات خط مستقيم واحد من خطوة أولرt=1إلىt=0يُبني مطابقة التدفق هذا مباشرة: تحديد التقاطع على خط مستقيم منx_1 ∼ N(0, I)إلىx_0 ∼ data، تدريب حقل متجه v_θ(x, t)لتطابق مشتق الوقت، والتكامل عند الاستنتاج.
تدفق المصلح (Liu 2022) يذهب إلى أبعد من ذلك: إصلاح المسارات بشكل متكرر باستخدام إجراء إعادة التدفق الذي ينتج إعادة التدفق بشكل متزايد أقرب إلى خطي. بعد إعادة التدفق اثنين، يطابق عينات خطوة 2 نوعية DDPM خطوة 50.
المفهوم
!Flow matching: straight-line interpolation between noise and data
تدفق خط مستقيم
تعريف:
x_t = t · x_1 + (1 - t) · x_0, t ∈ [0, 1]أينx_0 ~ dataوx_1 ~ N(0, I)المشتق من الوقت على طول هذا الخط المستقيم ثابت:
dx_t / dt = x_1 - x_0تعريف حقل متجه عصبي v_θ(x_t, t)و تدربها لتتطابق مع هذا المشتق:
L = E_{x_0, x_1, t} || v_θ(x_t, t) - (x_1 - x_0) ||²هذا هوconditional flow matchingالتدريب خالي من المحاكاة: لا يمكنك أبداً فتح ODE. مجرد عينة(x_0, x_1, t)والعودة
أخذ العينات
عند الاستنتاج، دمج حقل المتجه المعلم إلى الوراء في الوقت:
x_{t-Δt} = x_t - Δt · v_θ(x_t, t)ابدأx_1 ~ N(0, I)، خطوة (أولير) إلى أسفلt=0. . .
التدفق المصحّح (Liu 2022)
التدفق المستقيم يعمل ولكن المسارات المكتسبة ليست مستقيمة في الواقعx_0يمكن أن تقوم بتخريط نفسهاx_1خطوة إعادة التدفق المصحّحة:
- نموذج تدفق القطار v_1 مع الزوجات العشوائية.
- عينة N أزواج
(x_1, x_0)من خلال دمج v_1 منx_1إلى هبوطهاx_0. . . - قم بتدريب v_2 على هذه الأمثلة المزدوجة. لأن الأزواج الآن "متطابقة مع ODE"، فإن المقاطع المباشرة بينها أكثر شحية.
- أكرر
في الممارسة العملية 2 إعادة التدريبات تحصل على خطية تقريبا، مما يسمح بإستنتاج 2-4 خطوات. SDXL-توربو، SD3-توربو، LCM كلها نموذجات تتناسب التدفق من التدفق.
لماذا هذا الفوز بالصور في 2024
ثلاثة أسباب:
- Simulation-free training لا توجد إدارة إدارية إدارية تنشأ أثناء التدريب، لا شيء مهم لتنفيذها.
- Better loss geometry المسارات المستقيمة لديها إشارة إلى الضجيج متسقة، في حين أن ضياع DDPM ε لديه SNR سيء في أطراف الجدول الزمني.
- Faster inference 4-8 خطوات عند جودة SDXL-Turbo؛ خطوة واحدة مع عملية نزيف التماسك.
التطابق التدفقي مقابل DDPM الاتصال الدقيق
التطابق في التدفق مع مسار غوسياني مشروط هو التوزيع مع جدول ضجيج محدد . اختر x_t = α(t) x_0 + σ(t) x_1التطابق في الجدول الزمني والجريان يعيد التوزيع المعدل لـ Stratonovich مع v = α'·x_0 - σ'·x_1هذان هما معادلين الجبرياً لطرق غوس
ما أضاف التطابقات في التدفق: وضوح من الهدف (سرعة عادية) ، خسارة أكثر نظافة، والترخيص للتجربة مع المتقاطعات غير غوسية.
بناءها
code/main.pyيطبق التطابق في التدفق 1D على خليط غوسيان مزدوج.v_θ(x, t)هو MLP صغير تدرب مع الهدف على الخط المستقيم. عند الاستنتاج، دمج خطوات 1، 2، 4 و 20 Euler ومقارنة نوعية العينة.
الخطوة الأولى: فقدان التدريب
pythondef train_step(x0, net, rng, lr):
x1 = rng.gauss(0, 1)
t = rng.random()
x_t = t * x1 + (1 - t) * x0
target = x1 - x0
pred = net_forward(x_t, t)
loss = (pred - target) ** 2
# backprop + updateالخطوة الثانية: استنتاج متعدد الخطوات
pythondef sample(net, num_steps):
x = rng.gauss(0, 1)
for i in range(num_steps):
t = 1.0 - i / num_steps
dt = 1.0 / num_steps
x -= dt * net_forward(x, t)
return xالخطوة الثالثة: مقارنة عدد الخطوات
توقع أن يطابق معينة 4 خطوات بالفعل نوعية 20 خطوة
الفخاخ
- Time parameterization.استخدامات مطابقة التدفق
t ∈ [0, 1]معt=0في البياناتt=1في ضجيج.t ∈ [0, T]معt=0في البياناتt=Tنفس الاتجاه، مقياس مختلف، الأوراق تُخطئ هذا باستمرار. - Schedule choice.الخط المستقيم للدفق المصحّح هو جدول مطابقة التدفق، ولكن يمكنك استخدام عينات t-normal cosine أو logit (SD3 تفعل ذلك) لتغطية أفضل على المقياس.
- Reflow cost.إن إنشاء مجموعة البيانات المزدوجة لإعادة التدفق هو مرسل استنتاج كامل لكل عينة. فقط إعادة التدفق عندما تحتاج حقا إلى استنتاج خطوة 1-2.
- Classifier-free guidance still applies.فقط استبدل ε مقابل v في الجمعية الخطية:
v_cfg = (1+w) v_cond - w v_uncond. . .
استخدمها
| Use case | 2026 stack |
|---|---|
| Text-to-image, best quality | Flow matching: SD3, Flux.1-dev |
| Text-to-image, 1-4 steps | Distilled flow matching: Flux.1-schnell, SD3-Turbo, SDXL-Turbo |
| Real-time inference | Consistency distillation from a flow-matched base (LCM, PCM) |
| Audio generation | Flow matching: Stable Audio 2.5, AudioCraft 2 |
| Video generation | Flow matching mixed with diffusion (Sora, Veo, Stable Video) |
| Science / physics (particle trajectories, molecules) | Flow matching + equivariant vector field |
عندما تقول ورقة "سرعة من التوزيع" في 2025-2026، فإنه تقريبا دائما ما تتطابق التدفق + التقطير.
أرسله
إنقاذoutputs/skill-fm-tuner.md. تتخذ مهارة تحديد نموذج على أسلوب التوزيع وتحولها إلى تشكيل تدريب يطابق التدفق: اختيار الجدول الزمني، توزيع العينات في الوقت (وحدة / منطقية-طبيعية) ، المحفز، خطة إعادة التدفق، عدد الخطوات المستهدفة، بروتوكول التقييم.
التمارين
- Easy.أركض
code/main.pyو مقارنة خطوة واحدة مقابل خطوة 20 MSE مقابل توزيع البيانات الحقيقية. - Medium.تغيير من الزي
tأخذ العينات إلى اللوجيت-نورمال (مركز العينات في منتصف (ت) هل تتحسن جودة النموذج؟ - Hard.تنفيذ إعادة التكرار: توليد الزوج (x_0, x_1) من خلال دمج النموذج الأول، تدريب النموذج الثاني على الزوجين، ومقارنة نوعية العينة في خطوة واحدة.
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Flow matching | "Straight-line diffusion" | Train v_θ(x, t) to match x_1 - x_0 along an interpolant. |
| Rectified flow | "Reflow" | Iterative procedure that straightens learned flows. |
| Velocity field | "v_θ" | Output of the model — the direction to move x_t. |
| Straight-line interpolant | "The path" | x_t = (1-t)·x_0 + t·x_1; trivial target derivative. |
| Euler sampler | "1st order ODE solver" | Simplest integrator; works well when paths are straight. |
| Logit-normal t | "SD3 sampling" | Concentrate t sampling toward mid-values where gradients are strongest. |
| Consistency distillation | "1-step sampler" | Train a student to map any x_t directly to x_0. |
| CFG with velocity | "v-CFG" | v_cfg = (1+w) v_cond - w v_uncond; same trick, new variable. |
ملاحظة الإنتاج: Flux.1-schnell هو التدفق مطابقة بأسرع
فوز الإنتاج من تطابق التدفق هو Flux.1-schnell ديت المتناسب التدفق مستقطب إلى 1-4 خطوات الاستنتاج مع الحفاظ على جودة فلوكس-ديف. دفتر ملاحظات نيل "Run Flux على آلة 8GB" هو وصفة التنفيذ المرجعية: T5 + CLIP رمز، تعريف MMDiT كمية (في 4 خطوات لشربن vs 50 لديف) ، VAE رمز. حساب التكلفة:
| Variant | Steps | Latency at 1024² on L4 | Total FLOPs (relative) |
|---|---|---|---|
| Flux.1-dev (raw) | 50 | ~15 s | 1.0× |
| Flux.1-schnell | 4 | ~1.2 s | 0.08× (12× faster) |
| SDXL-base | 30 | ~4 s | 0.25× |
| SDXL-Lightning 2-step | 2 | ~0.3 s | 0.03× |
قاعدة الإنتاج: flow-matched base + distillation = the 2026 default for fast text-to-image.كل البائعين الرئيسيين يرسلون هذا المزيج: SD3-Turbo (SD3 + تدفق + نزف) ، Flux-schnell (Flux-dev + تصحيح تدفق) ، CogView-4-Flash. قواعد التوزيع النقي موجودة فقط لمواقع التفتيش القديمة.
المزيد من القراءة
- Liu, Gong, Liu (2022). Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow تدفق معدل
- Lipman et al. (2023). Flow Matching for Generative Modeling تناغم التدفق
- Esser et al. (2024). Scaling Rectified Flow Transformers for High-Resolution Image Synthesis SD3، تدفق معدل على مقياس.
- Albergo, Vanden-Eijnden (2023). Stochastic Interpolantsالإطار العام الذي يغطي انتشار FM +.
- Song et al. (2023). Consistency Models عملية تصفية 1 خطوة من التوزيع / التدفق.
- Sauer et al. (2023). Adversarial Diffusion Distillation (SDXL-Turbo) تغيرات توربو
- Black Forest Labs (2024). Flux.1 models تناغم التدفق في الإنتاج
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.