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

تضاد پایداری و خودمختاری در به‌روزرسانی v0.32 اولاما برای تیم‌های محلی

·۸ مرداد ۱۴۰۵۷ دقیقه مطالعه۲ بازدید
تحلیل
داستان شکست تست «عامل هوش مصنوعی محلی» Ollama 0.32.0 روی سرور عملیاتی — تصمیم عدم ارتقای زیرساخت GPU مشترک و انحراف بین یاددا
داستان شکست تست «عامل هوش مصنوعی محلی» Ollama 0.32.0 روی سرور عملیاتی — تصمیم عدم ارتقای زیرساخت GPU مشترک و انحراف بین یاددا
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

افشای تضاد میان «یادداشت‌های انتشار» و «واقعیت باینری» در Ollama و شناسایی ریسک تخریب دیتابیس SQLite هنگام به‌روزرسانی در محیط‌های مک.

اگر یک سرور اشتراکی برای چندین کاربر مدیریت می‌کنید، یک به‌روزرسانی ساده می‌تواند کل جریان کاری تیم شما را متوقف کند. در محیط‌های عملیاتی، پیش‌بینی‌پذیریِ یک فرآیند بسیار ارزشمندتر از جذابیت یک قابلیت جدید است.

یک سرور عملیاتی که اولاما (Ollama) را روی سخت‌افزار M1 Max با ۶۴ گیگابایت رم اجرا می‌کرد، به‌رغم وسوسه‌برانگیز بودن قابلیت‌های عامل (Agent) — که شبیه دستیاری است که فقط دستور نمی‌گیرد، بلکه می‌تواند برای رسیدن به هدف، مراحل مختلف را برنامه‌ریزی و اجرا کند — پیشنهاد به‌روزرسانی به نسخه v0.32.0 را رد کرد. طبق گزارش‌های فنی، در سخت‌افزارهای اشتراکی، تضادی بنیادین بین خودمختاری مدل و پایداری سیستم وجود دارد. برای تیم‌هایی که منابع واحد پردازش گرافیکی (GPU) را به صورت مشترک مدیریت می‌کنند، مواجه شدن با خطای «دستور ناشناخته» بسیار بهتر از کراش کردن کل سیستم در محیط عملیاتی است.

همان‌طور که در تحلیل‌های قبلی ما درباره‌ی مدیریت منابع در مدل‌های محلی اشاره کردیم، انتقال از محیط‌های آزمایشگاهی به سرویس‌های داخلی اشتراکی، حساسیت‌ها را تغییر می‌دهد. در این محیط‌ها، یک دستگاه مک اغلب به عنوان مرکزی برای کاربران متعدد عمل می‌کند که وظایفی متنوع نظیر تولید تصویر یا استنتاج (Inference) — یعنی لحظه‌ای که مدل واقعاً جواب تولید می‌کند؛ مثل خودِ آشپزی، نه دوره‌ی آموزش آشپز — را اجرا می‌کنند. وقتی سخت‌افزار به صورت اشتراکی استفاده می‌شود، قابلیت پیش‌بینی یک فرآیند بسیار باارزش‌تر از نوآوری‌های یک قابلیت جدید است.

واقعیت «دستور ناشناخته»

طبق بررسی‌های عملی، کسانی که سعی کردند از قابلیت‌های جدید استفاده کنند با شکست مواجه شدند. اجرای دستور ollama agent منجر به خطای Error: unknown command "agent" for "ollama" می‌شود.

بررسی دستورات موجود از طریق --help نشان می‌دهد که فایل باینری تنها از دستوراتی نظیر serve ،create ،show ،run ،stop ،pull ،push ،list ،ps ،cp ،rm و launch پشتیبانی می‌کند. زیردستور agent به طور فیزیکی در باینری غایب است. این موضوع تایید می‌کند که نسخه‌ی نصب شده، آن نسخه‌ای نیست که در آخرین یادداشت‌های انتشار (Release Notes) توصیف شده است.

تله‌ی انحراف نسخه

به نقل از گزارش فنی وب‌سایت dev.to که در ۳۰ ژوئیه ۲۰۲۶ منتشر شد، بررسی‌های ساده‌ی نسخه اغلب مدیران سیستم را گمراه می‌کند. بررسی از طریق Homebrew ممکن است نسخه v0.32.1 را به صورت پایدار (bottled) نشان دهد، در حالی که باینری در حال اجرا که به صورت اپلیکیشن Electron نصب شده، همچنان روی نسخه v0.30.8 مانده است.

این اختلاف به این دلیل رخ می‌دهد که مسیرهای سیستم (System Path) اغلب به باینریِ اپلیکیشن لینک می‌شوند که چرخه به‌روزرسانی Homebrew را دنبال نمی‌کند. در این مورد خاص، دستور brew info ollama وضعیت را «نصب نشده» (Not installed) گزارش می‌کرد، چون نصب واقعی در مسیر /Applications/Ollama.app قرار داشت. باینری موجود در /usr/local/bin/ollama صرفاً یک لینک نمادین (Symbolic Link) به باینری داخلی اپلیکیشن است.

برای یافتن نسخه واقعی باید متادیتای اپلیکیشن بررسی شود:
$ defaults read /Applications/Ollama.app/Contents/Info.plist CFBundleShortVersionString

این بررسی تایید کرد که نسخه واقعی ۰.۳۰.۸ است. همچنین بررسی برچسب‌های زمانی (Timestamps) پوشه‌ها نشان داد که اپلیکیشن از تاریخ ۱۲ ژوئن ۲۰۲۶ جایگزین یا به‌روزرسانی نشده است. این موضوع یک «انحراف» (Drift) میان آنچه مستندات ادعا می‌کنند و آنچه سخت‌افزار در عمل اجرا می‌کند ایجاد می‌کند.

تحول ساختاری در نسخه v0.32.0

بر اساس خلاصه‌های داخلی از انتشار این نسخه در ۱۱ ژوئیه ۲۰۲۶، ماهیت ابزار به‌طور بنیادین تغییر کرده است:

  • نسخه‌های پیشین (v0.30.x): ابزارهایی طراحی شده بودند تا مدل را یک بار فراخوانی کنند و یک پاسخ واحد دریافت نمایند.
  • نسخه v0.32.0 و پس از آن: ابزارهایی که اجرای آن‌ها یک عامل را فعال می‌کند که قادر است کارهای واقعی را تفویض کند؛ مانند کدنویسی یا انجام جست‌وجوی وب.

این یک گذار از ابزاری «واکنشی» (Reactive) به یک عامل «خودمختار» (Autonomous) است که می‌تواند وظایف چندمرحله‌ای را به طور مستقل پیش ببرد.

ترومای تخریب پایگاه داده

تصمیم برای اجتناب از به‌روزرسانی، ریشه در شکست شدیدی دارد که در ۱۴ ژوئیه ۲۰۲۶ رخ داد. در یکی از تلاش‌ها برای آپدیت، پایگاه داده تنظیمات Ollama.app در مسیر ~/Library/Application Support/Ollama/db.sqlite دچار فساد (Corruption) شد و سلسله‌مراتب مدل‌ها را تخریب کرد.

  • علائم: دستور ollama list ناگهان تنها یک مدل را نشان می‌داد، در حالی که مدل‌های دیگر هنوز روی دیسک حضور داشتند.
  • علت ریشه‌ای: ستون settings.models در دیتابیس SQLite به‌اشتباه به‌روزرسانی شده بود تا به جای ریشه (Root)، به یک زیرپوشه در سلسله‌مراتب مدل‌ها اشاره کند.
  • تضاد: این تنظیم داخلی اپلیکیشن بر متغیرهای محیطی OLLAMA_MODELS و پیکربندی‌های launchctl setenv اولویت داشت.

بازیابی این وضعیت نیازمند اجرای مستقیم دستورات UPDATE در SQL برای بازنویسی دستی فایل db.sqlite بود. این تجربه ثابت می‌کند که پرش‌های نسخه‌ای در این ابزار می‌تواند نحوه مدیریت حالت‌های داخلی را به‌طور بنیادین تغییر دهد و ریسک از دست رفتن پیکربندی مدل‌های متعدد را به همراه داشته باشد.

تداخل منابع در GPUهای اشتراکی

در یک دستگاه M1 Max اشتراکی، حافظه ویدیویی (VRAM) یک بازی با مجموع صفر است. این ماشین یک محیط ایزوله نیست، بلکه واحدی عملیاتی برای اجرای مدل‌های محلی Qwen است. در حال حاضر، یک اسکریپت هماهنگ‌ساز، صف وظایف خطی را مدیریت می‌کند تا از کراش سیستم هنگام تولید سنگین ویدیو یا موسیقی جلوگیری شود.

مانیتورینگ سیستم با دستور ps aux | grep ollama بار فعلی را نشان می‌دهد:

  • llama-server در حال اجرای qwen3-coder-next روی پورت ۵۵۴۳۳ با فعال بودن --flash-attn on و پارامتر -np 1.
  • فرآیندهای هم‌زمان برای ollama serve و اپلیکیشن Electron مخفی (Ollama hidden).

