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

درون متدولوژی Hill Climbing برای بهینه‌سازی عملکرد آنتروپیک

·۱ مهر ۱۴۰۵۱۶ دقیقه مطالعه۲ بازدید
عنوان تصویر: نمودار بهبود سرعت کلود.ای‌آی از دو هفته بهینه‌سازی، سه برابر سریع‌تر شد.
عنوان تصویر: نمودار بهبود سرعت کلود.ای‌آی از دو هفته بهینه‌سازی، سه برابر سریع‌تر شد.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

استفاده از یک مدل زبانی برای مدیریت کامل چرخه بهینه‌سازی (از شناسایی گلوگاه تا ارسال PR) به‌جای استفاده از آن صرفاً برای پیشنهاد کد. تبدیل اندازه‌گیری‌های نرم‌افزاری به اهداف عددی برای صعود (Hill Climbing) توسط AI.

تصور کنید هر بار که روی یک گفتگو کلیک می‌کنید، چند ثانیه در سکوت به یک دایره در حال چرخش خیره شوید؛ این همان تأخیری است که حالا در Claude.ai تقریباً حذف شده است. طبق گزارش فنی آنتروپیک (Anthropic)، زمان لازم برای آماده شدن رابط کاربری جهت تایپ، در یک عملیات دوهفته‌ای که در اوت ۲۰۲۶ به پایان رسید، از ۳.۱ ثانیه به ۰.۵۵ ثانیه رسید. این افزایش سرعت سه برابری نتیجه یک استقرار متمرکز و سریع بود.

این جهش سرعت تنها محدود به بارگذاری اولیه نبود. سایر معیارهای کلیدی نیز کاهش‌های چشمگیری را تجربه کردند. زمان شروع یک جلسه در Claude Code از ۰.۸ ثانیه به ۰.۳ ثانیه و بارگذاری جلسات ابری Claude Cowork از ۲.۶ ثانیه به ۰.۷۳ ثانیه کاهش یافت. آنتروپیک تخمین می‌زند که این بهبودها در مجموع روزانه ده‌ها هزار ساعت از زمان انتظار کاربران را ذخیره می‌کند. این بهینه‌سازی‌ها در کنار یکپارچه‌سازی حافظه بین چت و Cowork، تجربه کاربری را به سطح جدیدی از پیوستگی رسانده است.

در دنیای نرم‌افزار، معمولاً مهندسان انسان‌ها کدهای کند را پیدا کرده و بازنویسی می‌کنند. اما آنتروپیک این مسیر را تغییر داد و از یک مدل پژوهشی داخلی — در سطح Opus 5.5 — استفاده کرد تا مانند یک «شکارچی میلی‌ثانیه‌ها» در تمام لایه‌های سیستم جست‌وجو کند. این مدل که Claude Tag (beta) نامیده می‌شود، گلوگاه‌ها را یافت، محک‌ها را ساخت، بهبودها را اعمال کرد و هر استقرار را زیر نظر گرفت.

برای کاربر عادی، این یعنی رابط کاربری اکنون «لحظه‌ای» حس می‌شود. تأخیر بین کلیک روی یک گفتگو و توانایی تایپ کردن تقریباً از بین رفته است. این تغییر، رابط‌های کاربری هوش مصنوعی را از دوران «چرخنده بارگذاری» (Loading Spinner) دور کرده و به سمت حس یک اپلیکیشن بومی (Native) می‌برد.

حلقه بهینه‌سازی مبتنی بر هوش مصنوعی

آنتروپیک یک کانال اختصاصی در Slack ایجاد کرد و به مدل دستور داد تمام بهبودهای عملکردی وب‌سایت و اپلیکیشن دسکتاپ را مدیریت کند. این مدل فقط پیشنهاد نمی‌داد؛ بلکه استقرارها را برای یافتن پس‌رفت‌ها (Regressions) رصد می‌کرد، دقت داده‌های تله‌متری را می‌سنجید، داشبوردهای نظارتی را به‌روز می‌کرد و فرصت‌های جدید برای پروژه‌ها پیشنهاد می‌داد.

به نقل از مستندات فنی، مدل ابتدا داده‌های مصرف را از طریق یک سرور MCP در Datadog تحلیل کرد. در این تحلیل، مدل چهار مسیر حیاتی کاربر را که ۹۵٪ کل فعالیت‌ها را تشکیل می‌دهند، شناسایی کرد:

  • راه‌اندازی اپلیکیشن
  • شروع یک گفتگوی جدید
  • بارگذاری گفتگوی موجود
  • ارسال پیام

در محصولات وب و دسکتاپ، این مسیرها به ۱۳ اندازه‌گیری مجزا تقسیم شدند. تیم مهندسی برای ایجاد خط مبنا، ابزارهایی اضافه کرد تا هر اندازه‌گیری دقیقاً از لحظه تعامل کاربر شروع و با رندر شدن نتیجه پایان یابد. این کار باعث شد تفاوت کار در سمت کلاینت و سرور کاملاً مشخص و تفکیک شود.

سپس مدل از اندازه‌گیری‌های متغیر (Wall-clock timing) که نویزی و ناپایدار هستند، به اندازه‌گیری‌های قطعی (Deterministic) کوچ کرد. برای مسیرهای خالص جاوااسکریپت، مدل پیشنهاد داد تعداد دستورات JS با استفاده از Valgrind و دستور node --predictable شمرده شود. برای مسیرهای مرورگر نیز «نردبانی» از شمارش‌های قطعی پیشنهاد شد که شامل موارد زیر بود: تعداد کامیت‌های React در هر تعامل، تعداد فراخوانی‌های تابع از پوشش دقیق V8، تعداد دفعات محاسبه استایل و لایه‌بندی (Layout/Style-recalc) و تغییرات DOM.

مهندسی سرعت و صعود از تپه‌ها

مدل با نگاه به این اعداد به عنوان «تپه‌هایی برای صعود»، به‌صورت ناهمگام و اغلب در طول شب تکرار می‌کرد. اگر یک محک عددی را نشان می‌داد، مدل برای کاهش آن عدد تلاش می‌کرد. تیم با ۲۰ پروژه منتخب شروع کرد و مدل تأثیر هر کدام را بر حسب میلی‌ثانیه تخمین زد تا اهداف هر اسپرینت تعیین شود. به‌طور شگفت‌انگیزی، آن‌ها توانستند تا روز سوم، ۱۲ مورد از ۱۳ هدف تعیین‌شده را به دست آورند.

برای تسریع در اجرا، تیم یک Composer استاتیک را در HTML جاسازی کرد. این قابلیت به کاربر اجازه می‌دهد در حالی که React هنوز در پس‌زمینه در حال مقداردهی اولیه است، تایپ کردن را شروع کند.

نمودار مقایسه زمان بارگذاری کلود قبل و بعد بهینه‌سازی: از ۸.۲ ثانیه به ۲.۷ ثانیه

سایر دستاوردهای فنی کلیدی عبارت بودند از:

  • کشینگ کد V8: پیش‌کامپایل کردن فرآیند اصلی شل دسکتاپ تا از کامپایل مجدد از ابتدا جلوگیری شود.
  • بهینه‌سازی ناوبری: نگه داشتن Composer بین گفتگوها و پیش‌بارگذاری جلسات زمانی که کاربر ماوس را روی آن‌ها می‌برد (Hover).
  • کاهش رندر: کاهش ۹۰ درصدی رندرهای مجدد در نوار کناری (Sidebar).

شکار تأخیرهای نامرئی

بسیاری از موفقیت‌ها حاصل یافتن باگ‌هایی بود که مانیتورهای سنتی نمی‌دیدند. برای مثال، مدل با استفاده از Layout Instability API یک رویداد تله‌متری سفارشی ساخت تا جابه‌جایی‌های بصری را به مناطق خاص (مانند نوار کناری یا متن گفتگو) و مراحل خاص (مانند «قبل از اولین رنگ‌آمیزی») متصل کند. این مشکل به عنوان «Sidebar Jank» شناخته می‌شد که در آن ردیف‌ها در زمان‌های مختلف ظاهر می‌شدند.

مدل کشف کرد که ۳۱٪ از بارگذاری‌های صفحه وب، عناصری را پس از قابل استفاده شدن صفحه و بدون هیچ تعاملی از سوی کاربر جابه‌جا می‌کنند. مدل به‌طور سیستماتیک این موارد را رفع کرد: از ردیف‌های سربرگی که دیر می‌رسیدند تا نشانگر متنی (Caret) که پس از بارگذاری نام کاربر به پهلو می‌لغزید و لیستی که با ظاهر شدن نوار پیمایش (Scrollbar) جابه‌جا می‌شد.

