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

OpenAI-সামঞ্জস্যপূর্ণ API দিয়ে Colab A100-এ Qwen3.8-Flash-Next চালান

collabosm ব্যবহার করে কীভাবে Colab A100 High-RAM রানটাইম চালু করবেন, ExLlamaV3 দিয়ে Qwen3.8-Flash-Next লোড করবেন, Cloudflare-এর মাধ্যমে সুরক্ষিত API প্রকাশ করবেন, ক্লায়েন্ট সংযুক্ত করবেন, স্থানীয়ভাবে স্ট্রিমিং পরীক্ষা করবেন, ক্যাশ টিউন করবেন এবং মিটারযুক্ত VM নিরাপদে বন্ধ করবেন তা শিখুন।

OpenAI-সামঞ্জস্যপূর্ণ API দিয়ে Colab A100-এ Qwen3.8-Flash-Next চালানো

collabosm যা করে

collabosm একটি একক Colab A100 80 GB High-RAM ইনস্ট্যান্সে Qwen3.8-Flash-Next চালায়। মডেলটি একটি 125B-A6B mixture-of-experts মডেল, যার hybrid Gated-DeltaNet এবং full-attention আর্কিটেকচার রয়েছে এবং native context length 262,144 টোকেন।

প্রকল্পটি Colab VM provision বা restore করে, একটি pinned ExLlamaV3 runtime ইনস্টল করে, pinned model weights ডাউনলোড করে, একটি OpenAI-compatible HTTP server চালু করে এবং Cloudflare tunnel-এর মাধ্যমে সেটি প্রকাশ করে। ক্লায়েন্টরা তৈরি করা bearer key ব্যবহার করে /v1-এর অধীনে tunnel URL-এ সংযুক্ত হয়।

রিপোজিটরিতে ব্যবহৃত একমাত্র inference engine হলো ExLlamaV3। ExLlamaV3-এ HTTP server না থাকায় API server-টি collabosm নিজেই বাস্তবায়ন করেছে।

প্রধান বৈশিষ্ট্য

  • Single-GPU deployment: একটি A100 80 GB High-RAM runtime-এ প্রায় 63.6 GiB VRAM-এ থাকা weights চালায়।
  • OpenAI-compatible interfaces: incremental streaming-সহ /v1/chat/completions এবং /v1/responses উভয়ই সমর্থন করে।
  • নিরাপদ Colab restoration: অস্থায়ী স্থানীয় CLI session record-এ ভরসা না করে orphaned assignment পুনরায় সংযুক্ত করে এবং duplicate billable VM তৈরি করে না।
  • Hardware validation: মডেল লোড করার আগে অসামঞ্জস্যপূর্ণ 40 GB A100 প্রত্যাখ্যান করে এবং বন্ধ করে দেয়।
  • Persistent prompt caching: একটি দীর্ঘস্থায়ী ExLlamaV3 Generator ধরে রাখে, যাতে page table এবং pinned-RAM cache request-গুলোর মধ্যেও টিকে থাকে।
  • Two-tier cache design: নিষ্ক্রিয় conversation দ্রুত পুনরায় চালু করার জন্য GPU KV capacity-এর সঙ্গে ঐচ্ছিক pinned host-RAM cache যুক্ত করে।
  • Local protocol testing: GPU বা model weights ছাড়াই প্রকৃত HTTP handler পরীক্ষা করার জন্য একটি fake engine সরবরাহ করে।
  • ঐচ্ছিক vision: মডেলের vision component লোড করতে পারে এবং নিয়ন্ত্রিত image input গ্রহণ করতে পারে।
  • Local client এবং UI: terminal chat, browser UI, status page, stream থেকে উদ্ভূত performance metric এবং browser-এর বাইরে upstream key রাখার জন্য একটি proxy অন্তর্ভুক্ত করে।

