Asosiy kontentga o‘tish
AI qo‘llanmalari

Splash yordamida Apple Silicon’da mahalliy AI modellarini tez ishga tushiring

Qo‘llab-quvvatlanadigan Mac’ga Splash’ni o‘rnatish, model serverini ishga tushirish, uning OpenAI bilan mos API’siga murojaat qilish, kodlash agentlarini ulash, xotira va kontekst cheklovlarini boshqarish, autentifikatsiyani yoqish hamda ilg‘or mahalliy inferens ish jarayonlarini optimallashtirishni o‘rganing.

Splash yordamida Apple Silicon’da mahalliy AI modellarini tez ishga tushiring

Splash nima?

Splash Apple silicon uchun maxsus ishlab chiqilgan mahalliy inferens dvigatelidir. U OpenAI yoki Anthropic API'larini qo‘llab-quvvatlaydigan kodlash agentlari va ilovalariga optimallashtirilgan til modellarini taqdim etadi. Server bitta Mac kompyuterida mahalliy ishlaydi va API'ni 127.0.0.1:8000 manzilida ochadi.

Umumiy maqsadli inferens dvigatelidan farqli ravishda, Splash har bir qo‘llab-quvvatlanadigan model uchun yadrolarini, spekulyativ dekodlash draft modelini, og‘irliklar joylashuvini va xotira rejasini maxsus optimallashtiradi. Model paketlari ishga tayyor holda keladi, shuning uchun Xcode, kompilyator vositalari yoki modelga xos sozlash talab qilinmaydi.

Asosiy imkoniyatlar

  • Mahalliy Apple silicon inferensi: Splash modellarni bevosita qo‘llab-quvvatlanadigan Mac kompyuterida ishga tushiradi.
  • OpenAI bilan moslik: U /v1/chat/completions manzilida Chat Completions va /v1/responses manzilida Responses API'larini taqdim etadi.
  • Anthropic bilan moslik: Anthropic Messages so‘rovlari /v1/messages manzilida mavjud.
  • Kengaytirilgan so‘rovlarni qo‘llab-quvvatlash: API'lar oqimli uzatish, vosita chaqiruvlari, JSON Schema chiqishi, rasmlar va so‘rov ichidagi PDF fayllarni qo‘llab-quvvatlaydi.
  • Kodlash agentlari bilan integratsiya: Splash OpenCode, Claude, Codex va Hermes uchun buyruqlarni o‘z ichiga oladi.
  • Modelga xos tezlashtirish: Har bir model paketi spekulyativ dekodlash uchun DFlash 2 draft modeli hamda modelning aniq o‘lchamlariga moslab oldindan kompilyatsiya qilingan Metal yadrolarini o‘z ichiga oladi.
  • Avtomatik xotira rejalashtirish: Splash ishga tushganda Metal uchun mavjud xotiraga asoslanib kontekst, KV-kesh sig‘imi va paket limitlarini hisoblaydi.
  • Promptni tekshirish: /tokenize va /apply-template endpointlari inferensni ishga tushirmasdan token ID'lari yoki tayyorlangan promptlarni qaytaradi.

Tizim talablari

Splash'ni o‘rnatishdan oldin tizimingiz quyidagi barcha talablarga javob berishini tekshiring:

  • Apple M3 yoki undan yangiroq protsessor
  • macOS 26.4 yoki undan keyingi versiya
  • Homebrew
  • Kamida 36 GB yagona xotira
  • 48 GB yoki undan ko‘p yagona xotira tavsiya etiladi

Foydalanish mumkin bo‘lgan kontekst sig‘imi mavjud xotiraga bog‘liq. Qo‘llab-quvvatlanadigan modellar native kontekst oynasi 256K gacha bo‘lsa-da, to‘liq oyna har bir Mac kompyuteriga sig‘masligi mumkin.

Splash'ni o‘rnatish

Paketlangan versiyani Inco Homebrew tap'i orqali o‘rnating:

brew install incoai/tap/splash

Yaratish kerak bo‘lgan konfiguratsiya fayli mavjud emas. Splash ixtiyoriy sozlamalar uchun buyruq qatori flaglari va muhit o‘zgaruvchilaridan foydalanadi.

Model serverini ishga tushirish

Optimallashtirilgan Qwen3.8-27B paketini quyidagi buyruq bilan taqdim eting:

splash serve --model incoai/Qwen3.8-27B-Splash

Birinchi ishga tushirishda Splash model paketini yuklab oladi va tekshiradi, mavjud xotirani tekshiradi, xotira rejasini yaratadi hamda serverni 127.0.0.1:8000 manzilida ishga tushiradi. Qwen3.8-27B paketi 17.4 GB hajmda yuklanadi va 4-bitli asosiy model hamda uning DFlash 2 draft modelini o‘z ichiga oladi.

Terminalda Ready yozuvi chiqmaguncha kuting. Modeldan foydalanayotganingizda shu terminalni ochiq qoldiring. Shundan so‘ng chat sahifasiga kirish uchun brauzerda http://127.0.0.1:8000 manzilini ochishingiz mumkin.

