ഞാൻ എന്റെ ASUS ROG Ally-യിൽ ഒരു LLM ലോക്കലായി പ്രവർത്തിപ്പിച്ചു
ഏതാനും ആഴ്ചകളോളം ഞാൻ എന്റെ ASUS ROG Ally-യിൽ ഒരു ലോക്കൽ AI മോഡൽ പ്രവർത്തിപ്പിച്ചു. ഇതൊരു രസകരമായ പ്രോജക്റ്റ് ആയിരിക്കുമെന്ന് ഞാൻ കരുതിയിരുന്നതാണ്. എന്നാൽ, ഹാർഡ്വെയർ പരിമിതികളെക്കുറിച്ചുള്ള ഒരു പാഠമായി ഇത് മാറി.
ഞാൻ ഇതിനെ ഒരു ക്ലൗഡ് പകരക്കാരനായിട്ടല്ല ഉപയോഗിച്ചത്. ചെറിയ ജോലികൾക്കായി ഒരു പ്രത്യേക ടൂൾ ആയിട്ടാണ് ഞാൻ ഇതിനെ ഉപയോഗിച്ചത്. ഹാൻഡ്ഹെൽഡ് ഹാർഡ്വെയറിൽ AI പ്രവർത്തിപ്പിക്കുന്നതിനെക്കുറിച്ച് ഞാൻ പഠിച്ച കാര്യങ്ങൾ താഴെ പറയുന്നവയാണ്.
മെമ്മറി തടസ്സം (The Memory Barrier)
ഹാൻഡ്ഹെൽഡ് ഉപകരണങ്ങൾ Unified Memory Architecture ആണ് ഉപയോഗിക്കുന്നത്. ഇതിനർത്ഥം CPU-വും GPU-വും ഒരേ RAM പങ്കിടുന്നു എന്നാണ്. ഡിഫോൾട്ട് ആയി, GPU-വിന് വളരെ കുറഞ്ഞ അളവിൽ മാത്രമേ മെമ്മറി ലഭിക്കാറുള്ളൂ.
നിങ്ങളുടെ മോഡൽ ആ മെമ്മറിയിൽ ഒതുങ്ങുന്നില്ലെങ്കിൽ, സിസ്റ്റം CPU ഉപയോഗിക്കും. ഇത് ജനറേഷൻ (generation) അങ്ങേയറ്റം സാവധാനത്തിലാക്കുന്നു.
പരിഹാരം:
- നിങ്ങളുടെ BIOS-ൽ പ്രവേശിക്കുക.
- UMA frame buffer മാനുവലായി വർദ്ധിപ്പിക്കുക.
- ഞാൻ എന്റെ മെമ്മറി 4 GB ആയി വർദ്ധിപ്പിച്ചു. മറ്റ് മാറ്റങ്ങളേക്കാൾ കൂടുതൽ സഹായകരമായത് ഈ മാറ്റമാണ്.
ഫലപ്രദമല്ലാത്തവ
മെമ്മറിയിൽ കൂടുതൽ സ്ഥലം ഉണ്ടാക്കിയെടുക്കാൻ ഞാൻ zRAM ഉപയോഗിക്കാൻ ശ്രമിച്ചു. എന്നാൽ അത് പരാജയപ്പെട്ടു. മിക്ക AI മോഡലുകളും നേരത്തെ തന്നെ കംപ്രസ് ചെയ്ത GGUF ഫയലുകളാണ് ഉപയോഗിക്കുന്നത്. കൂടുതൽ സ്ഥലം ലഭിക്കാനായി അവയെ വീണ്ടും കംപ്രസ് ചെയ്യാൻ കഴിയില്ല.
സഹായിക്കാൻ ഞാൻ ഡിസ്ക് സ്വാപ്പ് (disk swap) ഉപയോഗിക്കാനും ശ്രമിച്ചു. എന്നാൽ സ്വാപ്പ് കാര്യങ്ങൾ വേഗത്തിലാക്കില്ല, പകരം അവ ഉപയോഗശൂന്യമാക്കും. നിങ്ങളുടെ മോഡൽ ഡിസ്ക് സ്വാപ്പിനെ ആശ്രയിച്ചാണെങ്കിൽ, ഏതാനും സെക്കൻഡുകൾക്ക് ശേഷം ഒരു വാക്ക് മാത്രമേ നിങ്ങൾക്ക് ലഭിക്കൂ.
RAM തീർന്നുപോകുമ്പോൾ സിസ്റ്റം നിങ്ങളുടെ പ്രോസസ്സ് നിർത്തിപ്പോകാതിരിക്കാൻ വേണ്ടി മാത്രം സ്വാപ്പ് പ്രവർത്തനക്ഷമമായി വെക്കാവുന്നതാണ്.
സുഗമമായ പ്രവർത്തനത്തിനുള്ള ടിപ്സുകൾ
നിങ്ങളുടെ AI ഔട്ട്പുട്ട് മുറിഞ്ഞു മുറിഞ്ഞു വരുന്നതായി തോന്നുന്നുണ്ടെങ്കിൽ, നിങ്ങളുടെ Linux kernel സെറ്റിംഗുകൾ പരിശോധിക്കുക.
- നിങ്ങളുടെ vm.swappiness വാല്യൂ കുറയ്ക്കുക.
- ഇത് മെമ്മറി വളരെ നേരത്തെ തന്നെ സ്വാപ്പിലേക്ക് മാറ്റുന്നത് തടയുന്നു.
- ഇത് ജനറേഷൻ തടസ്സമില്ലാതെ സുഗമമായി നടക്കാൻ സഹായിക്കുന്നു.
മോഡൽ തിരഞ്ഞെടുക്കുന്നത് Use-Case അനുസരിച്ചാണ്
മിക്ക ആളുകളും ഏറ്റവും വേഗതയേറിയ മോഡലുകൾക്കായിരിക്കും തിരയുന്നത്. എന്നാൽ ഞാൻ അതിനുപകരം കുറച്ചുകൂടി സാവധാനത്തിലുള്ളതും എന്നാൽ കൃത്യതയുള്ളതുമായ (sharper) ഒരു മോഡൽ തിരഞ്ഞെടുത്തു.
- നിങ്ങൾ തത്സമയം ചാറ്റ് ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾക്ക് വേഗത ആവശ്യമാണ്.
- നിങ്ങൾ ഒരു ബാക്ക്ഗ്രൗണ്ട് ഏജന്റ് (background agent) ആണ് പ്രവർത്തിപ്പിക്കുന്നതെങ്കിൽ, നിങ്ങൾക്ക് ഗുണമേന്മ ആവശ്യമാണ്.
ഞാൻ എന്റെ സെറ്റപ്പ് ബാക്ക്ഗ്രൗണ്ട് ജോലികൾക്കായി ഉപയോഗിക്കുന്നു. ഞാൻ ഒരു റിക്വസ്റ്റ് അയക്കുകയും പിന്നീട് ഫലം പരിശോധിക്കുകയും ചെയ്യുന്നു. ഞാൻ സ്ക്രീനിൽ നോക്കിയിരിക്കാത്തതുകൊണ്ട്, ഒരു മറുപടി ലഭിക്കാൻ 8 സെക്കൻഡിന് പകരം 40 സെക്കൻഡ് എടുത്താലും എനിക്ക് കുഴപ്പമില്ല. എനിക്ക് വേഗതയല്ല, ഏറ്റവും മികച്ച ഉത്തരമാണ് വേണ്ടത്.
ഹാൻഡ്ഹെൽഡ് ഉപകരണങ്ങളിൽ reasoning മോഡലുകൾ ഒഴിവാക്കുക. കുറഞ്ഞ ശേഷിയുള്ള ഹാർഡ്വെയറിൽ ഘട്ടം ഘട്ടമായുള്ള ചിന്താ പ്രക്രിയയ്ക്ക് (step-by-step thinking process) ഒരുപാട് സമയം എടുക്കും. ലഭിക്കുന്ന ഗുണമേന്മ ആ കാത്തിരിപ്പിന് അർഹമായതാകണമെന്നില്ല.
ഇത് എന്തിനൊക്കെ അനുയോജ്യമാണ്
16 GB ശേഷിയുള്ള ഒരു ഉപകരണം ഇവയ്ക്ക് മികച്ചതാണ്:
