VRAM কী এবং LLM-এর জন্য এটি কেন গুরুত্বপূর্ণ?

VRAM (ভিডিও র‍্যান্ডম অ্যাক্সেস মেমরি) আপনার গ্রাফিক্স কার্ডে GPU গণনার জন্য ডেটা সংরক্ষণের জন্য ব্যবহৃত ডেডিকেটেড মেমরি। স্থানীয়ভাবে বড় ভাষা মডেল (LLM) চালানোর সময়, সম্পূর্ণ মডেল ওজন দক্ষ অনুমানের জন্য VRAM-এ ফিট করতে হবে। সিস্টেম RAM-এর বিপরীতে, VRAM সমান্তরাল গণনার জন্য প্রয়োজনীয় উচ্চ ব্যান্ডউইথ প্রদান করে যা LLM-কে কাজ করে তোলে।

VRAM শেষ হয়ে গেলে সিস্টেমকে GPU মেমরি এবং সিস্টেম RAM-এর মধ্যে ডেটা স্থানান্তর করতে বাধ্য করে, যা পাঠ্য প্রজন্মকে নাটকীয়ভাবে ধীর করে দেয়। অনেক ক্ষেত্রে, যদি একটি মডেল VRAM-এ ফিট না হয়, তবে এটি সম্পূর্ণভাবে চলবে না। এটি যেকোনো স্থানীয় LLM ডাউনলোড বা চালানোর চেষ্টা করার আগে VRAM প্রয়োজনীয়তা গণনা করা অপরিহার্য করে তোলে।

LLM VRAM কীভাবে গণনা করা হয়?

LLM-এর জন্য VRAM ব্যবহার তিনটি প্রধান উপাদান নিয়ে গঠিত:

  1. মডেল ওজন: মূল নিউরাল নেটওয়ার্ক পরামিতি। FP16 (16-বিট)-এ একটি 7B প্যারামিটার মডেল প্রায় 14 GB ব্যবহার করে, যখন একই মডেল 4-বিট-এ কোয়ান্টাইজ করা মাত্র ~4 GB ব্যবহার করে।

  2. KV Cache: পাঠ্য প্রজন্মের সময়, মডেল পূর্ববর্তী টোকেন থেকে কী-মূল্য জোড়া সংরক্ষণ করে। এই cache প্রসঙ্গ দৈর্ঘ্যের সাথে বৃদ্ধি পায় এবং দীর্ঘ কথোপকথনের জন্য কয়েক গিগাবাইট ব্যবহার করতে পারে।

  3. ওভারহেড: CUDA kernels, activation tensors, এবং framework ওভারহেড সাধারণত ভিত্তি প্রয়োজনীয়তায় 10-15% যোগ করে।

মডেল আকারের সূত্র হল: (প্যারামিটার × প্রতি ওজন বিট) ÷ 8 = বাইটে আকার

টুল বর্ণনা

এই ক্যালকুলেটর আপনার GPU-তে স্থানীয়ভাবে একটি বড় ভাষা মডেল চালানোর জন্য প্রয়োজনীয় VRAM অনুমান করে। আপনার মডেলের প্যারামিটার সংখ্যা প্রবেশ করুন, একটি কোয়ান্টাইজেশন ফরম্যাট নির্বাচন করুন, এবং আপনার উপলব্ধ VRAM নির্দিষ্ট করুন যাতে তাৎক্ষণিকভাবে দেখতে পারেন মডেলটি ফিট হবে কিনা এবং আপনি কত প্রসঙ্গ দৈর্ঘ্য সমর্থন করতে পারেন।

টুলটি llama.cpp থেকে সমস্ত সাধারণ কোয়ান্টাইজেশন ফরম্যাট সমর্থন করে যার মধ্যে GGUF Q2 থেকে Q8 ভেরিয়েন্ট, সেইসাথে স্ট্যান্ডার্ড FP16 এবং FP32 নির্ভুলতা রয়েছে। এটি সর্বাধিক প্রসঙ্গ দৈর্ঘ্যও গণনা করে যা আপনার GPU তার VRAM ক্ষমতা দেওয়া সামলাতে পারে।

