Skip to content

कभी-कभी Ollama अपेक्षित रूप से कार्य नहीं करता। यह पता लगाने का एक सबसे अच्छा तरीका कि क्या हुआ है, लॉग देखना है। Mac पर लॉग निम्नलिखित कमांड चलाकर प्राप्त करें:

shell
cat ~/.ollama/logs/server.log

Linux सिस्टम जिनमें systemd है, उन पर लॉग इस कमांड से मिल जाएंगे:

shell
journalctl -u ollama --no-pager --follow --pager-end

जब आप container में Ollama चलाते हैं, तो लॉग कंटेनर के stdout/stderr में जाते हैं:

shell
docker logs <container-name>

(docker ps चलाकर कंटेनर का नाम ढूंढें)

यदि टर्मिनल में मैन्युअल रूप से ollama serve चला रहे हैं, तो लॉग उसी टर्मिनल पर दिखाई देंगे।

जब आप Windows पर Ollama चलाते हैं, तो लॉग कई अलग-अलग जगहों पर होते हैं। आप <cmd>+R दबाकर एक्सप्लोरर विंडो में उन्हें देख सकते हैं और निम्नलिखित टाइप करें:

  • explorer %LOCALAPPDATA%\Ollama लॉग देखने के लिए। नवीनतम सर्वर लॉग server.log में होंगे और पुराने लॉग server-#.log में होंगे
  • explorer %LOCALAPPDATA%\Programs\Ollama बाइनरी फाइलें ब्राउज़ करने के लिए (इंस्टॉलर इसे आपके यूजर PATH में जोड़ देता है)
  • explorer %HOMEPATH%\.ollama मॉडल और कॉन्फ़िगरेशन जहां संग्रहीत हैं, उसे ब्राउज़ करने के लिए
  • explorer %TEMP% जहां अस्थाई एक्सीक्यूटेबल फाइलें एक या अधिक ollama* डायरेक्ट्री में संग्रहीत होती हैं

समस्याओं का निवारण करने में मदद के लिए अतिरिक्त डीबग लॉगिंग सक्षम करने के लिए, पहले ट्रे मेनू से चल रहे ऐप को बंद करें फिर पावरशेल टर्मिनल में:

powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

लॉग को समझने में मदद के लिए डिस्कॉर्ड से जुड़ें।

LLM लाइब्रेरी

Ollama में विभिन्न GPUs और CPU वेक्टर फीचर्स के लिए कंपाइल की गई कई LLM लाइब्रेरी शामिल हैं। Ollama आपके सिस्टम की क्षमताओं के आधार पर सबसे अच्छी लाइब्रेरी चुनने का प्रयास करता है। यदि इस ऑटोडिटेक्शन में कोई समस्या है, या आप अन्य समस्याओं (जैसे आपके GPU में क्रैश) का सामना कर रहे हैं, तो आप किसी विशिष्ट LLM लाइब्रेरी को फोर्स करके इससे बाहर निकल सकते हैं। cpu_avx2 सबसे अच्छा परफॉर्मेंस देगा, उसके बाद cpu_avx आता है और सबसे धीमा लेकिन सबसे संगत cpu है। MacOS के तहत रोसेटा एमुलेशन cpu लाइब्रेरी के साथ काम करेगा।

सर्वर लॉग में आपको एक संदेश दिखेगा जो कुछ इस तरह का होता है (रिलीज के अनुसार बदलता रहता है):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

प्रायोगिक LLM लाइब्रेरी ओवरराइड

आप ऑटोडिटेक्शन को बायपास करने के लिए OLLAMA_LLM_LIBRARY को किसी भी उपलब्ध LLM लाइब्रेरी में सेट कर सकते हैं, उदाहरण के लिए, यदि आपके पास CUDA कार्ड है लेकिन आप AVX2 वेक्टर सपोर्ट के साथ CPU LLM लाइब्रेरी को फोर्स करना चाहते हैं, तो उपयोग करें:

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

आप निम्नलिखित से अपने CPU की क्या फीचर्स हैं, देख सकते हैं।

shell
cat /proc/cpuinfo| grep flags | head -1

