মূল কনটেন্টে যান
এআই টিউটোরিয়াল

হোস্ট-RAM অফলোডিংসহ একটি ২৪ GB RTX 3090-এ GLM-5.3-Flash চালান

এই টিউটোরিয়ালে দেখানো হয়েছে, কীভাবে glm53-flash-offload পিন করা হোস্ট মেমরি, একটি ইলাস্টিক GPU এক্সপার্ট ক্যাশ, জিরো-কপি PCIe অ্যাক্সেস এবং ঐচ্ছিক AVX2 CPU গণনাকে একত্র করে একটি ২৪ GB NVIDIA GPU-তে GLM-5.3-Flash চালায়। আপনি Docker ইমেজ ইনস্টল করবেন, দ্রুত বা নির্ভুল মোড বেছে নেবেন, API কল করবেন, পারফরম্যান্স যাচাই করবেন এবং ডিপ্লয়মেন্ট টিউন করবেন।

হোস্ট-RAM অফলোডিংসহ একটি ২৪ GB RTX 3090-এ GLM-5.3-Flash চালান

সংক্ষিপ্ত বিবরণ

glm53-flash-offload একটি 24 GB NVIDIA GPU এবং হোস্টের DDR4 মেমরিতে GLM-5.3-Flash-এর 125.3 GB, EXL3 3.05-bpw বিল্ড চালায়। এটি OpenAI-সামঞ্জস্যপূর্ণ HTTP API প্রদান করে এবং মডেলের রাউটেড mixture-of-experts ওজনগুলো মূলত pinned system RAM-এ রাখে।

প্রকল্পটি স্টক exllamav3 1.5.1-এর ওপর তৈরি কিছু monkeypatch এবং কয়েকটি ছোট কাস্টম kernel-এর সমন্বয়। exllamav3-এর সোর্স সম্পাদনা করার প্রয়োজন নেই। নথিভুক্ত কনফিগারেশনটি PCIe 4.0 x16-এর মাধ্যমে AMD EPYC 7443P সিস্টেমের সঙ্গে সংযুক্ত RTX 3090-এ মাপা হয়েছে।

মূল ধারণাটি হলো ঘন ঘন ব্যবহৃত expert-গুলোকে একটি elastic GPU cache-এ রাখা। cache-এ না থাকা expert-গুলো PCIe-এর মাধ্যমে pinned host memory থেকে সরাসরি পড়া যায়। fast mode-এ সবচেয়ে ঠান্ডা decode miss-গুলো AVX2 CPU worker দিয়ে মূল্যায়ন করা যেতে পারে।

মূল বৈশিষ্ট্য

  • একক-GPU deployment: একটি 24 GB RTX 3090-শ্রেণির GPU দিয়ে GLM-5.3-Flash চালায়।
  • OpenAI-সামঞ্জস্যপূর্ণ API: chat completion, text completion, model discovery, streaming, reasoning content এবং OpenAI-শৈলীর tool call সমর্থন করে।
  • Pinned zero-copy storage: সব routed expert pinned host RAM-এ রাখা হয় এবং CUDA unified virtual addressing-এর মাধ্যমে অ্যাক্সেস করা যায়।
  • Elastic GPU expert cache: ব্যবহারের পরিমাণ বেশি এমন expert-গুলো উপলভ্য VRAM দখল করে, আর দীর্ঘ prefill activation ও staging buffer-এর জন্য cache স্থান সাময়িকভাবে ফেরত দেওয়া যায়।
  • Prefill staging: PCIe transfer যাতে computation-এর সঙ্গে সমান্তরালে চলতে পারে, সে জন্য cache-এ না থাকা expert-গুলো এক layer আগে কপি করা হয়।
  • ঐচ্ছিক CPU tier: fast mode নির্বাচিত ঠান্ডা decode miss-গুলো একটি AVX2 CPU kernel-এ পাঠায়।
  • Batched decode: নথিভুক্ত -ambs 4 কনফিগারেশনে সর্বোচ্চ চারটি stream একসঙ্গে decode করা যায়।
  • পুনরুৎপাদনযোগ্য কনফিগারেশন: মডেল revision, container digest, exllamav3 version, Triton নির্বাচন, benchmark এবং reference quality panel নির্দিষ্ট করে দেওয়া আছে।

