
স্প্ল্যাশ কী?
স্প্ল্যাশ হলো Apple silicon-এর জন্য বিশেষভাবে তৈরি একটি স্থানীয় ইনফারেন্স ইঞ্জিন। এটি কোডিং এজেন্ট এবং OpenAI বা Anthropic API সমর্থনকারী অ্যাপ্লিকেশনের জন্য অপ্টিমাইজ করা ভাষা মডেল পরিবেশন করে। সার্ভারটি একটি Mac-এ স্থানীয়ভাবে চলে এবং 127.0.0.1:8000-এ তার API উন্মুক্ত করে।
সাধারণ উদ্দেশ্যের ইনফারেন্স ইঞ্জিনের বিপরীতে, স্প্ল্যাশ প্রতিটি সমর্থিত মডেলের জন্য কার্নেল, speculative-decoding draft model, weight layout এবং memory plan বিশেষভাবে অপ্টিমাইজ করে। মডেল প্যাকেজগুলো সরাসরি চালানোর জন্য প্রস্তুত থাকে, তাই আপনার Xcode, compiler toolchain বা মডেল-নির্দিষ্ট tuning-এর প্রয়োজন নেই।
প্রধান বৈশিষ্ট্য
- স্থানীয় Apple silicon ইনফারেন্স: স্প্ল্যাশ সরাসরি একটি সমর্থিত Mac-এ মডেল চালায়।
- OpenAI সামঞ্জস্য: এটি
/v1/chat/completions-এ Chat Completions এবং/v1/responses-এ Responses প্রদান করে। - Anthropic সামঞ্জস্য: Anthropic Messages অনুরোধ
/v1/messages-এ উপলভ্য। - উন্নত অনুরোধ সমর্থন: API-গুলো streaming, tool calls, JSON Schema output, images এবং inline PDFs সমর্থন করে।
- কোডিং-এজেন্ট ইন্টিগ্রেশন: স্প্ল্যাশে OpenCode, Claude, Codex এবং Hermes-এর জন্য কমান্ড রয়েছে।
- মডেল-নির্দিষ্ট ত্বরণ: প্রতিটি মডেল প্যাকেজে speculative decoding-এর জন্য একটি DFlash 2 draft এবং মডেলটির নির্দিষ্ট dimension অনুযায়ী টিউন করা precompiled Metal kernel রয়েছে।
- স্বয়ংক্রিয় মেমরি পরিকল্পনা: Metal-এর জন্য উপলভ্য মেমরির ভিত্তিতে স্প্ল্যাশ স্টার্টআপের সময় context, KV-cache capacity এবং batch limit নির্ধারণ করে।
- প্রম্পট পরিদর্শন:
/tokenizeএবং/apply-templateendpoint ইনফারেন্স চালানো ছাড়াই token ID অথবা rendered prompt ফেরত দেয়।
সিস্টেমের প্রয়োজনীয়তা
স্প্ল্যাশ ইনস্টল করার আগে নিশ্চিত করুন যে আপনার সিস্টেমে নিচের সবগুলো প্রয়োজনীয়তা পূরণ হয়েছে:
- Apple M3 বা পরবর্তী প্রসেসর
- macOS 26.4 বা পরবর্তী সংস্করণ
- Homebrew
- কমপক্ষে 36 GB unified memory
- 48 GB বা তার বেশি unified memory প্রস্তাবিত
ব্যবহারযোগ্য context capacity উপলভ্য মেমরির ওপর নির্ভর করে। সমর্থিত মডেলগুলোর native context window 256K পর্যন্ত হলেও, প্রতিটি Mac-এ সম্পূর্ণ window ধারণ নাও করতে পারে।
স্প্ল্যাশ ইনস্টল করুন
Inco Homebrew tap-এর মাধ্যমে packaged release ইনস্টল করুন:
brew install incoai/tap/splash
কোনো configuration file তৈরি করার প্রয়োজন নেই। ঐচ্ছিক সেটিংসের জন্য স্প্ল্যাশ command-line flag এবং environment variable ব্যবহার করে।
একটি মডেল সার্ভার চালু করুন
নিচের কমান্ড দিয়ে অপ্টিমাইজ করা Qwen3.8-27B প্যাকেজ পরিবেশন করুন:
splash serve --model incoai/Qwen3.8-27B-Splash
প্রথমবার চালানোর সময় স্প্ল্যাশ মডেল প্যাকেজ ডাউনলোড ও যাচাই করে, উপলভ্য মেমরি পরীক্ষা করে, একটি memory plan তৈরি করে এবং 127.0.0.1:8000-এ সার্ভার চালু করে। Qwen3.8-27B প্যাকেজটি 17.4 GB-এর ডাউনলোড এবং এতে 4-bit target model ও তার DFlash 2 draft রয়েছে।
টার্মিনালে Ready লেখা না আসা পর্যন্ত অপেক্ষা করুন। মডেল ব্যবহার করার সময় ওই টার্মিনালটি খোলা রাখুন। এরপর ব্রাউজারে http://127.0.0.1:8000 খুলে chat page ব্যবহার করতে পারবেন।
স্প্ল্যাশ বন্ধ করতে সার্ভার টার্মিনালে Ctrl+C চাপুন।
বিকল্প মডেল ব্যবহার করুন
স্প্ল্যাশ 4-bit Qwen3.6-35B-A3B model এবং তার DFlash 2 draft-সহ 20.9 GB-এর একটি প্যাকেজও প্রকাশ করে:
splash serve --model incoai/Qwen3.6-35B-A3B-Splash
--model option-এ বৈধ Splash package থাকা অন্য কোনো owner/repo repository উল্লেখ করা যায়। সাধারণ MLX এবং Transformers checkpoint সামঞ্জস্যপূর্ণ নয়। কোনো private Hugging Face repository-এর জন্য উপযুক্ত HF_TOKEN দিন।
একটি কোডিং এজেন্ট সংযুক্ত করুন
সার্ভার প্রস্তুত হওয়ার বার্তা দেওয়ার পর অন্য একটি টার্মিনাল খুলে সমর্থিত ইনস্টল করা কোডিং এজেন্টগুলোর একটি চালু করুন:
splash opencode
splash claude
splash codex
splash hermes
আপনি যে এজেন্টটি ব্যবহার করতে চান, শুধু তার কমান্ডটি চালান। এজেন্ট অনুরোধ পাঠানোর সময় মূল সার্ভার প্রক্রিয়াটি সক্রিয় থাকতে হবে।
OpenAI Chat Completions API কল করুন
অ্যাপ্লিকেশনগুলো OpenAI-compatible local server হিসেবে স্প্ল্যাশে কল করতে পারে। নিচের অনুরোধটি পরিবেশিত মডেলকে এক বাক্যে ব্যাখ্যা দিতে বলে:
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": "এক বাক্যে speculative decoding ব্যাখ্যা করুন।"
}
]
}'
model property ঐচ্ছিক। এটি অন্তর্ভুক্ত করলে এর মান বর্তমানে পরিবেশিত প্যাকেজের সঙ্গে মিলতে হবে।
উপযুক্ত API endpoint বেছে নিন
- OpenAI Chat Completions client-এর জন্য
/v1/chat/completionsব্যবহার করুন। - OpenAI Responses client-এর জন্য
/v1/responsesব্যবহার করুন। - Anthropic Messages client-এর জন্য
/v1/messagesব্যবহার করুন। - মডেল না চালিয়ে token ID পেতে
/tokenizeব্যবহার করুন। - ইনফারেন্স না চালিয়ে rendered prompt পরিদর্শন করতে
/apply-templateব্যবহার করুন।
Reasoning নিয়ন্ত্রণ করুন
ডিফল্টভাবে reasoning সক্রিয় থাকে। এটি নিষ্ক্রিয় করতে request body-তে "reasoning_effort": "none" যোগ করুন। Qwen3.8-27B low, medium এবং xhigh-ও গ্রহণ করে।
{
"model": "incoai/Qwen3.8-27B-Splash",
"reasoning_effort": "none",
"messages": [
{
"role": "user",
"content": "Speculative decoding-এর সারসংক্ষেপ দিন।"
}
]
}
যখন কোনো কাজের জন্য দীর্ঘ যুক্তিপ্রক্রিয়ার প্রয়োজন হয় না, তখন reasoning নিষ্ক্রিয় করা কার্যকর হতে পারে। Qwen3.8-27B-এর যেসব কাজে reasoning উপকারী, সেসবের জন্য workload অনুযায়ী একটি সমর্থিত effort level নির্বাচন করুন।
মেমরি ও কনটেক্সট সীমা কনফিগার করুন
Splash স্বয়ংক্রিয়ভাবে উপযুক্ত ডিফল্ট নির্ধারণ করে, তবে splash serve-এ আরও সূক্ষ্ম নিয়ন্ত্রণের জন্য ঐচ্ছিক ফ্ল্যাগ রয়েছে:
--max-memory 28GMetal allocation-এর সর্বোচ্চ সীমা নির্ধারণ করে।--max-context 100Kকনটেক্সট উইন্ডোর সীমা নির্ধারণ করে; মডেলের native 256K সীমার বেশি নয়।--max-image-pixelsপ্রতিটি ছবির জন্য resize করা pixel-এর সর্বোচ্চ সংখ্যা নিয়ন্ত্রণ করে। ডিফল্ট মান 4,194,304।--allowed-hostঅতিরিক্ত একটি HTTPHostনাম অনুমোদন করে, যেমন কোনো proxy ব্যবহৃত নাম। এই option একাধিকবার দেওয়া যায়।--no-webuiব্রাউজার chat page নিষ্ক্রিয় করে।
উদাহরণস্বরূপ, নিচের command-টি Metal allocation 28 GB-এ সীমাবদ্ধ করে এবং কনটেক্সট 100K রাখে:
splash serve \
--model incoai/Qwen3.8-27B-Splash \
--max-memory 28G \
--max-context 100K
কোনো মডেল উপলভ্য মেমরিতে না ধরলে Splash memory-budget-এর বিস্তারিত হিসাব দেখিয়ে বন্ধ হয়ে যায়, অকার্যকর server চালু করে না। কনটেক্সট বা মেমরির চাহিদা কমালে সাহায্য হতে পারে, তবে মডেলের weights এবং প্রয়োজনীয় runtime state-ও মেমরিতে ধরতে হবে।
লোকাল API সুরক্ষিত করুন
ডিফল্টভাবে authentication নিষ্ক্রিয় থাকে। server চালু করা shell-এ SPLASH_API_KEY সেট করে একটি key বাধ্যতামূলক করতে পারেন:
export SPLASH_API_KEY='replace-with-your-key'
splash serve --model incoai/Qwen3.8-27B-Splash
Splash-managed coding agent চালু করতে ব্যবহৃত shell-এও একই environment variable সেট করুন:
export SPLASH_API_KEY='replace-with-your-key'
splash opencode
API client-গুলো bearer token হিসেবে অথবা x-api-key header-এর মাধ্যমে key পাঠাতে পারে। server-এর --api-key option ব্যবহার করেও সরাসরি key দেওয়া যায়। Health এবং readiness probe-গুলো public-ই থাকে।
উন্নত টিপস
মডেল cache অনুযায়ী পরিকল্পনা করুন
ডাউনলোড করা package-গুলো Hugging Face cache-এ সংরক্ষিত হয়। brew upgrade splash চালালে এই package, model link এবং agent session-গুলো অক্ষত থাকে, তাই engine upgrade করার জন্য সেগুলো মুছে ফেলতে হয় না।
Proxy-এর সঙ্গে host allowlisting ব্যবহার করুন
Server স্থানীয়ভাবে 127.0.0.1:8000-এ bind করে। কোনো local proxy ভিন্ন HTTP Host value পাঠালে --allowed-host দিয়ে সেই hostname যোগ করুন। একাধিক hostname গ্রহণ করতে হলে flag-টি একাধিকবার দিন।
শুধু API ব্যবহারের জন্য Web interface নিষ্ক্রিয় করুন
Splash যদি শুধু application বা agent পরিবেশন করে, তাহলে এটি --no-webui দিয়ে চালু করুন। এতে chat page বন্ধ হবে, তবে সমর্থিত API endpoint-গুলো চালু থাকবে।
Inference-এর আগে prompt পরীক্ষা করুন
Token ID প্রয়োজন হলে /tokenize ব্যবহার করুন, আর চূড়ান্ত rendered prompt দেখতে হলে /apply-template ব্যবহার করুন। এই endpoint-গুলো model চালায় না, তাই context size এবং prompt formatting debugging-এর জন্য এগুলো কার্যকর।
SSD cache offloading নিয়ে পরীক্ষা করুন
pull request 3-এর experimental implementation KV-cache এবং GDN state SSD-তে offload করতে পারে। এটি সক্রিয় করতে সেই branch build করুন এবং --max-cache-disk 8G দিয়ে server চালু করুন। RAM সীমিত থাকলে এটি পুনর্ব্যবহারযোগ্য prefix ধরে রাখতে এবং বারবার prefill-এর কাজ কমাতে পারে।
SSD offloading feature-টি experimental এবং quick start-এ বর্ণিত standard packaged workflow-এর অংশ নয়।
Splash-এর কর্মক্ষমতা বোঝা
Splash প্রতিটি model-এর জন্য inference stack-এর অধিকাংশ অংশ বিশেষভাবে optimize করে গতি বাড়ায়। Speculative decoding ঐচ্ছিক mode নয়, এটিই standard decode path। Model-specific DFlash 2 একটি draft হিসেবে token block প্রস্তাব করে, আর target model সেগুলো parallelভাবে যাচাই করে।
এর fused Metal kernel-গুলো model-এর সঠিক shape-এর জন্য compile করা হয় এবং অতিরিক্ত copy ছাড়াই disk থেকে mapped বিশেষভাবে packed weight পড়ে। Startup-এর সময় Splash বর্তমান machine-এর জন্য context, cache এবং batch limit-ও হিসাব করে।
প্রকল্পের পরিমাপ অনুযায়ী, 16-core GPU এবং 48 GB memory-সহ M5 Pro-তে Qwen3.8-27B সংক্ষিপ্ত prompt decoding-এ প্রতি সেকেন্ডে 74 token-এ পৌঁছেছে এবং cached 32K context replay করার সময় প্রথম token 282 ms-এ ফিরিয়েছে। ফলাফল model, prompt, concurrency, hardware এবং memory condition-এর ওপর নির্ভর করে। Splash launch post-এ benchmark পদ্ধতি ও তুলনা নথিভুক্ত করা হয়েছে।
উপসংহার
সাম্প্রতিক Apple silicon-এ নির্বাচিত, অত্যন্ত optimized model চালানোর জন্য Splash একটি streamlined উপায় দেয়। Homebrew দিয়ে এটি install করুন, একটি compatible Splash model package চালু করুন, তারপর browser, সমর্থিত coding agent অথবা OpenAI- বা Anthropic-compatible API-এর মাধ্যমে সংযোগ করুন। Automatic default প্রাথমিক setup সহজ করে, আর memory, context, security, host এবং interface option-গুলো আরও নিয়ন্ত্রিত deployment সমর্থন করে।