Splash'ni to‘xtatmoqchi bo‘lganingizda server terminalida Ctrl+C tugmalarini bosing.

Muqobil modeldan foydalanish

Splash 4-bitli Qwen3.6-35B-A3B modeli va uning DFlash 2 draft modelini o‘z ichiga olgan 20.9 GB hajmdagi paketni ham taqdim etadi:

splash serve --model incoai/Qwen3.6-35B-A3B-Splash

--model opsiyasi yaroqli Splash paketini o‘z ichiga olgan boshqa owner/repo repozitoriyasiga yo‘naltirilishi mumkin. Oddiy MLX va Transformers checkpoint'lari mos kelmaydi. Shaxsiy Hugging Face repozitoriyasi uchun mos HF_TOKEN qiymatini taqdim eting.

Kodlash agentini ulash

Server tayyorligi haqida xabar bergach, boshqa terminalni oching va qo‘llab-quvvatlanadigan o‘rnatilgan kodlash agentlaridan birini ishga tushiring:

splash opencode
splash claude
splash codex
splash hermes

Faqat foydalanmoqchi bo‘lgan agentingiz buyrug‘ini ishga tushiring. Agent so‘rov yuborayotgan paytda dastlabki server jarayoni faol qolishi kerak.

OpenAI Chat Completions API'ni chaqirish

Ilovalar Splash'ni OpenAI bilan mos mahalliy server sifatida chaqirishi mumkin. Quyidagi so‘rov taqdim etilayotgan modeldan bir jumlalik tushuntirish so‘raydi:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "incoai/Qwen3.8-27B-Splash",
    "messages": [
      {
        "role": "user",
        "content": "Explain speculative decoding in one sentence."
      }
    ]
  }'

model xossasi ixtiyoriy. Agar uni qo‘shsangiz, qiymati ayni paytda taqdim etilayotgan paket nomiga mos kelishi kerak.

Tegishli API endpointini tanlash

  • OpenAI Chat Completions mijozlari uchun /v1/chat/completions dan foydalaning.
  • OpenAI Responses mijozlari uchun /v1/responses dan foydalaning.
  • Anthropic Messages mijozlari uchun /v1/messages dan foydalaning.
  • Modelni ishga tushirmasdan token ID'larini olish uchun /tokenize dan foydalaning.
  • Inferensni ishga tushirmasdan tayyorlangan promptni tekshirish uchun /apply-template dan foydalaning.

Mulohaza yuritishni boshqarish

Mulohaza yuritish sukut bo‘yicha yoqilgan. Uni o‘chirish uchun so‘rov tanasiga "reasoning_effort": "none" ni qo‘shing. Qwen3.8-27B modeli low, medium va xhigh qiymatlarini ham qabul qiladi.

{
  "model": "incoai/Qwen3.8-27B-Splash",
  "reasoning_effort": "none",
  "messages": [
    {
      "role": "user",
      "content": "Summarize speculative decoding."
    }
  ]
}

Mulohaza yuritishni o‘chirish vazifa kengaytirilgan mulohaza jarayonini talab qilmaganda foydali bo‘lishi mumkin. Mulohaza yuritishdan foydalanish foydali bo‘lgan Qwen3.8-27B vazifalari uchun ish yuklamasiga mos qo‘llab-quvvatlanadigan harakat darajasini tanlang.

Xotira va kontekst cheklovlarini sozlash

Splash mos standart qiymatlarni avtomatik aniqlaydi, ammo splash serve bu jarayonni aniqroq boshqarish uchun ixtiyoriy bayroqlarni taqdim etadi:

  • --max-memory 28G Metal ajratmalarining yuqori chegarasini belgilaydi.
  • --max-context 100K kontekst oynasini modelning 256K hajmdagi mahalliy chegarasigacha cheklaydi.
  • --max-image-pixels har bir rasm uchun o‘lchami o‘zgartirilgandan keyingi maksimal piksel sonini boshqaradi. Standart qiymati 4,194,304.
  • --allowed-host qo‘shimcha HTTP Host nomiga, masalan, proksi ishlatadigan nomga ruxsat beradi. Bu parametrni takrorlash mumkin.
  • --no-webui brauzerdagi chat sahifasini o‘chiradi.

Masalan, quyidagi buyruq Metal ajratmalarini 28 GB bilan cheklaydi va kontekstni 100K gacha qisqartiradi:

splash serve \
  --model incoai/Qwen3.8-27B-Splash \
  --max-memory 28G \
  --max-context 100K

Agar model mavjud xotiraga sig‘masa, Splash xotira budjeti taqsimotini chiqaradi va ishlamaydigan serverni ishga tushirish o‘rniga to‘xtaydi. Kontekst yoki xotira talablarini kamaytirish yordam berishi mumkin, ammo model og‘irliklari va ish vaqtida zarur bo‘ladigan holat baribir xotiraga sig‘ishi kerak.