fast এবং exact mode-এর মধ্যে নির্বাচন

সার্ভারটি GLM53_MODE environment variable-এর মাধ্যমে দুটি operating mode প্রদান করে।

Fast mode

fast ডিফল্ট। এটি GPU expert cache, zero-copy cache miss, নির্বাচিত ঠান্ডা decode miss-এর জন্য AVX2 CPU processing, batched decode এবং fused decode kernel একত্রে ব্যবহার করে। পরিমাপ করা host-এ এটি আনুমানিক 218 GiB, অর্থাৎ 234 GB, host RAM ব্যবহার করেছে।

প্রকাশিত campaign-এ একটি decode stream-এর জন্য আনুমানিক 28.15 tokens per second, দুটি stream-এর জন্য মোট 31.57 tokens per second এবং চারটি stream-এর জন্য মোট 33.98 tokens per second মাপা হয়েছে। বর্তমান digest-এর image smoke test-এ যথাক্রমে মোট 28.88, 31.27 এবং 35.00 tokens per second মাপা হয়েছে।

গুণমানের সতর্কতা: prefill exact, কিন্তু fast-mode decode স্টক exllamav3-এর তুলনায় bit-exact নয়। একটি paired decode check-এ mean KL 0.0053 এবং top-1 agreement 0.977 পাওয়া গেছে। output equivalence প্রয়োজন হলে exact mode ব্যবহার করুন।

Exact mode

exact CPU tier এবং fast-only decode kernel নিষ্ক্রিয় করে। এটি GPU expert cache এবং zero-copy host-memory miss বজায় রাখে। reference panel-এ top-1 agreement 1.0000 এবং KL 0 পাওয়া গেছে, আর host-memory ব্যবহার ছিল আনুমানিক 111 GiB, অর্থাৎ 119 GB।

Exact mode ধীর, তবে অনেক কম RAM ব্যবহার করে। কম দৈর্ঘ্যের পরীক্ষিত context-এ মাপা single-stream decode rate ছিল 12.57 tokens per second; এর তুলনায় স্টক exllamav3 যখন খাপ না খাওয়া expert-গুলো CPU worker-এ রাখত, তখন হার ছিল আনুমানিক 7.5 থেকে 8.4 tokens per second।

হার্ডওয়্যার ও সফটওয়্যার প্রয়োজনীয়তা

GPU ও driver

  • 24 GB VRAM-সহ একটি NVIDIA GPU।
  • sm_86 GPU, যেমন RTX 3090 বা A5000, হলো পরিমাপ করা target।
  • অন্তর্ভুক্ত sm_86 binary-গুলো RTX 4090-সহ sm_89-তেও চলে, তবে সেই কনফিগারেশন মাপা হয়নি।
  • CUDA 13.0-সক্ষম NVIDIA driver প্রয়োজন, কারণ image-এ CUDA 13.0.3 ব্যবহৃত হয়েছে।
  • PCIe 4.0 x16 সুপারিশ করা হয়। পরিমাপ করা link-এ cache miss প্রায় 25 GB/s bandwidth ব্যবহার করে।

Host memory

  • Fast mode: অন্য কিছু প্রায় না চললে মোট 256 GiB memory একেবারে ন্যূনতম; 320 GB বা তার বেশি সুপারিশ করা হয়। Docker memory limit ব্যবহার করলে অন্তত 230g অনুমতি দিন।
  • Exact mode: 128 GiB ন্যূনতম, আর 160 GB বা তার বেশি সুপারিশ করা হয়।

