Cerebras مدل های هوش مصنوعی تریلیون پارامتری را به کار می گیرد
آدرس مقاله: https://www.cerebras.ai/blog/how-we-deploy-trillion-parameter-frontier-models-on-cerebras آدرس نظرات: https://news.ycombinator.com/item?id=50227356 امتیاز: 216 # نظرات: 67
یکی از متداولترین سؤالاتی که ما میپرسیم این است که چگونه مدلهای بزرگ را روی تراشههای ویفر در مقیاس Cerebras مستقر میکنیم. یک ویفر Cerebras WSE-3T دارای 44 گیگابایت حافظه داخلی است و مدلهای مرزی با تریلیون پارامتر تنها برای وزن خود به ترابایت نیاز دارند.
در این پست، توضیح خواهیم داد که چگونه یک مدل مرزی بزرگ را در چندین ویفر WSE-3T تقسیم میکنیم تا مدلهای چند تریلیون پارامتری را با 1000-2000+ توکن در ثانیه اجرا کنیم.
ما از مدل منبع باز Kimi K3، با حدود 3 تریلیون پارامتر، به عنوان مثالی گویا استفاده خواهیم کرد.
Kimi K3 یک مدل منبع باز، پارامتر 3T با 69 لایه خطی توجه و 24 لایه متراکم است.
امتیاز قابل توجه 88.3% در Terminal-Bench 2.1 (در مقابل GPT-5.6 Sol 88.8%) و 91.2% در BrowseComp (در مقابل GPT-5.6 Sol 90.4%) است. این نتایج کدگذاری و قابلیتهای عاملی سطح مرزی را نشان میدهند، حتی در برخی معیارها از مدلهای اختصاصی پیشرو بهتر عمل میکنند. اطلاعات بیشتر در مورد Kimi K3 را اینجا بخوانید.
برای محاسبه تعداد کل ویفرهای Cerebras WSE-3T که باید از Kimi K3 پشتیبانی کنیم، اجازه دهید ابتدا اندازه هر لایه مدل را محاسبه کنیم.
Kimi K3 دارای 3 تریلیون پارامتر است. اگر تمام پارامترهای 3T هر کدام در 4 بیت ذخیره شوند، مقدار بار پارامتر خام به صورت زیر است:
با تقسیم آن بار بر 93 لایه، به دست می آید:
اکنون که می دانیم هر لایه به 16 گیگابایت نیاز دارد، می توانیم بفهمیم که در هر ویفر 44 گیگابایتی چند لایه قرار می گیرد. پاسخ به نوع لایه بستگی دارد:
بنابراین، با 69 لایه خطی Kimi K3 و 24 لایه متراکم، به دست می آوریم:
این به ما تعداد کل ویفر 35 + 24 = 59 ویفر را می دهد.
Cerebras مدل ها را در خط لوله اجرا می کند. پس از اینکه کامپایلر Cerebras لایههای مدل را در سراسر مناطق ویفر نقشهبرداری کرد، زمان اجرا مسیر حرکت توکنها را بین ویفرها ترسیم میکند. برای تأخیر فوق سریع، فقط باید فعالسازیها بین ویفرها منتقل شوند و این کار را میتوان از طریق RDMA از طریق اترنت انجام داد. این تقریبا 2 میکروثانیه در هر جهش است.
تاکید بر این نکته مهم است که چون هر ویفر Cerebras دارای 44 گیگابایت SRAM روی تراشه است و هر لایه تنها 16 گیگابایت است، ما معمولا میتوانیم کل لایههای مدل را مستقیما روی تراشه قرار دهیم.
این بدان معنی است که در بیشتر موارد، وزن مدل هرگز نباید جابجا شود، و لایهها نیازی به تقسیم شدن بین ویفرها ندارند. فقط فعالسازیها از یک ویفر به ویفر دیگر عبور میکنند.
اکنون که ویفرهای خود را به هم متصل کردهایم و مدل را تنظیم کردهایم، میتوانیم هر ویفر را به عنوان یک مرحله در خط مونتاژ در نظر بگیریم: وزن مدل برای هر مرحله در جای خود باقی میماند و نتایج میانی درخواست در مراحل لایه حرکت میکنند.
برای مثال، ویفر 1 لایههای مدل 1-2 را اجرا میکند و فعالسازیهای خود را به ویفر 2 میفرستد. ویفر 2 لایههای 3-4 را اجرا میکند و نتایج خود را به ویفر 3 میفرستد و به همین ترتیب ادامه میدهد تا آخرین ویفر توکن بعدی را تولید کند.
این یک تصور غلط رایج را ایجاد می کند. اگر یک توکن باید به ترتیب از هر ویفر عبور کند، آیا هر ویفر در حالی که منتظر نوبت خود است بیکار نمی نشیند؟ در واقع، آیا سیستم در اندازه دسته ای یک اجرا نمی شود؟
نه! اگر ما هر بار فقط یک درخواست را به پایین خط ارسال کنیم و منتظر بمانیم تا قبل از شروع درخواست بعدی تکمیل شود، این یک استفاده ناکارآمد از خط لوله خواهد بود. در عوض، کل خط لوله را با درخواست های مختلف پر نگه می داریم. از آنجایی که مدل قبلا به مراحل خط لوله تقسیم شده است، هر مرحله می تواند همزمان بر روی یک درخواست متفاوت کار کند.
در حالی که مرحله 3 یک رمز را برای درخواست A پردازش می کند، مرحله 2 یکی را برای درخواست B و مرحله 1 یک را برای درخواست C پردازش می کند. در مثال ما، هر مرحله یک لایه است. در تولید، Cerebras از مراحل بسیار ریزتر و بسیاری از آنها استفاده می کند.
هر مرحله همچنین میتواند یک میکرو دسته، یک گروه کوچک از درخواستها را به جای یک درخواست واحد پردازش کند. بنابراین تعداد درخواست ها در پرواز تقریبا تعداد مراحل ضربدر اندازه میکرو دسته است.
برای درک مبادله، ریز دستههای کوچکتر هر درخواست را سریعتر میکنند، در حالی که میکرو دستههای بزرگتر، توان کل را افزایش میدهند.
مقدار حافظه روی تراشه اختصاص داده شده به حافظه نهان KV، حداکثر تعداد درخواست های همزمان را تعیین می کند. هر درخواست در پرواز به حافظه پنهان KV خود روی هر ویفر لایه متراکم نیاز دارد، بنابراین اندازه حافظه روی تراشه سقف درخواستهای همزمان را تعیین میکند. همانطور که در بالا توضیح داده شد، ما فقط نیاز به محاسبه نیازهای کش KV برای لایه های متراکم داریم.
برای هر ویفر 44 گیگابایتی که قبلا یک لایه متراکم دارد، میتوانیم فضای باقیمانده برای کش KV را با استفاده از:
کل ذخیره ویفر - اندازه یک لایه متراکم. در این مورد:
برای یافتن تعداد درخواستهای همزمان پشتیبانیشده برای هر نگاشت مدل خاص، ابتدا محاسبه میکنیم که یک درخواست ۲۵۶ هزار نفری چه مقدار کش اشغال میکند:
سپس برای محاسبه تعداد کل درخواستهای همزمان که این پیکربندی پشتیبانی میکند، تقسیم میکنیم:
تعداد کل درخواستهای همزمان نشاندهنده تعداد درخواستهای همزمان در حال حرکت در خط لوله در هر نقطه از زمان است. برخلاف دستهای از GPU، این درخواستها منتظر نمیمانند تا یکدیگر تمام شوند، آنها به طور مداوم از طریق خط لوله جریان مییابند.
البته، نه همزمانی و نه اندازه دسته ای به شما نمی گوید که یک سیستم استنتاج دقیقا چقدر کارآمد عمل می کند. هنگام ارزیابی توان عملیاتی یک سیستم استنتاج، متریک معنیدارتر، مجموع گذر توکن در واحد توان (مثلا توکنها در ثانیه در هر مگاوات)، هنگامی که با همان سرعت تولید خروجی اندازهگیری میشود، است.
همین رویکرد به مدلهای بزرگتر نیز تعمیم مییابد: حافظه مورد نیاز برای وزنها و وضعیت درخواست را محاسبه کنید، مدل را بین ویفرها توزیع کنید و آنها را به خط لوله متصل کنید. هر ویفر اضافی به حافظه محاسباتی و روی تراشه کمک می کند و به ما امکان می دهد مدل هایی را بسازیم که از ظرفیت هر تراشه ای فراتر می رود.
ممنون که با ما یاد گرفتید به استقرار یک مدل در Cerebras یا ساختن با ابر استنتاج ما علاقه دارید؟
طرح های هالی چانگ. با تشکر از Atharva Talpade، Zhenwei Gao، Angela Yeung، Jessica Liu، Joyce Er، Emma Call و Rohan Gupta برای بررسی و بازخوردشان.
متن اصلی (انگلیسی)
Cerebras Deploys Trillion-Parameter AI Models
Article URL: https://www.cerebras.ai/blog/how-we-deploy-trillion-parameter-frontier-models-on-cerebras Comments URL: https://news.ycombinator.com/item?id=50227356 Points: 216 # Comments: 67