TL;DR
- Back Engineering 16 سپتامبر 2025• 15 دقیقه خواندن👋 سلام، من اریک هستم.
- من روی سیستمها و محصول در Modal کار میکنم.
- ما اخیراً نوتبوکهای Modal را راهاندازی کردیم،.
چه اتفاقی افتاد
Back Engineering 16 سپتامبر 2025• 15 دقیقه خواندن👋 سلام، من اریک هستم. من روی سیستمها و محصول در Modal کار میکنم.
ما اخیراً نوتبوکهای Modal را راهاندازی کردیم،. یک نوتبوک ابری جدید Jupyter که پردازندههای گرافیکی و تصاویر دلخواه سفارشی را در چند ثانیه بوت میکند،.
همگی با همکاری بلادرنگ. من میخواهم برخی از مهندسیهایی را که این تجربه را ممکن ساخته است به اشتراک بگذارم.
این پست در مورد ویژگیها نیست،. بلکه درباره سیستمهایی است که پشت بارهای کاری GPU تعاملی و با کارایی بالا در فضای ابری کار.
میکنند در حالی که هنوز احساس فوری دارند. نوتبوکها بهعنوان یک آزمایش کوچک آغاز شدند:.
آیا میتوانیم یک نوتبوک میزبانی و مشارکتی بدون قربانی کردن سرعت محلی بسازیم؟ اکثر جریانهای کار ابررایانهای امروزه شامل ارسال سرور Jupyter بر روی یک devbox بزرگ و گران قیمت است.
که باید گرم بماند (بهعلاوه Slurm برای اجراهای دستهای). ما چیز بهتری میخواستیم - یک ویرایشگر مدرن که همکاری با موارد اولیه Modal مانند ذخیرهسازی مداوم را.
ترکیب میکند،. تصاویر سفارشی و دسترسی فوری به GPU.
نوتبوکهای مدال برای اشتراکگذاری تحقیقات ML در سراسر Suno باورنکردنی بودهاند. مهندسان و طراحان میتوانند در عرض چند دقیقه پس از اتمام دورههای آموزشی،.
بازی با مدلهای پیشرفته را آغاز کنند. — ویکتور تائو،.
مهندس تحقیقات ML در این پست به نحوه انجام این کار،. از زمان اجرا (جعبههای ماسهای،.
بارگذاری تصویر،. پروتکل هسته) تا لایه همکاری و در نهایت سطح ویرایشگر میپردازم.
Sandboxهای معین برای باطنهای حالت دار همه چیز با هستهها شروع میشود. در قلب هر نوت بوک Jupyter،.
پروتکل هسته قرار دارد،. زبانی که برای اجرای کد با فرآیند هسته IPython صحبت میکنید.
ممکن است در ابتدا پیچیده به نظر برسد،. اما ایده ساده است:.
یک سلول کد ارسال کنید،. نتیجه را دریافت کنید،.
به علاوه جریانهایی از stdout،. stderr و خروجیهای غنی.
در راهاندازی استاندارد،. Jupyter بر روی یک دستگاه پشتیبان با پیوند یک به یک به ویرایشگر وب اجرا میشود.
اجرای قابل اعتماد آن در یک محیط GPU ابری مشترک و چند مستاجر،. ما را ملزم به بازنگری در آن مدل کرد.
برای شروع با لایه محاسباتی،. هستهها در داخل جعبههای ایمنی مدال اجرا میشوند:.
انتزاع ما برای فرآیندهای ایمن و ایزوله با سیستم فایل،. منابع و چرخه حیات خود.
آنها یک API سطح پایین هستند که میتوانند ظرف چند ثانیه در سراسر جهان راه اندازی کنند. در مقایسه با سایر سیستمهای sandbox (Cloudflare،.
Vercel،. e2b)،.
Sandboxهای Modal کمیمتفاوت هستند:. آنها برای پشتیبانی از بار کاری با کارایی بالا با صدها CPU،.
پردازندههای گرافیکی سطح بالای Nvidia،. گیگابایت دیسک،.
و یک سیستم فایل FUSE با آدرسدهی محتوا،. ساخته شدهاند.
این بدان معنی است که Modal Sandboxes میتواند بارهای کاری هوش مصنوعی را اجرا کند. (مدال سندباکسها فقط برای ما نیستند؛ آنها اولیهای هستند که ما میخواهیم دیگران از آن استفاده کنند.
بهعنوان مثال، آنها نحوه اجرای محیطهای توسعهدهندگان هوش مصنوعی توسط Lovable هستند. و Marimo محصول ابری Molab خود را در بالای Sandboxes ساخته است.
خوب،. یک تجربه بسیار متفاوت از نوت بوک Modal که نشان میدهد چگونه Sandboxها میتوانند انواع.
مختلفی از محاسبات تعاملی را تامین کنند.) برای پر کردن شکاف بین هسته و دنیای بیرون،. ما دیمونی به نام modal-kernelshim نوشتیم که در داخل هر Sandbox قرار دارد.
این پیامهای پروتکل Jupyter را از طریق ZeroMQ به تماسهای HTTP تونلشده از طریق صفحه کنترل ما ترجمه. میکند.
این به ما امکان میدهد تا اجرای سلول،. وقفهها و خاموش شدن سلول را به گونهای مدیریت کنیم که شبیه هسته Jupyter محلی باشد،.
اما بسیار ساده شده است. از دیدگاه کاربر،.
میبینید که خروجیهای جریان به محض اجرای کد در مرورگر شما ظاهر میشوند. در پشت صحنه،.
این خروجیها از طریق TLS از Sandbox به جلو از طریق یک مؤلفه سرور ارسال میشوند. این معماری (shim → server → frontend) نحوه دسترسی آنی و از راه دور به هستهها را.
نشان میدهد،. در حالی که یک رابط مدرن ارائه میدهد که چندین کاربر میتوانند به آن متصل شوند.
زیرساخت کانتینر فوری و توزیع شده در 4 سال گذشته،. ما بی سر و صدا در حال ساخت بسیاری از سیستمهای توزیع شده و زیرساختهای اصلی.
برای تامین انرژی زمان اجرای کانتینر خود بوده ایم. میخواستم برخی از این کارها را اینجا به اشتراک بگذارم،.
زیرا در نهایت این سیستمهای سطح پایین هستند که باعث میشوند نوتبوکها تیک بزنند. تصاویر کانتینر با بارگذاری تنبل یکی از بزرگترین منابع تأخیر در شروع کانتینرها، بازکردن تصاویر است.
در Docker یا Kubernetes،. آوردن یک تصویر Python/ML 8 گیگابایتی به معنای دانلود و از حالت فشردهسازی لایهها قبل از اجرای هر.
چیزی است – اغلب نزدیک به یک دقیقه. این برای خدمات طولانی مدت خوب است،.
اما حلقه بازخورد را در یک نوت بوک تعاملی از بین میبرد. راهحل ما ساختن یک سیستم فایل کانتینری با بارگذاری تنبل بود.
بهجای اینکه هر فایلی را در جلو بکشیم،. فقط یک فهرست متادیتا سبک وزن را بارگذاری میکنیم و آن را از طریق سرور Rust FUSE نصب.
میکنیم. محتویات فایل واقعی در صورت تقاضا واکشی میشوند لحظهای که فرآیند شما آنها را لمس می.
کند. این خواندهها از طریق یک کش لایهای آدرسدهی محتوا جریان مییابند:.
حافظه پنهان صفحه حافظه،. SSD محلی،.
سرورهای کش منطقهای،. CDN منطقهای،.
و در نهایت ذخیرهسازی حباب. اکثر دسترسیها به یکی از سطوح سریع برخورد میکنند.
وقتی این کار را نمیکنند،. ما فقط فایلهایی را که واقعاً به آنها نیاز دارید پخش میکنیم،.
اغلب با سرعتی که میتواند سختافزار را اشباع کند. این فایل سیستم و زمان اجرای کانتینر مرتبط با آن در واقع اولین چیزهایی هستند که وقتی بهعنوان.
مهندس موسس به Modal پیوستم ساختم:. اولین خطوط Rust در شرکت.
این بهعنوان یک آزمایش برای بهبود معیارها شروع شد و اکنون پایهای است که راهاندازی سریع کانتینر را. ممکن میکند،.
از نوتبوکها گرفته تا تولید استنتاج هوش مصنوعی. زمانبندی و ظرفیت اجرای کارآمد نوتبوکها فقط مربوط به راهاندازی سریع کانتینر نیست،.
بلکه به نحوه قرارگیری آنها نیز مربوط میشود. در Modal،.
نوتبوکها با توابع ما یکسان هستند و هزاران نفر از آنها پشتیبانی میکنند از CPU و GPU. زمانبندی بارهای کاری را در سراسر این استخر متعادل میکند،.
بنابراین چه با ۰٫۱۲۵ پردازنده کوچک شروع کنید یا تا چندین H100 یا B200،. کانتینر شما همچنان در صورت وجود ظرفیت فوراً قرار میگیرد.
قبلاً در مورد اینکه چگونه ناوگان خود را بهطور خودکار برای مطابقت با تقاضا،. پوشش ابرها و بهینهسازی برای قیمت،.
مقیاس بندی میکنیم،. نوشته ایم.
نوت بوکها چین و چروک دیگری را اضافه میکنند: هستهها اغلب بیکار هستند. بیکار گذاشتن یک نمونه GPU غول پیکر راهی سریع برای سوزاندن پول است.
راهحل ما این است که آنها را بهطور خودکار متوقف کنیم. و وقتی برگشتید، در عرض چند ثانیه دوباره راه اندازی میشوند.
شما تجربه یک ماشین ماندگار را بدون هزینه سربار زنده نگه داشتن آن بدست میآورید. حجم کار هوش مصنوعی مدرن حول دادهها میچرخد.
آموزش شامل دادهها و وزنهها میشود. خطوط لوله استنتاج نقاط بازرسی،.
جاسازیها و خروجیها را از طریق زنجیرهای از مراحل حرکت میدهد. هیچ یک از اینها بدون ذخیره سازی دائمیکار نمیکند - و در یک سرور بدون سرور.
در جهان،. جایی که ظرفیت در مناطق و سخت افزار تغییر میکند،.
تداوم چیزی است که بار کاری را منسجم نگه میدارد. برای اینکه نوت بوکها قابل دوام باشند،.
به یک سیستم ذخیره سازی جهانی،. قابل تغییر و سریع نیاز داشتیم.
این چیزی است که VolumeFS، ستون فقرات Modal Volumes، ارائه میکند. این یک سیستم فایل FUSE است که برای دسترسی جهانی طراحی شده است و بر روی یک شبکه.
توزیع شده ساخته شده است که پتابایت داده را ذخیره میکند. صادقانه بگویم، اجزای زیادی برای توصیف VolumeFS در این پست وبلاگ وجود دارد.
اما همین کافی است که بگوییم این یک زیرساخت اصلی در Modal است که به پلتفرم اجازه می. دهد تا با هم جمع شوند.
خلاصه سریع این است که درختهای فایل در Spanner زندگی میکنند،. عملیاتها به گونهای نوشته میشوند که در نهایت سازگار باشند،.
و ما مجدداً از CDN آدرسدهی شده محتوای توزیع شده خود استفاده میکنیم. ما مشتاقانه منتظریم تا بعداً در مورد داخلیهای Modal Volumes بحث کنیم.
مانند هر سیستم خوب، کاربران هرگز نباید به این موضوع فکر کنند! نتیجه این است که فایلها احساس محلی میکنند،.
اما رفتار میکنند در سطح جهانی شما میتوانید محاسبات را در هر نقطه از جهان بچرخانید و. همچنان دادههای خود را داشته باشید.
نوتبوکها با همکاری همزمان ماهیت اجتماعی دارند. آنها فقط برای اجرای کد نیستند،.
بلکه برای کاوش ایدهها با هم و پشت سر گذاشتن یک رکورد باسواد هستند. بنابراین ما نیاز به ویرایش مشارکتی بلادرنگ داریم.
برای این قطعه،. ما به Rushlight،.
کتابخانه کوچکی تکیه کردیم که چند سال پیش زمانی که در حال آزمایش تغییر عملیاتی در CodeMirror 6. بودم،.
منبعباز آن را تهیه کردم. سبک و قوی، با ذخیره سازی بلادرنگ و فشرده سازی خودکار در پایگاه داده خودتان.
هر ویرایش از طریق Redis Streams جریان مییابد، جایی که برای سایر مشتریان پخش میشود. لایه OT تضمین میکند که تغییرات همگرا میشوند، حتی زمانی که چندین نفر همزمان تایپ میکنند.
در قسمت جلویی، CodeMirror حضور و مکان نماهای متعدد را کنترل میکند. حالت ویرایش را از حالت اجرا جدا میکنیم.
وقتی یک سلول را اداره میکنید،. خروجیها در زمان واقعی به صورت درون خطی پخش میشوند،.
اما هر کسی که بعداً دوباره وصل میشود همیشه میتواند وضعیت فعلی را از باطن بازیابی. کند.
نتایج بزرگتر-نقشهها،. ویدیوها،.
خروجیهای مدل- به S3 Express One Zone منتقل میشوند تا جریان ویرایش سریع بماند،. در حالی که خروجیها همچنان بادوام و قابل بازیابی هستند.
برخی از تیمها درخواست کردند که نوتبوکها را با سهامداران خارج از Modal خود به اشتراک بگذارند،. بنابراین ما اشتراکگذاری مبتنی بر پیوند را اضافه کردیم و اجازه دادیم ویجتهای Jupyter را برای افزودن تعامل.
ایجاد کنیم. به این ترتیب،.
یک نوت بوک فقط یک صفحه خراش نیست،. بلکه میتواند بهعنوان یک سطح نمایشی سبک وزن نیز عمل کند.
ما پروتکل ویجت را روی نوت بوکهای مدال پیادهسازی کردیم. طبق دانش ما، این اولین پیادهسازی کاربردی ویجتها در یک محیط ویرایش مشترک بلادرنگ است!
ویژگیهای ویرایشگر: تکمیل LSP و AI در سال 2025، ویراستاران باید هوشمند باشند. Jupyter از لحاظ تاریخی در ارگونومیتوسعه دهندگان عقب مانده است - تکمیل،.
اسناد درون خطی،. و برجسته سازی معنایی هرگز کاملاً خارج از چارچوب کار نمیکرد.
برای نوتبوکهای Modal، ما میخواستیم این قابلیتها بومیباشند. ما با پیادهسازی قطعات اصلی پروتکل سرور زبان (textDocument/completions، textDocument/hover، textDocument/semanticTokens/full) و اتصال آنها به Pyright شروع کردیم.
این شما را تکمیل، مستندات، و برجسته سازی معنایی شبکه میکند. ما برخی از این پیادهسازی را منبعباز کردیم.
ما همچنین قالببندی خودکار را با Ruff ادغام کرده ایم و بیلد WebAssembly بینظیر آن را مستقیماً در قسمت. جلوی خود اجرا میکنیم.
در سمت هوش مصنوعی، ما پیشبینی ویرایش را آزمایش کردیم. در حال حاضر ما از Claude 4 برای پیشنهادهای ویرایش بعدی استفاده میکنیم.
ما همچنین سعی کرده ایم با میزبانی استنتاج در خود Modal آن را بیشتر پیش ببریم. آن نسخه،.
مدل Zeta Zed را بر روی پردازندههای گرافیکی H100 اجرا میکند و تکمیلها را مستقیماً از زیرساخت ابری. خودمان ارائه میکند.
اگرچه قبل از اینکه آن را بهعنوان پیش فرض فعال کنیم،. هنوز به تغییراتی در رابط کاربری نیاز دارد.
من فکر میکنم ما واقعاً چیزی ساخته ایم که واقعاً شبیه یک محیط توسعه درجه یک است،. با ویژگیهای ویرایشگر مدرن در کنار اجرای مبتنی بر GPU.
نتیجهگیری ما سال هاست که به زیرساختهای اساسی در Modal فکر میکنیم،. با اهداف سیستمی:.
سرعت،. عملکرد،.
کارایی و سهولت استفاده. هر لایه بر روی آخرین لایه ساخته شده است.
نوتبوکهای مدال اوج کار زیادی در سیستمهای فایل،. سیستمعامل،.
سیستمهای توزیعشده،. زمانبندی،.
امنیت،. جعبههای ایمنی،.
جداسازی و موارد دیگر است. مسلماً، اگرچه ما روی رابطهای وب و قابلیت مشاهده سرمایهگذاری کرده ایم، Modal هرگز در وب نبوده است.
نقطه شروع ما همیشه SDK بوده است، زیرا ما روی برنامه نویسان شرط بندی میکنیم. اما SDKها انتخاب مناسبی برای همه کارها نیستند،.
و این محصول اولین حمله ما به سطحی است که فراتر از کتابخانه مشتری است،. اولین "محصول جدید" ما جدا از بقیه.
این کار بهعنوان یک شروع شد نمونه اولیه انفرادی و به یک تلاش تیمیکوچک تبدیل شد. مشارکت کنندگان عبارتند از:.
مهندسی:. اریک ژانگ،.
هاوارد حلیم،. آمیت پراساد طراحی محصول:.
سونا دولاسیا بازخورد محصول:. چارلز فرای،.
مایکل واسکوم،. لوئیس کاپلو،.
توماس فن راه اندازی:. کنی نینگ،.
ربکا استورم،. بن شابابو،.
مارگارت شن و به ویژه از شرکای طراحی ما که از شرکای طراحی نوتبوک استفاده میکنند،. بسیار سپاسگزاریم.
نوت بوک را امتحان کنید.
چرا مهم است
اهمیت این خبر در این است که روی استفاده واقعی از AI و تصمیمگیری سازمانی اثر میگذارد.
منبع
لینک منبع اصلی در کارت و صفحه مقاله نمایش داده میشود.