CPU ও storage

  • Fast mode-এর জন্য AVX2, FMA এবং F16C-সমর্থিত x86-64 CPU প্রয়োজন।
  • পরিমাপ করা fast-mode আচরণের জন্য আনুমানিক 24টি physical core এবং eight-channel DDR4 বা উন্নততর memory সুপারিশ করা হয়।
  • Checkpoint ডিস্কে প্রায় 117 GiB, অর্থাৎ 125.3 GB, স্থান নেয়।
  • মডেল লোড হওয়ার সময় কমাতে NVMe storage সুপারিশ করা হয়।
  • নথিভুক্ত setup-এর জন্য Docker, NVIDIA Container Toolkit এবং Hugging Face CLI প্রয়োজন।

Docker দিয়ে সার্ভার ইনস্টল ও চালু করুন

ধাপ ১: Checkpoint ডাউনলোড করুন

নির্দিষ্ট 3.05-bpw checkpoint একটি স্থানীয় directory-তে ডাউনলোড করুন:

hf download turboderp/GLM-5.3-Flash-exl3 \
  --revision 3.05bpw \
  --local-dir /data/GLM-5.3-Flash-exl3-3.05bpw

এর পরিবর্তে /models-এ একটি খালি directory mount করতে পারেন। config.json না থাকলে container সেই directory-তে কনফিগার করা checkpoint ডাউনলোড করবে।

ধাপ ২: Fast mode চালু করুন

নিচের command-টি GPU 0-তে সার্ভার চালু করে এবং port 30000-এ প্রকাশ করে। এতে streaming-delivery fix-সহ image digest ব্যবহার করা হয়েছে।

docker run -d \
  --name glm53 \
  --gpus '"device=0"' \
  --ulimit memlock=-1 \
  --shm-size 16g \
  -p 30000:30000 \
  -v /data/GLM-5.3-Flash-exl3-3.05bpw:/models \
  ghcr.io/0xsero/glm53-flash-offload@sha256:bb633b0bcb85573ad40b6c408af5e1036ae062c593e42479f4e4d2ab521e551d

সার্ভারটি প্রচুর পরিমাণে হোস্ট মেমরি পিন করে বলে --ulimit memlock=-1 সেটিংটি সুপারিশ করা হয়। পরিমাপ করা ড্রাইভারে এটি ছাড়াও প্রকাশিত ইমেজটি লোড হয়েছে, তবে প্রতিটি হোস্টে এমন আচরণ হবে বলে ধরে নেওয়া উচিত নয়।

ধাপ ৩: স্টার্টআপ পর্যবেক্ষণ করুন

docker logs -f glm53

loaded in ... s লেখা একটি বার্তা আসা পর্যন্ত অপেক্ষা করুন। নথিভুক্ত সিস্টেমে স্টার্টআপে প্রায় দুই থেকে তিন মিনিট সময় লাগে; ক্যাশ ও হোস্টের অবস্থার ওপর সময় নির্ভর করে।

ধাপ ৪: স্বাস্থ্য পরীক্ষা নিশ্চিত করুন

curl -s http://localhost:30000/health

Exact মোড চালান

আউটপুটের সমতা অগ্রাধিকার দিতে এবং হোস্ট-মেমরির ব্যবহার কমাতে -e GLM53_MODE=exact যোগ করুন:

docker run -d \
  --name glm53-exact \
  --gpus '"device=0"' \
  --ulimit memlock=-1 \
  --shm-size 16g \
  -p 30000:30000 \
  -e GLM53_MODE=exact \
  -v /data/GLM-5.3-Flash-exl3-3.05bpw:/models \
  ghcr.io/0xsero/glm53-flash-offload@sha256:bb633b0bcb85573ad40b6c408af5e1036ae062c593e42479f4e4d2ab521e551d

একই সময়ে একই পোর্টে fast এবং exact উদাহরণ চালাবেন না। মোড পরিবর্তনের আগে প্রথম কনটেইনারটি থামিয়ে সরিয়ে দিন:

