𝗥𝘂𝗻𝗻𝗶𝗻𝗴 𝗧𝘄𝗼 𝗠𝗼𝗱𝗲𝗹𝘀 𝗼𝗻 𝗢𝗻𝗲 𝗚𝗣𝗨: 𝗧𝗵𝗲 𝗠𝗮𝘁𝗵 𝗕𝗲𝗵𝗶𝗻𝗱 𝗟𝗼𝗰𝗮𝗹 𝗟𝗟𝗠𝘀

ഞാൻ ഒരു വർക്ക്സ്റ്റേഷനിൽ ഒരു ഏജന്റ് സ്റ്റാക്ക് (agent stack) പ്രവർത്തിപ്പിക്കുന്നു. ഒരു LAN വഴി DGX Spark-ലാണ് മോഡലുകൾ പ്രവർത്തിക്കുന്നത്. മെമ്മറി കൂടുതൽ നന്നായി കൈകാര്യം ചെയ്യുന്നതിനായി ഞാൻ Ollama-യ്ക്ക് പകരം vLLM ഉപയോഗിക്കുന്നു.

ഒരേസമയം രണ്ട് മോഡലുകൾ പ്രവർത്തിപ്പിക്കുക എന്നതാണ് ലക്ഷ്യം:

ഒരു LiteLLM പ്രോക്സിയിലൂടെ രണ്ട് മോഡലുകളും ഒരേ URL-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു. ശരിയായ ഗണിതം (math) കണ്ടെത്തുന്നതിന് മുമ്പ് ഈ സെറ്റപ്പ് പലതവണ പരാജയപ്പെട്ടു.

ആ പോരാട്ടത്തിൽ നിന്നുള്ള പാഠങ്ങൾ താഴെ പറയുന്നവയാണ്.

𝗧𝗵𝗲 𝗠𝗲𝗺𝗼𝗿𝘆 𝗧𝗿𝗮𝗽 gpu_memory_utilization എന്ന സെറ്റിംഗ് ഫ്രീ മെമ്മറിയുടെ അളവല്ല. അത് ആകെ GPU മെമ്മറിയുടെ ഒരു ഭാഗമാണ്.

നിങ്ങളുടെ പക്കൽ 120 GB കാർഡ് ഉണ്ടാവുകയും utilization 0.80 ആയി സെറ്റ് ചെയ്യുകയും ചെയ്താൽ, vLLM ആകെ കപ്പാസിറ്റിയുടെ 96 GB കൈവശപ്പെടുത്താൻ ശ്രമിക്കും. നിലവിൽ എത്ര മെമ്മറി ഒഴിവുണ്ടെന്ന് അത് നോക്കില്ല. നിങ്ങൾ രണ്ട് പ്രോസസ്സുകൾ പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ, അവയുടെ ശതമാനം കൂട്ടിയാൽ 0.95-ൽ താഴെയായിരിക്കണം. CUDA ഫ്രെയിംവർക്കിന്റെ ഓവർഹെഡിനായി (overhead) കുറച്ച് സ്ഥലം നിങ്ങൾ വിട്ടേയ്ക്കണം.

𝗪𝗵𝗮𝘁 𝗛𝗮𝗽𝗽𝗲𝗻𝗲𝗱 𝗪𝗶𝘁𝗵 𝗧𝗵𝗲 𝗠𝗼𝗱𝗲𝗹𝘀 ഞാൻ 80B മോഡലിന്റെ Thinking വേർഷൻ ഉപയോഗിക്കാൻ ശ്രമിച്ചു. അത് പരാജയപ്പെട്ടു. മോഡൽ <think> ടാഗുകൾക്കുള്ളിൽ റീസണിംഗ് നടത്തുമെങ്കിലും ഒരു ടൂൾ കോൾ (tool call) പോലും ചെയ്യില്ലായിരുന്നു. അത് വെറുതെ നിൽക്കുകയാണ് ചെയ്യുക.