Mahalliy API’ni himoyalash

Autentifikatsiya sukut bo‘yicha o‘chirilgan. Serverni ishga tushiradigan shell’da SPLASH_API_KEY ni belgilash orqali kalit talab qilishingiz mumkin:

export SPLASH_API_KEY='replace-with-your-key'
splash serve --model incoai/Qwen3.8-27B-Splash

Splash boshqaradigan kodlash agentini ishga tushirish uchun foydalaniladigan shell’da ham xuddi shu muhit o‘zgaruvchisini belgilang:

export SPLASH_API_KEY='replace-with-your-key'
splash opencode

API mijozlari kalitni bearer token sifatida yoki x-api-key sarlavhasi orqali yuborishi mumkin. Kalitni serverning --api-key parametri bilan bevosita taqdim etish ham mumkin. Health va readiness tekshiruvlari ochiq qoladi.

Ilg‘or maslahatlar

Model keshini hisobga oling

Yuklab olingan paketlar Hugging Face keshida saqlanadi. brew upgrade splash bu paketlar, model havolalari va agent seanslarini saqlab qoladi, shuning uchun dvigatelni yangilash ularni o‘chirib tashlashni talab qilmaydi.

Proksi bilan hostlar ro‘yxatini cheklang

Server mahalliy ravishda 127.0.0.1:8000 manziliga ulanadi. Agar mahalliy proksi boshqa HTTP Host qiymatini yuborsa, ushbu host nomini --allowed-host bilan qo‘shing. Bir nechta host nomiga ruxsat berish kerak bo‘lsa, bayroqni takrorlang.

Faqat API uchun foydalanilganda veb-interfeysni o‘chiring

Agar Splash faqat ilovalar yoki agentlarga xizmat ko‘rsatsa, uni --no-webui bilan ishga tushiring. Bu chat sahifasini o‘chiradi, biroq qo‘llab-quvvatlanadigan API endpointlarini faol qoldiradi.

Inferensiyadan oldin promptlarni tekshiring

Token identifikatorlari kerak bo‘lsa /tokenize dan, yakuniy ko‘rsatilgan promptni tekshirish kerak bo‘lsa /apply-template dan foydalaning. Bu endpointlar modelni ishga tushirmagani uchun kontekst hajmi va prompt formatini tuzatishda foydalidir.

SSD keshiga yuklashni sinab ko‘ring

3-pull request dagi eksperimental amalga oshirish KV-kesh va GDN holatlarini SSD’ga yuklashi mumkin. Bu branch’ni yig‘ing va funksiyani yoqish uchun serverni --max-cache-disk 8G bilan ishga tushiring. Bu RAM cheklanganida qayta foydalanish mumkin bo‘lgan prefikslarni saqlab qolishi va takroriy prefill ishlarini kamaytirishi mumkin.

SSD’ga yuklash funksiyasi eksperimental bo‘lib, quick start’da tavsiflangan standart paketlangan ish jarayonining bir qismi emas.

Splash unumdorligini tushunish

Splash inferensiya stekining katta qismini har bir model uchun maxsus optimallashtirish orqali tezlikka erishadi. Spekulyativ dekodlash ixtiyoriy rejim emas, balki standart dekodlash yo‘lidir. Modelga xos DFlash 2 draft token bloklarini taklif qiladi, maqsad model esa ularni parallel ravishda tekshiradi.

Uning birlashtirilgan Metal yadrolari modelning aniq shakllari uchun kompilyatsiya qilinadi va qo‘shimcha nusxalashsiz diskdan aks ettirilgan, maxsus qadoqlangan og‘irliklarni o‘qiydi. Ishga tushirish vaqtida Splash joriy kompyuter uchun kontekst, kesh va batch cheklovlarini ham hisoblab chiqadi.

16 yadroli GPU va 48 GB xotiraga ega M5 Pro’da loyiha o‘lchovlariga ko‘ra, Qwen3.8-27B qisqa promptlarni dekodlashda soniyasiga 74 token tezlikka erishgan va keshlangan 32K kontekstni qayta ishlaganda birinchi tokenini 282 ms’da qaytargan. Natijalar model, prompt, parallellik, qurilma va xotira sharoitlariga bog‘liq. Splash ishga tushirilishi haqidagi maqola benchmark usuli va taqqoslashlarni batafsil yoritadi.

Xulosa

Splash so‘nggi Apple silicon qurilmalarida tanlangan, yuqori darajada optimallashtirilgan modellarni ishga tushirishning soddalashtirilgan usulini taqdim etadi. Uni Homebrew orqali o‘rnating, mos Splash model paketini ishga tushiring, so‘ng brauzer, qo‘llab-quvvatlanadigan kodlash agenti yoki OpenAI- va Anthropic-mos API orqali ulang. Avtomatik standart qiymatlar dastlabki sozlashni osonlashtiradi, xotira, kontekst, xavfsizlik, host va interfeys parametrlari esa boshqariladiganroq joylashtirishlarni qo‘llab-quvvatlaydi.