docker rm -f glm53

মৌলিক API ব্যবহার

চ্যাট কমপ্লিশন পাঠান

curl -s http://localhost:30000/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"glm-5.3-flash","messages":[{"role":"user","content":"Explain zero-copy model offloading."}],"max_tokens":512}'

ডিফল্ট পরিবেশিত মডেলের নাম glm-5.3-flash। স্পষ্টভাবে কনফিগার না করলে max_tokens-এর ডিফল্ট মান ছোট কোনো নির্দিষ্ট সীমা নয়, বরং অবশিষ্ট কনটেক্সট।

Thinking নিষ্ক্রিয় করুন

GLM-এর reasoning reasoning_content-এ ফেরত দেওয়া হয়। কোনো অনুরোধের জন্য thinking নিষ্ক্রিয় করতে একটি chat-template অপশন পাঠান:

curl -s http://localhost:30000/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"glm-5.3-flash","messages":[{"role":"user","content":"Reply with one sentence."}],"chat_template_kwargs":{"enable_thinking":false},"max_tokens":128}'

রেসপন্স স্ট্রিম করুন

curl -N http://localhost:30000/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"glm-5.3-flash","messages":[{"role":"user","content":"Write a short explanation of mixture-of-experts models."}],"stream":true,"max_tokens":512}'

উপরে দেখানো পিন করা bb633b0b... ডাইজেস্ট ব্যবহার করুন। পুরোনো 1159044a... ইমেজটি পূর্ণ গতিতে তৈরি করলেও শেষে জমে থাকা ইভেন্ট একসঙ্গে পাঠানোর আগে প্রায় অর্ধেক গতিতে streaming ইভেন্ট সরবরাহ করত।

উপলভ্য মডেলের তালিকা দেখুন

curl -s http://localhost:30000/v1/models

রানটাইম পরিসংখ্যান দেখুন

curl -s http://localhost:30000/stats

পরিসংখ্যান এন্ডপয়েন্টে expert-cache hit-এর তথ্য এবং CPU-tier কাউন্টার রয়েছে। অতিরিক্ত এন্ডপয়েন্টের মধ্যে রয়েছে /v1/completions, /server_info, এবং SGLang-আকৃতির /generate ও /tokenize রুট।

ডিপ্লয়মেন্টটি শুধু টেক্সটভিত্তিক। চেকপয়েন্টের vision tower লোড করা হয় না।

OpenAI-স্টাইলের টুল ব্যবহার করুন

চ্যাট এন্ডপয়েন্ট tools ফিল্ড গ্রহণ করে। GLM-এর অভ্যন্তরীণ <tool_call> ফরম্যাটে তৈরি টুল এক্সপ্রেশনগুলো রেসপন্সে OpenAI-সামঞ্জস্যপূর্ণ tool_calls-এ রূপান্তরিত হয়। তাই ক্লায়েন্ট অ্যাপ্লিকেশনগুলো স্বাভাবিক tool-calling লুপ ব্যবহার করতে পারে: টুলের সংজ্ঞা পাঠান, অ্যাসিস্ট্যান্টের tool call পরীক্ষা করুন, ফাংশনটি চালান এবং আরেকটি মেসেজ হিসেবে টুলের ফলাফল ফেরত পাঠান।

কনটেক্সট ও সার্ভার আর্গুমেন্ট সমন্বয় করুন

ইমেজের নামের পরে দেওয়া আর্গুমেন্টগুলো সার্ভার কমান্ডের শেষে যোগ হয়, এবং শেষের মান কার্যকর হয়। উদাহরণস্বরূপ, ৬৫,৫৩৬-টোকেনের KV cache ব্যবহার করতে:

docker run -d \
  --name glm53-64k \
  --gpus '"device=0"' \
  --ulimit memlock=-1 \
  --shm-size 16g \
  -p 30000:30000 \
  -v /data/GLM-5.3-Flash-exl3-3.05bpw:/models \
  ghcr.io/0xsero/glm53-flash-offload@sha256:bb633b0bcb85573ad40b6c408af5e1036ae062c593e42479f4e4d2ab521e551d \
  -cs 65536