বৈশিষ্ট্য

  • 20+ কোয়ান্টাইজেশন ফরম্যাট: GGUF কোয়ান্টাইজেশন প্রকার (Q2_K থেকে Q8_0), i-quants (IQ2-IQ4), এবং স্ট্যান্ডার্ড নির্ভুলতা (FP16, FP32, BF16)-এর সম্পূর্ণ সমর্থন
  • জনপ্রিয় মডেল প্রিসেট: 1B থেকে 405B প্যারামিটার পর্যন্ত সাধারণ মডেল আকারের জন্য দ্রুত নির্বাচন যার মধ্যে Llama 3, Mistral, Qwen, এবং Phi মডেল রয়েছে
  • GPU প্রিসেট: GTX 1650 থেকে H100 পর্যন্ত জনপ্রিয় ভোক্তা এবং পেশাদার GPU-এর জন্য পূর্ব-কনফিগার করা VRAM পরিমাণ
  • প্রসঙ্গ দৈর্ঘ্য গণনা: স্বয়ংক্রিয়ভাবে সর্বাধিক প্রসঙ্গ উইন্ডো গণনা করে যা আপনার GPU সমর্থন করতে পারে
  • রিয়েল-টাইম ফলাফল: আপনি প্যারামিটার সামঞ্জস্য করার সাথে সাথে তাৎক্ষণিক প্রতিক্রিয়া

ব্যবহারের ক্ষেত্র

মডেল ডাউনলোড করার আগে: একটি মডেল ডাউনলোড করার জন্য সময় ব্যয় করার আগে এটি আপনার হার্ডওয়্যারে চলবে কিনা তা পরীক্ষা করুন। আগে থেকেই জানুন কোন কোয়ান্টাইজেশন স্তর আপনার GPU-তে ফিট করার জন্য প্রয়োজন।

অনুমান সেটিংস অপ্টিমাইজ করা: মডেল গুণমান (উচ্চতর কোয়ান্টাইজেশন) এবং প্রসঙ্গ দৈর্ঘ্যের মধ্যে মিষ্টি স্থান খুঁজুন। কখনও কখনও Q6 থেকে Q4-এ নামা আপনার প্রসঙ্গ উইন্ডো দ্বিগুণ করতে দেয়।

GPU আপগ্রেড পরিকল্পনা করা: বিভিন্ন GPU কীভাবে আপনার লক্ষ্য মডেল পরিচালনা করবে তা তুলনা করুন। দেখুন আপনার Llama 70B বা অন্যান্য বড় মডেল আরামদায়কভাবে চালানোর জন্য আপনার কত VRAM প্রয়োজন।

সমর্থিত কোয়ান্টাইজেশন ফরম্যাট

ফরম্যাট বিট/ওজন সেরা জন্য
FP32 32.0 সর্বোচ্চ নির্ভুলতা, গবেষণা
FP16/BF16 16.0 প্রশিক্ষণ, উচ্চ-মানের অনুমান
Q8_0 8.5 প্রায় ক্ষতিহীন গুণমান
Q6_K 6.56 ভাল সংকোচন সহ উচ্চ গুণমান
Q5_K_M 5.69 ভারসাম্যপূর্ণ গুণমান এবং আকার
Q4_K_M 4.85 ভোক্তা GPU-এর জন্য জনপ্রিয় পছন্দ
Q4_0 4.5 ভাল সংকোচন, সামান্য গুণমান হ্রাস
Q3_K_M 3.65 আক্রমণাত্মক সংকোচন
Q2_K 2.63 সর্বাধিক সংকোচন, লক্ষণীয় গুণমান হ্রাস
IQ4_XS 4.25 গুরুত্ব ওজন সহ অপ্টিমাইজ করা 4-বিট
IQ3_XXS 3.06 পরীক্ষামূলক অতি-কম বিট
IQ2_XXS 2.06 চরম সংকোচন

এটি কীভাবে কাজ করে

ক্যালকুলেটর এই সূত্র ব্যবহার করে:

মডেল আকার (GB) = (বিলিয়নে প্যারামিটার × 10⁹ × প্রতি ওজন বিট) ÷ 8 ÷ 10⁹

KV Cache (GB) ≈ (প্যারামিটার × প্রসঙ্গ দৈর্ঘ্য ÷ 1000 × 0.5) ÷ 1000

মোট VRAM = মডেল আকার + KV Cache + 10% ওভারহেড

