پرش به محتوای اصلی
پرش به محتوای مقاله

پروژه jhansi.io: حذف تأخیر ۴۰ ثانیه‌ای بوت‌آپ در محیط‌های اجرای کد AI

·۱۸ خرداد ۱۴۰۵۳ دقیقه مطالعه
پروژه jhansi.io: حذف تأخیر ۴۰ ثانیه‌ای بوت‌آپ در محیط‌های اجرای کد AI
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی مدیریت دائمی وابستگی‌ها در یک سندباکس AI؛ برخلاف اکثر محیط‌های اجرایی که پس از هر اجرا نابود می‌شوند، این سیستم کتابخانه‌ها را برای دفعات بعد ذخیره می‌کند.

اگر در حال استقرار عامل‌های هوش مصنوعی هستید که کد می‌نویسند و اجرا می‌کنند، تحمل ۴۰ ثانیه تأخیر برای شروع سرد (Cold Start) کتابخانه‌هایی مثل pandas یا numpy یک کابوس مالی و عملیاتی است. پلتفرم jhansi.io در به‌روزرسانی نسخه ۰.۳ خود، با جایگزینی کانتینرهای یک‌بارمصرف و پاک‌سازی شده با محیط‌های کاری پایدار (Persistent Workspaces)، این گلوگاه را از بین برد.

شکاف اجرایی

بسیاری از محیط‌های ایزوله‌ی ابری (Sandboxes) هر بار از صفر شروع می‌کنند. شما یک فایل main.py را آپلود می‌کنید، دکمه اجرا را می‌زنید و با خطای ModuleNotFoundError: No module named 'requests' مواجه می‌شوید. راهکار ساده‌انگارانه، نصب کتابخانه در زمان اجرا است، اما دانلود مجدد از PyPI در هر بار اجرا، فرآیندی کند، گران و ناپایدار است.

برای یک انسان، ۳۰ ثانیه انتظار شاید فقط یک مزاحمت باشد؛ اما برای یک عامل هوش مصنوعی که برای حل یک مسئله باید ۵ استراتژی کدنویسی مختلف را امتحان کند، این تأخیر یک شکست سیستمی در بهره‌وری است. طبق سری مقالات مربوط به ساخت jhansi.io، این اصطکاک باعث می‌شود تیم‌های توسعه، به‌خصوص در محیط‌های دارای نظارت سخت‌گیرانه که هر بسته جدید نیاز به بررسی زنجیره تأمین (Supply-chain review) دارد، از پذیرش عامل‌های خودکار فاصله بگیرند.

محیط‌های کاری پایدار

برای حل این مشکل، jhansi.io اکنون به هر محیط ایزوله یک پوشه‌ی ماندگار اختصاص می‌دهد که در اجراهای متوالی باقی می‌ماند. در نسخه ۰.۳، وابستگی‌ها نیز در این پوشه ذخیره می‌شوند. سیستم برای شناسایی وابستگی‌ها از منطق اولویت‌بندی دقیقی پیروی می‌کند:

  • پایتون (Python): ابتدا فایل pyproject.toml و سپس requirements.txt را بررسی می‌کند و در نهایت با اسکن pipreqs واردها را به‌طور خودکار شناسایی می‌کند. pipreqs ابزاری هوشمند است؛ مثلاً می‌داند import cv2 به معنای نیاز به opencv-python و import sklearn به معنای scikit-learn است.
  • نود جی‌اس (Node.js): از فایل package.json و دستور npm install استفاده می‌کند.
  • گو (Go): از go.mod با دستور go mod download بهره می‌برد و در صورت نیاز به go mod init و go mod tidy باز می‌گردد.
  • جاوا (Java): از طریق Maven یا Gradle فایل‌های pom.xml و build.gradle را پشتیبانی می‌کند و در نهایت قابلیت کامپایل مستقیم با javac را دارد.