در مورد دیگری، مدل دریافت که هایلایت کردن بلوک‌های کد می‌تواند صفحه را برای یک ثانیه فریز کند. علت، وجود کاراکترهای غیر لاتین-۱ (مانند خط تیره بلند یا نقل‌قول‌های منحنی) بود که V8 را مجبور می‌کرد کل رشته را به صورت UTF-16 ذخیره کند. این اتفاق باعث می‌شد عبارت‌های منظم (Regex) هایلایت سینتکس در یک مسیر دو-بایتی کندتر اجرا شوند. یک تغییر ۲۰ خطی برای کپی کردن بلوک‌های کد در رشته‌های تک‌بایتی، این مشکل را حل کرد.

مقیاس‌پذیری و کشفیات عمیق

با موفقیت این حلقه، تیم آن را گسترش داد و رشته‌های گفتگو در Slack را افزایش داد. برخی از این رشته‌ها منجر به ۵۰ تا ۱۰۰ درخواست تغییر (PR) بهینه‌سازی شدند. مدل حتی شروع به باز کردن رشته‌های جدید برای فرصت‌هایی کرد که در کارهای شبانه خود می‌یافت.

در جریان این «سرشماری» کد، مدل ناکارآمدی‌های عمیقی را افشا کرد:

  • تورم هوک‌های React: مدل ۶۹۰۰ هوک و ۹۰۰ اشتراک استور در مسیر تایپ Composer یافت که باعث رندر مجدد در هر ضربه کلید می‌شد.
  • انتخاب‌گرهای CSS: یک انتخاب‌گر :root:has() یافت شد که ۲۴ میلی‌ثانیه به هر تغییر DOM اضافه می‌کرد.
  • بارگذاری‌های پنهان: مدل مسیرهای کد را پس از اولین رنگ‌آمیزی ردیابی کرد و یک دستور location.reload() قدیمی را یافت که باعث نیم میلیون بارگذاری پنهان در روز می‌شد.
  • مسدود کردن رشته اصلی: نمونه‌های پروفایلر از تب‌های غیرفعال نشان داد که اسنپ‌شات‌های یکسان کش، هر دو دقیقه یک‌بار روی رشته اصلی (Main Thread) در IndexedDB کپی می‌شدند.

بودجه ۸ میلی‌ثانیه‌ای

برای بهینه‌سازی متن‌های استریم‌شده، تیم بودجه نمایش ۱۲۰ هرتز را هدف قرار داد. این یعنی هر فریم باید دقیقاً در ۸.۳۳ میلی‌ثانیه رندر شود تا لرزش (Stuttering) رخ ندهد.

با استفاده از یک سیستم Chromium بدون سر (Headless) و کنترل فریم DevTools، مدل پاسخ‌های طولانی را فریم‌به‌فریم تحلیل کرد. مدل با مموئیز کردن بلوک‌های تمام‌شده، کارهای با پیچیدگی O(طول پیام) را در هر تکه (Chunk) حذف کرد. همچنین منطق توکن‌سازی برای بلوک‌های کد در حال رشد را به یک Worker منتقل کرد و جداول را سلول‌به‌سلول نمایش داد.

این اقدامات باعث شد استریم پاسخ‌های طولانی ۴ برابر روان‌تر شود و فریزهای شدید در لپ‌تاپ‌های ضعیف ۴.۵ برابر کاهش یابد. پاسخ‌های طولانی در مجموع حدود ۲۰۰ میلی‌ثانیه رشته اصلی را مسدود می‌کردند، در حالی که این مقدار قبلاً ۷۵۰ میلی‌ثانیه بود.

حفاظ‌ها و ایمنی

برای جلوگیری از خرابی سایت در اثر ادغام بیش از ۳۰۰۰ تغییر، آنتروپیک از یک لایه ایمنی سخت‌گیرانه استفاده کرد. هر PR نیاز به تأیید انسانی و تست‌های واحد داشت و تغییرات پرخطر پشت Feature Flagهای کوتاه‌مدت قرار گرفتند. در طول این اسپرینت، نزدیک به ۲۰۰ فلگ معرفی شدند که بیش از نیمی از آن‌ها تا پایان دوره پاکسازی شدند.

