Workstation প্রযুক্তিগত সংক্ষিপ্ত: LLM পরিবেশন এবং এজেন্টদের সাথে কীভাবে টার্বোচার্জ করবেন PagedAttention, vLLM, Self-Debugging, PowerInfer, এবং EG-MLA. সঙ্গী: ব্লগ · প্রাইমার: Kubernetes নিবন্ধে LLMs ল্যাব: এন্টারপ্রাইজ এআই ল্যাব.
- বাধা: কেভি ক্যাশে বৃদ্ধি এবং খণ্ডিতকরণ, বিমূর্তটিতে "মডেলটি ধীর" নয়।
- PagedAttention: কেভি ব্লকের ওএস-স্টাইল পেজিং; টিউন ব্লকের আকার এবং ক্যাশে অনুক্রম।
- vLLM: প্রায় শূন্য KV বর্জ্য + ক্রমাগত ব্যাচিং সহ পরিবেশন ইঞ্জিন; TTFT বনাম টোকেন/s দেখুন।
- Self-Debugging: কয়েক শট প্রোগ্রাম মেরামত বিশাল প্রার্থী সেট বীট; পণ্য মধ্যে ক্যাপ রাউন্ড.
- PowerInfer: গরম/ঠান্ডা বিভাজন; RTX 4090-এ 13.20 tok/s avg/29.08 পিক (কাগজ/রেপো ফিগার)।
- EG-MLA: আর্কিটেকচার-লেভেল কেভি কম্প্রেশন (~91.6% বনাম MHA); অদলবদল করার আগে পুনরায় মূল্যায়ন করুন।
1. কেন পরিবেশন, প্রশিক্ষণ নয়, সংকট
বড় ভাষা মডেল NLP পরিবর্তিত হয়েছে: চ্যাট, প্রজন্ম, সরঞ্জাম. প্রশিক্ষণ একবার ব্যয়বহুল; পরিবেশন প্রতি সেকেন্ডে ব্যয়বহুল। ডিকোড অটোরিগ্রেসিভ। প্রতিটি নতুন টোকেনের পূর্ববর্তী কী এবং মান প্রয়োজন। সেই KV ক্যাশের মেমরিটি স্তর × হেড × লুকানো × অনুক্রম × ব্যাচের সমানুপাতিক। প্রিফিল গণনা-ভারী; ডিকোড হল মেমরি-ব্যান্ডউইথ-ভারী। আপনি যদি প্রতি অনুরোধে একটি সংলগ্ন সর্বোচ্চ-দৈর্ঘ্যের কেভি টেনসর বরাদ্দ করেন, তবে ক্রমটি আসলে বৃদ্ধি না হওয়া পর্যন্ত এর বেশিরভাগই খালি থাকে — ক্লাসিক অভ্যন্তরীণ বিভাজন। সমসাময়িক অনুরোধগুলি সেই গর্তগুলি চুরি করতে পারে না। ব্যাচ আকার ড্রপ. প্রতি সেকেন্ড ড্রপ টোকেন. GPUs ব্যস্ত এবং এখনও নিষ্ক্রিয় দেখায়।
এটি হল সমস্যাটি হল PagedAttention এবং vLLM 2023 সালে আক্রমণ করা হয়েছিল, এবং সমস্যাটি PowerInfer এবং পরবর্তী মনোযোগের রূপগুলি এখনও বিভিন্ন কোণ থেকে আক্রমণ করে।
দেখুন: LLM মানসিক মডেল
প্রসঙ্গ ভিডিও: বড় ভাষার মডেলের ভূমিকা. Workstation ব্যাখ্যাকারী: কিভাবে LLM গুলি কাজ করে এবং কীভাবে সেগুলি Kubernetes এ চালাতে হয়.
2. PagedAttention: কেভি ক্যাশের জন্য পেজিং
Kwon, Li, Zhuang, Sheng, Zheng, Yu, Gonzalez, Zhang, এবং Stoica ভার্চুয়াল মেমরি এবং OS পেজিং দ্বারা অনুপ্রাণিত একটি মনোযোগ অ্যালগরিদম হিসাবে PagedAttention প্রবর্তন করেছে এবং এর উপরে vLLM তৈরি করেছে [arXiv:2309.06180]. ধারণা:
- কেভিতে বিভক্ত করুন নির্দিষ্ট আকারের ব্লক (প্রতি ব্লকে অল্প সংখ্যক টোকেন)।
- রাখা a ব্লক টেবিল যৌক্তিক টোকেন অবস্থান থেকে শারীরিক GPU ব্লক (সম্ভবত অ-সংলগ্ন)।
- সিকোয়েন্স বাড়তে বা শেষ হওয়ার সাথে সাথে বরাদ্দ/মুক্ত ব্লক করুন — পৃষ্ঠা বরাদ্দের মতো, একটি বিশাল অ্যারের malloc-এর মতো নয়।
- উপসর্গ পুনঃব্যবহার, মরীচি অনুসন্ধান, এবং সমান্তরাল নমুনার জন্য ব্লক (কপি-অন-রাইট) শেয়ার করুন যাতে আপনি অভিন্ন উপসর্গের নকল না করেন।
বাস্তবায়ন "BERT এ একটি পতাকা সেট করা" নয়। মনোযোগ কার্নেল অবশ্যই বিক্ষিপ্ত ব্লক সংগ্রহ করবে। শিডিউলকারীকে অবশ্যই জানতে হবে কোন ব্লকগুলি বিনামূল্যে। ক্যাশে শ্রেণিবিন্যাস গুরুত্বপূর্ণ: HBM-আবাসিক ব্লক বনাম CPU অফলোড বনাম NVLink সহকর্মী। বাফার (ব্লক) আকার একটি বাস্তব গাঁট. খুব ছোট: আরও টেবিল লুকআপ এবং কার্নেল ওভারহেড। খুব বড়: শেষ আংশিক ব্লকের ভিতরে নষ্ট স্লট। সঙ্গে ব্লক আকার জোড়া max_model_len এবং আপনার ট্র্যাফিকের প্রকৃত প্রম্পট/সমাপ্তির মিশ্রণ।
অনুশীলন: প্রোফাইল ফ্র্যাগমেন্টেশন (অব্যবহৃত কেভি বাইট / সংরক্ষিত কেভি বাইট) এবং টোকেন/গুলি একসাথে। থ্রুপুট ছাড়া মেমরি গ্রাফ অসার.
3. vLLM: পেজারের চারপাশে পরিবেশন ব্যবস্থা
vLLM-এর দাবি KV ক্যাশে মেমরিতে শূন্যের কাছাকাছি বর্জ্য এবং অনুরোধের মধ্যে এবং জুড়ে নমনীয় শেয়ারিং। কাগজে মূল্যায়ন মোটামুটি দেখানো হয়েছে 2-4× থ্রুপুট বনাম তৎকালীন SOTA সিস্টেম (FasterTransformer, Orca) একই রকম লেটেন্সিতে, লম্বা সিকোয়েন্স এবং ফ্যান্সিয়ার ডিকোডিং-এ বড় লাভ সহ। আজ ইঞ্জিনটি ক্রমাগত ব্যাচিং, খণ্ডিত প্রিফিল, প্রিফিক্স ক্যাশিং, এবং মাল্টি-GPU-এর জন্য টেনসর/পাইপলাইন সমান্তরাল করে।
অপারেশনাল চেকলিস্ট:
- সেট
gpu_memory_utilizationওজন ধরে রাখার জন্য যথেষ্ট উচ্চ + KV, CUDA ওয়ার্কস্পেস ছেড়ে যাওয়ার জন্য যথেষ্ট কম। - আপনি eval স্কোর নিশ্চিত করার পরে এবং p95 TTFT চালু করার পরেই উপসর্গ ক্যাশিং সক্ষম করুন৷ আপনার অনুরোধ
- মিশ্র ট্র্যাফিক যদি SLO (ডিস্যাগ্রিগেটেড সার্ভিং) নষ্ট করে তাহলে আলাদা প্রিফিল-হেভি এবং ডিকোড-ভারী পুল।
- আপনার গেটওয়ের পিছনে OpenAI- সামঞ্জস্যপূর্ণ এন্ডপয়েন্টগুলি প্রকাশ করুন (Workstation এস্টেটগুলি প্রায়শই এটিকে পিছনে রাখে WSL Proxy / API গেটওয়ে নিদর্শন)।
from vllm import LLM, SamplingParams
llm = LLM(
model="meta-llama/Llama-3.1-8B-Instruct",
gpu_memory_utilization=0.90,
max_model_len=8192,
enable_prefix_caching=True,
)
params = SamplingParams(temperature=0.2, max_tokens=256)
outs = llm.generate(["Summarise PagedAttention for a platform engineer."], params)
print(outs[0].outputs[0].text)
অ্যান্টি-প্যাটার্ন (এটি না PagedAttention):
# Classifier forward pass — logits, not paged KV serving
import torch
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
out = model(torch.tensor([[1, 2, 3]]), attention_mask=torch.tensor([[1, 1, 1]]))
print(out.logits)
দেখুন: বন্য পরিবেশন সিস্টেম
প্রাসঙ্গিক পরিবেশন আলাপ. ক্যানোনিকাল লেখা: vLLM ব্লগ (PagedAttention) · ইঞ্জিন: ভিএলএলএম-প্রকল্প/ভিএলএলএম.
4. Self-Debugging: প্রার্থী প্রতি আরও গুণমান, বেশি প্রার্থী নয়
চেন, লিন, ক্লেইন, এবং অন্যান্য। দেখিয়েছে যে একটি LLM এর পূর্বাভাসিত প্রোগ্রামকে কয়েকটি শট প্রদর্শনের সাথে ডিবাগ করতে শেখানো বেসলাইনগুলিকে মেলে বা হারাতে পারে যা 10× এর বেশি প্রার্থী তৈরি করে [arXiv:2304.05128]. লুপ হল: জেনারেট → এক্সিকিউট বা ইউনিট-টেস্ট → ফিড ট্রেস ব্যাক → মেরামত।
প্রোডাকশন ট্রেড-অফ: প্রতিটি প্রতিক্রিয়া বার্তা হল আরেকটি প্রিফিল+ডিকোড (বা একটি দীর্ঘ প্রসঙ্গ সংযোজন)। নির্ভুলতা প্রায়ই আরো বৃত্তাকার সঙ্গে বেড়ে যায়; তাই বিলম্ব এবং খরচ করে। এজেন্টদের জন্য Workstation নির্দেশিকা (এছাড়াও দেখুন Muse Glimmer / স্থানীয় এজেন্ট):
- প্রতি টুল কল ডিবাগ রাউন্ডে হার্ড ক্যাপ (উদাহরণস্বরূপ 2-4)।
- ব্যবহারকারী-দৃশ্যমান চ্যাট থেকে আলাদাভাবে বাজেট টোকেন।
- অসীম পুনঃপ্রচেষ্টার পরিবর্তে একটি মানুষ বা একটি বিশেষজ্ঞ মডেলের দিকে এগিয়ে যান।
- ইভালের জন্য লগ ট্রেস — টেলিমেট্রি ছাড়া Self-Debugging হল লোককাহিনী।
5. PowerInfer: স্থানীয়-সচেতন টোকেন প্রজন্ম
PowerInfer (SJTU IPADS / সম্পর্কিত রেপো) হল একটি টোকেন জেনারেশন সিস্টেম যা সক্রিয়করণ এলাকাকে কাজে লাগায়: GPU-এ একটি ছোট "হট" নিউরন সেট, CPU-এ ঠান্ডা ওজন প্রবাহিত বা কার্যকর করা হয়। প্রকাশিত অপারেটিং পয়েন্ট অন্তর্ভুক্ত 13.20 টোকেন/সেকেন্ড গড় এবং 29.08 টোকেন/সেকেন্ড পিক একটি একক NVIDIA RTX 4090-এ এবং পর্যন্ত 11.69× রক্ষিত নির্ভুলতার সাথে llama.cpp বনাম [PowerInfer গিটহাব]. (ব্যবহারকারী-মুখী কাঁটা যেমন Tiiny-AI/PowerInfer কাজের একই লাইন ট্র্যাক করুন।)
স্কেল আউট কঠিন অংশ. একটি একক 4090 স্থানীয় প্রোফাইল স্বয়ংক্রিয়ভাবে একটি সুস্থ কুবারনেটস স্থাপনায় পরিণত হয় না। আপনার প্রয়োজন:
- সৎ GPU অনুরোধ/সীমা এবং NUMA-সচেতন CPU পিনিং যদি CPU বিশেষজ্ঞরা চালান।
- একটি বিতরণ করা পরিকল্পনা যদি মডেলটি আর ফিট না হয়: টেনসর সমান্তরাল বনাম পাইপলাইন বনাম বিশেষজ্ঞ সমান্তরাল।
- SLO বিভক্ত: ইন্টারেক্টিভ চ্যাট বনাম ব্যাচ সমাপ্তি বনাম এজেন্ট টুল লুপ।
ওয়ার্কস্টেশন এবং প্রান্ত বাক্সে PowerInfer (বা llama.cpp, বা MLX) ব্যবহার করুন; vLLM (বা TensorRT-LLM, বা SGLang) ব্যবহার করুন যখন আপনি ডেটাসেন্টার GPUগুলি সমসাময়িক OpenAI-স্টাইলের ট্র্যাফিক দিয়ে পূরণ করছেন। উভয় পরিমাপ. আমাদের এন্টারপ্রাইজ এআই ল্যাব অবস্থান Polyglot Benchmarks এর মতো: প্রমাণ, তারপর ADR।
6. EG-MLA: আর্কিটেকচারে মনোযোগ সংকুচিত করুন
পরিবেশন কৌশলগুলি এমন একটি মডেলকে ঠিক করতে পারে না যার KV অন্তর্নিহিতভাবে বিশাল৷ EG-MLA (এমবেডিং-গেটেড মাল্টি-হেড ল্যাটেন্ট অ্যাটেনশন) রিপোর্ট 91.6% কেভি ক্যাশের আকার হ্রাস বনাম মাল্টি-হেড অ্যাটেনশন (MHA) নগণ্য অবক্ষয়, অতিরিক্ত সঞ্চয় বনাম এমএলএ (59.9% পর্যন্ত), এবং উন্নত যুক্তি-বেঞ্চমার্ক নির্ভুলতা। লেখকরা যুক্তি দেন যে গেটিং এম্বেড করা নিহিত হাই-অর্ডার মিথস্ক্রিয়াকে প্ররোচিত করে এবং 1B প্যারামিটারের অতীত স্কেলিং দেখায় [EG-MLA, arXiv].
ইঞ্জিনিয়ারিং নিহিত্য: এটি একটি প্রশিক্ষণ / স্থাপত্য সিদ্ধান্ত আপনি Llama-3 এর একটি এলোমেলো vLLM রাতে EG-MLA ফ্লিপ করতে পারবেন না এবং কাগজের শতাংশ আশা করতে পারবেন না। আপনি যদি প্রিট্রেন নিয়ন্ত্রণ করেন বা প্রিট্রেন চালিয়ে যান, তাহলে আপনি অন্য GPU কেনার আগে EG-MLA হল HBM কাটার প্রার্থী। আপনি যদি শুধুমাত্র পাবলিক ওয়েট পরিবেশন করেন, তাহলে PagedAttention + কোয়ান্টাইজেশন + এমএলএ ভেরিয়েন্টে থাকুন যা ইঞ্জিন ইতিমধ্যেই সমর্থন করে এবং EG-MLA চেকপয়েন্টগুলি অবতরণ করার সাথে সাথে ট্র্যাক করুন।
7. কার্গো-কাল্টিং ছাড়াই স্ট্যাকের সমন্বয়
| স্তর | যখন ব্যবহার করুন | খেয়াল রাখুন |
|---|---|---|
| PagedAttention / vLLM | সমবর্তী API পরিবেশন, দীর্ঘ প্রসঙ্গ, ভাগ করা উপসর্গ | উপসর্গ ক্যাশে বনাম সঠিকতা; উচ্চ util এ OOM |
| PowerInfer | একক চর্বি GPU / ওয়ার্কস্টেশন টোকেন হার | এলাকার অমিল; অগোছালো স্কেল-আউট |
| Self-Debugging | কোড/এজেন্ট লুপ যা পরীক্ষা চালাতে পারে | সীমাহীন বৃত্তাকার; অতিরিক্ত প্রিফিল খরচ |
| EG-MLA | আপনি ব্যাকবোন প্রশিক্ষণ বা সূক্ষ্ম সুর | একটি পরিবেশন পতাকা নয়; সম্পূর্ণ ইভাল পুনরায় চালান |
8. কুবারনেটে স্কেলেবিলিটি
একটি ভালভাবে ডিজাইন করা ডিস্ট্রিবিউটেড আর্কিটেকচার থ্রুপুট বাড়ায় এবং ব্যর্থতার মোডও বাড়ায়: স্ট্র্যাগ্লার, কেভি ক্যাশে ট্রান্সফার, টোকেনাইজার স্কু এবং অটোস্ক্যালার যা উষ্ণ উপসর্গগুলিকে মেরে ফেলে। ব্যবহারিক প্যাটার্ন (আমাদের সাথে সংযুক্ত কুবারনেটে Ollama / vLLM লেখা):
- ডেডিকেটেড GPU নোড পুল; এলোমেলো CPU কাজের সাথে কখনও ডিকোড পড প্যাক করবেন না।
- TTFT SLO এবং টোকেন/s SLO লড়াই করলে আলাদা প্রিফিল এবং ডিকোড করুন।
- সারি গভীরতা বা GPU KV দখলে HPA, শুধুমাত্র CPU নয়।
- রিং এর মাধ্যমে পরিবেশন স্ট্যাক প্রচার করুন (Ring Promoter) তাই একটি খারাপ ইঞ্জিন বিল্ড পরীক্ষা এড়িয়ে যেতে পারে না।
9. উপসংহার
টার্বোচার্জিং LLMs একটি অ্যালগরিদম নয়। এটি KV ক্যাশে (PagedAttention) পেজিং করছে, একটি পরিবেশনকারী ইঞ্জিন যা সেই পৃষ্ঠাগুলিকে নষ্ট করে না (vLLM), স্থানীয়তা-সচেতন প্রজন্ম যখন হার্ডওয়্যার একটি ওয়ার্কস্টেশন GPU (PowerInfer), এজেন্ট লুপস যা প্রার্থীদের স্প্রে করার পরিবর্তে ডিবাগ করে (Self-Debugging), এবং — যখন আপনি ওজনের মালিক হন — মনোযোগ যা সহজভাবে XPR2 সঞ্চয় করে (XPR2)। প্রতিটি স্তর মেমরি, লেটেন্সি এবং নির্ভুলতা ট্রেড করে। আপনার ট্রাফিক পরিমাপ. ADR প্রকাশ করুন। জাহাজ।
তথ্যসূত্র
- Kwon et al. - PagedAttention এর সাথে বড় ভাষার মডেল পরিবেশনের জন্য দক্ষ মেমরি ব্যবস্থাপনা (arXiv:2309.06180, 14 সেপ্টেম্বর 2023)।
- চেন এট আল। - স্ব-ডিবাগ করার জন্য বড় ভাষার মডেল শেখানো (arXiv:2304.05128, 12 এপ্রিল 2023)।
- PowerInfer — SJTU-IPADS/PowerInfer (এবং সম্পর্কিত Tiiny-AI কাঁটা)।
- EG-MLA — এমবেডিং-গেটেড মাল্টি-হেড সুপ্ত মনোযোগ (arXiv, 20 সেপ্টেম্বর 2025)।
- vLLM ব্লগ - সহজ, দ্রুত, এবং সস্তা LLM PagedAttention এর সাথে পরিবেশন.
দ্বারা প্রকাশিত Workstation. কাগজের পরিসংখ্যান মূল লেখক দ্বারা প্রকাশিত হিসাবে উদ্ধৃত; আপনার ক্লাস্টারে উৎপাদন সংখ্যা ভিন্ন হবে।