با تحولات در حوزه مدلهای زبانی بزرگ (LLMs)، تقاضا برای راهحلهای استنتاجی خصوصی، مقرونبهصرفه و با عملکرد بالا به شدت افزایش یافته است. برای توسعهدهندگانی که از APIهای مبتنی بر ابر به استقرار محلی مهاجرت میکنند، Text Generation Inference (TGI) هوش مصنوعی هگینگ فیس به عنوان استاندارد طلایی ظهور کرده است. TGI که برای سرعت و مقیاسپذیری ساخته شده است، به شما امکان میدهد مدلهایی مانند Llama 3، Mistral و Falcon را با بهرهوری بهینه روی سختافزار NVIDIA سرویسدهی کنید. این راهنما بررسی میکند که چگونه میتوان از TGI برای هوش مصنوعی محلی در سطح تولید استفاده کرد.
چرا TGI را انتخاب کنیم؟
اجرای یک LLM به صورت محلی از طریق کتابخانههای پایتون مانند transformers ساده است، اما اغلب برای بارهای کاری تولید ناکارآمد میباشد. TGI با معرفی چندین بهینهسازی حیاتی، این مشکل را برطرف میکند:
- بهرهوری بالا: از دستهبندی پیوسته (که به آن دستهبندی پویا نیز گفته میشود) برای پردازش همزمان چندین درخواست استفاده میکند که بهرهوری GPU را به حداکثر میرساند.
- همترازی تانسوری: مدلهای بزرگ را به صورت بیدرنگ در چندین GPU توزیع میکند، در صورتی که یک کارت گرافیک کافی نباشد.
- هستههای بهینهسازی شده: با کتابخانههایی مانند Flash Attention و cuBLAS برای محاسبات سریعتر یکپارچه میشود.
- پشتیبانی از استریم: پشتیبانی بومی از استریم توکن به توکن، که برای برنامههای چت پاسخگو ضروری است.
شروع کار با Docker
سادهترین روش استقرار TGI از طریق Docker است. هوش مصنوعی هگینگ فیس تصاویر از پیش ساختهشدهای را ارائه میدهد که پیچیدگیهای وابستگیهای CUDA و پیکربندیهای PyTorch را حذف میکند. ابتدا، مطمئن شوید که Docker نصب شده و NVIDIA Container Toolkit شما برای دسترسی منابع GPU به کانتینرها پیکربندی شده است.
در اینجا دستوری برای دریافت و اجرای آخرین نسخه سرور TGI آمده است:
docker run --gpus all -p 8080:80 -v /path/to/models:/data ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Meta-Llama-3-8B \
--num-shard 1 \
--max-input-length 4096 \
--max-total-tokens 8192
توجه: آرگومان --model-id شناسه مدل را در Hub هوش مصنوعی هگینگ فیس مشخص میکند. بسته به اندازه مدل و حافظه VRAM کارت گرافیک شما، ممکن است نیاز باشد پارامتر --num-shard را تنظیم کنید (برای مثال، برای مدلهای 70B+ آن را روی 2 یا 4 تنظیم کنید) یا از پرچمهای کمحجمسازی مانند --quantize bitsandbytes-nf4 برای جا دادن مدلهای بزرگتر در حافظه محدود استفاده کنید.
تعامل با API
پس از اجرای سرور، TGI یک RESTful API را در دسترس قرار میدهد که با مشخصات استاندارد API استنتاج هوش مصنوعی هگینگ فیس سازگار است. میتوانید از طریق curl یا هر کلاینت HTTP دیگری با آن تعامل داشته باشید. در اینجا یک مثال از تولید پاسخ آورده شده است:
curl http://localhost:8080/generate \
-X POST \
-d '{"inputs":"Explain quantum computing in simple terms","parameters":{"max_new_tokens":100,"temperature":0.7}}' \
-H 'Content-Type: application/json'
برای برنامههای بلادرنگ، از نقطه پایانی /generate_stream استفاده کنید. این نقطه پایانی یک استریم JSON را برمیگرداند که هر قطعه شامل توکنهای جدید تولید شده است، که به فرانتاند شما اجازه میدهد رابط کاربری را به تدریج بهروزرسانی کند.
بهینهسازی عملکرد
برای استخراج حداکثر عملکرد از سختافزار خود، پارامترهای زیر را در نظر بگیرید:
--max-batch-total-tokens: تعداد کل توکنها در دسته را محدود میکند تا از خطاهای کمبود حافظه جلوگیری شود.--max-best-of: به شما امکان میدهد چندین کاندید تولید کنید و بهترین آنها را انتخاب کنید که برای وظایف استدلال پیچیده مفید است.- مدیریت حافظه GPU: مصرف VRAM را نظارت کنید. اگر با خطاهای OOM (کمبود حافظه) مواجه شدید، سعی کنید
max-input-lengthرا کاهش دهید یا کمحجمسازی را فعال کنید.
نتیجهگیری
Text Generation Inference یک جهش بزرگ در استقرار محلی LLMها محسوب میشود. با انتزاع پیچیدگیهای محاسبات توزیعشده و مدیریت حافظه، TGI به توسعهدهندگان این امکان را میدهد تا برنامههای هوش مصنوعی قوی و مقیاسپذیر را بر روی زیرساخت خود بسازند. چه در حال تنظیم دقیق مدلها باشید و چه در حال ساخت یک سیستم RAG خصوصی، TGI ابزارهای لازم را برای اطمینان از سرعت و قابلیت اطمینان خدمات هوش مصنوعی شما فراهم میکند. از امروز با Docker آزمایش کنید و کنترل پایپلاین هوش مصنوعی خود را به دست بگیرید.