拡散(diffusion)推論はステップごとに予測を2回行います — プロンプトを切った予測(uncond)と 入れた予測(cond)です。この2つをガイダンス強度 scale で合成して、そのステップの最終予測を 作ります。scale が大きいほど、出力は cond の方へより強く引き寄せられます。 apply_cfg(uncond, cond, scale) を完成させてください。 例 uncond = [0, 0, 0], cond = [1, 2, -1] → scale が大きいほど、出力は cond の方へより遠くまで進みます。
拡散(diffusion)推論ではステップごとに2つの予測 — プロンプトを切った予測(uncond)と 入れた予測(cond) — が出ます。この問題では合成関数を numpy で 完成させ、2つをガイダンス強度 scale で合成してそのステップの最終予測を作ります。 同じ shape の実数配列を扱い、scale の値によって出力がどう変わるべきかをコードで検証します。
classifier-free guidance(CFG)は拡散推論で2つの予測を1つのガイダンス強度で合成し、 プロンプトをどれだけ強く反映するかを決める段階です。このように配列2つを1つに合成する 計算には、scale の特定の値で結果がどうあるべきかという約束(不変式)が伴うのが普通です。 だからそれらしく見える出力を信じるのではなく、その約束が実際に守られているかを数字で 確認する習慣が大切です。numpy の配列演算と境界値(scale の両端)を併せて検証する練習です。