প্রকল্পে জানানো পরিমাপগুলোর মধ্যে রয়েছে GCS=8192-সহ 30K prompt-এর জন্য প্রতি সেকেন্ডে সর্বোচ্চ 3,882 prefill token, 30K context-এ MTP depth 4-সহ প্রতি সেকেন্ডে 97.4 decode token এবং 114K context-এ প্রতি সেকেন্ডে 90.1 token। এই সংখ্যাগুলোকে নিশ্চয়তা হিসেবে বিবেচনা না করে উৎস ও সীমাবদ্ধতার জন্য docs/MEASURED.md দেখুন।

প্রয়োজনীয়তা ও capacity planning

শুরু করার আগে নিশ্চিত করুন যে আপনার পরিবেশে নিচের সব প্রয়োজনীয়তা পূরণ হচ্ছে:

  • A100 বরাদ্দ করতে সক্ষম একটি Colab plan।
  • HIGH_RAM machine shape। সাধারণ 40 GB A100 এই মডেল লোড করতে পারে না।
  • Weights-এর জন্য প্রায় 110 GiB Colab disk space।
  • uv tool install google-colab-cli দিয়ে ইনস্টল করা Google Colab command-line tool।
  • রিপোজিটরি fork বা push করার পরিকল্পনা থাকলে ঐচ্ছিকভাবে GitHub CLI।
uv tool install google-colab-cli

High-RAM requirement বাধ্যতামূলক। hardware output-এ “80” খুঁজে উপযুক্ত card শনাক্ত করবেন না, কারণ কোনো A100-এ মাত্র 40 GB VRAM থাকলেও compute capability sm_80 হিসেবে দেখাতে পারে। collabosm পরিবর্তে রিপোর্ট করা vram_GiB মান তুলনা করে।

প্রকল্পটি প্রতি মাসে প্রায় 200 compute unit-সম্পন্ন Colab Pro tier-এ তৈরি করা হয়েছে। পরিমাপ করা A100 High-RAM খরচ ছিল প্রতি ঘণ্টায় 7.52 CU, যা নথিবদ্ধ পরিবেশে প্রায় $0.75 প্রতি ঘণ্টা। Pricing এবং allocation availability রিপোজিটরি থেকে স্বাধীনভাবে পরিবর্তিত হতে পারে।

সার্ভার শুরু করুন

1. রিপোজিটরি ডিরেক্টরি খুলুন

collabosm রিপোজিটরি ডাউনলোড বা clone করুন, তারপর এর root directory থেকে নিচের command-গুলো চালান। Script-গুলো scripts/up.sh, scripts/bootstrap.sh এবং scripts/serve.sh-এর মতো repository-relative path প্রত্যাশা করে।

2. Provision, bootstrap এবং serve করুন

bash scripts/up.sh

এই একক command-টি সম্ভব হলে বিদ্যমান assignment restore করে অথবা একটি নতুন High-RAM assignment তৈরি করে, project upload করে, pinned runtime ইনস্টল করে, pinned weights ডাউনলোড করে, API চালু করে, Cloudflare tunnel শুরু করে এবং সফল health check না হওয়া পর্যন্ত অপেক্ষা করে।

API এবং public tunnel URL উভয় প্রস্তুত হওয়ার পরেই সফল invocation status 0 দিয়ে শেষ হয়। Command-টি tunnel URL এবং API key প্রিন্ট করে। Key-টি VM-এ /content/api-key.txt-তেও সংরক্ষিত থাকে।

Colab Python, PyTorch এবং CUDA environment-এর সঙ্গে সামঞ্জস্যপূর্ণ একটি pinned prebuilt ExLlamaV3 wheel থেকে runtime নির্বাচন করা হয়। Hugging Face থেকে pinned revision-এ weights আনা হয়। Xet download path আটকে গেলে README-তে HF_HUB_DISABLE_XET=1-কে fallback হিসেবে উল্লেখ করা হয়েছে।

3. Connection settings সংরক্ষণ করুন

base_url = https://<host>.trycloudflare.com/v1
api_key  = <printed API key>
model    = qwen3.8-flash-next-exl3

Quick tunnel hostname প্রতিটি launch-এর মধ্যে পরিবর্তিত হতে পারে। স্থিতিশীল hostname-এর জন্য TUNNEL_TOKEN দিয়ে একটি named Cloudflare tunnel configure করুন এবং status output-এ দেখানো address-এর জন্য সেটিকে PUBLIC_URL-এর সঙ্গে যুক্ত করুন।