Linux पर पुराने या प्री-रिलीज संस्करणों की इंस्टॉलेशन

यदि Linux पर आपको समस्याएं आ रही हैं और आप पुराना संस्करण इंस्टॉल करना चाहते हैं, या आप इसे आधिकारिक रूप से रिलीज होने से पहले प्री-रिलीज आज़माना चाहते हैं, तो आप इंस्टॉल स्क्रिप्ट को बता सकते हैं कि कौन सा संस्करण इंस्टॉल करना है।

shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh

Linux tmp noexec

यदि आपका सिस्टम "noexec" फ्लैग के साथ कॉन्फ़िगर किया गया है जहां Ollama अपनी अस्थाई एक्सीक्यूटेबल फाइलें संग्रहीत करता है, तो आप OLLAMA_TMPDIR को उस स्थान पर सेट करके एक विकल्प स्थान निर्दिष्ट कर सकते हैं जो Ollama चलाने वाले यूजर द्वारा लिखने योग्य हो। उदाहरण के लिए OLLAMA_TMPDIR=/usr/share/ollama/

Linux डॉकर

यदि Ollama शुरू में डॉकर कंटेनर में GPU पर काम करता है लेकिन कुछ समय बाद सर्वर लॉग में GPU डिस्कवरी फेल होने की त्रुटियों के साथ CPU पर चलना शुरू हो जाता है, तो इसे डॉकर में systemd cgroup मैनेजमेंट को डिसेबल करके हल किया जा सकता है। होस्ट पर /etc/docker/daemon.json एडिट करें और डॉकर कॉन्फ़िगरेशन में "exec-opts": ["native.cgroupdriver=cgroupfs"] जोड़ें।

NVIDIA GPU डिस्कवरी

जब Ollama स्टार्ट होता है, तो यह सिस्टम में मौजूद GPUs की सूची बनाता है ताकि संगतता और उपलब्ध VRAM की मात्रा निर्धारित की जा सके। कभी-कभी यह डिस्कवरी आपके GPUs को नहीं ढूंढ पाती है। आम तौर पर नवीनतम ड्राइवर चलाने से सबसे अच्छे परिणाम मिलते हैं।

Linux NVIDIA समस्या निवारण

यदि आप Ollama चलाने के लिए कंटेनर का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने पहले डॉकर में बताए अनुसार कंटेनर रनटाइम सेट कर लिया है।

कभी-कभी Ollama को GPU को इनिशियलाइज़ करने में कठिनाई हो सकती है। जब आप सर्वर लॉग की जांच करते हैं, तो इसे विभिन्न एरर कोड के रूप में दिखाई दे सकता है, जैसे "3" (इनिशियलाइज़ नहीं हुआ), "46" (डिवाइस अनुपलब्ध), "100" (कोई डिवाइस नहीं), "999" (अज्ञात), या अन्य। निम्नलिखित समस्या निवारण तकनीकें समस्या को हल करने में मदद कर सकती हैं

  • यदि आप कंटेनर का उपयोग कर रहे हैं, क्या कंटेनर रनटाइम काम कर रहा है? docker run --gpus all ubuntu nvidia-smi ट्राई करें - यदि यह काम नहीं करता, तो Ollama आपके NVIDIA GPU को नहीं देख पाएगा।
  • क्या uvm ड्राइवर लोड है? sudo nvidia-modprobe -u
  • nvidia_uvm ड्राइवर को रीलोड करने का प्रयास करें - sudo rmmod nvidia_uvm फिर sudo modprobe nvidia_uvm
  • रीबूट करने का प्रयास करें
  • सुनिश्चित करें कि आप नवीनतम nvidia ड्राइवर चला रहे हैं

यदि इनमें से कोई भी समस्या को हल नहीं करता है, तो अतिरिक्त जानकारी इकट्ठा करें और एक इश्यू फाइल करें:

  • CUDA_ERROR_LEVEL=50 सेट करें और अधिक डायग्नोस्टिक लॉग प्राप्त करने के लिए फिर से प्रयास करें
  • किसी भी त्रुटि के लिए dmesg की जांच करें sudo dmesg | grep -i nvrm और sudo dmesg | grep -i nvidia

