
کالبدشکافی شتاب ۵۳٫۶ برابری Wan2.2
بررسی فنی اینکه چگونه توجه تنک، هسته پایدار CUDA، تقطیر چهارمرحلهای و NVFP4 یک خط لوله ۱۳۳ ثانیهای را به تولید ویدیوی نزدیک به بلادرنگ رساندند.
ادامه مطلبروایت فنی تبدیل معماری ۱۲۴ میلیونی GPT-2 به سامانه هیبریدی ۲.۸ تریلیونی Kimi K3.

یادداشت فنی علی طاها با عنوان 22580: From GPT2 to Kimi3, Explained، یک سفر کدمحور در هفت سال تکامل معماری مدلهای زبانی است. مسیر از یک پیادهسازی کوچک GPT-2 آغاز میشود، فشار توالیهای بلند و کش روبهرشد KV را دنبال میکند و در سامانه هیبریدی Kimi K3 با حافظه بازگشتی، بازیابی دورهای سافتمکس، خبرگان تنک و توجه در امتداد عمق به پایان میرسد.
این نسخه ادبیات فنی، استدلال کامل آن یادداشت را با ترتیب روشنتر بازسازی میکند. ادعاهای آن با انتشار رسمی Kimi K3 از Moonshot AI، گزارش اصلی GPT-2 و مقالههای توجه خطی، DeltaNet، Gated DeltaNet، Kimi Delta Attention و Attention Residuals تطبیق داده شدهاند.
وضعیت شواهد: ابعاد معماری و شمار پارامترها از گزارش رسمی Moonshot AI آمدهاند. مسیر توضیح و بخشی از مشاهدههای پیادهسازی برگرفته از یادداشت طاها هستند. اعدادی مانند ۶ برابر توان عملیاتی رمزگشایی یا ۲.۵ برابر بهرهوری مقیاسپذیری، نتایج گزارششده در مقالههای سازندهاند و برای هر طول توالی، اندازه دسته، کرنل یا سختافزار تضمین عمومی نیستند.
عدد عنوان از نظر ریاضی درست است، اما فقط برای یک مقایسه مشخص:
۲.۸ تریلیون / ۱۲۴ میلیون = ۲۲٬۵۸۰.۶
مخرج، پیکربندی فشرده GPT-2 است که هم در یادداشت اصلی و هم در پیادهسازی nanoGPT کارپاتی دیده میشود: ۱۲ لایه، ۱۲ سر توجه و حالت پنهان ۷۶۸ بعدی. nanoGPT این پیکربندی را حدود ۱۲۴ میلیون پارامتر میشمارد. گزارش اصلی GPT-2 از OpenAI مدل کوچک را ۱۱۷ میلیون و بزرگترین GPT-2 را حدود ۱.۵ میلیارد اعلام کرده بود. بنابراین عبارت «۲۲٬۵۸۰ مدل GPT-2» نسبت به GPT-2 XL نیست.
یک تمایز دیگر هم ضروری است. Kimi K3 در مجموع ۲.۸ تریلیون پارامتر دارد، اما مسیر تنک ترکیب خبرگان آن برای هر توکن ۱۰۴ میلیارد پارامتر را فعال میکند. پس نسبت پارامترهای فعال به مبنای ۱۲۴ میلیونی نزدیک ۸۳۹ برابر است، نه ۲۲٬۵۸۰ برابر.
| مقایسه | نسبت تقریبی | معنای واقعی |
|---|---|---|
| کل Kimi K3 / مدل کوچک GPT-2 | ۲۲٬۵۸۰ برابر | ظرفیت ذخیرهشده مدل |
| فعال Kimi K3 / مدل کوچک GPT-2 | ۸۳۹ برابر | پارامترهای درگیر برای هر توکن |
| کل Kimi K3 / مدل GPT-2 XL | ۱٬۸۱۶ برابر | ظرفیت کل در برابر بزرگترین GPT-2 |
| فعال Kimi K3 / مدل GPT-2 XL | ۶۷ برابر | محاسبه تنک فعال در برابر GPT-2 XL |
این عدد یک نشانگر مقیاس مفید است، نه معیار هوش، هزینه آموزش، مصرف انرژی، تاخیر یا کیفیت. داستان عمیقتر درباره نحوه استفاده مدل از حافظه و ظرفیت است.
GPT-2 از پشتهای از بلوکهای رمزگشا ساخته شده است. تعبیه توکن و موقعیت وارد پشته میشوند. هر بلوک توجه علّی و یک MLP را اجرا میکند و اتصالهای باقیمانده اطلاعات را در امتداد عمق حمل میکنند. در پایان، نرمالسازی و سر مدل زبانی نمره واژگان را میسازند.
x = token_embedding(tokens) + position_embedding(positions)
for block in transformer_blocks:
x = x + block.attention(block.norm_1(x))
x = x + block.mlp(block.norm_2(x))
logits = language_model_head(final_norm(x))
پیکربندی ۱۲۴ میلیونی بهاندازهای کوچک است که میتوان آن را مثل یک برنامه کامل فهمید:
| مولفه GPT-2-small | مقدار |
|---|---|
| لایههای رمزگشا | ۱۲ |
| سرهای توجه | ۱۲ |
| عرض حالت پنهان | ۷۶۸ |
| طول زمینه | ۱٬۰۲۴ توکن |
| واژگان | ۵۰٬۲۵۷ توکن |
| پارامترها با قرارداد nanoGPT | حدود ۱۲۴ میلیون |
تولید خودبازگشتی فقط از خروجی موقعیت تازه استفاده میکند. بدون کش، مدل پس از افزودن هر توکن باید تصویرهای خطی تمام توکنهای قبلی را دوباره محاسبه کند. کش KV با نگهداری کلیدها و مقادیر موقعیتهای قبلی، این تکرار را حذف میکند.
اما همین بهینهسازی گلوگاه بعدی را میسازد: کش با طول توالی رشد میکند. هر پرسوجوی تازه باید با تاریخی بزرگتر مقایسه شود و کلیدها و مقادیر نیز باید از حافظه خوانده شوند.
برای یک سر توجه، توجه علّی استاندارد را میتوان چنین خلاصه کرد:
Attention(Q, K, V) = softmax(QKᵀ / √d) V
هنگام آموزش یا پیشپردازش پرامپت، یک توالی با طول N ساختاری با ابعاد N x N از امتیازها میسازد. بنابراین محاسبه با طول توالی بهصورت درجه دو رشد میکند. FlashAttention رفتوآمد حافظه را بهبود میدهد و مانع ساخت کامل ماتریس امتیاز میشود، اما همه مقایسههای پرسوجو و کلید را حذف نمیکند.
در رمزگشایی همراه با کش، در هر گام فقط یک پرسوجوی تازه ساخته میشود. محاسبه همان گام بهصورت خطی با تعداد توکنهای کششده رشد میکند و خود کش KV نیز رشد خطی دارد. این تفاوت مهم است:
| مرحله | فشار توجه چگال |
|---|---|
| آموزش و پیشپردازش | ترکیب توالی با هزینه درجه دو |
| رمزگشایی کششده توکنبهتوکن | پیمایش خطی تاریخچه در حال گسترش KV |
| حافظه کش | رشد خطی با طول توالی |
توجه سافتمکس بیانپذیر است، چون میتواند یک توکن قدیمی مشخص را با دقت بالا بازیابی کند. ضعف آن، هزینه نگهداری تاریخچه صریح توکنهاست.
مقاله Linear Transformers ترتیب عملیات را تغییر میدهد. سافتمکس پس از تعامل پرسوجو و کلید یک تابع غیرخطی اعمال میکند و اجازه جابهجایی ساده پرانتزها را نمیدهد. توجه خطی، نگاشت ویژگی نامنفی را جداگانه بر پرسوجو و کلید اعمال میکند:
φ(Q) (φ(K)ᵀ V)
در نتیجه مدل بهجای افزودن هر کلید و مقدار به یک فهرست، یک حالت با اندازه ثابت را بهروزرسانی میکند:
state = state + outer(phi(key), value)
normalizer = normalizer + phi(key)
output = phi(query) @ state
output = output / (phi(query) @ normalizer)
برای بعد سر d، حالت انجمنی تقریبا d x d است و به طول توالی وابسته نیست. رمزگشایی دیگر فهرست نامحدود KV را پیمایش نمیکند. اطلاعات تازه در همان ماتریس ادغام میشوند و استنتاج بازگشتی با حالت ثابت شکل میگیرد.
هزینه این فشردهسازی، از دست رفتن جداسازی کامل است. حالت مانند مجموعهای از خانههای مستقل برای توکنها نیست. چند ارتباط کلید و مقدار در یک ماتریس محدود شریکاند و نگاشت ویژگی سادهتر، بیانپذیری کمتری از بازیابی دقیق سافتمکس دارد.