എനിക്ക് 80B ബാക്ക്ബോണിനെ (backbone) Instruct വേർഷനിലേക്ക് മാറ്റേണ്ടി വന്നു. ഇത് ഏജന്റിന് ടൂളുകൾ ശരിയായി ഉപയോഗിക്കാൻ സഹായിച്ചു.

𝗧𝗵𝗲 𝗔𝗰𝘁𝘂𝗮𝗹 𝗠𝗮𝘁𝗵 പരീക്ഷണങ്ങൾക്ക് ശേഷം, എന്റെ സെറ്റപ്പിന് താഴെ പറയുന്ന കണക്കുകൾ അനുയോജ്യമാണെന്ന് ഞാൻ കണ്ടെത്തി:

• Qwen3-Next-80B (0.80 ടാർഗറ്റിൽ): ഏകദേശം ~87.8 GiB മെമ്മറി ഉപയോഗിക്കുന്നു. • Qwen3-4B (0.10 ടാർഗറ്റിൽ): ഏകദേശം ~13.8 GiB മെമ്മറി ഉപയോഗിക്കുന്നു. • ആകെ ഉപയോഗം: ~101.6 GiB. • ബാക്കിയുള്ള സ്ഥലം (Free headroom): ~18 GiB.

ഞാൻ 80B-യുടെ അളവ് 0.85 ആയി ഉയർത്തിയാൽ, 4B മോഡലിന് പ്രവർത്തിക്കാൻ കഴിയില്ല. 80B ഒരുപാട് മെമ്മറി കൈവശപ്പെടുത്തുന്നതിനാൽ 4B-യുടെ അടിസ്ഥാന ആവശ്യങ്ങൾക്കായി ഒന്നും ബാക്കി ഉണ്ടാവില്ല.

𝗠𝘆 𝗣𝗹𝗮𝘆𝗯𝗼𝗼𝗸 𝗳𝗼𝗿 𝗖𝗼-𝗿𝗲𝘀𝗶𝗱𝗲𝗻𝘁 𝗠𝗼𝗱𝗲𝗹𝘀

  1. ഏറ്റവും വലിയ മോഡൽ ആദ്യം ലോഡ് ചെയ്യുക.
  2. അത് പൂർണ്ണമായി സെറ്റിൽ ആകാൻ അനുവദിക്കുക.
  3. ഉപയോഗിക്കുന്ന യഥാർത്ഥ മെമ്മറി അറിയാൻ nvidia-smi റൺ ചെയ്യുക.
  4. ബാക്കിയുള്ള ഫ്രീ മെമ്മറിയിൽ നിന്ന് ഓവർഹെഡിനായി 5 GB കുറച്ചതിനുശേഷം, ആ അളവിൽ ചെറിയ മോഡലിനെ ക്രമീകരിക്കുക.
  5. സ്ഥിരത ഉറപ്പാക്കാൻ രണ്ട് മോഡലുകളും രണ്ട് തവണ റീസ്റ്റാർട്ട് ചെയ്യുക.

മെമ്മറി സെറ്റിംഗുകൾ ഊഹിച്ചു തീരുമാനിക്കരുത്. നിങ്ങളുടെ യഥാർത്ഥ സാഹചര്യം അറിയാൻ ഈ കമാൻഡ് ഉപയോഗിക്കുക: nvidia-smi --query-gpu=memory.used --format=csv

നിങ്ങളുടെ നിശ്ചയിച്ച അലോക്കേഷനും (target allocation) യഥാർത്ഥ ഉപയോഗവും തമ്മിൽ 10%-ൽ കൂടുതൽ വ്യത്യാസമുണ്ടെങ്കിൽ, നിങ്ങളുടെ കണക്ക് തെറ്റാണ്. നിങ്ങളുടെ ഏജന്റ് സ്റ്റാക്ക് വിന്യസിക്കുന്നതിന് (deploy) മുമ്പ് അത് ശരിയാക്കുക.

Source: https://dev.to/ric03uec/two-qwen3-models-on-one-dgx-spark-the-residency-math-for-local-llm-coding-5bpj

Optional learning community: https://t.me/GyaanSetuAi