ছোট KV cache আরও বেশি expert-cache slot-এর জন্য জায়গা রাখতে পারে। প্রকাশিত বেঞ্চমার্ক কনফিগারেশনে ১৩১,০৭২-টোকেনের KV cache, সর্বোচ্চ আটটির batch size এবং ৮,১৯২-টোকেনের chunk size ব্যবহার করা হয়েছে।

Docker ছাড়া ইনস্টল করুন

নেটিভ ইনস্টলেশনের জন্য লক্ষ্য GPU-এর উপযোগী করে তৈরি exllamav3 1.5.1 প্রয়োজন। প্রজেক্টের একটি ক্লোন থেকে extension installer চালান, তারপর repository ও model path সেট করে দেওয়া entrypoint শুরু করুন:

scripts/install.sh
GLM53_ROOT=$PWD \
GLM53_MODEL_DIR=/path/to/model \
docker/entrypoint.sh

ইনস্টলারটি প্রজেক্টের কাস্টম extension তৈরি করে। Docker সবচেয়ে পুনরুৎপাদনযোগ্য পদ্ধতি হিসেবে থেকে যায়, কারণ এতে CUDA, PyTorch, Triton, SGLang, exllamav3, প্রজেক্ট commit এবং পরীক্ষিত সার্ভার কনফিগারেশন নির্দিষ্টভাবে পিন করা থাকে।

গুণমান ও কর্মক্ষমতা যাচাই করুন

রেফারেন্স প্যানেলের স্কোর নিন

একটি repository clone থেকে অন্তর্ভুক্ত standard-library-only benchmark client ব্যবহার করুন:

python3 bench/score_ref_panel.py \
  --url http://127.0.0.1:30000 \
  --panel reference/glm-5.3-flash-exl3-ref-panel.json \
  --out score.json

Teacher-forced প্যানেলে fast এবং exact উভয় মোডেই top-1 agreement 1.0000 এবং KL 0 রিপোর্ট হওয়া উচিত। এই প্যানেল prefill বা teacher-forced path মূল্যায়ন করে; fast-mode autoregressive decode exact হওয়ার প্রমাণ এটি দেয় না।

গতি পরীক্ষা চালান

python3 bench/sweep.py \
  --url http://127.0.0.1:30000 \
  --card rtx-3090-24gb/glm-5.3-flash-offload \
  --template glm \
  --config "bb633b0b fast" \
  --prefill 8192 32768 \
  --conc 1 2 4 \
  --reps 3 \
  --dec-reps 2 \
  --no-early-exit \
  --out sweep.json

স্ট্রিমিং ডেলিভারি পরীক্ষা করুন

python3 bench/stream_rate.py --url http://127.0.0.1:30000

সফল ফলাফলে দেখা উচিত, প্রতিক্রিয়ার প্রায় অর্ধেক অংশ শেষে একসঙ্গে আসার বদলে টেক্সট সমানভাবে আসছে।

উন্নত টিউনিং

CPU স্তরের আকার নির্ধারণ

ডিফল্টভাবে, GLM53_CT_CPUS=auto প্রতি ফিজিক্যাল কোরের জন্য একটি লজিক্যাল CPU বেছে নেয় এবং অপারেটিং সিস্টেম ও GPU চালানো Python থ্রেডের জন্য প্রথম দুটি ফিজিক্যাল কোর খালি রাখে। পরিমাপ করা ২৪-কোর হোস্টে এর ফলে CPU 2 থেকে 23 পর্যন্ত এবং 22টি worker thread ব্যবহৃত হয়েছে।

স্পষ্টভাবে বরাদ্দ করতে এ ধরনের মান সেট করুন:

-e GLM53_CT_CPUS=2-23 \
-e GLM53_CT_THREADS=22