4. চলমান configuration পরিদর্শন করুন

চলমান process আসলে যে parameter-গুলো পেয়েছে সেগুলো দেখতে GET /v1/status request করুন। এর মধ্যে cache settings, launch parameter, uptime, vision availability এবং image-input policy অন্তর্ভুক্ত রয়েছে।

রিপোজিটরির নোট অনুযায়ী, এর বর্তমান default-গুলো একসঙ্গে সম্পূর্ণ যাচাই করা হয়নি। কোনো নির্দিষ্ট combination validated ধরে নেওয়ার আগে live status endpoint পরীক্ষা করুন এবং docs/MEASURED.md দেখুন।

Cache এবং generation configure করুন

সমস্ত প্রাথমিক লঞ্চ নিয়ন্ত্রণ scripts/up.sh-এ পাস করা environment variable। উদাহরণ:

SESSION=mybox CACHE_SIZE=524288 CPU_CACHE_GB=8 bash scripts/up.sh
  • SESSION: স্থানীয় সেশনের নাম; ডিফল্ট collabosm।
  • CACHE_SIZE: সব কাজ মিলিয়ে মোট KV টোকেন; ডিফল্ট 500224 এবং এটি 256-এর গুণিতক হওয়া আবশ্যক।
  • CACHE_QUANT: KV ক্যাশের বিট-প্রস্থ; ডিফল্ট 4, অনুমোদিত মান 2 থেকে 8।
  • CPU_CACHE_GB: পিন করা RAM-এ দ্বিতীয় স্তরের KV পেজ ক্যাশ; ডিফল্ট 32 GiB, 0 দিলে এটি নিষ্ক্রিয় হয়।
  • RECURRENT_CACHE_GB: Gated-DeltaNet checkpoint সংরক্ষণের জন্য host RAM; ডিফল্ট 24 GiB।
  • GCS: generator chunk size এবং prefill কর্মক্ষমতার একটি প্রধান নিয়ন্ত্রণ; ডিফল্ট 8192।
  • NDT: multi-token prediction draft depth; ডিফল্ট 4।
  • RUNTIME: prebuilt runtime-এর জন্য wheel অথবা source-ভিত্তিক সেটআপের জন্য source।
  • TUNNEL_TOKEN: ঐচ্ছিক named-tunnel token।

Host RAM ক্যাশ বিনামূল্যের অতিরিক্ত capacity নয়। ডিফল্ট CPU ক্যাশ সম্পূর্ণভাবে pinned memory হিসেবে বরাদ্দ হয়, এবং recurrent cache-ও উল্লেখযোগ্য RAM ব্যবহার করে। এগুলো repository-তে নথিবদ্ধ 36.4 GiB n-gram table-এর সঙ্গেও ব্যবহৃত হয়।

যেসব idle conversation-এর অব্যবহৃত পেজ উচ্ছেদ করা হয়েছে, pinned-RAM tier সেগুলো পুনরায় চালু করার সময় কমায়। এটি একই সময়ে সক্রিয় context-এর সংখ্যা বাড়ায় না, কারণ সক্রিয় পেজগুলোকে host RAM সাধারণ swap হওয়ার মতো উচ্ছেদ করা যায় না।

OpenAI-সামঞ্জস্যপূর্ণ API কল করুন

মডেল তালিকাভুক্ত করুন

curl https://<host>.trycloudflare.com/v1/models \
  -H "Authorization: Bearer <api-key>"

Endpoint-টি একটিমাত্র model identifier qwen3.8-flash-next-exl3 ফেরত দেয়। এই API route-এর জন্য authentication প্রয়োজন, তবে /health authentication ছাড়াই ব্যবহার করা যায় এবং সাধারণ ok ফেরত দেয়।

একটি chat completion তৈরি করুন

curl https://<host>.trycloudflare.com/v1/chat/completions \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.8-flash-next-exl3",
    "messages": [
      {"role": "user", "content": "Reply with exactly: pong"}
    ],
    "max_tokens": 16
  }'

Chat interface-টি choices[].message.content-এর অধীনে content, stop বা length finish reason, এবং cached prompt token অন্তর্ভুক্ত থাকতে পারে এমন usage তথ্য ফেরত দেয়।

একটি completion stream করুন

মডেল decoding করার সময় Server-Sent Events পেতে stream-এর মান true সেট করুন। Chat completion-এর ক্ষেত্রে stream [DONE] দিয়ে শেষ হয়। Stream করা response-এ usage data চাওয়ার জন্য stream_options.include_usage সেট করুন।

{
  "model": "qwen3.8-flash-next-exl3",
  "messages": [{"role": "user", "content": "Explain prompt caching briefly."}],
  "stream": true,
  "stream_options": {"include_usage": true},
  "max_completion_tokens": 200
}

/v1/responses endpoint-ও streaming সমর্থন করে। এর event sequence-এ creation, progress, output-item, content-part, text-delta, completion এবং terminal response event অন্তর্ভুক্ত থাকে। প্রতিটি streamed event-এ একটি monotonic sequence_number থাকে, আর delta-গুলোতে item ও content index থাকে, যাতে client সঠিকভাবে সেগুলো সংযুক্ত করতে পারে।

Thinking mode ব্যবহার করুন

সাধারণ chat client-এর সঙ্গে সামঞ্জস্যের জন্য thinking ডিফল্টভাবে নিষ্ক্রিয় থাকে। enable_thinking: true অথবা সমর্থিত reasoning_effort মান xhigh, medium বা low দিয়ে এটি সক্রিয় করুন। Chat surface-এ reasoning trace আলাদাভাবে message.reasoning_content-এ ফেরত আসে এবং সাধারণ content field-এ প্রকাশ পায় না।

temperature এবং top_p গ্রহণ করা হলেও বর্তমানে উপেক্ষা করা হয়, কারণ server sampler=None দিয়ে job তৈরি করে। Thinking control, max_tokens এবং stop sequence কাজ করে।

অন্তর্ভুক্ত client ব্যবহার করুন

স্থানীয় collabosm.py client কেবল Python standard library ব্যবহার করে এবং আলাদা installation প্রয়োজন হয় না। Tunnel endpoint ও generated key দিয়ে এর configuration আরম্ভ করুন:

python collabosm.py config --init \
  --endpoint https://<host>.trycloudflare.com/v1 \
  --api-key <key>

এরপর terminal থেকে chat করতে বা স্থানীয় browser interface চালু করতে পারবেন:

python collabosm.py chat "hello"
python collabosm.py ui
python collabosm.py start

ui পেজ ও proxy-কে http://127.0.0.1:8790-এ পরিবেশন করে। start chat ও status window খুলে দেয়। Client ইচ্ছাকৃতভাবে Colab VM চালু বা বন্ধ করে না, তাই এটি খোলার কারণে নিজে থেকে compute unit খরচ হয় না।

যখন proxy-কে প্রকৃত bearer key যুক্ত করাতে চান, তখন বিদ্যমান OpenAI-সামঞ্জস্যপূর্ণ client-কে VM endpoint-এর বদলে স্থানীয় proxy দিন:

base URL : http://127.0.0.1:8790/v1
API key  : anything
model    : qwen3.8-flash-next-exl3

এই নকশায় প্রকৃত key স্থানীয় proxy process-এর ভেতরে থাকে, বিস্তৃত CORS policy এড়ানো যায় এবং VM থেকে স্বাধীনভাবে browser UI আপডেট করা যায়।

GPU ছাড়াই protocol পরীক্ষা করুন

A100-এর জন্য অর্থ ব্যয় বা weights download না করেই request ও streaming behavior যাচাই করতে development stub ব্যবহার করুন:

python scripts/dev_stub.py --port 8099 --chunk 24 --delay 0.01
python scripts/check_surface.py --base http://127.0.0.1:8099/v1

স্টাবটি আসল শিপিং হ্যান্ডলার ইমপোর্ট করে এবং শুধু এর ইঞ্জিন-ফ্র্যাগমেন্ট ফাংশনটি প্রতিস্থাপন করে। সারফেস চেকারটি ১৩টি পরীক্ষা চালায়, যার মধ্যে রয়েছে প্রাথমিক ডেল্টা, টার্মিনাল ইভেন্ট, মিলে যাওয়া চ্যাট ও Responses আউটপুট, প্রয়োজনীয় আইটেম ইনডেক্স এবং একমুখী সিকোয়েন্স নম্বর। কোনো পরীক্ষা ব্যর্থ হলে এটি স্ট্যাটাস 1 দিয়ে বন্ধ হয়।

রিজনিং-আইটেমের লাইফসাইকেল পরীক্ষা করতে স্টাব কমান্ডে --think যোগ করুন। স্ট্রিম ইভেন্টের আকৃতি পরিবর্তন করার বা Codex CLI-এর মতো কঠোর ক্লায়েন্ট সংযুক্ত করার আগে এটি বিশেষভাবে কার্যকর।

সতর্কতার সঙ্গে ভিশন সক্রিয় ও পরীক্ষা করুন

মডেল প্যাকটি মাল্টিমোডাল, তবে ডিফল্টভাবে ভিশন নিষ্ক্রিয় থাকে, কারণ ইতিমধ্যে অতিরিক্ত ব্যবহৃত কার্ডে ভিশন টাওয়ারের অতিরিক্ত VRAM খরচ পরিমাপ করা হয়নি। আলাদা ভিশন কম্পোনেন্টটি স্পষ্টভাবে সক্রিয় করুন:

VISION=1 bash scripts/up.sh

ঐচ্ছিক ইমেজ নিয়ন্ত্রণগুলো হলো:

IMAGE_URLS=1
MAX_IMAGE_BYTES=12582912
MAX_IMAGES=8

সমর্থিত উভয় API ডায়ালেক্টই স্ট্যান্ডার্ড OpenAI ইমেজ পার্ট গ্রহণ করে। ভিশন সক্রিয় থাকলে Data URL গ্রহণ করা হয়। IMAGE_URLS=1 না থাকলে দূরবর্তী HTTP বা HTTPS ইমেজ URL নিষ্ক্রিয় থাকে।

{
  "role": "user",
  "content": [
    {"type": "text", "text": "এই ছবিটির রং কী?"},
    {
      "type": "image_url",
      "image_url": {"url": "data:image/png;base64,..."}
    }
  ]
}

দূরবর্তী URL সক্রিয় থাকলে সার্ভার হোস্টনেম সমাধান করে এবং প্রতিটি ঠিকানা বিশ্বব্যাপী রাউটযোগ্য হওয়া আবশ্যক করে। এটি লুপব্যাক, ব্যক্তিগত, লিংক-লোকাল এবং মেটাডেটা ঠিকানা প্রত্যাখ্যান করে এবং রিডাইরেক্ট অনুসরণ করে না। ফাইলসিস্টেম পাথ কখনো গ্রহণ করা হয় না। কোনো ইমেজ এমবেড করা না গেলে সার্ভার ইমেজটি নীরবে উপেক্ষা না করে vision_unavailable ধরনের একটি JSON 400 ত্রুটি ফেরত দেয়।

ভিশন সক্রিয় কি না জানতে GET /v1/status পরীক্ষা করুন, তারপর নিচের কমান্ড দিয়ে সক্রিয় বা ইচ্ছাকৃতভাবে প্রত্যাখ্যাত আচরণ যাচাই করুন:

python scripts/check_vision.py \
  --base https://<host>.trycloudflare.com/v1 \
  --key <key>

সমকালীনতা ও কর্মক্ষমতার পরামর্শ

API একটি লক দ্বারা সুরক্ষিত দীর্ঘস্থায়ী জেনারেটর ব্যবহার করে। তাই অনুরোধগুলো সিরিয়ালভাবে সম্পাদিত হয়: একাধিক স্ট্রিম সমান্তরালে ডিকোড না হয়ে সারিবদ্ধ থাকে। একের বেশি ব্যাচ সাইজ পরীক্ষা করা হয়নি, এবং প্রকাশিত পরিমাপ একটি স্লট ব্যবহার করে নেওয়া হয়েছে।

পরিমাপ করা লাইভ-সেশন সক্ষমতা কনটেক্সটের দৈর্ঘ্যের ওপর দৃঢ়ভাবে নির্ভর করে:

  • প্রতি স্ট্রিমে 500K টোকেন: ১টি লাইভ সেশন।
  • প্রতি স্ট্রিমে 262K টোকেন: ২টি লাইভ সেশন।
  • প্রতি স্ট্রিমে 131K টোকেন: ৫টি লাইভ সেশন।
  • প্রতি স্ট্রিমে 32K টোকেন: ১১টি লাইভ সেশন।
  • প্রতি স্ট্রিমে 16K টোকেন: ১৪টি লাইভ সেশন।

KV স্টোরেজের আগে প্রতিটি লাইভ স্লট আনুমানিক 546 MiB Gated-DeltaNet স্টেট ব্যবহার করে। ছোট কনটেক্সটে রিকারেন্ট স্টেট সীমাবদ্ধ фактор হয়ে ওঠে; বাস্তবে নথিভুক্ত পরিসর প্রায় ৮ থেকে ১৪টি লাইভ স্লট, যদিও বর্তমান API লকের কারণে অনুরোধগুলো এখনও সিরিয়ালভাবে সম্পাদিত হয়।

প্রিফিল কর্মক্ষমতার ক্ষেত্রে, প্রকল্পে পাওয়া সবচেয়ে বড় প্রভাবক ছিল GCS। তবে বড় বা পরিবর্তিত ক্যাশ সেটিংস অন্ধভাবে অনুলিপি না করে VRAM এবং হোস্ট-RAM ব্যবহারের বিপরীতে যাচাই করা উচিত।

প্রতিটি অনুরোধের জন্য নতুন Generator তৈরি করা এড়িয়ে চলুন। পেজ টেবিল এবং CPU পেজ ক্যাশ Generator.__init__-এর ভেতরে তৈরি হয়; এটি পুনর্নির্মাণ করলে প্রম্পট-ক্যাশ পুনর্ব্যবহার নীরবে বাদ পড়বে এবং বারবার প্রিফিল করতে হবে। অন্তর্ভুক্ত সার্ভারটি ইতিমধ্যে সঠিক দীর্ঘস্থায়ী ইনস্ট্যান্স বজায় রাখে।

সমস্যা সমাধান

CLI বলছে কোনো সক্রিয় সেশন নেই

রানটাইম প্রক্সি টোকেনের মেয়াদ শেষ হলে একটি স্থানীয় সেশন রেকর্ড অদৃশ্য হয়ে যেতে পারে, যদিও VM সক্রিয় এবং বিলযোগ্য থাকে। ম্যানুয়ালি আরেকটি VM তৈরি না করে রিপোজিটরির পুনরুদ্ধার কর্মপ্রবাহ ব্যবহার করুন। scripts/restore.py সার্ভার-সাইড অ্যাসাইনমেন্ট জিজ্ঞাসা করে এবং অনাথ ইনস্ট্যান্সটি পুনরায় সংযুক্ত করে।

মডেলটি ফিট হচ্ছে না

নিশ্চিত করুন যে রানটাইমে প্রায় 80 GB VRAM রয়েছে এবং এটি High-RAM আকৃতির। মডেল লোড করার আগে 40 GB অ্যাসাইনমেন্ট প্রত্যাখ্যান ও বন্ধ করার জন্য রিস্টোর স্ক্রিপ্টটি তৈরি করা হয়েছে।

API সুস্থ, কিন্তু কোনো পাবলিক URL দেখা যাচ্ছে না

up.sh কোনো প্রকাশিত টানেল URL ছাড়া সুস্থ VM-কে সম্পূর্ণ প্রস্তুত অবস্থা থেকে আলাদা করে। এক্ষেত্রে এক্সিট স্ট্যাটাস 9 নির্দেশ করে। এন্ডপয়েন্টটি সর্বসাধারণের জন্য পৌঁছানো যায় ধরে না নিয়ে সার্ভিং ও টানেল লগ পরীক্ষা করুন।

অনুরোধগুলো স্যাম্পলিং নিয়ন্ত্রণ উপেক্ষা করছে বলে মনে হচ্ছে

বর্তমান সার্ভারে temperature এবং top_p-এর ক্ষেত্রে এটি প্রত্যাশিত। এগুলো পার্স করা হয়, কিন্তু কোনো স্যাম্পলারে ফরোয়ার্ড করা হয় না।

স্ট্রিমিং সামঞ্জস্য নষ্ট হচ্ছে

scripts/dev_stub.py দিয়ে সমস্যাটি পুনরুৎপাদন করুন, তারপর scripts/check_surface.py চালান। আসল হ্যান্ডলারটি পরীক্ষাধীন থাকে, তাই মডেল প্রভিশন না করেই প্রোটোকল রিগ্রেশন ধরা যায়।

VM বন্ধ করুন এবং খরচ নিয়ন্ত্রণ করুন

কাজ শেষ হলে মিটারযুক্ত রানটাইমটি সঙ্গে সঙ্গে বন্ধ করুন:

bash scripts/down.sh

এটি প্রকল্পের সবচেয়ে গুরুত্বপূর্ণ খরচ-নিয়ন্ত্রণ কমান্ড। ব্রাউজার বন্ধ করা, স্থানীয় CLI রেকর্ড হারানো বা Colab থেকে সংযোগ বিচ্ছিন্ন হওয়া বিলিং বন্ধ হয়েছে তার প্রমাণ নয়।

ঐচ্ছিক ফ্রন্টএন্ড কন্ট্রোল প্লেনটি প্রভিশনিংয়ের আগে নিশ্চিতকরণ, একটি স্থানীয় CU লেজার, নিষ্ক্রিয় অবস্থায় স্বয়ংক্রিয় বন্ধ, সর্বোচ্চ সেশন সময়কাল, বাতিলকরণ এবং অ্যাসাইনমেন্টের পর প্রভিশনিং ব্যর্থ হলে ক্লিনআপ যোগ করে। কার্ড বা কম্পিউট ইউনিট ছাড়াই আপনি সেই কর্মপ্রবাহের মহড়া দিতে পারেন:

python frontend/server.py --fake-provision
python frontend/server.py --mock
python scripts/dev_stub.py --port 8099 &
python frontend/server.py --mock --backend http://127.0.0.1:8099

উপসংহার

collabosm Colab-এ Qwen3.8-Flash-Next চালানোর জটিল অংশগুলো পরিচালনা করে: সঠিক A100 কনফিগারেশনের অনুরোধ করা, অনাথ অ্যাসাইনমেন্ট পুনরুদ্ধার করা, সামঞ্জস্যপূর্ণ ExLlamaV3 রানটাইম ইনস্টল করা, নির্দিষ্ট সংস্করণের ওজন লোড করা, ক্যাশ সংরক্ষণ করা, একটি সুরক্ষিত টানেল উন্মুক্ত করা এবং দুটি OpenAI-সামঞ্জস্যপূর্ণ API ডায়ালেক্ট পরিবেশন করা।

bash scripts/up.sh দিয়ে শুরু করুন, /v1/status এর মাধ্যমে সক্রিয় কনফিগারেশন যাচাই করুন, প্রদর্শিত /v1 এন্ডপয়েন্টের মাধ্যমে সংযোগ করুন এবং কাজ শেষে সবসময় bash scripts/down.sh চালান। প্রোডাকশনের কাছাকাছি পরীক্ষার সময় সিরিয়ালাইজড রিকোয়েস্ট, বাস্তবায়িত না হওয়া স্যাম্পলিং নিয়ন্ত্রণ, ক্যাশের মেমরি খরচ, ভিশনের ঐচ্ছিক VRAM ব্যবহার এবং নিষ্ক্রিয় ক্যাশ থেকে পুনরায় শুরু করা ও প্রকৃত সক্রিয়-সেশন সক্ষমতার পার্থক্যের দিকে বিশেষ মনোযোগ দিন।