𝗥𝘂𝗻𝗻𝗶𝗻𝗴 𝗧𝘄𝗼 𝗠𝗼𝗱𝗲𝗹𝘀 𝗼𝗻 𝗢𝗻𝗲 𝗚𝗣𝗨: 𝗧𝗵𝗲 𝗠𝗮𝘁𝗵 𝗕𝗲𝗵𝗶𝗻𝗱 𝗟𝗼𝗰𝗮𝗹 𝗟𝗟𝗠𝘀
நான் ஒரு workstation-இல் ஓர் agent stack-ஐ இயக்குகிறேன். மாடல்கள் LAN வழியாக ஒரு DGX Spark-இல் உள்ளன. நினைவகத்தை (memory) சிறப்பாக நிர்வகிக்க நான் Ollama-விற்குப் பதிலாக vLLM-ஐப் பயன்படுத்துகிறேன்.
ஒரே நேரத்தில் இரண்டு மாடல்களை இயக்குவதே இதன் நோக்கம்:
- கடினமான தர்க்கங்களுக்கு (heavy reasoning) Qwen3-Next-80B.
- வேகமான பதில்களுக்கு (fast turns) Qwen3-4B.
இரண்டு மாடல்களும் ஒரு 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-க்குத் தேவையான குறைந்தபட்சத் தேவைக்கு இடமில்லாமல் போனது.
𝗠𝘆 𝗣𝗹𝗮𝘆𝗯𝗼𝗼𝗸 𝗳𝗼𝗿 𝗖𝗼-𝗿𝗲𝘀𝗶𝗱𝗲𝗻𝘁 𝗠𝗼𝗱𝗲𝗹𝘀
- முதலில் மிகப்பெரிய மாடலை ஏற்றவும் (Load).
- அது நிலைபெற (settle) விடவும்.
- பயன்படுத்தப்படும் உண்மையான நினைவகத்தைப் பார்க்க
nvidia-smiகட்டளையை இயக்கவும். - மீதமுள்ள காலிய நினைவகத்திலிருந்து overhead-க்காக 5 GB-ஐக் கழித்துவிட்டு, அதற்கேற்ப சிறிய மாடலின் அளவைத் தீர்மானிக்கவும்.
- நிலைத்தன்மையை உறுதிப்படுத்த இரண்டு மாடல்களையும் இரண்டு முறை மறுதொடக்கம் (restart) செய்யவும்.
உங்கள் நினைவக அமைப்புகளைக் கணிக்க வேண்டாம். உங்கள் உண்மையான நிலையை அறிய இந்த கட்டளையைப் பயன்படுத்தவும்:
nvidia-smi --query-gpu=memory.used --format=csv
உங்கள் இலக்கு ஒதுக்கீடு (target allocation) மற்றும் உண்மையான பயன்பாடு ஆகியவற்றுக்கு இடையே 10%-க்கும் அதிகமான வித்தியாசம் இருந்தால், உங்கள் கணிதம் தவறானது. உங்கள் agent stack-ஐப் பயன்படுத்துவதற்கு முன் அதைச் சரிசெய்யவும்.
Optional learning community: https://t.me/GyaanSetuAi