ভূমিকা: গতির ফাঁদ
এআই inferেন্স-এ “fast” (দ্রুত) বিষয়টি এমন যে সবাই এটা চায়, কিন্তু এর মানে কী, তা নিয়ে কারও মধ্যে ঐক্যমত নেই। আপনি কি একজন ব্যবহারকারীর জন্য কম লেটেন্সি চান? নাকি একগুচ্ছ অনুরোধের জন্য উচ্চ থ্রুপুট? নাকি tokens-per-dollar আরও ভালো চান? নাকি শুধু কম টাইমআউট চান যাতে ভিপি-র সামনে আপনার ডেমোটি মুখ থুবড়ে না পড়ে? “SGL বনাম vLLM” হল সেই তুলনাগুলির মধ্যে একটি যা Hacker News-এ সহজ মনে হয় কিন্তু যখন আপনি এমন কিছু শিপ করার চেষ্টা করেন যা লোকেরা সত্যি ব্যবহার করে, তখন তা জট পাকিয়ে যায়।
আমাদের এমনভাবে প্রশিক্ষণ দেওয়া হয়েছে যাতে আমরা সার্ভিং ফ্রেমওয়ার্কগুলোকে কাগজের তোয়ালের ব্র্যান্ডের মতো মনে করি: এগুলো সবই স্পিল তোলে, শুধু “extra-absorbent” (অতিরিক্ত শোষক) একটি বেছে নিন। বাস্তবে, SGL এবং vLLM হল ভিন্ন ধরণের মপ। তারা বিভিন্ন পদার্থবিদ্যা দিয়ে একই ধরনের ঝামেলা সমাধান করে—এবং আপনার GPU যখন গলে যাচ্ছে, তখন রিকোয়েস্টের সময়সূচী কেমন হওয়া উচিত সে সম্পর্কে অদ্ভুতভাবে মতামতপূর্ণ ধারণা দেয়।
আসুন আমরা হইপ কমিয়ে, অনুমানগুলোকে খোঁচা দিই এবং SGL বনাম vLLM আসলে কোথায় আলাদা—এবং কেন আপনি এখনও “ভুল” একটি বেছে নিতে পারেন এবং ভালো থাকতে পারেন, সে সম্পর্কে কথা বলি।
SGL বনাম vLLM: প্রশ্নটা আসলে কী?
- যদি আপনার কিওয়ার্ড ডায়েট “SGL বনাম vLLM” হয়, তাহলে আপনার আসল প্রশ্ন সম্ভবত হল: কোন সার্ভারটি কম ঝামেলায় একই GPU থেকে বেশি টোকেন বের করে?
- অথবা: কোন সার্ভারটি থ্রুপুটকে লাউ না বানিয়ে ইন্টারেক্টিভ অ্যাপের জন্য আমার মডেলটিকে প্রতিক্রিয়াশীল করে তোলে?
- অথবা, আরও স্পষ্টভাবে: আমি শুক্রবারের মধ্যে কোনটি স্থাপন করতে পারি এবং সোমবার অনুশোচনা করব না?
এই হল ফ্রেম। বিশদ বিবরণ গুরুত্বপূর্ণ, তবে সমানভাবে নয়।
vLLM কীসের জন্য অপ্টিমাইজ করা হয়েছে (এবং কীসের জন্য নয়)
vLLM-এর ব্র্যান্ড হল বুদ্ধি দিয়ে থ্রুপুট। এর প্রধান বৈশিষ্ট্য হল PagedAttention, একটি VRAM পেজিং স্কিম যা KV ক্যাশে-কে একটি আবর্জনা বাক্স না ভেবে মেমরি-পরিচালিত সিস্টেমের মতো আচরণ করে। প্যাডিং এবং জম্বি কনটেক্সটে মূল্যবান GPU মেমরি নষ্ট না করে আপনি অনেকগুলো কনকারেন্ট রিকোয়েস্ট প্যাক করতে পারেন। এর সারি সিস্টেমটি ব্যাচড, কনকারেন্ট জেনারেশনের জন্য অপ্টিমাইজ করা হয়েছে—অনেক ব্যবহারকারী, অনেক চ্যাট অথবা ছোট থেকে মাঝারি রিকোয়েস্ট দ্বারা আঘাতপ্রাপ্ত একটি API এন্ডপয়েন্টের কথা ভাবুন।
সহজ ভাষায়: vLLM মেমরি এবং সময়সূচী সম্পর্কে বুদ্ধিমান হওয়ার মাধ্যমে আপনাকে প্রতি GPU-তে আরও বেশি যুগপৎ জেনারেশন দেয়। এটি ভালো উপায়ে বিরক্তিকর—রক্ষণশীল ডিফল্ট, কঠিন পারফরম্যান্স এবং সাধারণ আকারের জন্য জাস্ট ওয়ার্ক করার প্রবণতা।
যেখানে এটি আপনাকে কামড়ায়: অতি-কম-লেটেন্সির ইন্টারেক্টিভ UX (একক-ব্যবহারকারীর টাইট লুপ), অদ্ভুত আকারের প্রম্পট (বিশাল ইনপুট + ছোট আউটপুট অথবা এর বিপরীত) এবং খুঁতখুঁতে এক্সটেনশন (কাস্টম লেয়ার, বেসপোক কোয়ান্টাইজেশন অথবা ব্লিডিং-এজ স্যাম্পলিং ট্রিকস) কখনও কখনও vLLM-এর সুরক্ষার বিরুদ্ধে যায়। এটি বেশিরভাগ দলের জন্য শিপযোগ্য বেসলাইন—যতক্ষণ না আপনি কোনো প্রান্তে আঘাত করেন এবং বুঝতে পারেন কেন বেসলাইনটি বিদ্যমান।
SGL কীসের জন্য অপ্টিমাইজ করা হয়েছে (এবং কেন এটি আকর্ষণীয়)
SGL-এর পিচটি কিছুটা বেশি ম্যাক্সিমালিস্ট: আরও বুদ্ধিমান সময়সূচী ব্যবহার করে লেটেন্সি এবং থ্রুপুট উভয়ই কমানো—আরও ডায়নামিক প্রিএমপশন, আরও সূক্ষ্ম-শ্রেণির শেয়ারিং এবং যুগপৎ অনুরোধগুলোকে বিচার করার ইচ্ছা যাতে কোনো একটি অনুরোধকে অভুক্ত না রেখে পুরো দল দ্রুত চলে। যদি vLLM-এর মেমরি মডেল তার কলিং কার্ড হয়, তবে SGL-এর কলিং কার্ড হল এর সময়সূচী। এর লক্ষ্য শুধু VRAM-এ আরও বেশি প্যাক করা নয়, GPU-এর কম্পিউট লেনগুলোকে চালু রাখাও, যাতে লম্বা কনটেক্সটগুলো ছোট অনুরোধের জন্য অপেক্ষা করার সময় তীরের মতো বসে না থাকে।
বাস্তবে, এর মানে হল SGL প্রায়শই উজ্জ্বল হয় যখন ওয়ার্কলোডটি স্পাইকি বা মিশ্র হয়—কিছু বিশাল প্রম্পট, কিছু ছোট উত্তর, ট্রাফিকের বিস্ফোরণ এবং ইন্টারেক্টিভ সেশন যেখানে লেটেন্সির স্পাইকগুলি UX-এর জন্য মারাত্মক। এটি হল “ভিড় করা কফি শপ” সার্ভার: প্রচুর ছোট অর্ডার, 14-উপাদানযুক্ত কাস্টম ল্যাটে সহ একজন লোক এবং একজন বারista যিনি আসলে জানেন কীভাবে প্যারালাইজ করতে হয়।
অস্বস্তিকর সত্য: আরও বুদ্ধিমান সময়সূচী মানে আরও নীতি। আরও নব। আরও সিদ্ধান্ত যা আপনি ভুল করতে পারেন। আপনার যদি একটি ডেড-সিম্পল, সাধারণ স্থাপনার প্রয়োজন হয়, তবে SGL-এর নমনীয়তা একটি নিজের-পথ-বেছে-নিন-অ্যাডভেঞ্চারের মতো মনে হতে পারে যেখানে কয়েকটি পছন্দের শেষ হয় একটি ড্রাগনের সাথে।
মূল বিষয়: লেটেন্সি বনাম থ্রুপুট বনাম প্রেডিক্টেবিলিটি
- লেটেন্সি: SGL মিশ্র ওয়ার্কলোডের জন্য টেইল লেটেন্সি কমাতে থাকে কারণ এটি বিচার করার ক্ষেত্রে আরও বেশি আক্রমণাত্মক। vLLM স্থিতিশীল, তবে সারি গভীর হলে এটি থ্রুপুটকে অগ্রাধিকার দেবে।
- থ্রুপুট: vLLM-এর PagedAttention হল উচ্চ টোকেন-প্রতি-সেকেন্ড-প্রতি-GPU-এর জন্য যুগপৎ অনুরোধ প্যাক করার একটি দৈত্য। SGL মিশ্র-লোডের পরিস্থিতিতে এটিকে মেলাতে বা হারাতে পারে, যেখানে আরও বুদ্ধিমান প্রিএমপশন কম্পিউট বাবল প্রতিরোধ করে।
- প্রেডিক্টেবিলিটি: vLLM “বিরক্তিকর এবং স্থিতিশীল”-এর জন্য জেতে, SGL জেতে “আমি এটিকে আমার ট্র্যাফিকের আকার দেওয়ার জন্য টিউন করতে পারি”-এর জন্য। প্রেডিক্টেবিলিটি কোনো নৈতিক গুণ নয়; এটি কিছু দলের জন্য একটি প্রয়োজনীয়তা এবং অন্যদের জন্য একটি স্ট্রেটজ্যাকেট।
ব্যাচিং এবং ডিনার-রাশ সমস্যা
একটি রেস্টুরেন্টের কথা ভাবুন। vLLM টেবিলগুলোকে টেট্রিসের মতো সাজিয়ে সবাইকে দ্রুত বসিয়ে দেয়, তাই সেখানে খুব কম খালি জায়গা থাকে। SGL মেঝেও চালায়, তবে maître d’ রান্নাঘরকেও মাইক্রোম্যানেজ করে—কোর্সগুলোকে এমনভাবে শাফেল করে যাতে একটি ছয়জনের টেবিল ফ্রেঞ্চ ফ্রাইয়ের জন্য অপেক্ষা করা এক ডজন দুইজনের টেবিলকে ব্লক না করে। SGL বনাম vLLM-এর মূল বিষয় হল “কে দ্রুত বসায়” তা নয়, বরং “যখন একটি বাস ভর্তি ট্যুরিস্ট আসে এবং তাদের অর্ধেক লোক গ্লুটেন-ফ্রি হয়, তখন কে ডাইনিং রুম চালু রাখে।”
যদি আপনার ট্র্যাফিক মসৃণ হয় এবং আপনার অনুরোধের আকার সামঞ্জস্যপূর্ণ হয়, তবে vLLM-এর টেট্রিস জেতে। যদি আপনার ট্র্যাফিক প্রম্পটের দৈর্ঘ্যের বিতরণের সাথে স্পাইকি হয় এবং আপনি ইন্টারেক্টিভ ব্যবহারকারীদের জন্য 95তম পার্সেন্টাইল লেটেন্সি সম্পর্কে যত্নশীল হন, তবে SGL-এর রান্নাঘরের কোরিওগ্রাফি কাজে আসে।
KV ক্যাশে: সেই অদ্ভুত কৌশল যা অদ্ভুত নয়
SGL এবং vLLM উভয়ই অ্যাটেনশন ক্যাশে-কে মূল্যবান ধাতুর মতো ব্যবহার করে। vLLM-এর পেজিং হল প্রথাগত কৌশল: কী/ভ্যালুগুলোকে কমপ্যাক্ট রাখুন, ডিফ্র্যাগমেন্ট করুন এবং আপনি প্যাডিং-এ VRAM নষ্ট করা এড়াতে পারবেন। SGL-এর পদ্ধতিটি কখন এবং কীভাবে প্রিএম্পট এবং ইন্টারলিভ কাজ করতে হয় সে সম্পর্কে আরও বেশি, যাতে ক্যাশে একটি ল্যান্ডফিলে পরিণত না হয়।
যদি আপনার মডেলটি একাধিক যুগপৎ সেশনের জন্য জায়গা রেখে কোনোমতে ফিট হয়ে যায়, তাহলে vLLM-এর মেমরি দক্ষতা “চলে” এবং “OOM”-এর মধ্যে পার্থক্য তৈরি করতে পারে। যদি আপনার মডেলটি আরামে ফিট হয়ে যায় কিন্তু আপনার ব্যবহারকারীরা ল্যাগ স্পাইক সম্পর্কে অভিযোগ করেন, তাহলে SGL-এর সময়সূচী “ব্যবহারযোগ্য” এবং “আনন্দদায়ক”-এর মধ্যে পার্থক্য তৈরি করতে পারে।
টোকেন বাজেটিং এবং মানুষের ধারণা
ব্যবহারকারীরা “টোকেন প্রতি সেকেন্ড” অনুভব করেন না। তারা অনুভব করেন: ট্যাপ… অপেক্ষা… উত্তর শুরু হয়… প্রবাহিত হয়… শেষ। থ্রুপুট একটি অর্থনৈতিক মেট্রিক; লেটেন্সি একটি মনস্তাত্ত্বিক মেট্রিক। SGL-এর পক্ষপাতিত্ব মনোবিজ্ঞানের দিকে—প্রথম টোকেনগুলোকে প্রবাহিত রাখুন এবং টেইল স্পাইক প্রতিরোধ করুন। vLLM-এর পক্ষপাতিত্ব অর্থনীতির দিকে—নিরবচ্ছিন্ন জেনারেশনকে সর্বাধিক করুন। কোনোটিই ভুল নয়। তবে আপনার পণ্য সম্ভবত একটি দিকে ঝুঁকে আছে।
কোয়ান্টাইজেশন এবং হাউজ অফ কার্ডস
এখানেই সুন্দর গল্পগুলো ভেঙে যায়। যেই আপনি 4-বিট বা 8-বিট কোয়ান্টাইজেশন, কাস্টম কার্নেল অথবা মেইন-রোড মডেল আর্কিটেকচার থেকে দূরে কিছু যোগ করেন, তখন আপনার প্রয়োজনীয় কার্নেল সমর্থনকারী প্রকল্পের দ্বারা আপনার সিদ্ধান্ত নেওয়া হতে পারে। SGL বনাম vLLM হয়ে যায় “কোনটি রহস্যজনক নির্ভুলতা রিগ্রেশন বা 40 মিনিটের পরে নরম-ক্র্যাশ ছাড়াই চলে।”
আপনি সময়সূচীকে যতই ভালোবাসেন না কেন; কার্নেল হল মাধ্যাকর্ষণ। আপনার শিপ করার পরিকল্পনা করা মডেল, dtype এবং GPU-এর জন্য ম্যাট্রিক্সটি পরীক্ষা করুন। তারপরে এমনভাবে পরীক্ষা করুন যেন আপনি কাউকে বিশ্বাস করেন না—নিজেকেও না।
স্ট্রিমিং UX: শেষ টোকেনের চেয়ে প্রথম টোকেন বেশি গুরুত্বপূর্ণ
vLLM বেশিরভাগ অ্যাপের জন্য যথেষ্ট ভালো স্ট্রিম করে। SGL-এর হেড-অফ-লাইন ব্লকিং কমানোর প্রতি মনোযোগ এটিকে একটি সুবিধা দেয় যখন ব্যবহারকারীর অভিজ্ঞতা প্রথম টোকেন সময়ের উপর নির্ভর করে—যা “এটি তাৎক্ষণিক মনে হয়” এবং “এটি ঘুরছে কেন?”-এর মধ্যে পার্থক্য তৈরি করে। আপনার অ্যাপ যদি কোড-সহায়ক, অনুসন্ধান-বর্ধিত চ্যাট বা এমন কিছু হয় যেখানে মানুষ জড়িত, তবে কাঁচা টোকেন-প্রতি-সেকেন্ডের চেয়ে প্রথম টোকেন বেশি গুরুত্বপূর্ণ।
পরিবর্তে, আপনি যদি ব্যাচে সাপ্তাহিক প্রতিবেদন তৈরি করেন বা সার্ভার-সাইডে দীর্ঘ-ফর্ম আউটপুট রেন্ডার করেন, তাহলে vLLM-এর স্থিতিশীল-অবস্থার থ্রুপুট আপনাকে GPU সময়ের উপর ডলার ফেরত জিতিয়ে দেবে। পুরো জিনিসটি ব্যাকগ্রাউন্ডের কাজ হলে প্রথম টোকেন 150 ms বা 450 ms-এ এসেছে কিনা তা কেউ পাত্তা দেয় না।
Ops বাস্তবতা: লগ, সীমা এবং “কল কে ধরবে?” পরীক্ষা
- vLLM: পরিপক্ক কর্মক্ষম গল্প। কারণ খুঁজে বের করা সহজ। ক্ষমতা পরিকল্পনার জন্য স্পষ্ট মেট্রিক কারণ ব্যাচিং এবং পেজিং অনুমানযোগ্য।
- SGL: আরও ডায়াল। সম্ভবত আরও শক্তি। ভালো যখন আপনি আপনার ট্র্যাফিকের প্যাটার্ন জানেন এবং আপনি সেগুলোকে আকার দিতে ইচ্ছুক। তবে “রাত ২টায় কল কে ধরবে?” গল্পটি আপনার রানবুকের মতোই ভালো।
একটি দরকারী হিউরিস্টিক: যদি আপনার দল তার নিজস্ব p95/p99 লক্ষ্যগুলো ব্যাখ্যা করতে না পারে এবং সেগুলো কীভাবে রাজস্ব বা UX-এর সাথে সম্পর্কিত, তাহলে vLLM-কে ডিফল্ট করুন। যদি আপনি পারেন এবং মিশ্র লোডের অধীনে কম-টেইল লেটেন্সি অনুসরণ করার কারণ থাকে, তাহলে SGL তার জটিলতা অর্জন করে।
RAG এবং ব্যান্ডউইথ-ভারী প্রম্পট
Retrieval-augmented জেনারেশন ইনপুট সাইডে পেট্রোল ঢেলে দেয়। প্রসঙ্গ খণ্ডের সাথে বিশাল প্রম্পট টোকেনাইজেশন এবং ইনপুট পাসের খরচ থেকে লেটেন্সি তৈরি করে। vLLM-এর মেমরি প্যাকিং এই দৈত্যগুলোর আরও বেশি সংখ্যককে পাশাপাশি ফিট করতে সহায়তা করে। SGL-এর সময়সূচী কয়েকটি তিমিকে পুরো ঝাঁককে জমাট বাঁধা থেকে আটকাতে পারে। যদি আপনার RAG “বিশাল প্রম্পট + ছোট উত্তর”-এর মতো দেখতে হয়, তাহলে SGL-এর প্রিএমপশন জিনিসগুলোকে জীবন্ত রাখতে পারে। যদি এটি স্থিতিশীল ভলিউমে “মাঝারি প্রম্পট + মাঝারি উত্তর” হয়, তাহলে vLLM-এর প্যাকিং জেতে।
খরচ মডেল যা আপনি আসলে ব্যাখ্যা করতে পারেন
- GPU প্রতি ঘন্টায় টোকেন: vLLM উচ্চ-লোডের স্থিতিশীল-অবস্থার জন্য জিততে থাকে।
- ইন্টারেক্টিভ সেশন প্রতি খরচ: SGL জিততে থাকে যখন আপনি মানুষের ধারণায় ফ্রেম ড্রপ করতে পারবেন না।
- প্রকৌশলী সময়: vLLM সাধারণত সস্তা, যদি না আপনি ইতিমধ্যে SGL-এ গভীরভাবে প্রবেশ করে থাকেন এবং লাভ পাচ্ছেন। পরিবর্তনের খরচ বাস্তব।
এর কিছুই চূড়ান্ত নয়। তবে যদি আপনার সিএফও জিজ্ঞাসা করেন, তবে আপনার কাছে এখন এমন বাক্য রয়েছে যা ইংরেজির মতো শোনায়।
বেঞ্চমার্ক যা আপনার উপেক্ষা করা উচিত (এবং যা করা উচিত নয়)
একক-সংখ্যার চার্টগুলোকে উপেক্ষা করুন যা অনুরোধের আকারের বিতরণ, ব্যাচ আকার, সর্বাধিক কনকারেন্সি, মডেল dtype এবং GPU মডেল প্রকাশ করে না। এগুলি সঠিক আলোতে ফিটনেস সেলফি। দরকারী বেঞ্চমার্ক:
- মিশ্র বিতরণ লোড পরীক্ষা: বিভিন্ন সর্বাধিক টোকেনের সাথে ছোট, মাঝারি, দীর্ঘ প্রম্পট মিশ্রিত।
- বার্স্টের অধীনে টেইল লেটেন্সি: একটি সিমুলেটেড ট্র্যাফিক স্পাইকের সময় p95/p99 প্রথম-টোকেন সময় পরিমাপ করুন।
- মেমরি হেডরুম: মডেল এবং kv ক্যাশে-এর সাথে লক্ষ্য কনকারেন্সিতে প্রকৃত OOM মার্জিন।
- সময়ের সাথে স্থিতিশীলতা: ছয় ঘন্টা ধরে চালান; ধীরে ধীরে লিক, থ্রুপুট ড্রিফট বা বিরল স্টলের জন্য দেখুন।
“দ্রুত” কোনো ব্যাপার নয় যদি এটি অন্য কারো GPU-তে অন্য কারো ট্র্যাফিকের জন্য দ্রুত হয়।
ডেভেলপার এরগোনোমিক্স: আপনি কতটা অ্যাবস্ট্রাকশন চান?
vLLM পরিচ্ছন্ন API, অনুমানযোগ্য কনফিগারেশন এবং জনপ্রিয় টুলচেইনের সাথে সারিবদ্ধতাকে সমর্থন করে। এটি এমন দলগুলোর জন্য একটি নিরাপদ ডিফল্ট যারা একটি সাধারণ সার্ভিং লেয়ার চায়। SGL আপনাকে আরও বেশি পলিসি সারফেস দেয়: অগ্রাধিকার, প্রিএমপশন আচরণ এবং আপনার কম্পিউটের আকার তৈরি করার জায়গা। আপনার যদি এটির প্রয়োজন হয় তবে এটি সোনা—এবং আপনার যদি এটির প্রয়োজন না হয় তবে এটি ওভারহেড।
এক্সটেনশন গল্পটিও একই রকম। vLLM জনপ্রিয় ইকোসিস্টেম এবং হোস্ট করা প্ল্যাটফর্মের সাথে আগে থেকে একত্রিত হতে থাকে। SGL সময়সূচী বৈশিষ্ট্য এবং উন্নত কনকারেন্সিতে দ্রুত চলে। আপনি কেন SGL চান তা যদি আপনি জানেন তবে সম্ভবত আপনি তা জানেন। যদি না জানেন, তাহলে সম্ভবত এখনও জানেন না।
মাল্টি-মডেল চিড়িয়াখানা সমস্যা
একটি ফ্ল্যাগশিপ মডেল পরিবেশন করা পুরনো দিনের ব্যাপার। বেশিরভাগ আসল অ্যাপ কয়েকটি মডেলে কাজ করে: instruction-tuned LLM, re-ranker, এম্বেডিং, সম্ভবত একটি ভিশন-ল্যাঙ্গুয়েজ মডেল। vLLM-এর প্রেডিক্টেবিলিটি একাধিক মডেল জুড়ে ক্ষমতা ভাগ করা সহজ করে তোলে। SGL-এর সময়সূচী আপনাকে ছোট, উচ্চ-অগ্রাধিকার কলগুলোকে দুর্বল করা থেকে দীর্ঘ-সময় ধরে চলা হগগুলোকে এড়াতে সরঞ্জাম দেয়—তবে আপনাকে নিয়ম সেট করতে হবে। অটোমেশন সাহায্য করে, তবে পলিসির জন্য এখনও একটি মস্তিষ্কের প্রয়োজন।
গভর্নেন্সের উপর একটি কথা: SLA নাকি ভাইবস?
যদি আপনি গ্রাহকদের কাছে সংখ্যা ঋণী থাকেন (SLA, SLO, আপনার পছন্দসই অ্যাক্রোনিম বেছে নিন), বিরক্তিকর একটি বৈশিষ্ট্য। vLLM-এর সামঞ্জস্যতা থ্রেশহোল্ডের প্রতিশ্রুতি দেওয়া এবং সেগুলি পূরণ করা সহজ করে তোলে। যদি আপনার পণ্যটি সম্পূর্ণরূপে “অনুভূতি” সম্পর্কে হয় এবং অনুভূতিটি তাত্ক্ষণিক প্রতিক্রিয়ার দ্বারা সংজ্ঞায়িত করা হয় (IDE কোপাইলটগুলোর কথা ভাবুন), তাহলে চাপের মধ্যে ব্যবহারকারীর অভিজ্ঞতা রক্ষার জন্য SGL-এর ক্ষমতা অতিরিক্ত চিন্তার মূল্য রাখে।
কখন GPU ভুল উত্তর
সবচেয়ে জনপ্রিয় সার্ভিং স্ট্যাক হল সেটি যা কম GPU ব্যবহার করে। SGL এবং vLLM উভয়ই উপকৃত হয় যখন আপনি ভালো কনটেক্সট উইন্ডো, স্মার্ট ট্রাঙ্কেশন, আরও ভালো পুনরুদ্ধার, প্রতিক্রিয়া ক্যাশিং এবং প্রতিটি বোতাম ক্লিকের জন্য LLM-কে ওয়ার অ্যান্ড পিস লিখতে না বলে পরিপক্ক কাজটি করেন। সবচেয়ে সস্তা লেটেন্সি হল সেই টোকেন যা আপনি কখনই তৈরি করেন না।
বাস্তব-বিশ্বের প্যাটার্ন (AKA, লোকেরা কীভাবে আসলে বেছে নেয়)
- আগামী সপ্তাহে একটি এআই অ্যাপ শিপিং করা স্টার্টআপ: vLLM। দক্ষতার গতি জেতে।
- ইন্টারেক্টিভ UX এবং স্পাইকি ট্র্যাফিকযুক্ত পণ্য: SGL, টেইল লেটেন্সির জন্য টিউন করা।
- ব্যাকেন্ড ব্যাচ জেনারেশন: vLLM, গল্পের শেষ।
- RAG-ভারী সাপোর্ট টুল: আপনার প্রম্পট বিশাল হলে SGL-এর দিকে টাই-ব্র্যাকার যায়; অন্যথায় vLLM।
- GPU বিশেষজ্ঞবিহীন দল: vLLM। ভান করা বন্ধ করুন।
- পারফরম্যান্স-মনস্ক লিড যিনি সময়সূচী উপভোগ করেন এমন দল: SGL। দায়িত্বের সাথে উপভোগ করুন।
কোড সহায়তা এবং IDE-এর জন্য SGL বনাম vLLM
এটি সবচেয়ে স্পষ্ট ঘটনাগুলোর মধ্যে একটি। কোড সহকারীগণ অনুভূত প্রতিক্রিয়াশীলতার উপর নির্ভর করে বেঁচে থাকে এবং মরে যায়। প্রথম টোকেন দ্রুত, স্ট্রিম স্থিতিশীল, ব্যবহারকারী পরপর তিনবার শর্টকাট টিপলে টেইল স্পাইক এড়ানো। SGL-এর প্রিএমপশন-কেন্দ্রিক বিশ্বদৃষ্টি এখানে সুবিধা দেয়। vLLM এটি করতে পারে—বিশেষত সতর্ক কনফিগারেশন এবং হেডরুমের সাথে—তবে আপনি প্রায়শই টেবিলে কিছু লেটেন্সি ফেলে রাখবেন।
স্কেলে চ্যাটবটগুলোর জন্য SGL বনাম vLLM
এটা উল্টে দিন। বিশাল, স্থিতিশীল চ্যাট ট্র্যাফিকের জন্য—সাপোর্ট বট, অভ্যন্তরীণ সহকারী, বিস্তৃত প্রশ্নোত্তর—vLLM-এর ক্ষমতা প্যাকিং হল সেই উপহার যা চলতেই থাকে। আপনার গ্রাফ যদি বেশিরভাগ ক্ষেত্রে ফ্ল্যাট হয় এবং ব্যবসায়িক মডেল টোকেন-প্রতি-ডলারকে পুরস্কৃত করে তবে আপনি এটাই চান।
মাঝের পথ: আপনি উভয়ই চালাতে পারেন
আশ্চর্যজনক গ্রহণ: বিভিন্ন ওয়ার্কলোড, বিভিন্ন সার্ভার। যেখানে আপনার ইন্টারেক্টিভিটি এবং কম টেইল লেটেন্সির প্রয়োজন সেখানে SGL চালান; বাল্কের জন্য vLLM চালান। এন্ডপয়েন্ট, টেনেন্ট বা এমনকি দিনের সময় অনুসারে রুট করুন। অপস ওভারহেড বাস্তব, তবে আপনি মিথ্যা পছন্দ থেকে স্বাধীনতা কিনছেন।
কোথায় Sider.AI ফিট করে (এবং কোথায় করে না) Sider.AI আসলে কাজ করে—অন্তত যখন আপনি এটি সেই কাজের জন্য ব্যবহার করেন যার জন্য এটি ভালো, যা অদ্ভুতভাবে যথেষ্ট, মার্কেটিং যা বলে তা নয়। আপনি যদি SGL বনাম vLLM নিয়ে কাজ করেন কারণ আপনার একটি ব্যবহারিক এআই ওয়ার্কস্টেশন এবং ওয়ার্কফ্লো প্রয়োজন যা তার নিজের গ্লু কোডের নিচে ভেঙে না যায়, তাহলে Sider-এর সমন্বিত পরিবেশ হল সেই অংশ যা কেউ বাজেট করে না: বিরক্তিকর সারফেস যেখানে প্রম্পট, ডক্স এবং পরীক্ষাগুলো একটি স্ক্র্যাচপ্যাড অ্যাপ এবং একটি স্ব-নির্মিত বেঞ্চমার্ক জোতা পুনরায় উদ্ভাবন না করে থাকে। এটি আপনার জন্য SGL বনাম vLLM বেছে নেবে না—এবং করাও উচিত নয়—তবে আপনি যখন উভয়টি পরীক্ষা করবেন তখন এটি আপনার দলকে ফলাফলের দিকে মনোনিবেশ রাখবে। আপনি যদি একটি সিলভার বুলেট চান, তাহলে অন্য কোথাও দেখুন। আপনি যদি “ধারণা”, “প্রম্পট”, “রান” এবং “শিপ”-এর মধ্যে কম তীক্ষ্ণ প্রান্ত চান, তাহলে Sider.AI সেখানেই তার মূল্য অর্জন করে। সাধারণ আপত্তি, স্পিন ছাড়াই উত্তর
- “আমরা SGL-এর সাথে থ্রুপুট হারাব।” সম্ভবত। সমজাতীয় লোডের অধীনে, সম্ভবত। মিশ্র, স্পাইকি লোডের অধীনে, সম্ভবত নয়—টেইল লেটেন্সি উন্নতি কার্যকর থ্রুপুট বাড়াতে পারে।
- “আমরা vLLM-এর সাথে লেটেন্সি হারাব।” সম্ভবত এটাও। চাপের মধ্যে, vLLM প্রথম-টোকেন সময় সরে গেলেও থ্রুপুট সংরক্ষণ করে। আপনি হেডরুম এবং বুদ্ধিমান সীমা দিয়ে এটি কমাতে পারেন।
- “আমরা কি vLLM-কে SGL-এর মতো আচরণ করার জন্য টিউন করতে পারি?” আংশিকভাবে। আপনি অগ্রাধিকার দিতে পারেন, সর্বাধিক টোকেন ছাঁটাতে পারেন এবং সারি তৈরি করতে পারেন। তবে সময়সূচীর ডিএনএ আলাদা।
- “আমরা কি SGL-কে vLLM-এর মতো আচরণ করার জন্য টিউন করতে পারি?” আংশিকভাবে এটাও। তবে আপনি যদি SGL-কে vLLM-এ পরিণত করতে কয়েক সপ্তাহ ব্যয় করেন, তবে আপনি ভুল পছন্দ করেছেন।
সিদ্ধান্ত নেওয়ার আগে ব্যবহারিক চেকলিস্ট
- সেই মেট্রিকটি সংজ্ঞায়িত করুন যা আসলে গুরুত্বপূর্ণ: p95 সময়-থেকে-প্রথম-টোকেন, p99 এন্ড-টু-এন্ড লেটেন্সি, টোকেন-প্রতি-ডলার বা বার্স্টের অধীনে ক্র্যাশ রেট। একটি প্রাথমিক মেট্রিক এবং একটি গার্ডরেল বেছে নিন।
- আপনার আসল ট্র্যাফিক বিতরণ পুনরায় তৈরি করুন। খেলনা নয়। আসল প্রম্পট/উত্তর আকারের হিস্টোগ্রাম, আসল বার্সটিনেস।
- অন্তত এক ঘন্টা ধরে একটানা লোডের অধীনে উৎপাদন-সদৃশ হার্ডওয়্যারে পরীক্ষা করুন। ড্রিফট, লিক এবং বিরল স্টলের জন্য দেখুন।
- আপনার সঠিক মডেলের জন্য কার্নেল এবং কোয়ান্টাইজেশন সমর্থন যাচাই করুন। ড্রাইভার আপগ্রেড করার পরেও আবার করুন।
- সিদ্ধান্ত নিন কে কল ধরবে এবং আপনি কীভাবে রোল ব্যাক করবেন তা লিখে রাখুন।
আপনি যদি এটি না করেন, তাহলে vLLM বেছে নিন এবং ডিফল্টগুলো মেনে নিন। আপনি যদি এটি করেন, তাহলে SGL আপনাকে আরও ভালো ব্যবহারকারীর অভিজ্ঞতা এবং কম টেইল এনে দিতে পারে, যেখানে আনন্দ লুকানো থাকে।
মাইগ্রেশন ঝুঁকির উপর একটি সংক্ষিপ্ত কথা
উৎপাদনে সার্ভিং ফ্রেমওয়ার্ক পরিবর্তন করা এমন এক ধরণের কাজ যা সপ্তাহান্ত নষ্ট করে দেয়। আপনি যদি উভয় চেষ্টা করতে চান বলে সন্দেহ করেন, তবে এর জন্য পরিকল্পনা করুন: অনুরোধ/উত্তর স্কিমাগুলোকে স্ট্যান্ডার্ডাইজ করুন, টোকেনাইজার এবং স্যাম্পলিং কনফিগারেশনগুলোকে পোর্টেবল রাখুন এবং সার্ভারটিকে একটি সামঞ্জস্যপূর্ণ অভ্যন্তরীণ ক্লায়েন্টের পিছনে লুকিয়ে রাখুন। ডিকপলিং আপনাকে ঐচ্ছিকতা কিনে দেয়, যা “ভবিষ্যতের আপনি অতীতের আপনাকে ঘৃণা করবে না”-এর একটি অভিনব শব্দ।
ডায়ালেক্টিক্যাল সমাপ্তি যা আপনি জানতেন আসছে
আপনি যদি এখানে নাইটহুড অনুষ্ঠানের প্রত্যাশায় এসে থাকেন—স্যার SGL উঠুন; অথবা, vLLM দীর্ঘজীবী হোক—আপনি ভুল রূপকথা বেছে নিয়েছেন। সঠিক উত্তরটি ওয়ার্কলোড-আকৃতির। vLLM হল নির্ভরযোগ্য পিকআপ ট্রাক যা প্রচুর টানে এবং অভিযোগ করে না। SGL হল স্পোর্ট ওয়াগন যা কফি না ফেলে ট্র্যাফিকের মধ্যে দিয়ে যায়। আপনি যে কোনওটিতে যাতায়াত করতে পারেন; আপনি ভিন্নভাবে ড্রাইভ উপভোগ করবেন।
মনে রাখার বিষয়: ব্যবহারকারীরা লেটেন্সি অনুভব করেন; ফিনান্স থ্রুপুট অনুভব করে। আপনার কাজ হলো কারও কাছে মিথ্যা না বলে দুটোর মধ্যে সমন্বয় করা। SGL বনাম vLLM ভাইব পরীক্ষা নয়। এটা একটা স্বীকারোক্তি যে “দ্রুত”-এর একাধিক মাত্রা আছে, এবং সার্ভিং ফ্রেমওয়ার্কগুলো, মানুষের মতো, চাপের মুখে তাদের চরিত্র প্রকাশ করে।
যদি আপনি ভাগ্যবান হন, তাহলে আপনার এটা নিয়ে মাথা ঘামানোর দরকার হবে না। যদি আপনি ভালো হন, তাহলে কখন এটা দরকার হবে সেটা জানতে পারবেন।
H2: SGL বনাম vLLM পারফরম্যান্স: টেইল লেটেন্সি বনাম থ্রুপুট
- SGL ডাইনামিক শিডিউলিংয়ের দিকে ঝুঁকে p95/p99 টেইল কাটে এবং মিশ্র লোডের অধীনে প্রথম টোকেনের সময় উন্নত করে।
- vLLM-এর PagedAttention একই VRAM-এ আরও বেশি সংখ্যক কনকারেন্ট রিকোয়েস্ট ঢুকিয়ে দেয়, যা টোকেন-প্রতি-সেকেন্ড-প্রতি-GPU বাড়ায়।
- ইন্টারেক্টিভ UX এবং স্পাইকি ট্রাফিকের জন্য SGL এবং স্টেডি হাই-ভলিউম চ্যাট বা ব্যাচের জন্য vLLM নির্বাচন করুন।
H2: প্রোডাকশনে SGL বনাম vLLM-এর জন্য ডিপ্লয়মেন্ট পছন্দ
- আপনার SLA-কে লেটেন্সি (SGL-ফ্রেন্ডলি) অথবা থ্রুপুটের (vLLM-ফ্রেন্ডলি) সাথে ম্যাপ করুন।
- আপনার মডেল ও GPU-এর জন্য কোয়ান্টাইজেশন এবং কার্নেল সাপোর্ট যাচাই করুন।
- একটি পোর্টেবল ক্লায়েন্ট লেয়ার রাখুন যাতে আপনি এন্ডপয়েন্ট দ্বারা SGL এবং vLLM-এ রাউট করতে পারেন।
H2: সঠিকভাবে SGL বনাম vLLM-এর বেঞ্চমার্কিং
- বাস্তব ট্র্যাফিকের আকারে প্রথম টোকেনের সময় এবং এন্ড-টু-এন্ড লেটেন্সি পরিমাপ করুন।
- মাল্টি-আওয়ার রানগুলিতে মেমরি স্পেস এবং স্থিতিশীলতা ট্র্যাক করুন।
- সিঙ্গেল-নাম্বার টোকেন/সেকেন্ড ট্রফিগুলি এড়িয়ে চলুন যা ব্যাচ সাইজ এবং রিকোয়েস্ট ডিস্ট্রিবিউশন লুকায়।
H3: লং-টেইল কীওয়ার্ড যা আপনি আসলে চান
- “RAG-এর জন্য SGL বনাম vLLM”
- “SGL বনাম vLLM কোড জেনারেশন”
- “SGL বনাম vLLM প্রোডাকশন ডিপ্লয়মেন্ট”
- “SGL বনাম vLLM বেঞ্চমার্ক”
- “SGL বনাম vLLM GPU মেমরি”
উপসংহার: সৎ উত্তর যা আপনি ব্যবহার করতে পারেন
যদি আপনি নির্ভরযোগ্য ডিফল্ট চান এবং আপনার মেট্রিক দীর্ঘমেয়াদে টোকেন-প্রতি-ডলার হয় তবে vLLM নির্বাচন করুন। যদি আপনার ব্যবহারকারীরা একটি লুপের মধ্যে মানুষ হয় এবং প্রান্তগুলিতে অনুভূত গতির উপর পণ্য নির্ভর করে তবে SGL নির্বাচন করুন। যদি আপনি কোন শিবিরে আছেন তা বলতে না পারেন তবে আপনি ডিফল্টরূপে vLLM শিবিরে আছেন—এবং এটি ঠিক আছে। ভালো খবর হল আপনি উভয়ই চালাতে পারেন। আরও ভালো খবর হল আপনি সার্বজনীন চ্যাম্পিয়ন হওয়ার ভান করা বন্ধ করতে পারেন। SGL বনাম vLLM হল “দ্রুত” সম্পর্কে দুটি স্মার্ট, মতামতপূর্ণ সিদ্ধান্তের মধ্যে একটি পছন্দ। বাকিটা আপনার ওয়ার্কলোড, আপনার বাজেট এবং নবগুলির জন্য আপনার ক্ষুধা।
FAQ
Q1: কোনটি দ্রুত: SGL নাকি vLLM?
এটি নির্ভর করে দ্রুত বলতে আপনি কী বোঝেন। vLLM স্টেডি, হাই-কনকারেন্সি থ্রুপুটের জন্য দ্রুত; SGL প্রথম টোকেনের জন্য দ্রুত এবং মিশ্র, স্পাইকি লোডের অধীনে টেইলে আরও ধারাবাহিক। যদি আপনার মেট্রিক টোকেন-প্রতি-ডলার হয়, তাহলে vLLM; যদি এটি অনুভূত লেটেন্সি হয়, তাহলে SGL।
Q2: RAG ওয়ার্কলোডের জন্য SGL কি vLLM-এর চেয়ে ভালো?
বিশাল প্রম্পট এবং ছোট উত্তরের সাথে RAG-এর জন্য, SGL-এর শিডিউলিং প্রথম টোকেনের সময়কে স্পাইক করা থেকে আটকাতে পারে। স্কেলে মাঝারি প্রম্পটের জন্য, vLLM-এর মেমরি প্যাকিং জিতে যায়। বাজি ধরার আগে আপনার আসল প্রম্পট সাইজের বেঞ্চমার্ক করুন।
Q3: SGL বনাম vLLM-এর কীভাবে সঠিকভাবে বেঞ্চমার্ক করা উচিত?
একটি খেলনা নয়, আপনার আসল রিকোয়েস্ট ডিস্ট্রিবিউশন ব্যবহার করুন। p95/p99 প্রথম-টোকেনের সময়, সামগ্রিক থ্রুপুট এবং ঘণ্টার পর ঘণ্টা স্থিতিশীলতা পরিমাপ করুন। মডেল, ডিটাইপ, GPU, ব্যাচ সাইজ এবং কনকারেন্সি প্রকাশ করুন—নয়তো আপনি শুধু গ্রাফগুলিকে সুন্দর করছেন।
Q4: আমি কি একই স্ট্যাকে SGL এবং vLLM উভয়ই স্থাপন করতে পারি?
হ্যাঁ, এবং আপনার সম্ভবত করা উচিত যদি আপনার ওয়ার্কলোড ভিন্ন হয়। ইন্টারেক্টিভ এন্ডপয়েন্টগুলিকে SGL এবং ব্যাচ বা উচ্চ-ভলিউম চ্যাটে vLLM-এ রুট করুন। একটি পোর্টেবল ক্লায়েন্ট লেয়ার রাখুন যাতে অদলবদল আপনার সপ্তাহান্ত নষ্ট না করে।
Q5: SGL-এর তুলনায় vLLM কখন খারাপ পারফর্ম করে?
স্পাইকি, মিশ্র ওয়ার্কলোডের অধীনে যেখানে প্রথম-টোকেন লেটেন্সি গুরুত্বপূর্ণ এবং দীর্ঘ প্রম্পটগুলি ছোটগুলিকে ব্লক করে। SGL-এর প্রিএমশন এবং শিডিউলিং সেই টেইলগুলিকে মসৃণ করতে পারে। যদি আপনার ট্র্যাফিক সমজাতীয় হয় তবে vLLM-এর স্টেডি-স্টেট প্রায়শই জিতে যায়।