CPU খরচের মডেল GLM53_CT_B ব্যবহার করে; 22টি থ্রেডে প্রতি expert-এর জন্য এটি 0.104 মিলিসেকেন্ড হিসেবে পরিমাপ করা হয়েছে। Nটি worker thread-এর জন্য README-তে এটি 0.104 x 22 / N হিসেবে হিসাব করার পরামর্শ দেওয়া হয়েছে। উদাহরণস্বরূপ, দুটি কোর খালি রাখা 16-কোর হোস্টে 14টি worker thread এবং প্রায় 0.16 মান ব্যবহার করা হবে।

প্রায় 12টির কম ফিজিক্যাল কোর থাকলে, অধিকাংশ miss PCIe পথে ফিরে যাবে বলে আশা করা যায়, ফলে কর্মক্ষমতা exact mode-এর কাছাকাছি চলে আসবে। সে ক্ষেত্রে exact mode-ই ভালো পছন্দ হতে পারে।

CPU-স্তরের মেমরি বিন্যাস নিয়ন্ত্রণ

GLM53_CT_SWZ=1 CPU স্তরকে expert-গুলোর একটি আলাদা block-contiguous কপি ব্যবহার করায়। এটিই পরিমাপ করা দ্রুত কনফিগারেশন এবং এতে প্রায় 114.2 GB RAM ব্যবহার যোগ হয়। এটি 0 করলে CPU স্তর সরাসরি pinned home copy পড়ে, ফলে মেমরি ব্যবহার উল্লেখযোগ্যভাবে কমে; তবে প্রকল্পের প্রতিবেদনে বলা হয়েছে, CPU expert kernel benchmark প্রায় 40% ধীর হয়। এই সেটিংয়ের end-to-end কর্মক্ষমতা পরিমাপ করা হয়নি।

ক্যাশ রিজার্ভ টিউন করুন

GLM53_EC_RESERVE_GB expert cache বরাদ্দের পর VRAM-এর কিছু অংশ খালি রাখে। fast mode-এ ডিফল্ট 1.5 GB এবং exact mode-এ 1.0 GB। দীর্ঘ prefill-এ মেমরি শেষ না হলে fast-mode reserve 1.5 GB রাখুন।

GLM53_EC_ELASTIC_GB-এর ডিফল্ট 10 GB। এই পরিমাণ cache memory prefill activation ও staging-এর জন্য ছেড়ে দেওয়া যায়, পরে decode-এর জন্য পুনরুদ্ধার করা যায়। GLM53_EC_STAGE_GB-এর ডিফল্ট প্রতি staging buffer-এ 2.6 GB; overlap-এর জন্য দুটি buffer ব্যবহৃত হয়।

বড় GPU ব্যবহার করুন

মডেল লোড হওয়ার পর এবং কনফিগার করা reserve বাদ দিয়ে উপলব্ধ VRAM অনুযায়ী expert cache-এর আকার নির্ধারিত হয়। তাই 32 GB বা 48 GB কার্ডে বেশি expert slot পাওয়া যায়, যা hit rate বাড়িয়ে decode কর্মক্ষমতা উন্নত করবে। README-তে বড় কার্ডের এসব ফলাফল দেওয়া হয়নি।

RTX 4090 অন্তর্ভুক্ত sm_86 build চালাতে পারে, যদিও এটি পরিমাপ করা হয়নি। Blackwell-এর জন্য নিচেরটি দিয়ে পুনর্নির্মাণ করতে হবে:

TORCH_CUDA_ARCH_LIST="8.6;12.0"

অন্য architecture-এ নতুন Triton pin-ও প্রয়োজন হতে পারে। তৈরি করলে যাচাই করুন, reference panel-এ top-1 1.0000 এবং KL 0 অপরিবর্তিত আছে কি না।

নির্দিষ্ট Triton নির্বাচন সুরক্ষিত রাখুন