با نصب یک‌باره‌ی وابستگی‌ها در مسیر /sandbox/deps، اجرای دوم یک اسکریپت فوراً انجام می‌شود. برای مثال، اولین درخواست POST از طریق curl به مسیر /sandboxes/sb_abc123/exec ممکن است پیام «...Installing requests==2.31.0» را برگرداند، اما درخواست دوم خروجی را بلافاصله بازمی‌گرداند. این تفکیک محیطی (Workspace-scoping) تضمین می‌کند که نسخه‌ی torch==2.1.0 در یک محیط، باعث تداخل یا «جهنم وابستگی‌ها» برای torch==1.13 در محیطی دیگر نشود.

مرز اعتماد و امنیت

از نظر امنیتی، این پلتفرم خروج داده‌ها (Egress) را فقط به مخازن رسمی مانند PyPI، npm، Maven Central و proxy.golang.org محدود کرده است و هیچ دامنه دلخواهی مجاز نیست. اگرچه jhansi.io ایزولاسیون را تضمین کرده و «شعاع تخریب» (Blast Radius) را محدود می‌کند — مشابه مدلی که در AWS Lambda یا Cloud Run استفاده می‌شود — اما محتوای دقیق کتابخانه‌هایی که کاربر برای نصب انتخاب می‌کند را بازرسی (Audit) نمی‌کند.

استفاده از یک مانیفست (Manifest) نه تنها سرعت را بالا می‌برد، بلکه قابل بازرسی است و به بازرسان اجازه می‌دهد تفاوت‌های وابستگی‌های پین‌شده (Pinned) را بین اجراها مقایسه کنند. اگرچه ایجاد یک SBOM (صورت‌حساب نرم‌افزاری) کامل برای هر اجرا در نقشه راه آینده قرار دارد، اما هدف فعلی، مهار و ایزولاسیون است.

این تغییر، معیار سنجش عامل‌های هوش مصنوعی را از «بیش از حد کند» به «سریع‌تر از یک برنامه‌نویس جونیور» تغییر می‌دهد. اکنون عامل‌ها می‌توانند بدون سوزاندن بودجه‌ی پردازشی روی دانلودهای تکراری، در لحظه روی شکست‌ها و موفقیت‌های خود پیمایش کنند.

نقشه راه آینده

نقشه راه اکنون بر دو بخش گمشده تمرکز دارد: استریمینگ خروجی برای نصب‌های طولانی (تا کاربر ۳۰ ثانیه در سکوت منتظر نماند) و شناسایی وارد‌های گمشده برای نمایش هوشمندتر پیام‌های ImportError در پاسخ‌ها.

فاز بعدی توسعه به «سندباکسینگ سخت» (Hard-sandboxing) می‌پردازد تا از خروج غیرمجاز اعتبارنامه‌های حساس AWS توسط بسته‌ها جلوگیری کند و بررسی کند که چرا Docker به تنهایی کافی نیست.

پروژه jhansi.io تحت لایسنس Apache 2.0 در آدرس github.com/jhansi-io به‌صورت متن‌باز در دسترس است.

چرا این موضوع مهم است؟

این پیشرفت با تکیه بر تخصص در زیرساخت‌های ابری، اصطکاک عملیاتی را در توسعه نرم‌افزارهای عامل‌محور به‌شدت کاهش می‌دهد. حذف تأخیر در استارت سرد، شرط لازم برای تبدیل AI از یک «پیشنهاددهنده کد» به یک «توسعه‌دهنده مستقل» است.

تأثیر برای ایران

این پروژه متن‌باز است و برنامه‌نویسان ایرانی می‌توانند بدون نیاز به APIهای پولی یا مواجهه با تحریم‌ها، آن را روی سرورهای داخلی مستقر کنند.

·نگاه ما
تحریریه دات‌هوش

تحلیل ما این است که تغییر رویکرد از محیط‌های یک‌بارمصرف (Stateless) به محیط‌های دارای وضعیت (Stateful)، نقطه عطفی برای پذیرش عامل‌های هوش مصنوعی در محیط عملیاتی است. این تحول گ گلوگاه را از «زمان نصب» به «زمان تفکر و منطق» منتقل می‌کند و اجازه می‌دهد چرخه‌ی Iterate-Test-Fix در مقیاس میلی‌ثانیه اتفاق بیفتد، نه ثانیه.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.