coding agent-এর সঙ্গে Ollama কীভাবে ব্যবহার করবেন
Ollama-কে coding agent-এ যুক্ত করতে base URL বদলান, API key-তে dummy string দিন। context length-এর ভুলে কীভাবে সবকিছু ভাঙে এবং local model কোন কাজে জেতে তা জানুন।
আপনি যা সংযোগ করছেন
আপনি আপনার কোডিং এজেন্টের সাথে Ollama ব্যবহার করতে পারেন এবং এই সংযোগ প্রক্রিয়াটি যতটা ভাবা হয় তার চেয়ে অনেক সহজ। আপনাকে কেবল একটি base URL পরিবর্তন করতে হবে এবং একটি model name নির্বাচন করতে হবে। API key ফিল্ডে একটি মান প্রদান করতে হয়, তবে লোকাল সার্ভার এটি উপেক্ষা করে, তাই যেকোনো স্ট্রিং ব্যবহার করলেই চলবে।
Ollama 11434 পোর্টে লিসেন করে এবং একই সাথে তিনটি API সারফেস প্রদান করে। /api হলো Ollama-এর নিজস্ব নেটিভ API। /v1 হলো OpenAI-এর সাথে সামঞ্জস্যপূর্ণ লেয়ার, যা নিজেই বেশ কয়েকটি ফরম্যাট কভার করে: /v1/chat/completions, /v1/responses, /v1/completions, /v1/models এবং /v1/embeddings। Ollama-এর ডকুমেন্টেশনে বলা হয়েছে যে সেখানে key প্রয়োজন, কিন্তু তা উপেক্ষা করা হয়। তৃতীয় সারফেসটি হলো Anthropic-এর সাথে সামঞ্জস্যপূর্ণ: ক্লায়েন্ট http://localhost:11434-কে base URL হিসেবে গ্রহণ করে এবং এর সাথে /v1/messages যুক্ত করে, যা Claude Code ব্যবহার করে। অধিকাংশ এজেন্ট /v1/chat/completions ব্যবহার করে, Codex ব্যবহার করে /v1/responses এবং Claude Code ব্যবহার করে /v1/messages। আপনার এজেন্ট ইতিমধ্যে এগুলোর একটির সাথে কাজ করতে সক্ষম, তাই এটি সম্পর্কে অন্য কিছু পরিবর্তন করার প্রয়োজন নেই।
এই অংশটি সম্পন্ন করতে পাঁচ মিনিট সময় লাগে। ফলাফলটি ব্যবহারযোগ্য হবে কি না তা নির্ভর করে দুটি সেটিংসের ওপর যা সাধারণত কেউ পরিবর্তন করে না: context length এবং keep-alive, এবং মডেলটিকে তার উপযোগী কাজ দেওয়ার ওপর। উভয় বিষয় নিয়ে আলাদা আলাদা সেকশন রয়েছে এবং এর বাস্তব সীমাবদ্ধতাগুলো শেষে উল্লেখ করা হয়েছে।
কোন coding agent একটি local base URL গ্রহণ করে
পরীক্ষাটি একটি প্রশ্নের: tool-টি কি base URL সেট করার সুবিধা দেয়? দিলে এটি আপনার server-এর সঙ্গে কথা বলতে পারবে।
Ollama Claude Code, OpenCode, Codex, Cline, Roo Code, Zed, JetBrains IDEs এবং VS Code-এর জন্য integration page প্রকাশ করে। Aider-এর Ollama support আলাদাভাবে নথিভুক্ত করা আছে। October 2026-এ coding agent বলতে সাধারণত যা বোঝানো হয়, তার বেশিরভাগই এতে অন্তর্ভুক্ত। এগুলো সবাই একই API shape ব্যবহার করে না, এবং setup ব্যর্থ হওয়ার কারণ প্রায়ই এই পার্থক্য।
- অধিকাংশ agent OpenAI-compatible endpoint চায়। তাদের base URL হিসেবে
http://localhost:11434/v1এবং যেকোনো non-empty API key string দিন। - Claude Code OpenAI base URL গ্রহণ করে না। এটি Anthropic Messages API ব্যবহার করে। তাই
ANTHROPIC_BASE_URL-এhttp://localhost:11434সেট করতে হবে, যেখানে Ollama/v1/messagesserve করে। - Codex OpenAI Responses API ব্যবহার করে। Ollama
/v1/responses-ও serve করে; এই সুবিধা version 0.13.3-এ যোগ হয়েছে। - কোনো agent-এ base URL সেট করার সুবিধা না থাকলে সেটিকে redirect করা যায় না, কারণ endpoint client-এর মধ্যেই নির্ধারিত থাকে। Agent custom URL গ্রহণ করলেও যদি ভিন্ন API shape প্রয়োজন হয়, তাহলে সামনে একটি translation layer ব্যবহার করুন। উদাহরণ হিসেবে self-hosted LiteLLM gateway ব্যবহার করে client যে shape দাবি করে, সেই shape-এ আপনার model পুনরায় expose করতে পারেন।
Ollama আপনার জন্য এই config লিখে দিতে পারে। ollama launch opencode আপনার নির্বাচিত model-এর জন্য inline config ব্যবহার করে OpenCode চালু করে, ollama launch claude Claude Code-এর জন্য একই কাজ করে, এবং ollama launch droid --config tool চালু না করে config লিখে দেয়।
Ollama ইনস্টল করুন এবং টুল কল করতে সক্ষম এমন একটি মডেল পুল করুন
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama --no-pager
ollama pull qwen3-coder:30b
ollama lsইনস্টলারটি একটি systemd unit যোগ করে এবং এটি চালু করে, তাই systemctl status ollama কমান্ডটি active (running) আউটপুট দেওয়া উচিত। যদি তা না হয়, তবে journalctl -e -u ollama কমান্ডটি ব্যর্থতার কারণ প্রদর্শন করবে।
মডেলটিকে অবশ্যই টুল কলিং সমর্থন করতে হবে, কারণ টুল কলিংয়ের মাধ্যমেই একটি এজেন্ট কাজ করে। এটি একটি ফাইল পড়ে, একটি প্যাচ লেখে, টেস্ট চালায়, তারপর ব্যর্থতার কারণ পড়ে এবং পুনরায় চেষ্টা করে। যে মডেল টুল কল তৈরি করতে পারে না, সেটি সম্পাদনার কাজ করার পরিবর্তে তা গদ্যে বর্ণনা করবে এবং এজেন্টটি লুপে পড়ে যাবে বা থেমে যাবে। ollama.com-এ মডেলের পৃষ্ঠায় tools লেবেলটি আছে কি না তা পুল করার আগে দেখে নিন। qwen3-coder:30b মডেলটিতে এই সুবিধা আছে এবং অক্টোবর 2026 অনুযায়ী এই ট্যাগটি 19 GB ডাউনলোডের এবং এতে 256K কনটেক্সট উইন্ডো রয়েছে। যদি আপনার সার্ভারটি শুধুমাত্র CPU-ভিত্তিক হয় বা RAM কম থাকে, তবে VPS-এ Qwen 27B ট্যাগের জন্য মেমরি ক্যালকুলেশন দেখে নিন যে 8 থেকে 64 GB RAM-এর মধ্যে কোনটি আপনার জন্য উপযুক্ত। একবার পুল করলে, এই গিগাবাইটগুলো সার্ভারের রুট ডিস্কে জমা হয়, যা সাধারণত VPS-এর সবচেয়ে কম জায়গা থাকা অংশ। তাই Ollama কোথায় মডেল ফাইল রাখে এবং কীভাবে সেগুলোকে অন্য জায়গায় সরানো যায় তা ডিস্ক পূর্ণ হওয়ার আগেই পড়ে নেওয়া ভালো।
এখন নিশ্চিত করুন সার্ভারটি আসলে কোন নামগুলো পরিবেশন করছে:
curl http://localhost:11434/v1/modelsসেই রেসপন্সে থাকা স্ট্রিংগুলোই আপনার এজেন্ট কনফিগারেশনে হুবহু থাকতে হবে। এটি আগেভাগে যাচাই করে নিলে 'model-not-found' সংক্রান্ত বেশিরভাগ ত্রুটি এড়ানো যায়। যদি Ollama এখনো ইনস্টল করা না থাকে, তবে বিস্তারিত নির্দেশিকা VPS-এ Ollama দিয়ে LLM সেলফ-হোস্টিং-এ পাওয়া যাবে।
Ollama-এর দিকে OpenCode নির্দেশ করুন
~/.config/opencode/opencode.json সম্পাদনা করুন:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3-coder:30b": {
"name": "qwen3-coder 30b"
}
}
}
}
}models-এর অধীনের key হলো Ollama-তে পাঠানো model name। তাই এটি ollama ls-এর সঙ্গে হুবহু মিলতে হবে। name field-টি শুধু model picker-এ প্রদর্শিত label। opencode চালু করুন, Ollama provider-এ switch করুন, এবং journalctl -e -u ollama monitor করে নিশ্চিত করুন যে request অন্য কোথাও নয়, আপনার server-এ পৌঁছেছে। Agent নিজে সেট আপ করার নির্দেশনা VPS-এ OpenCode চালানো-এ রয়েছে।
Claude Code-কে Ollama-এর সঙ্গে সংযুক্ত করুন
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3-coder:30bANTHROPIC_API_KEY ইচ্ছাকৃতভাবে একটি খালি string হিসেবে সেট করা হয়েছে। Base URL অনুরোধগুলো কোথায় যাবে তা নিয়ন্ত্রণ করে; key খালি রাখলে এই local setup-এ hosted credential ব্যবহার হয় না। ollama launch claude আপনার হয়ে এগুলো সেট করে দেয়।
Compatibility layer-এ কী কী নেই তা জেনে রাখুন। এটি tool_choice বা prompt caching implement করে না। এছাড়া এতে token counting endpoint নেই। তাই আপনি যে token সংখ্যা দেখেন, সেগুলো model-এর নিজস্ব tokenizer থেকে পাওয়া আনুমানিক হিসাব। Claude Code-এর সঙ্গে একটি বড় system prompt এবং বড় tool set-ও পাঠানো হয়। তাই chat client-এর তুলনায় এর বেশি context প্রয়োজন। কী বহাল থাকে এবং কী থাকে না—এই বিস্তৃত প্রশ্নের উত্তর আপনি Claude self-host করতে পারবেন কি না অংশে দেওয়া হয়েছে।
Ollama-এর দিকে Aider নির্দেশ করুন
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen3-coder:30bAider-এর documentation-এ ollama/-এর পরিবর্তে ollama_chat/ prefix ব্যবহারের পরামর্শ দেওয়া হয়েছে। ডিফল্টভাবে, প্রতিটি request-এর জন্য প্রয়োজনীয় context-এর পাশাপাশি reply-এর জন্য Aider 8k token-এর অনুরোধ করে। এছাড়া .aider.model.settings.yml-এ প্রতিটি model-এর জন্য context window নির্দিষ্ট করে দেওয়া যায়। কোনো একটি model-এর window server-এর default window থেকে ভিন্ন হলে এটি কার্যকর:
- name: ollama_chat/qwen3-coder:30b
extra_params:
num_ctx: 65536একটি কার্যকর সেটআপ থেকেও কেন অযৌক্তিক ফল আসে
এটাই গুরুত্বপূর্ণ অংশ। Ollama দৃশ্যমান GPU-গুলোর মোট VRAM (GPU-র video memory) থেকে একটি default context length নির্ধারণ করে এবং শনাক্ত করা প্রতিটি GPU-এর জন্য OLLAMA_GPU_OVERHEAD বাদ দেয়। Implementation-এ এই threshold-গুলো ব্যবহৃত হয়:
এই চার্টের পেছনের ডেটা
[
{
"label": "Under 23 GiB aggregate VRAM",
"default_context_tokens": "4,096"
},
{
"label": "23 to under 47 GiB aggregate VRAM",
"default_context_tokens": "32,768"
},
{
"label": "47 GiB aggregate VRAM or more",
"default_context_tokens": "262,144"
}
]বেশিরভাগ VPS plan এবং সব CPU-only server প্রথম সারিতে পড়ে: 4,096 token। একাধিক ছোট GPU একসঙ্গে কাজ করে শেষ সারির 262,144 token-এর জন্য প্রয়োজনীয় 47 GiB threshold-এ পৌঁছাতে পারে।
কোনো কাজ শুরু করার আগেই একটি agent 4096 token পাঠায়। System prompt, tool definition, repository listing এবং এটি প্রথম যে file খোলে, সেগুলো ইতিমধ্যেই এর চেয়ে বড়। এরপর যা ঘটে, সেটিই পুরো সমস্যার কারণ: কোনো error দেখা যায় না। Aider-এর documentation অনুযায়ী, window-এর সীমা ছাড়িয়ে গেলে Ollama নীরবে অতিরিক্ত context বাদ দেয়। সবচেয়ে পুরোনো token-গুলো বাদ পড়ে। ফলে model এমন কোনো file সম্পর্কে আত্মবিশ্বাসের সঙ্গে উত্তর দেয় যা আর তার context-এ নেই, অথবা আপনি দুই ধাপ আগে দেওয়া কোনো instruction ভুলে যায়। Local model code লেখার ক্ষেত্রে খুব দুর্বল—এমন অধিকাংশ report-এর পেছনে এই mechanism কাজ করে। নিজে একটি সংখ্যা বেছে নেওয়াও আলাদা সিদ্ধান্ত, এবং প্রতিটি size-এ num_ctx-এর KV cache memory খরচ কত—সংখ্যাটি নির্ধারণের আগে তা পড়া উপযোগী।
Ollama-এর documentation অনুযায়ী, agent এবং coding tool-এর মতো task-এর জন্য অন্তত 64000 token নির্ধারণ করা উচিত। Server-এ এটি নির্ধারণ করুন:
sudo systemctl edit ollama.serviceOverride file-এ এই line-গুলো যোগ করুন:
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=64000"এরপর reload এবং restart করুন:
sudo systemctl daemon-reload
sudo systemctl restart ollama
ollama psRestart-এর পরে আপনার agent থেকে একটি request পাঠান। তারপর আবার ollama ps চালান, যাতে পরিদর্শনের জন্য একটি loaded model থাকে। ollama ps হলো যাচাই করার command। এটি একটি CONTEXT column দেখায়, এবং সেই সংখ্যাটিই model বাস্তবে পেয়েছে। আপনার ID এবং SIZE আলাদা হবে:
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3-coder:30b a1b2c3d4e5f6 24 GB 100% GPU 64000 4 minutes from nowAgent-এর মধ্যে নয়, server-এ setting নির্ধারণ করুন। এর দুটি কারণ আছে। OpenAI chat completions schema-তে context length-এর জন্য কোনো field নেই। তাই OpenAI-compatible client এটি চাইতে পারে না। আর setting-টি server-ভিত্তিক। ফলে যে agent-ই এই server-এর দিকে নির্দেশ করুন, সবাই একই setting পাবে। Output-এর জন্য আলাদা ceiling আছে। Context length-এর বিপরীতে এটি compatibility endpoint-এর মাধ্যমে পাঠানো যায়। তাই কোনো reply patch-এর মাঝপথে থেমে গেলে num_predict এবং এর সঙ্গে mapping হওয়া max_tokens field ব্যবহার করুন। কোনো একটি model-এর জন্য ভিন্ন window প্রয়োজন হলে, Modelfile ব্যবহার করে তার একটি copy তৈরি করুন:
FROM qwen3-coder:30b
PARAMETER num_ctx 65536ollama create qwen3-coder-64k -f ModelfileContext বিনামূল্যে নয়। দীর্ঘ window বেশি memory ব্যবহার করে। তাই PROCESSOR column পর্যবেক্ষণ করুন। 100% GPU হলো আপনি যে মানটি চান। Model-এর একটি অংশ CPU-তে চলে গেলে token rate এত কমে যায় যে agent loop ব্যবহার অনুপযোগী হয়ে পড়ে। আপনার server-এর প্রকৃত সীমা নির্ধারণের উপায় হলো local LLM-এ প্রতি সেকেন্ডে token পরিমাপ করা। Server কেনার আগে machine-এর capacity নির্ধারণের বিষয়টি coding agent VPS-এর জন্য কত RAM এবং CPU প্রয়োজন-এ ব্যাখ্যা করা হয়েছে।
অনুরোধগুলোর মধ্যে মডেল লোড রাখা
ডিফল্টভাবে Ollama শেষ অনুরোধের 5 মিনিট পরে মডেল আনলোড করে। Chat box-এর জন্য এটি উপযুক্ত, কিন্তু agent-এর কাজের জন্য নয়। আপনি একটি diff পড়তে বিরতি নেন, timer-এর সময় শেষ হয়ে যায়, এবং পরের অনুরোধে প্রথম token আসার আগে disk থেকে কয়েক দশ gigabyte weights আবার লোড হয়। এতে সিস্টেম hang করেছে বলে মনে হয়।
OLLAMA_KEEP_ALIVE-এ 10m বা 24h-এর মতো duration string, seconds হিসেবে একটি সাধারণ সংখ্যা, মডেল অনির্দিষ্টকাল লোড রাখার জন্য -1, অথবা অবিলম্বে আনলোড করার জন্য 0 দেওয়া যায়। এটি context length-এর পাশে সেট করুন:
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=64000"
Environment="OLLAMA_KEEP_ALIVE=-1"keep_alive request field-টি Ollama-এর native /api/generate এবং /api/chat endpoint-এ রয়েছে এবং /v1/chat/completions-এ Ollama extension হিসেবে ব্যবহৃত হয়। অতিরিক্ত request field প্রকাশ করে এমন agent সেখানে এটি পাঠাতে পারে; অন্যথায় environment variable ব্যবহার করুন। memory ফেরত পেতে ollama stop qwen3-coder:30b ব্যবহার করলে server বন্ধ না করেই মডেল আনলোড হয়। reboot-এর পরও এই setting বজায় রাখতে চাইলে, অথবা সারাদিন weights memory-তে রাখার সুবিধার সঙ্গে memory ফেরত পাওয়ার সুবিধা তুলনা করতে চাইলে, Ollama মডেল memory-তে লোড রাখা উভয় ক্ষেত্রেই কাজ করে।
আলাদা সার্ভারে Ollama চালানো
Ollama localhost-এ bind করে। অন্য কোনো মেশিন থেকে এতে সংযোগ করতে একই systemd override-এ OLLAMA_HOST=0.0.0.0:11434 সেট করুন এবং service restart করুন।
এটি শুধু private network-এ করুন। Ollama-এর documentation অনুযায়ী local API-তে authentication প্রয়োজন হয় না। তাই port 11434 Internet-এর জন্য উন্মুক্ত থাকলে যে কেউ আপনার hardware ব্যবহার করতে পারে। দুটি নিরাপদ বিকল্প আছে। bind localhost-এ রেখে আপনার laptop থেকে SSH-এর মাধ্যমে port forward করুন:
ssh -N -L 11434:localhost:11434 you@your-vpsআপনার agent http://localhost:11434/v1-এর দিকে সংযোগ করতে থাকে এবং কোনো পার্থক্য বুঝতে পারে না। অন্য বিকল্প হলো VPN ব্যবহার করা। এ ক্ষেত্রে Ollama 0.0.0.0-এর পরিবর্তে VPN address-এ bind করবে। একই box একাধিক ব্যক্তি বা একাধিক agent ব্যবহার করলে, পর্যাপ্ত memory থাকলে Ollama parallel request সমর্থন করে। Ollama এবং vLLM-এর তুলনা দেখায়, throughput-এর পার্থক্য কখন সমস্যা তৈরি করতে শুরু করে।
যেখানে local coding model কার্যকর, এবং যেখানে নয়
আপনার host করা model প্রতিটি কাজে frontier API-কে প্রতিস্থাপন করতে পারে না। চার ধরনের কাজে এটি স্পষ্টভাবে বেশি কার্যকর।
- বড় পরিসরের যান্ত্রিক edit, যেখানে প্রতিটি পরিবর্তন ছোট এবং আপনি তা যাচাই করতে পারেন। একটি repository জুড়ে নাম পরিবর্তন করা, type hint যোগ করা, docstring লেখা, comment অনুবাদ করা। Model কয়েক ঘণ্টা চললেও bill বাড়ে না।
- যে কাজের তথ্য আপনার hardware-এর বাইরে যাওয়া নিষিদ্ধ। যেমন confidentiality agreement-এর অধীন client code, অথবা এমন internal repository যা third party-কে পাঠানোর অনুমতি আপনার নেই।
- Offline এবং air-gapped machine, যেখানে call করার মতো কোনো hosted API-ই নেই।
- পূর্বানুমানযোগ্য খরচ। Server-এর খরচ পরিশোধ করার পর loop-এ token ব্যবহার করা agent-এর জন্য অতিরিক্ত খরচ হয় না। Metered API-তে ঠিক এর বিপরীত। GPU VPS API token-এর তুলনায় কখন খরচের দিক থেকে সমান হয়-এ হিসাব দেওয়া আছে।
দীর্ঘ বহু-ধাপের কাজে এটি দুর্বল। “এই test কেন ব্যর্থ হচ্ছে খুঁজে বের করুন, কারণটি ঠিক করুন, caller-গুলো update করুন”—এ ধরনের কাজে পরপর অনেকগুলো সঠিক tool call দরকার হয় এবং সম্পূর্ণ history context-এ রাখতে হয়। একটি মাঝারি server-এ চলা 8B থেকে 14B range-এর model malformed tool call তৈরি করতে পারে, অথবা কয়েকটি turn-এর পর plan হারিয়ে ফেলতে পারে। তখন কাজটি নিজে করতে যত সময় লাগত, তার চেয়ে model-কে নির্দেশনা দিতেই বেশি সময় ব্যয় হয়। এটি এমন prompt সমস্যা নয়, যা আরও ভালোভাবে লিখে সমাধান করা যায়। এটি capacity-এর সীমাবদ্ধতা।
যখন ভুলের খরচ বেশি এবং আপনি প্রতিটি line পড়বেন না, তখনও এটি দুর্বল। Local model-কে এমন সীমিত কাজ দিন যার output আপনি যাচাই করবেন। আর যে কাজ ধাপে ধাপে যাচাই করবেন না, তার জন্য hosted model ব্যবহার করুন।
ব্যর্থতার ধরন এবং যে স্ট্রিংগুলো আপনি দেখবেন
curl: (7) Failed to connect to localhost port 11434 after 0 ms: Connection refused। সার্ভার চলছে না, অথবা এজেন্ট অন্য কোনো হোস্টের দিকে নির্দেশ করা আছে। systemctl status ollama চালান, তারপর journalctl -e -u ollama।
এজেন্ট রিপোর্ট করে যে মডেলটি বিদ্যমান নেই। আপনার কনফিগারেশনে থাকা নামটি সার্ভারের পরিবেশন করা নামের সাথে মিলছে না। curl http://localhost:11434/v1/models-এর সাথে তুলনা করুন এবং সেখান থেকে স্ট্রিংটি কপি করুন। ট্যাগটি নামের অংশ, তাই এমন একটি ট্যাগ কনফিগারেশনে রাখা যা আপনি কখনো পুল করেননি তা ব্যর্থ হবে, যদিও অনুরূপ একটি মডেল ইনস্টল করা আছে।
এজেন্ট গদ্যে উত্তর দেয় এবং কোনো ফাইল এডিট করে না। হয় মডেলটিতে টুল সাপোর্ট নেই, অথবা অনুরোধ এবং এর টুলের সংজ্ঞা ইতিমধ্যেই কনটেক্সট উইন্ডো পূর্ণ করে ফেলেছে। মডেল পেজে tools লেবেলটি চেক করুন, তারপর ollama ps-এ CONTEXT কলামটি দেখুন।
প্রথম টোকেনের আগে দীর্ঘ নীরবতা, তারপর স্বাভাবিক গতি। কিপ-অ্যালাইভ (keep-alive) মেয়াদ শেষ হয়েছে এবং ওয়েটগুলো (weights) আবার ডিস্ক থেকে পড়া হচ্ছে। OLLAMA_KEEP_ALIVE সেট করুন।
মডেলটি সবেমাত্র পড়া একটি ফাইলের সাথে সাংঘর্ষিক তথ্য দেয়। কনটেক্সট ট্রাঙ্কেশন। ollama ps সাধারণত এমন একটি CONTEXT মান দেখায় যা আপনার সেট করা মানের চেয়ে ছোট, কারণ এনভায়রনমেন্ট ভেরিয়েবলটি systemd ইউনিটের পরিবর্তে আপনার শেলে চলে গেছে।
সবকিছু কাজ করছে, কিন্তু ধীরে, এবং PROCESSOR, 100% GPU নয়। সাধারণত মডেল এবং এর কনটেক্সট VRAM-এ ধরে না। যদি PROCESSOR এমন একটি মেশিনে 100% CPU দেখায় যেখানে GPU আছে, তবে অন্য কারণটি আগে বাদ দিন: Ollama হয়তো GPU খুঁজে পায়নি। Ollama-এর ডকুমেন্টেশনে উল্লেখ আছে যে Linux-এ, একটি সাসপেন্ড/রিজিউম সাইকেলের পর, এটি মাঝে মাঝে NVIDIA GPU শনাক্ত করতে ব্যর্থ হয় এবং CPU-তে ফিরে যায়, এবং sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm দিয়ে ড্রাইভার রিলোড করলে এই সমস্যার একটি সমাধান পাওয়া যায়। যদি GPU খুঁজে পাওয়া যায় এবং বিভাজনটি থেকেই যায়, তবে কনটেক্সট দৈর্ঘ্য কমিয়ে দিন, অথবা ছোট কোনো মডেল বা ছোট কোয়ান্টাইজেশনে চলে যান। পুনরায় পুল করার আগে, q4_K_M, q8_0 এবং fp16-এর প্রতিটি মেমরিতে খরচ কত এবং গুণমান কোথায় কমে তা পড়ে নিন, এটি আপনাকে জানাবে যে এক ধাপ নিচে নামলে আপনি কতটা জায়গা পাবেন এবং তার বিনিময়ে কী হারাবেন।
FAQ
আমি কি Ollama-তে Claude Code নির্দেশ করতে পারি?
হ্যাঁ, তবে OpenAI-compatible URL ব্যবহার করে নয়। Claude Code, Anthropic Messages API ব্যবহার করে এবং Ollama একই port 11434-এ /v1/messages-এ সেই কাঠামো সরবরাহ করে। ANTHROPIC_BASE_URL=http://localhost:11434, ANTHROPIC_AUTH_TOKEN=ollama এবং একটি খালি ANTHROPIC_API_KEY export করুন, তারপর claude --model qwen3-coder:30b দিয়ে এটি চালু করুন। ollama launch claude আপনার হয়ে একই settings লিখে দেয়। এই compatibility layer tool_choice বা prompt caching implement করে না এবং এতে token counting endpoint নেই। তাই প্রদর্শিত token count আনুমানিক।
আমার local model যে code দেখতে পারে না, সে সম্পর্কে উত্তর দেয় কেন?
কারণ request-টি আর context window-এ ধরে না এবং কোনো error ছাড়াই এর সবচেয়ে পুরোনো অংশ বাদ পড়েছে। প্রতি GPU-র জন্য configured overhead বাদ দেওয়ার পর Ollama শনাক্ত করা মোট VRAM থেকে default context নির্ধারণ করে: 23 GiB-এর নিচে default হলো 4,096 tokens, 23 থেকে 47 GiB-এর কম পর্যন্ত এটি 32,768 tokens, এবং 47 GiB বা তার বেশি হলে এটি 262,144 tokens। systemd unit-এ OLLAMA_CONTEXT_LENGTH=64000 সেট করুন, Ollama restart করুন এবং ollama ps-এর CONTEXT column-এ নতুন value দেখা যাচ্ছে কি না নিশ্চিত করুন।
VPS-এ coding agent-এর জন্য কোন model চালানো উচিত?
64k context window-সহ memory-তে এখনও ধরে এমন tools label-যুক্ত সবচেয়ে বড় model বেছে নিন এবং code-এর জন্য tuned model অগ্রাধিকার দিন। পর্যাপ্ত VRAM-সহ GPU server-এ qwen3-coder:30b সাধারণত উপযুক্ত পছন্দ। সেই tag আপনার server-এর জন্য বড় হলে download করার আগে Nemotron 3.5 Lightning-এর RAM পরিসংখ্যান এবং CPU-only speed তুলনা হিসেবে কাজে লাগবে। মোটামুটি 14B parameter-এর নিচে কোনো model code সম্পর্কে ভালোভাবে প্রশ্নের উত্তর দিতে পারে, কিন্তু বহু ধাপের edit-এ ব্যর্থ হতে পারে। কারণ tool call-এ ছোট formatting mistake-ও agent-এর কাজকে বাধাগ্রস্ত করে। Sample prompt-এর বদলে নিজের repository থেকে একটি বাস্তব task দিয়ে পরীক্ষা করুন।
নিজের model-এ coding agent চালাতে কি GPU দরকার?
বাস্তবে, হ্যাঁ। CPU-only inference কাজ করে এবং একক প্রশ্নের জন্য যথেষ্ট, কিন্তু একটি task-এ agent বহু request পাঠায় এবং প্রতিটি request-এ দীর্ঘ history আবার পড়ে। তাই token rate ধীর হলে দুই মিনিটের task এক ঘণ্টায় গিয়ে দাঁড়ায়। ollama ps-এর PROCESSOR column পরীক্ষা করুন: 100% GPU ছাড়া অন্য যেকোনো value-এর অর্থ model-এর একটি অংশ CPU-তে চলছে এবং token rate দ্রুত কমে যায়।