توجه خطی جمعی، هر ارتباط تازه را در همان حالت مینویسد:
S_t = S_(t-1) + k_tᵀ v_t
وقتی کلیدها بهخوبی از هم جدا باشند، یک پرسوجوی بعدی میتواند تقریب مناسبی از مقدار متناظر را بازیابی کند. با انباشتهشدن ارتباطها، جهتهای مشابه کلید روی هم میافتند. واقعیتهای قدیمی و تازه تداخل میکنند، چون چیزی حذف نمیشود.
مقاله Fast Weight Programmers این وضعیت را مشکل عبور از ظرفیت حافظه میداند. یک حافظه محدود باید تصمیم بگیرد چه چیزی نگه داشته، جایگزین یا فراموش شود. جمع ساده هیچ سیاست تخلیهای ندارد.
این نخستین تغییر بزرگ معماری در یادداشت اصلی است:
| طراحی حافظه | رفتار ذخیرهسازی | محدودیت اصلی |
|---|---|---|
| توجه چگال سافتمکس | بردارهای K و V هر توکن را نگه میدارد | هزینه کش و بازیابی با زمینه رشد میکند |
| توجه خطی جمعی | تاریخچه را در حالت ثابت فشرده میکند | ارتباطها تداخل دارند و دقیق جایگزین نمیشوند |
| قاعده دلتا | پیش از نوشتن، ارتباط هدف را اصلاح میکند | وابستگی ترتیبی آموزش موازی را دشوار میکند |
| قاعده دلتا با گیت | فراموشی سازگار را میافزاید | زوال کلی ممکن است چند ارتباط مفید را با هم حذف کند |
| KDA | زوال ریزدانه در سطح کانال دارد | به کرنل تخصصی و بازیابی هیبریدی نیاز دارد |
DeltaNet پیش از نوشتن، مقدار فعلی ذخیرهشده برای یک کلید را میخواند. سپس فقط تفاوت میان مقدار مطلوب و مقدار قدیمی بازیابیشده را مینویسد:
old_value = key @ state
correction = beta * (new_value - old_value)
state = state + outer(key, correction)
output = query @ state
فرم فشرده:
S_t = S_(t-1) + β_t k_tᵀ (v_t - k_t S_(t-1))
β_t شدت نوشتن آموختنی است. مقدار نزدیک صفر یعنی توکن تغییر اندکی در حافظه میدهد. مقدار نزدیک یک یعنی بهروزرسانی، ارتباط موجود در جهت کلید فعلی را با قدرت جایگزین میکند.
این فقط یک بهینهسازی کش نیست. حالت از یک انباره فقطافزودنی به حافظه انجمنی قابلویرایش تبدیل میشود. اگر کلیدی مقدار منسوخی را بازیابی کند، مدل میتواند همان مقدار را کم و نسخه اصلاحشده را بنویسد، بیآنکه تمام ارتباطهای نامرتبط را پاک کند.

