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

நான் ஒரு workstation-இல் ஓர் agent stack-ஐ இயக்குகிறேன். மாடல்கள் LAN வழியாக ஒரு DGX Spark-இல் உள்ளன. நினைவகத்தை (memory) சிறப்பாக நிர்வகிக்க நான் Ollama-விற்குப் பதிலாக vLLM-ஐப் பயன்படுத்துகிறேன்.

ஒரே நேரத்தில் இரண்டு மாடல்களை இயக்குவதே இதன் நோக்கம்:

இரண்டு மாடல்களும் ஒரு LiteLLM proxy மூலம் ஒரே URL-ஐ அணுகுகின்றன. சரியான கணித முறையைக் கண்டறியும் முன் இந்த அமைப்பு பலமுறை தோல்வியடைந்தது.

அந்தப் போராட்டத்திலிருந்து நான் கற்றுக்கொண்ட பாடங்கள் இதோ.

𝗪𝗵𝗮𝘁 𝗛𝗮𝗽𝗽𝗲𝗻𝗲𝗱 𝗪𝗶𝘁𝗵 𝗧𝗵𝗲 𝗠𝗼𝗱𝗲𝗹𝘀 gpu_memory_utilization என்ற அமைப்பு, இருக்கும் காலியான நினைவகத்திற்கான இலக்கல்ல (target). இது மொத்த GPU நினைவகத்தின் ஒரு பகுதியாகும்.

உங்களிடம் 120 GB கார்டு இருந்து, utilization-ஐ 0.80 என அமைத்தால், vLLM மொத்தத் திறனில் 96 GB-ஐப் பயன்படுத்த முயற்சிக்கும். தற்போது எவ்வளவு காலியாக உள்ளது என்பதை அது பார்க்காது. நீங்கள் இரண்டு செயல்முறைகளை (processes) இயக்க முயன்றால், அவற்றின் சதவீதங்களின் கூடுதல் 0.95-க்கும் குறைவாக இருக்க வேண்டும். CUDA framework overhead-க்காக நீங்கள் కొంత இடமளிக்க வேண்டும்.

𝗪𝗵𝗮𝘁 𝗛𝗮𝗽𝗽𝗲𝗻𝗲𝗱 𝗪𝗶𝘁𝗵 𝗧𝗵𝗲 𝗠𝗼𝗱𝗲𝗹𝘀 நான் 80B மாடலின் Thinking பதிப்பைப் பயன்படுத்த முயன்றேன். அது தோல்வியடைந்தது. மாடல் <think> டேக்குகளுக்குள் தர்க்கங்களைச் செய்தது, ஆனால் ஒரு tool call-ஐத் தூண்டவில்லை. அது அப்படியே நின்றுவிடும்.

நான் 80B backbone-ஐ Instruct பதிப்பிற்கு மாற்ற வேண்டியிருந்தது. இது agent சரியாக கருவிகளைப் (tools) பயன்படுத்த உதவியது.

𝗧𝗵𝗲 𝗔𝗰𝘁𝘂𝗮𝗹 𝗠𝗮𝘁𝗵 சோதனைகளுக்குப் பிறகு, எனது அமைப்பிற்கு இந்த எண்கள் சரியாக இருக்கும் என்பதைக் கண்டறிந்தேன்:

• 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. முதலில் மிகப்பெரிய மாடலை ஏற்றவும் (Load).
  2. அது நிலைபெற (settle) விடவும்.
  3. பயன்படுத்தப்படும் உண்மையான நினைவகத்தைப் பார்க்க nvidia-smi கட்டளையை இயக்கவும்.
  4. மீதமுள்ள காலிய நினைவகத்திலிருந்து overhead-க்காக 5 GB-ஐக் கழித்துவிட்டு, அதற்கேற்ப சிறிய மாடலின் அளவைத் தீர்மானிக்கவும்.
  5. நிலைத்தன்மையை உறுதிப்படுத்த இரண்டு மாடல்களையும் இரண்டு முறை மறுதொடக்கம் (restart) செய்யவும்.

உங்கள் நினைவக அமைப்புகளைக் கணிக்க வேண்டாம். உங்கள் உண்மையான நிலையை அறிய இந்த கட்டளையைப் பயன்படுத்தவும்: nvidia-smi --query-gpu=memory.used --format=csv

உங்கள் இலக்கு ஒதுக்கீடு (target allocation) மற்றும் உண்மையான பயன்பாடு ஆகியவற்றுக்கு இடையே 10%-க்கும் அதிகமான வித்தியாசம் இருந்தால், உங்கள் கணிதம் தவறானது. உங்கள் agent stack-ஐப் பயன்படுத்துவதற்கு முன் அதைச் சரிசெய்யவும்.

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