KV cache সূত্র একটি সরলীকৃত আনুমানিক। প্রকৃত KV cache আকার মডেল আর্কিটেকচারের উপর নির্ভর করে (স্তরের সংখ্যা, মনোযোগ মাথা, এবং মাথার মাত্রা), কিন্তু এই অনুমান বেশিরভাগ transformer-ভিত্তিক LLM-এর জন্য ভালভাবে কাজ করে।

টিপস

  • Q4_K_M দিয়ে শুরু করুন: এই কোয়ান্টাইজেশন বেশিরভাগ ব্যবহারের ক্ষেত্রে গুণমান এবং আকারের সেরা ভারসাম্য প্রদান করে
  • জায়গা ছেড়ে দিন: দীর্ঘ প্রজন্মের সময় out-of-memory ত্রুটি এড়াতে 1-2 GB বিনামূল্যে VRAM লক্ষ্য করুন
  • প্রসঙ্গ প্রয়োজন বিবেচনা করুন: যদি আপনার দীর্ঘ প্রসঙ্গ প্রয়োজন (8K+), আপনি আরও আক্রমণাত্মক কোয়ান্টাইজেশন ব্যবহার করতে হতে পারে
  • একাধিক GPU: মাল্টি-GPU সেটআপের জন্য, আপনি প্রায়শই কার্ড জুড়ে মডেল বিভক্ত করতে পারেন, কিন্তু এই ক্যালকুলেটর একক-GPU ব্যবহার অনুমান করে

সীমাবদ্ধতা

  • KV cache অনুমান সাধারণ transformer আর্কিটেকচারের উপর ভিত্তি করে আনুমানিক
  • প্রকৃত VRAM ব্যবহার অনুমান framework-এর উপর নির্ভর করে (llama.cpp, vLLM, TensorRT-LLM)
  • ব্যাচ করা অনুমান বা অনুমানমূলক ডিকোডিং ওভারহেড বিবেচনা করে না
  • Flash Attention এবং অন্যান্য অপ্টিমাইজেশন প্রকৃত প্রয়োজনীয়তা হ্রাস করতে পারে
  • কিছু মডেলের অ-মানক আর্কিটেকচার রয়েছে যা আরও বা কম মেমরি ব্যবহার করতে পারে

FAQ

প্রশ্ন: আমার মডেল গণনা করা হয়েছে তার চেয়ে বেশি VRAM ব্যবহার করে কেন? উত্তর: ক্যালকুলেটর ভিত্তি অনুমান প্রদান করে। অনুমান framework তাদের নিজস্ব ওভারহেড যোগ করে, এবং কিছু অপারেশন অস্থায়ী বাফার প্রয়োজন যা শিখর ব্যবহার বৃদ্ধি করে।

প্রশ্ন: আমি CPU অফলোডিং ব্যবহার করে আমার VRAM-এর চেয়ে বড় মডেল চালাতে পারি? উত্তর: হ্যাঁ, llama.cpp-এর মতো সরঞ্জাম আংশিক GPU অফলোডিং সমর্থন করে, কিন্তু কর্মক্ষমতা উল্লেখযোগ্যভাবে হ্রাস পায়। এই ক্যালকুলেটর সম্পূর্ণ GPU অনুমানের উপর দৃষ্টি নিবদ্ধ করে।

প্রশ্ন: আমি কোন কোয়ান্টাইজেশন ব্যবহার করব? উত্তর: বেশিরভাগ ব্যবহারকারীর জন্য, Q4_K_M ~4.85 বিট প্রতি ওজন সহ চমৎকার গুণমান প্রদান করে। যদি আপনার কাছে VRAM অতিরিক্ত থাকে, Q5_K_M বা Q6_K সামান্য ভাল গুণমান প্রদান করে। শুধুমাত্র Q2/Q3 ফরম্যাট ব্যবহার করুন যদি সম্পূর্ণভাবে প্রয়োজনীয় হয়।

প্রশ্ন: এই অনুমান কতটা নির্ভুল? উত্তর: বেশিরভাগ সাধারণ মডেলের জন্য 10-20%-এর মধ্যে। প্রকৃত ব্যবহার নির্দিষ্ট মডেল আর্কিটেকচার, অনুমান backend, এবং রানটাইম সেটিংসের উপর নির্ভর করে।