معرفی عامل‌های خودمختار، این مدل خطی را می‌شکند:

  • وضعیت فعلی: هر دستور برابر با یک فرآیند واحد با چرخه حیات و زمان اجرای پیش‌بینی‌پذیر است.
  • وضعیت عامل‌محور: یک دستور، یک حلقه چندمرحله‌ای از جست‌وجوهای وب و اجرای کدها را فعال می‌کند.

از آن‌جا که زمان‌بند (Scheduler) خارجی نمی‌داند چرا یک عامل چندین گام داخلی برمی‌دارد، این عامل می‌تواند GPU را به‌طور نامحدود اشغال کند، سایر فرآیندهای حیاتی شرکت را منجمد سازد و این فرض را که «هر دستور برابر با یک فرآیند است» از بین ببرد.

چک‌لیست به‌روزرسانی در محیط عملیاتی

برای جلوگیری از این شکست‌ها، گزارش مذکور یک فرآیند تأیید چهار مرحله‌ای را پیش از به‌روزرسانی ابزارهای GPU اشتراکی پیشنهاد می‌کند:

۱. تأیید فیزیکی: به مدیریت بسته (Package Manager) اعتماد نکنید. دستور --version و --help را روی خودِ باینری اجرا کنید تا وضعیت فعلی را بررسی کنید. به خاطر داشته باشید که مسیرهای مختلف نصب (Homebrew در مقابل اپلیکیشن رسمی یا بیلد دستی) چرخه‌های به‌روزرسانی متفاوتی ایجاد می‌کنند.

۲. حسابرسی تاریخی: به دنبال کراش‌های گذشته مربوط به فایل‌های پیکربندی، شمای دیتابیس‌های داخلی یا اولویت‌های متغیرهای محیطی در آن ابزار خاص بگردید. اگر یک به‌روزرسانی قبلی دیتابیس را خراب کرده است، به‌روزرسانی جدید ممکن است همان شکست را تکرار کند.

۳. تحلیل وضعیت: از ps aux استفاده کنید تا دقیقاً ببینید چه چیزی در حال اجراست و چه کسی از GPU استفاده می‌کند. تعیین کنید که آیا ماشین یک ایستگاه آزمایشگاهی اختصاصی است یا یک ستون عملیاتی اشتراکی.

۴. همسویی با سیاست‌ها: بررسی کنید آیا یک قابلیت خودمختار (مانند مرور وب یا اجرای خودکار کد) با سیاست‌های امنیتی، جریان‌های تأییدیه یا پروتکل‌های زمان‌بندی منابع موجود تداخل دارد یا خیر. اگر ابزاری اکنون بتواند «تصمیم بگیرد» چند مرحله طی کند، ممکن است اسکریپت‌های هماهنگ‌سازی فعلی را دور بزند.

این رویکرد، به‌روزرسانی را از یک واکنش غریزی به یک تمرین مدیریت ریسک تبدیل می‌کند. در بستر زیرساخت‌های اشتراکی هوش مصنوعی، گران‌ترین به‌روزرسانی آن است که منجر به بازسازی دستی دیتابیس شود، در حالی که بقیه تیم از دسترسی به GPU محروم شده‌اند.

اینکه آیا به‌روزرسانی کنیم یا خیر، به این بستگی دارد که ماشین شما یک محیط آزمایشگاهی برای کنجکاوی است یا ستونی برای تولید. برای مورد دوم، «توقف در نسخه فعلی» یک قابلیت است، نه یک باگ.

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

این گزارش بر اساس تجربه عملی نشان می‌دهد که در زیرساخت‌های اشتراکی، پایداری بر نوآوری اولویت دارد. تداخل بین عامل‌های خودمختار و زمان‌بندهای GPU می‌تواند منجر به توقف کامل سرویس‌های تولیدی شود.

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

برای توسعه‌دهندگانی در ایران که از سرورهای محلی اشتراکی برای میزبانی مدل‌های Qwen استفاده می‌کنند، توصیه می‌شود به‌روزرسانی‌های Ollama را ابتدا در محیط ایزوله تست کنند تا از تخریب دیتابیس مدل‌ها جلوگیری شود.

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

وابستگی شدید Ollama به دیتابیس‌های SQLite داخلی برای مدیریت مدل‌ها، نقطه ضعفی است که در مقیاس عملیاتی برملا می‌شود. انتقال به معماری عامل‌محور بدون یک لایه مدیریت منابع (Resource Orchestration) استاندارد، باعث می‌شود ابزاری که برای سادگی شناخته می‌شد، به کابوسی برای مدیران سیستم تبدیل شود. در واقع، خودمختاری AI در اینجا با پایداری زیرساخت در تضاد است.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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