image-টি data/triton_pin_exact.json-এর মাধ্যমে KDA linear-attention prefill kernel নির্বাচন নির্দিষ্ট করে। Triton-কে ভিন্ন কনফিগারেশন বেছে নিতে দিলে floating-point rounding বদলে যেতে পারে। reference-সমতুল্য prefill আচরণ গুরুত্বপূর্ণ হলে GLM53_TRITON_PIN-এর ডিফল্ট মান রাখুন।

অফলোডিং pipeline কীভাবে কাজ করে

  1. রাউট করা expert-গুলো pinned host memory-তে লোড করুন। প্রতিটি layer একটি সঠিক-আকারের pinned arena পায়, এবং exllamav3-এর expert pointer-গুলো CUDA UVA alias-গুলোকে নির্দেশ করে।
  2. VRAM-এ একটি elastic CLOCK cache পূরণ করুন। Router নির্বাচনগুলো deduplicate করা হয়, cache hit চিহ্নিত করা হয়, এবং অনুমোদিত miss-এর জন্য victim নির্বাচন করা হয়।
  3. ক্যাশে না থাকা expert-গুলো PCIe-এর মাধ্যমে পড়ুন। exllamav3-এর kernel-গুলো synchronous host-side copy ছাড়াই pinned host representation অ্যাক্সেস করতে পারে।
  4. দীর্ঘ prefill stage করুন। প্রতি layer-এ যথেষ্ট বড় pick count হলে, আগের layer গণনা করার সময় missing expert-গুলো এক layer আগে staging buffer-এ কপি করা হয়।
  5. fast mode-এ নির্বাচিত decode miss ভাগ করুন। একটি cost model অপেক্ষাকৃত উষ্ণ miss-গুলোকে zero-copy GPU execution-এর মাধ্যমে এবং নির্বাচিত ঠান্ডা miss-গুলোকে CPU স্তরে পাঠায়।
  6. CPU ও GPU ফলাফল একত্র করুন। CPU pinned mapped memory-এর মাধ্যমে তার কাজ প্রকাশ করে, এবং host synchronization-এর বদলে device-side flag-এর জন্য অপেক্ষা করে GPU প্রাপ্ত FP32 partial যোগ করে।

অপারেশনাল সতর্কতা

  • decode output-কে stock exllamav3-এর সঙ্গে মেলাতে হলে GLM53_MODE=exact ব্যবহার করুন।
  • streaming latency গুরুত্বপূর্ণ হলে পুরোনো sha256:1159044a... image এড়িয়ে চলুন। নথিভুক্ত sha256:bb633b0b... digest ব্যবহার করুন।
  • fast mode বর্তমানে host RAM-এ দুটি expert copy রাখে। container চালু করার আগে পর্যাপ্ত মেমরি নিশ্চিত করুন।
  • ধীর PCIe link-এ পরিমাপ করা RTX 3090 throughput ধরে নেবেন না। decode speed cache-miss traffic-এর প্রতি সংবেদনশীল।
  • context size, cache reserve, concurrency বা staging সেটিং পরিবর্তন করার সময় /stats, system memory এবং GPU memory পর্যবেক্ষণ করুন।
  • সার্ভার কেবল টেক্সট পরিচালনা করে; এই deployment-এ image input সমর্থিত নয়।

উপসংহার

glm53-flash-offload pinned host storage, zero-copy PCIe read, elastic VRAM cache, staged prefill transfer এবং ঐচ্ছিক AVX2 CPU স্তর একত্র করে একটি একক 24 GB GPU-তে অস্বাভাবিক বড় mixture-of-experts checkpoint ব্যবহারযোগ্য করে তোলে। pinned Docker image দিয়ে শুরু করুন, output fidelity-এর জন্য exact mode অথবা throughput-এর জন্য fast mode বেছে নিন, তারপর cache বা CPU সেটিং টিউন করার আগে অন্তর্ভুক্ত quality, speed এবং streaming পরীক্ষা দিয়ে installation যাচাই করুন।