AI Infrastructure

بهینه‌سازی ترافیک استنتاج: تنظیمات TCP و توپولوژی‌های شبکه برای سرویس‌دهی LLM با تأخیر کم

با گذار مدل‌های زبانی بزرگ (LLM) از نمونه‌های آزمایشی به بارهای کاری عملیاتی، گلوگاه اغلب از محاسبات GPU به ورودی/خروجی شبکه تغییر می‌کند. در سناریوهای سرویس‌دهی با تراکم بالا، پیکربندی استاندارد هسته لینوکس به ندرت کافی است. این مطلب لایه‌های زیرساخت حیاتی—به‌ویژه تنظیمات TCP و توپولوژی شبکه—را بررسی می‌کند که تعیین می‌کنند آیا مدل شما درخواست‌ها را در میلی‌ثانیه یا ثانیه پاسخ می‌دهد یا خیر.

گلوگاه لایه TCP در سرویس‌دهی هوش مصنوعی

استنتاج LLM با اتصالات طولانی‌مدت برای پاسخ‌های استریمینگ و درخواست‌های کوچک و مکرر برای پردازش دسته‌ای مشخص می‌شود. لایه TCP پیش‌فرض برای ترافیک وب عمومی طراحی شده است، نه برای نیازهای ظریف استنتاج هوش مصنوعی. پارامترهای کلیدی اغلب نیاز به تنظیم دارند تا از تأثیرگذاری فاز «شروع آهسته» بر تأخیر جلوگیری شود و حداکثر بهره‌وری در لینک‌های با پهنای باند و تأخیر بالا به دست آید.

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

# /etc/sysctl.conf

# فعال‌سازی تنظیم خودکار برای شبکه‌های با تراکم بالا
net.ipv4.tcp_window_scaling = 1

# افزایش اندازه بافرها به 16 مگابایت (مقدار استاندارد اغلب 128 کیلوبایت تا 1 مگابایت است)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216

علاوه بر این، فعال‌سازی tcp_fastopen می‌تواند تأخیر راه‌اندازی اتصال را برای درخواست‌های تکراری کاهش دهد که برای سرویس‌های مبتنی بر API که در آن‌ها مشتریان اتصالات پایدار را حفظ می‌کنند، حیاتی است.

توپولوژی‌های شبکه: درک لایه فیزیکی

تنظیمات نرم‌افزاری نمی‌توانند محدودیت‌های فیزیکی را برطرف کنند. در خوشه‌های LLM، به‌ویژه آن‌هایی که از استنتاج توزیع‌شده یا vLLM استفاده می‌کنند، توپولوژی شبکه بین مشتری و سرور GPU اهمیت بسیار زیادی دارد. از مسیریابی ترافیک استنتاج از طریق سوئیچ‌های spine-leaf خودداری کنید اگر این کار_hopهای_ غیرضروری ایجاد می‌کند. در عوض، به دنبال توپولوژی Clos باشید که تعداد سوئیچ‌های طی‌شده را به حداقل برساند.

برای پیکربندی‌های چندگره‌ای، استفاده از RDMA (دسترسی مستقیم حافظه از راه دور) روی اترنت همگرا (RoCE) یا InfiniBand را در نظر بگیرید. RDMA کاملاً از لایه شبکه هسته دور می‌زند و به GPU اجازه می‌دهد داده‌ها را مستقیماً از کارت شبکه بخواند. این امر بار پردازنده و تأخیر را تا 50 درصد نسبت به لایه‌های استاندارد TCP/IP کاهش می‌دهد.

# مثال: پیکربندی RoCE روی یک NIC لینوکسی
# اطمینان حاصل کنید که PFC (کنترل جریان اولویت‌دار) فعال است تا از از دست رفتن بسته‌ها جلوگیری شود
sudo ethtool -K eth0 roce on
sudo ip link set dev eth0 type ipvlan mode l2

# بررسی قابلیت RoCE
sudo ethtool --dump-regset eth0 | grep roce

بهینه‌سازی‌های سطح برنامه

فراتر از هسته و سخت‌افزار، تنظیمات سطح برنامه نقش قابل‌توجهی ایفا می‌کند. هنگام استفاده از چارچوب‌هایی مانند vLLM یا TGI (استنتاج تولید متن)، دسته‌بندی پیوسته (continuous batching) را فعال کنید. این امکان را به سرور می‌دهد تا چندین درخواست را در یک مرحله پیش‌رو (forward pass) بسته‌بندی کند، که بهره‌وری GPU را به حداکثر می‌رساند و در عین حال تأخیر را برای درخواست‌های فردی پایین نگه می‌دارد.

علاوه بر این، اطمینان حاصل کنید که تعادل‌بار HTTP شما برای اتصالات طولانی‌مدت پیکربندی شده است. اگر از Nginx یا HAProxy استفاده می‌کنید، proxy_read_timeout را افزایش دهید تا زمان‌های متغیر تولید LLM‌ها را پوشش دهد. زمان‌بندی پیش‌مature (پیش از موعد) یک منبع رایج خطاهای پاسخ ناقص در سرویس‌های عملیاتی LLM است.

نتیجه‌گیری

بهینه‌سازی استنتاج LLM تنها به خرید GPUهای سریع‌تر محدود نمی‌شود؛ بلکه نیازمند دیدی جامع از کل مسیر درخواست است. با تنظیم پارامترهای هسته TCP، استفاده از RDMA برای ارتباطات درون‌گره‌ای با تأخیر کم و پیکربندی تعادل‌بارها برای جلسات طولانی‌مدت، می‌توانید زمان تا اولین توکن و تأخیر کلی را به‌طور قابل‌توجهی کاهش دهید. از لایه شبکه شروع کنید، خط پایه خود را اندازه‌گیری کنید و تکرار نمایید. تفاوت بین تجربه کاربری کند و یکپارچه اغلب در این فایل‌های پیکربندی نهفته است.

Share: