collabosm nima qiladi
collabosm yagona Colab A100 80 GB High-RAM nusxasida Qwen3.8-Flash-Next dasturini ishga tushiradi. Model gibrid Gated-DeltaNet va to‘liq attention arxitekturasiga ega, 125B-A6B mixture-of-experts model bo‘lib, uning tabiiy kontekst uzunligi 262,144 tokenni tashkil etadi.
Loyiha Colab VM’ni yaratadi yoki tiklaydi, belgilangan ExLlamaV3 runtime’ini o‘rnatadi, belgilangan model og‘irliklarini yuklab oladi, OpenAI bilan mos HTTP serverni ishga tushiradi va uni Cloudflare tunnel orqali ochadi. Mijozlar yaratilgan bearer kaliti bilan tunnel URL manzilidagi /v1 orqali ulanadi.
Repository’da faqat ExLlamaV3 inference mexanizmi ishlatiladi. API serverining o‘zi esa collabosm tomonidan amalga oshirilgan, chunki ExLlamaV3 HTTP serverni o‘z ichiga olmaydi.
Asosiy imkoniyatlar
- Bitta GPU’da joylashtirish: taxminan 63.6 GiB VRAM talab qiladigan og‘irliklarni bitta A100 80 GB High-RAM runtime’ida ishga tushiradi.
- OpenAI bilan mos interfeyslar:
/v1/chat/completionsva/v1/responsesmanzillarini, jumladan bosqichma-bosqich streaming’ni qo‘llab-quvvatlaydi. - Colab’ni xavfsiz tiklash: vaqtinchalik mahalliy CLI sessiyasi yozuvlariga ishonish yoki to‘lov olinadigan takroriy VM’lar yaratish o‘rniga yetim qolgan assignment’larni qayta ulaydi.
- Uskunani tekshirish: model yuklanishidan oldin mos kelmaydigan 40 GB A100’dan foydalanishni rad etadi va uni to‘xtatadi.
- Doimiy prompt keshlash: uzoq muddat ishlaydigan bitta ExLlamaV3
Generatorobyektini saqlaydi, shu sababli page table va pinned-RAM keshi so‘rovlar orasida ham saqlanib qoladi. - Ikki darajali kesh dizayni: bo‘sh turgan suhbatlarni tez tiklash uchun GPU KV sig‘imini ixtiyoriy pinned host-RAM keshi bilan birlashtiradi.
- Mahalliy protokol sinovi: GPU yoki model og‘irliklarisiz haqiqiy HTTP handler’ni sinovdan o‘tkazadigan soxta engine’ni taqdim etadi.
- Ixtiyoriy vision: modelning vision komponentini yuklashi va nazorat qilinadigan rasm kiritmalarini qabul qilishi mumkin.
- Mahalliy mijoz va UI: terminal chati, brauzer UI’si, holat sahifalari, stream’dan hosil qilinadigan unumdorlik ko‘rsatkichlari va upstream kalitini brauzerdan yashiradigan proxy’ni o‘z ichiga oladi.
Loyiha qayd etgan o‘lchovlarga GCS=8192 bilan 30K prompt uchun sekundiga 3,882 tagacha prefill tokeni, 30K kontekstda MTP depth 4 bilan sekundiga 97.4 ta decode tokeni va 114K kontekstda sekundiga 90.1 ta token kiradi. Bu ko‘rsatkichlarni kafolat deb qabul qilmasdan, ularning kelib chiqishi va cheklovlari uchun docs/MEASURED.md fayliga murojaat qiling.
Talablar va sig‘imni rejalashtirish
Ishga tushirishdan oldin muhitingiz quyidagi barcha talablarga javob berishiga ishonch hosil qiling:
- A100 ajrata oladigan Colab rejasi.
- HIGH_RAM mashina shakli. Standart 40 GB A100 bu modelni yuklay olmaydi.
- Og‘irliklar uchun taxminan 110 GiB Colab disk maydoni.
uv tool install google-colab-clibuyrug‘i bilan o‘rnatilgan Google Colab buyruq qatori vositasi.- Repository’ni fork qilish yoki unga push yuborishni rejalashtirsangiz, ixtiyoriy ravishda GitHub CLI.
uv tool install google-colab-cliHigh-RAM talabi majburiy. “80” qiymatini qidirib, mos kartani aniqlamang, chunki A100 atigi 40 GB VRAM’ga ega bo‘lsa ham, hisoblash qobiliyatini
sm_80sifatida ko‘rsatishi mumkin. collabosm buning o‘rniga qayd etilganvram_GiBqiymatini solishtiradi.
Loyiha oyiga taxminan 200 compute unit’ga ega Colab Pro darajasida ishlab chiqilgan. O‘lchangan A100 High-RAM narxi soatiga 7.52 CU, hujjatlashtirilgan muhitda esa taxminan soatiga $0.75 bo‘lgan. Narxlar va resurs ajratish imkoniyati repository’dan mustaqil ravishda o‘zgarishi mumkin.
Serverni ishga tushirish
1. Repository katalogini oching
collabosm repository’sini yuklab oling yoki clone qiling, so‘ng quyidagi buyruqlarni uning ildiz katalogidan bajaring. Skriptlar scripts/up.sh, scripts/bootstrap.sh va scripts/serve.sh kabi repository’ga nisbatan berilgan yo‘llarni kutadi.
2. Provisioning, bootstrap va serve
bash scripts/up.shBu yagona buyruq imkon bo‘lganda mavjud assignment’ni tiklaydi yoki yangi High-RAM assignment yaratadi, loyihani yuklaydi, belgilangan runtime’ni o‘rnatadi, belgilangan og‘irliklarni yuklab oladi, API’ni ishga tushiradi, Cloudflare tunnel’ni ochadi va muvaffaqiyatli health check’ni kutadi.
Muvaffaqiyatli ishga tushirish faqat API va ochiq tunnel URL manzili tayyor bo‘lgandan keyin 0 holat kodi bilan yakunlanadi. Buyruq tunnel URL manzili va API kalitini chiqaradi. Kalit VM’da /content/api-key.txt manzilida ham saqlanadi.
Runtime Colab Python, PyTorch va CUDA muhitiga mos keladigan, oldindan build qilingan va belgilangan ExLlamaV3 wheel paketidan tanlanadi. Og‘irliklar Hugging Face’dan belgilangan revision orqali olinadi. Xet yuklab olish yo‘li to‘xtab qolsa, README HF_HUB_DISABLE_XET=1 qiymatini zaxira variant sifatida ko‘rsatadi.
3. Ulanish sozlamalarini yozib oling
base_url = https://<host>.trycloudflare.com/v1
api_key = <printed API key>
model = qwen3.8-flash-next-exl3Quick tunnel hostname’i ishga tushirishlar orasida o‘zgarishi mumkin. Barqaror hostname uchun TUNNEL_TOKEN bilan nomlangan Cloudflare tunnel’ni sozlang va uni holat chiqishida ko‘rsatiladigan manzil uchun PUBLIC_URL bilan bog‘lang.
4. Ishlayotgan konfiguratsiyani tekshiring
Amaldagi jarayon haqiqatda qabul qilgan parametrlarni, jumladan kesh sozlamalari, ishga tushirish parametrlari, uptime, vision mavjudligi va rasm kiritish siyosatini ko‘rish uchun GET /v1/status so‘rovini yuboring.
Repository hozirgi standart sozlamalarining barchasi birgalikda tekshirilmaganini qayd etadi. Muayyan kombinatsiya tasdiqlangan deb hisoblashdan oldin ishlayotgan status endpoint’ini tekshiring va
docs/MEASURED.mdfayliga murojaat qiling.
Keshlar va generatsiyani sozlash
Barcha asosiy ishga tushirish boshqaruvlari scripts/up.sh skriptiga uzatiladigan muhit o‘zgaruvchilaridir. Masalan:
SESSION=mybox CACHE_SIZE=524288 CPU_CACHE_GB=8 bash scripts/up.shSESSION: mahalliy sessiya nomi; standart qiymaticollabosm.CACHE_SIZE: barcha vazifalar bo‘yicha KV tokenlarining umumiy soni; standart qiymati500224, 256 ga karrali bo‘lishi shart.CACHE_QUANT: KV kesh bit kengligi; standart qiymati4, 2 dan 8 gacha bo‘lgan qiymatlarga ruxsat beriladi.CPU_CACHE_GB: pinned-RAM ikkilamchi KV sahifa keshi; standart qiymati 32 GiB,0qiymati uni o‘chiradi.RECURRENT_CACHE_GB: Gated-DeltaNet checkpointlari uchun host-RAM xotirasi; standart qiymati 24 GiB.GCS: generator bo‘lagi hajmi va prefill unumdorligining asosiy boshqaruvlaridan biri; standart qiymati8192.NDT: ko‘p tokenli bashorat draft chuqurligi; standart qiymati4.RUNTIME: oldindan yig‘ilgan runtime uchunwheelyoki manba asosidagi sozlama uchunsource.TUNNEL_TOKEN: ixtiyoriy nomlangan tunnel tokeni.
Host-RAM keshlari bo‘sh sig‘im emas. Standart CPU keshi to‘liq hajmda pinned xotira sifatida ajratiladi, recurrent kesh ham sezilarli RAM sarflaydi. Ular repository hujjatlarida ko‘rsatilgan 36.4 GiB hajmdagi n-gram jadvali bilan birga ishlaydi.
Pinned-RAM qatlami havola qilinmayotgan sahifalari chiqarib yuborilgan faol bo‘lmagan suhbatlarni tiklash vaqtini qisqartiradi. U bir vaqtning o‘zida faol bo‘lishi mumkin bo‘lgan kontekstlar sonini oshirmaydi, chunki faol sahifalarni host RAM oddiy swap kabi ishlatilgandek chiqarib yuborib bo‘lmaydi.
OpenAI bilan mos API'ni chaqirish
Modelni ro‘yxatlash
curl https://<host>.trycloudflare.com/v1/models \
-H "Authorization: Bearer <api-key>"Endpoint yagona model identifikatori qwen3.8-flash-next-exl3 ni qaytaradi. Bu API yo‘li uchun autentifikatsiya talab qilinadi, /health esa autentifikatsiyasiz ishlaydi va oddiy ok javobini qaytaradi.
Chat yakunlanishini yaratish
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 interfeysi kontentni choices[].message.content ichida qaytaradi, yakunlanish sababi stop yoki length bo‘lishi mumkin, shuningdek keshlangan prompt tokenlarini o‘z ichiga olishi mumkin bo‘lgan foydalanish ma’lumotlarini qaytaradi.
Yakunlanishni oqimda olish
Model dekodlayotganda Server-Sent Events olish uchun stream qiymatini true qilib belgilang. Chat yakunlanishlari uchun oqim [DONE] bilan tugaydi. stream_options.include_usage ni o‘rnatish oqimdagi javobda foydalanish ma’lumotlarini so‘raydi.
{
"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 endpointi ham oqimli ishlashni qo‘llab-quvvatlaydi. Uning hodisalar ketma-ketligida yaratish, jarayon, output-item, content-part, text-delta, yakunlanish va terminal response hodisalari mavjud. Har bir oqimli hodisa monoton o‘suvchi sequence_number ni olib yuradi, deltalar esa mijozlar ularni to‘g‘ri bog‘lashi uchun kerak bo‘ladigan element va kontent indekslarini olib yuradi.
Fikrlash rejimidan foydalanish
Oddiy chat mijozlari bilan moslik uchun fikrlash sukut bo‘yicha o‘chirilgan. Uni enable_thinking: true yoki qo‘llab-quvvatlanadigan reasoning_effort qiymatlaridan biri: xhigh, medium yoki low bilan yoqing. Chat interfeysida fikrlash izi alohida message.reasoning_content ichida qaytariladi va oddiy content maydoniga sizib chiqmaydi.
temperaturevatop_pqabul qilinadi, ammo hozircha e’tiborga olinmaydi, chunki server vazifalarnisampler=Nonebilan yaratadi. Fikrlash boshqaruvlari,max_tokensva to‘xtatish ketma-ketliklari ishlaydi.
Qo‘shilgan mijozdan foydalanish
Mahalliy collabosm.py mijozi faqat Python standart kutubxonasidan foydalanadi va alohida o‘rnatishni talab qilmaydi. Tunnel endpointi va yaratilgan kalit bilan uning konfiguratsiyasini ishga tushiring:
python collabosm.py config --init \
--endpoint https://<host>.trycloudflare.com/v1 \
--api-key <key>Shundan so‘ng terminaldan chat qilishingiz yoki mahalliy brauzer interfeysini ishga tushirishingiz mumkin:
python collabosm.py chat "hello"
python collabosm.py ui
python collabosm.py startui sahifa va proksini http://127.0.0.1:8790 manzilida taqdim etadi. start chat va holat oynalarini ochadi. Mijoz Colab VM'ni ataylab ishga tushirmaydi yoki to‘xtatmaydi, shuning uchun uni ochishning o‘zi hisoblash birliklarini sarflamaydi.
Haqiqiy bearer kalitini proksi qo‘shishini istasangiz, mavjud OpenAI bilan mos mijozga VM endpointi o‘rniga mahalliy proksini bering:
base URL : http://127.0.0.1:8790/v1
API key : anything
model : qwen3.8-flash-next-exl3Bu dizayn haqiqiy kalitni mahalliy proksi jarayoni ichida saqlaydi, keng CORS siyosatiga ehtiyojni bartaraf etadi va brauzer interfeysini VM'dan mustaqil yangilash imkonini beradi.
Protokolni GPU'siz sinash
A100 uchun to‘lov qilmasdan yoki og‘irliklarni yuklab olmasdan so‘rov va oqim xatti-harakatlarini tekshirish uchun ishlab chiqish stubidan foydalaning:
python scripts/dev_stub.py --port 8099 --chunk 24 --delay 0.01
python scripts/check_surface.py --base http://127.0.0.1:8099/v1Stub haqiqiy shipping handler'ni import qiladi va faqat uning engine-fragment funksiyasini almashtiradi. Surface checker 13 ta tekshiruvni bajaradi: dastlabki deltalar, yakuniy hodisalar, chat va Responses chiqishlarining mosligi, talab qilinadigan item indekslari hamda monotonik sequence raqamlari. Tekshiruvlardan biri muvaffaqiyatsiz bo‘lsa, u 1 holat kodi bilan yakunlanadi.
Reasoning-item lifecycle'ini sinash uchun stub buyrug‘iga --think qo‘shing. Bu stream hodisalari shaklini o‘zgartirishdan yoki Codex CLI kabi qat’iy mijozlarni ulashdan oldin ayniqsa foydali.
Vision'ni ehtiyotkorlik bilan yoqing va sinang
Model paketi multimodal, ammo vision sukut bo‘yicha o‘chirilgan, chunki vision tower'ning qo‘shimcha VRAM sarfi allaqachon katta yuklama ostidagi kartada hali o‘lchanmagan. Alohida vision komponentini aniq yoqing:
VISION=1 bash scripts/up.shRasmlar uchun ixtiyoriy boshqaruvlar:
IMAGE_URLS=1
MAX_IMAGE_BYTES=12582912
MAX_IMAGES=8Qo‘llab-quvvatlanadigan ikkala API dialekti ham standart OpenAI image parts'ni qabul qiladi. Vision yoqilganda Data URL'lar qabul qilinadi. Masofaviy HTTP yoki HTTPS rasm URL'lari IMAGE_URLS=1 bo‘lmasa, o‘chirilgan holatda qoladi.
{
"role": "user",
"content": [
{"type": "text", "text": "Bu rasmning rangi qanday?"},
{
"type": "image_url",
"image_url": {"url": "data:image/png;base64,..."}
}
]
}Masofaviy URL'lar yoqilganda server hostname'ni aniqlaydi va har bir manzil global yo‘naltiriladigan bo‘lishini talab qiladi. U loopback, private, link-local va metadata manzillarini rad etadi hamda redirect'larni kuzatmaydi. Fayl tizimi yo‘llari hech qachon qabul qilinmaydi. Rasmni joylashtirib bo‘lmasa, server uni jimgina e’tiborsiz qoldirish o‘rniga vision_unavailable turiga ega JSON 400 xatosini qaytaradi.
Vision faol yoki yo‘qligini bilish uchun GET /v1/status ni tekshiring, so‘ng quyidagisi bilan vision yoqilganini yoki ataylab rad etilayotganini tasdiqlang:
python scripts/check_vision.py \
--base https://<host>.trycloudflare.com/v1 \
--key <key>Bir vaqtdalik va unumdorlik bo‘yicha maslahatlar
API lock bilan himoyalangan bitta uzoq muddatli generator'dan foydalanadi. Shu sababli so‘rovlar ketma-ket bajariladi: bir nechta stream parallel dekodlanmaydi, navbatga qo‘yiladi. Bir slotdan katta batch size sinab ko‘rilmagan, e’lon qilingan o‘lchovlar esa bitta slotdan foydalanib olingan.
O‘lchangan live-session sig‘imi context length'ga kuchli darajada bog‘liq:
- Har bir stream uchun 500K token: 1 ta live session.
- Har bir stream uchun 262K token: 2 ta live session.
- Har bir stream uchun 131K token: 5 ta live session.
- Har bir stream uchun 32K token: 11 ta live session.
- Har bir stream uchun 16K token: 14 ta live session.
Har bir live slot KV storage'dan oldin taxminan 546 MiB Gated-DeltaNet holatini egallaydi. Qisqa context'larda recurrent state cheklovchi omilga aylanadi; amaliy hujjatlashtirilgan diapazon taxminan 8 dan 14 tagacha live slot, ammo joriy API lock sababli so‘rovlar hanuz ketma-ket bajariladi.
Prefill unumdorligi uchun loyiha aniqlagan eng katta ta’sir vositasi GCS bo‘lgan. Biroq kattaroq yoki o‘zgartirilgan cache sozlamalarini ko‘r-ko‘rona ko‘chirish o‘rniga VRAM va host-RAM sarfiga nisbatan tekshirish kerak.
Har bir so‘rov uchun yangi Generator yaratmang. Page table va CPU page cache Generator.__init__ ichida yaratiladi; uni qayta qurish prompt-cache qayta foydalanilishini sezdirmasdan yo‘q qiladi va prefill'larni takroran bajarishga majbur qiladi. Kiritilgan server allaqachon to‘g‘ri uzoq muddatli instansiyani saqlab turadi.
Muammolarni bartaraf etish
CLI faol session'lar yo‘qligini aytadi
Runtime proxy token'i muddati tugaganda, VM faol va to‘lov olinayotgan bo‘lsa ham, lokal session yozuvi yo‘qolishi mumkin. Boshqa VM'ni qo‘lda yaratish o‘rniga repository'ning tiklash workflow'idan foydalaning. scripts/restore.py server tomonidagi assignment'larni so‘raydi va yetim qolgan instansiyani qayta ulaydi.
Model sig‘mayapti
Runtime'da taxminan 80 GB VRAM borligini va u High-RAM shakli ekanini tasdiqlang. Restore script model yuklanishidan oldin 40 GB assignment'ni rad etish va to‘xtatish uchun mo‘ljallangan.
API sog‘lom, ammo public URL ko‘rinmayapti
up.sh URL'si e’lon qilinmagan sog‘lom VM'ni to‘liq tayyorgarlikdan ajratadi. 9 chiqish statusi shu holatni bildiradi. Endpoint public ravishda ishlayapti deb taxmin qilmasdan, serving va tunnel log'larini tekshiring.
So‘rovlar sampling boshqaruvlarini e’tiborsiz qoldirayotgandek
Joriy serverda temperature va top_p uchun bu kutilgan holat. Ular parse qilinadi, ammo sampler'ga uzatilmaydi.
Streaming mosligi buzildi
Muammoni scripts/dev_stub.py bilan takrorlang, so‘ng scripts/check_surface.py ni ishga tushiring. Haqiqiy handler sinovdan o‘tkaziladi, shu bois bu modelni provision qilmasdan protokol regressiyalarini aniqlaydi.
VM'ni to‘xtating va xarajatlarni boshqaring
Ishni tugatganingizda metered runtime'ni darhol to‘xtating:
bash scripts/down.shBu loyihadagi xarajatlarni boshqarish uchun eng muhim buyruq. Brauzerni yopish, lokal CLI yozuvini yo‘qotish yoki Colab'dan uzilish billing to‘xtaganini isbotlamaydi.
Ixtiyoriy frontend control plane provisioning'dan oldin tasdiqlash, lokal CU ledger, idle auto-stop, maksimal session davomiyligi, bekor qilish va assignment'dan keyin provisioning muvaffaqiyatsiz bo‘lsa cleanup'ni qo‘shadi. Bu workflow'ni karta yoki compute unit'larsiz mashq qilishingiz mumkin:
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:8099Xulosa
collabosm Colab’da Qwen3.8-Flash-Next’ni ishga tushirishning murakkab qismlarini o‘z zimmasiga oladi: to‘g‘ri A100 konfiguratsiyasini so‘rash, yetim qolgan ajratmalarni tiklash, mos ExLlamaV3 muhitini o‘rnatish, belgilangan og‘irliklarni yuklash, keshlarni saqlash, himoyalangan tunnelni ochish va OpenAI bilan mos keluvchi ikki xil API dialektiga xizmat ko‘rsatish.
bash scripts/up.sh buyrug‘i bilan boshlang, faol konfiguratsiyani /v1/status orqali tekshiring, chiqarilgan /v1 endpointi orqali ulaning va ishni har doim bash scripts/down.sh bilan yakunlang. Ishlab chiqarish muhitiga o‘xshash tajribalar uchun ketma-ket qayta ishlanadigan so‘rovlar, hali amalga oshirilmagan sampling boshqaruvlari, kesh xotirasi xarajatlari, vision uchun VRAM yuklamasining ixtiyoriyligi hamda bo‘sh keshdan davom ettirish bilan haqiqiy faol sessiya sig‘imi o‘rtasidagi farqqa alohida e’tibor bering.