بازگشت مستقیم دلتا ترتیبی است. توکن t باید پیش از محاسبه اصلاح خود، S_(t-1) را بخواند. در نگاه نخست، این ویژگی با عملیات ماتریسی عریض و موازی مورد علاقه GPU ناسازگار است.
الگوریتم موازی DeltaNet بازگشت را با حاصلضرب ماتریسهای تبدیل Householder تعمیمیافته و نمایش فشرده WY بازنویسی میکند. توالی به قطعههای C توکنی تقسیم میشود:
کار محاسباتی را میتوان با دو جمله تقریبی دید:
تقریبا 2Ld² + 2LCd
L طول توالی، d بعد سر و C طول قطعه است. وقتی C به L نزدیک شود، رفتار به توجه کامل نزدیک میشود. C بسیار کوچک تعداد عملیات را کاهش میدهد، اما ممکن است از Tensor Coreها بهخوبی استفاده نکند. اندازههای عملی مانند ۶۴ یا ۱۲۸ میان بازگشت کارآمد و کاشیهای ماتریسی مناسب سختافزار تعادل ایجاد میکنند.
درس سیستمی تکرارشونده این است: FLOP کمتر بهطور خودکار به زمان واقعی کمتر تبدیل نمیشود. الگوریتم باید بهاندازه کافی کار ماتریسی منظم در اختیار GPU بگذارد.
قاعده دلتا هنگام ورود کلیدی مشابه میتواند یک ارتباط را جایگزین کند، اما سازوکاری عمومی برای پاکسازی زمینه منسوخ ندارد. Gated DeltaNet بهروزرسانی هدفمند دلتا را با زوال وابسته به داده ترکیب میکند:
S_t = α_t (I - β_t k_tᵀk_t) S_(t-1) + β_t k_tᵀv_t
α_t تعیین میکند چه مقدار از حافظه قبلی زنده بماند:
α_t نزدیک یک، تاریخچه را حفظ میکند و شبیه قاعده دلتاست.α_t نزدیک صفر، حالت قدیمی را سریع پاک میکند.گیت و اصلاح دلتا دو مشکل مکمل را حل میکنند. گیت هنگام تغییر زمینه، اطلاعات را بهصورت کلی پاک میکند. جمله دلتا یک ارتباط کلید و مقدار مشخص را ویرایش میکند.
چون زوال در طول زمان روی هم انباشته میشود، ارتباطی که در موقعیت x نوشته شده تا رسیدن به موقعیت بعدی در حاصلضرب گیتهای میان این دو موقعیت ضرب میشود. پیادهسازی قطعهای کارآمد در کنار سازوکار اصلاح DeltaNet به حاصلضرب تجمعی نیز نیاز دارد.
مقاله Kimi Linear، Gated DeltaNet را با Kimi Delta Attention یا KDA گسترش میدهد. بهجای یک ضریب زوال اسکالر برای کل سر، KDA زوال ریزدانه در سطح کانال را میآموزد. ویژگیهای متفاوت میتوانند با نرخهای متفاوت اطلاعات را حفظ یا فراموش کنند.
Kimi Linear همه لایههای سافتمکس را حذف نمیکند. معماری آن هیبریدی است:
در آزمایشهای کنترلشده مقاله، مدل Kimi Linear با ۴۸ میلیارد پارامتر کل و ۳ میلیارد پارامتر فعال، با دستور آموزش یکسان از مبنای تمام-MLA بهتر عمل کرد. نویسندگان تا ۷۵ درصد کاهش مصرف کش KV و تا ۶ برابر توان عملیاتی رمزگشایی در زمینه یکمیلیونتوکنی گزارش کردهاند. این اعداد نتیجه همزمان معماری و سامانه در محیط همان مقالهاند، نه ادعای ششبرابر شدن همیشگی هر لایه KDA.
هیبرید بودن مهم است، چون حافظه حالتثابت و بازیابی کامل به شیوههای متفاوت شکست میخورند. KDA کارآمد است، اما باید فشرده کند. MLA گرانتر است، اما میتواند زمینه توکنی را مستقیم ببیند.
خلاصه رسمی Moonshot AI، مدل Kimi K3 را یک مدل ۹۳ لایه، با وزنهای باز، چندوجهی بومی و پنجره زمینه یکمیلیونتوکنی معرفی میکند.
| مولفه معماری Kimi K3 | مقدار رسمی |
|---|---|
| کل پارامترها | ۲.۸ تریلیون |
| پارامترهای فعال | ۱۰۴ میلیارد |
| لایهها | ۹۳ |
| ترکیب توجه | ۶۹ KDA + ۲۴ gated MLA |
| عرض پنهان توجه | ۷٬۱۶۸ |
| سرهای توجه | ۹۶ |
| خبرگان مسیریابیشده | ۸۹۶ |
| خبرگان منتخب برای هر توکن | ۱۶ |
| خبرگان مشترک | ۲ |
| عرض نهفته MoE | ۳٬۵۸۴ |
| طول زمینه | ۱٬۰۴۸٬۵۷۶ |
| رمزگذار بینایی | MoonViT-V2 با ۴۰۱ میلیون پارامتر |
| کوانتیزهسازی | وزن MXFP4 و فعالسازی MXFP8 |
تقسیم ۶۹ به ۲۴ در لایههای توجه یک ریتم تکراری میسازد: سه لایه KDA بهازای هر لایه gated MLA در ۲۳ چرخه چهارتایی. نخستین لایه پیشخور چگال است و لایههای بعدی از مسیر تنک Latent MoE استفاده میکنند.
این چیدمان، بازیابی صریح را در جایی خرج میکند که فشردهسازی بهتنهایی پرخطر است. در مقابل، لایههای بازگشتی بیشتر ترکیب توالی را با حالت ثابت انجام میدهند.
Kimi K3 هر توکن را به ۱۶ مورد از ۸۹۶ خبره مسیریابی میکند و دو خبره مشترک نیز دارد. مجموعه کامل پارامترها ظرفیت مدل را میسازد، اما فقط بخش کوچکی از وزن خبرگان در گذر روبهجلوی یک توکن شرکت میکند.
محاسبه خبرهها در عرض نهفته فشرده انجام میشود، نه در عرض کامل مدل. این طراحی محاسبه و ارتباط سمت خبرگان را کاهش میدهد و به Kimi K3 کمک میکند از یک مدل ۲.۸ تریلیونی، ۱۰۴ میلیارد پارامتر را فعال کند.
مسیریابی تنک مشکلات سیستمی خودش را دارد:
به همین دلیل باید پارامتر کل، پارامتر فعال، FLOP، مصرف حافظه و تاخیر جداگانه گزارش شوند.
Kimi K3 از فعالساز SiTU-GLU استفاده میکند. در یک نمایش ساده، گیت هم جمله محدود tanh و هم sigmoid را با مقیاسهای آموختنی به کار میگیرد:
gate, up = split(x)
activated_gate = beta * tanh(gate / beta) * sigmoid(gate)
output = activated_gate * up
یادداشت اصلی به یک تنش عملی اشاره میکند: یک فعالساز جذاب از نظر ریاضی ممکن است از مسیر قدیمی کندتر باشد تا زمانی که عملیات آن در یک کرنل کارآمد ادغام شوند. در این مقیاس، معماری و پیادهسازی را نمیتوان مستقل از هم سنجید.
لایههای دورهای MLA نیز گیت دارند. یک سیگنال آموختنی تعیین میکند چه مقدار از خروجی بازیابیشده توجه وارد جریان باقیمانده شود. به این ترتیب، مدل میتواند بازیابی نامفید را سرکوب کند و لازم نیست هر ویژگی مورد توجه را با شدت کامل وارد کند.