AMD GPU डिस्कवरी

Linux पर AMD GPU एक्सेस के लिए आमतौर पर /dev/kfd डिवाइस तक पहुंचने के लिए video और/या render ग्रुप मेंबरशिप की आवश्यकता होती है। यदि परमिशन सही से सेट नहीं हैं, तो Ollama इसे डिटेक्ट करेगा और सर्वर लॉग में एरर रिपोर्ट करेगा।

कंटेनर में चलाने पर, कुछ Linux डिस्ट्रिब्यूशन और कंटेनर रनटाइम में, ollama प्रोसेस GPU तक पहुंचने में असमर्थ हो सकता है। अपने सिस्टम पर न्यूमेरिक ग्रुप आईडी निर्धारित करने के लिए होस्ट सिस्टम पर ls -lnd /dev/kfd /dev/dri /dev/dri/* का उपयोग करें, और कंटेनर को आवश्यक डिवाइसेस तक पहुंचने के लिए अतिरिक्त --group-add ... आर्ग्यूमेंट पास करें। उदाहरण के लिए, निम्नलिखित आउटपुट में crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 ग्रुप आईडी कॉलम 44 है।

यदि आपको Ollama से अपने GPU को इंफरेंस के लिए सही ढंग से डिस्कवर या उपयोग करने में समस्याएं आ रही हैं, तो निम्नलिखित फेल को अलग करने में मदद कर सकता है।

  • AMD_LOG_LEVEL=3 AMD HIP/ROCm लाइब्रेरी में इंफो लॉग लेवल सक्षम करें। यह अधिक विस्तृत एरर कोड दिखाने में मदद कर सकता है जो समस्याओं का निवारण करने में सहायक होता है
  • OLLAMA_DEBUG=1 GPU डिस्कवरी के दौरान अतिरिक्त जानकारी रिपोर्ट की जाएगी
  • amdgpu या kfd ड्राइवर से किसी भी त्रुटि के लिए dmesg की जांच करें sudo dmesg | grep -i amdgpu और sudo dmesg | grep -i kfd

AMD ड्राइवर संस्करण बेमेल

यदि Linux पर आपका AMD GPU डिटेक्ट नहीं हो रहा है और सर्वर लॉग में इस तरह के संदेश हैं:

msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...

यह आम तौर पर इस बात का संकेत है कि सिस्टम का AMD GPU ड्राइवर बहुत पुराना है। Ollama ROCm 7 linux लाइब्रेरी को बंडल करता है जिन्हें एक संगत ROCm 7 कर्नेल ड्राइवर की आवश्यकता होती है। यदि सिस्टम पर पुराना ड्राइवर (ROCm 6.x या उससे पहले का) चल रहा है, तो डिवाइस डिस्कवरी के दौरान GPU इनिशियलाइज़ेशन हंग हो जाएगा और अंत में टाइम आउट हो जाएगा, जिससे Ollama CPU पर फॉल बैक हो जाता है।

इसे हल करने के लिए, AMD के ROCm डॉक्यूमेंटेशन से amdgpu-install यूटिलिटी का उपयोग करके ROCm v7 ड्राइवर अपग्रेड करें। अपग्रेड के बाद, रीबूट करें और Ollama को फिर से स्टार्ट करें।

कई AMD GPUs

यदि Linux पर कई AMD GPUs पर मॉडल लोड होने पर आपको गलत जवाब मिल रहे हैं, तो निम्नलिखित गाइड देखें।

Windows टर्मिनल एरर

Windows 10 के पुराने संस्करण (जैसे, 21H1) में एक बग होता है जिससे स्टैंडर्ड टर्मिनल प्रोग्राम कंट्रोल कैरेक्टर को सही से डिस्प्ले नहीं करता है। इसके परिणामस्वरूप ←[?25h←[?25l जैसी लंबी स्ट्रिंग डिस्प्ले हो सकती है, कभी-कभी The parameter is incorrect एरर आता है। इस समस्या को हल करने के लिए, कृपया Win 10 22H1 या उससे नए संस्करण पर अपडेट करें।