برای Composer استاتیک، مدل مجموعه‌ای از حفاظ‌ها را ساخت تا اطمینان حاصل کند HTML استاتیک و رندر React در ۱۴ اندازه مختلف صفحه، بیش از ۱ پیکسل اختلاف ندارند. این حفاظ‌ها شامل موارد زیر بود:

  • تولید JSDOM: مارک‌آپ استاتیک با رندر کردن کامپوننت واقعی React در jsdom تولید می‌شود تا از انحراف جلوگیری شود.
  • تست‌های تراز: یک مجموعه تست یکپارچه، تراز بودن را در محدوده ۱ پیکسل در ویوپورت‌های مختلف تأیید می‌کند.
  • اعتبارسنجی ضربه کلید: تستی که عملیات تایپ را تا لحظه تحویل (Handoff) بررسی می‌کند تا مطمئن شود هیچ کلیدی گم یا جابه‌جا نشده است.
  • گزارش‌دهی فیلد: هر تحویل در محیط عملیاتی، جابه‌جایی‌ها را تا یک دهم پیکسل گزارش می‌دهد.

یک تغییر پرخطر، باگی را در بارگذاری گمانه‌زنانه (Speculative Loading) کروم افشا کرد. هنگام باز کردن claude.ai در تب جدید در مرورگرهای مدیریت‌شده سازمانی، یک فوتر ۵۶ پیکسلی در صفحه تب جدید باعث جابه‌جایی ۱۰ پیکسلی عمودی می‌شد. مدل این مشکل را به تغییر اندازه صفحه توسط مرورگر ۱۰۰ میلی‌ثانیه پس از اولین رنگ‌آمیزی ردیابی کرد و راهکاری برای ثابت کردن لایه‌بندی در طول تغییر اندازه اجرا کرد.

هدایت مدل توسط انسان

با وجود بهره‌وری، این حلقه به هدایت انسانی در سه حوزه نیاز داشت:

۱. جاه‌طلبی: مهندسان مدل را تشویق کردند جسورتر باشد. وقتی مدل در مورد امکان‌پذیری تردید می‌کرد یا تخمین‌ها را بیش از حد می‌داد، مهندسان او را به سرعت بیشتر سوق دادند و گفتند: «ما قدرت انجام هر کاری را داریم».
۲. سلیقه: تصمیم نهایی درباره تغییرات محسوس بر عهره انسان بود؛ مثلاً اینکه آیا یک جدول باید سلول‌به‌سلول پر شود یا ردیف‌به‌ردیف، یا اینکه آیا محو شدن کلمه-به-کلمه ارزش هزینه بودجه فریم را دارد یا خیر.
۳. جهت‌دهی: مهندسان رشته‌های گفتگو را محدود نگه داشتند تا پیچیدگی زیاد نشود. در یک مورد، یک PR ۹۰۰ خطی رد شد زیرا سود ۲ میلی‌ثانیه‌ای در هر ارسال، ارزش هزینه نگهداری یک پلاگین ساخت (Build Plugin) جدید را نداشت.

تحلیل: تغییر به سمت مهندسی «اول اندازه‌گیری»

این آزمایش فرض بنیادی مهندسی عملکرد را تغییر می‌دهد. به‌طور سنتی، اندازه‌گیری «گام صفر» است؛ شما یک معیار اضافه می‌کنید، منتظر داده می‌مانید و سپس سعی می‌کنید مشکل را بفهمید.

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

این نشان‌دهنده آینده‌ای است که در آن نرم‌افزارها توسط انسان‌ها «تنظیم» نمی‌شوند، بلکه توسط عامل‌های هوش مصنوعی «به جلو رانده» می‌شوند که به‌طور مداوم معیارهای قطعی را به سمت محدودیت‌های تئوریک آن‌ها سوق می‌دهند. این تحول در مدیریت عامل‌ها را می‌توان در سازوکار هماهنگ‌کننده Claude Code که گذاری از مدیریت پوشه‌ای به مدیریت عامل‌های موازی است، مشاهده کرد.

گام بعدی شما

  • اگر توسعه‌دهنده هستید، رویکرد «اندازه‌گیری قطعی» (Deterministic Measurement) را جایگزین زمان‌سنجی‌های ساده کنید.
  • برای کاهش رندرهای مجدد در React، تعداد هوک‌ها و اشتراک‌های استور در مسیرهای حساس (Critical Paths) را بررسی کنید.
  • منتظر گزارش آتی آنتروپیک درباره مشارکت‌های «بالادستی» در Electron، Chromium و Node.js باشید که حاصل این اسپرینت است.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

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

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

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

برای توسعه‌دهندگان ایرانی که با محدودیت منابع سخت‌افزاری در سمت کلاینت کاربران روبرو هستند، متدهای کاهش رندر React و بهینه‌سازی V8 ذکر شده در این گزارش، راهکاری عملی برای بهبود تجربه کاربری در اینترنت کند است.

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

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

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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