ترنسفورمرهای استاندارد PreNorm خروجیهای باقیمانده را با وزن ثابت جمع میکنند:
h_l = h_1 + Σ f_i(h_i)
با افزایش عمق، اندازه حالت پنهان ممکن است رشد کند و سهم یک لایه خاص رقیق شود. زیرلایههای متفاوت نیز همان ترکیب انباشته را دریافت میکنند، حتی اگر به بازنماییهای قبلی متفاوتی نیاز داشته باشند.
مقاله Attention Residuals جمع ثابت را با توجه سافتمکس روی حالتهای باقیمانده قبلی جایگزین میکند. هر لایه یک پرسوجو میآموزد. حالتهای قبلی نقش کلید و مقدار را دارند. سپس لایه فعلی ترکیبی وزندار و وابسته به محتوا از تاریخچه عمق میسازد.
AttnRes کامل باعث میشود هر لایه به همه لایههای پیش از خود توجه کند و هزینه حافظه و ارتباط را بالا میبرد. Block AttnRes چند لایه را در یک بازنمایی ذخیرهشده گروهبندی میکند. Kimi K3 از اندازه بلوک ۱۲ استفاده میکند تا بازیابی عمقی در دانهبندی قابلکنترل انجام شود.
KDA و AttnRes دو محور متفاوت را هدف میگیرند:
| سازوکار | محور بازیابی | دلیل استفاده |
|---|---|---|
| KDA | زمان توالی | نگهداری حافظه بازگشتی فشرده |
| Gated MLA | زمینه توکن | بازیابی اطلاعات دقیق از توالی |
| AttnRes | عمق مدل | انتخاب بازنماییهای قبلی مفید |
| Sparse MoE | ظرفیت پارامتر | مسیریابی توکن به محاسبه تخصصی |
این مهمترین ایده یادداشت است. معماری مدرن یک ترفند توجه واحد نیست؛ مجموعهای از سامانههای حافظه انتخابی است که در زمان، زمینه توکن، عمق و ظرفیت خبرگان کار میکنند.
این مسیر را میتوان زنجیرهای از شکستهای مشخص و ترمیم آنها دید:
| مرحله | توانایی تازه | محدودیت آشکارشده |
|---|---|---|
| توجه سافتمکس GPT-2 | بازیابی دقیق توکن | پیشپردازش درجه دو و کش KV روبهرشد |
| توجه خطی | حالت بازگشتی با اندازه ثابت | تداخل حافظه جمعی |
| DeltaNet | جایگزینی هدفمند یک ارتباط | وابستگی ترتیبی آموزش |
| DeltaNet قطعهای | آموزش موازی مناسب GPU | نبود فراموشی کلی و سازگار |
| Gated DeltaNet | زوال حافظه وابسته به زمینه | کنترل درشت در سطح سر |
| KDA | زوال ریزدانه در سطح کانال | حالت محدود همچنان زمینه دقیق را از دست میدهد |
| KDA + MLA هیبریدی | حافظه کارآمد همراه با بازیابی دقیق دورهای | پیچیدگی بیشتر سامانه و کرنل |
| Latent MoE | ظرفیت تنک بسیار بزرگ | پیچیدگی مسیریابی و ارتباط |
| AttnRes | بازیابی انتخابی در امتداد عمق | زیرساخت اضافه برای حالت باقیمانده |
مسیر واقعی این نیست که «ترنسفورمرها ۲۲٬۵۸۰ برابر بزرگتر شدند». داستان این است که «حافظه قابلویرایش، فراموشکننده، هیبریدی، تنک و انتخابگر در عمق شد».
چند ملاحظه برای صادق ماندن مقایسه ضروریاند:
برای سرو عملی، راهنمای تاخیر استنتاج هوش مصنوعی ژرف توضیح میدهد چرا معماری، سرعت کرنل، دستهبندی و تاخیر قابلمشاهده کاربر باید جداگانه اندازهگیری شوند. راهنمای مدلهای زبانی کوچک نقطه مقابل طراحی را بررسی میکند: کاهش ظرفیت برای اجرای مدل نزدیک کاربر. مطالعه زمان اجرای Wan2.2 نیز همین فشار طراحی مشترک الگوریتم و سامانه را در تولید ویدئو نشان میدهد.
خوانندگانی که میخواهند از توضیح به پیادهسازی برسند، میتوانند این ترتیب را دنبال کنند:
d x d را پیاده کنید و حافظه رمزگشایی آن را با کش KV مقایسه کنید.آزمونهای مفید شامل یادآوری انجمنی، جایگزینی کلید تکراری، تغییر ناگهانی زمینه، پایداری عددی در توالی بلند، برابری حالت بازگشتی و قطعهای، تعادل بار خبرگان و حافظه واقعی رمزگشایی هستند.
این مرور ادبیات در 2026-07-31، برابر با ۹ مرداد ۱۴۰۵ با منابع زیر تطبیق داده شد:
تصاویر این صفحه نمودارهای تحریریهای اصیلی هستند که برای نسخه ژرف ساخته شدهاند. هدف آنها توضیح رابطهها و جریان داده است و شماتیک رسمی معماری Moonshot AI محسوب نمیشوند.

بررسی فنی اینکه چگونه توجه تنک، هسته پایدار CUDA، تقطیر چهارمرحلهای و NVFP4 یک خط لوله ۱۳۳ ثانیهای را به تولید ویدیوی نزدیک به بلادرنگ رساندند.
ادامه مطلب
از تشخیص افسردگی از طریق لرزشهای ریز صدا تا ساخت سیستمهایی که واقعاً حالات عاطفی انسان را درک میکنند: چگونه محاسبات عاطفی به ماشینها هوش هیجانی میدهد.
ادامه مطلب
از ساخت تراشههایی که معماری عصبی مغز انسان را تقلید میکنند تا پردازندههایی که کسری از انرژی GPUها را مصرف میکنند: چگونه محاسبات نورومورفیک سختافزار هوش مصنوعی را بازتعریف میکند.
ادامه مطلببا تیم ما تماس بگیرید و درباره نحوه کمک به کسبوکار خود صحبت کنید.