𝗥𝗲𝘀𝗼𝗹𝘃𝗶𝗻𝗴 𝗘𝗻𝗰𝗼𝗱𝗶𝗻𝗴 𝗘𝗿𝗿𝗼𝗿𝘀 𝗶𝗻 𝗟𝗼𝗰𝗮𝗹 𝗟𝗟𝗠 𝗕𝗲𝗻𝗰𝗵𝗺𝗮𝗿𝗸𝗶𝗻𝗴
ലോക്കൽ LLM മോഡലുകൾ മാറാനും അവ ബെഞ്ച്മാർക്ക് ചെയ്യാനും സഹായിക്കുന്ന ഒരു ടൂൾ നിർമ്മിക്കാൻ ഞാൻ ആഗ്രഹിച്ചു. അവയെ കൂടുതൽ നന്നായി പരിശോധിക്കുന്നതിനായി ഞാൻ നിരവധി കൊറിയൻ ബെഞ്ച്മാർക്ക് ചോദ്യങ്ങളും ഉൾപ്പെടുത്തി.
ബെഞ്ച്മാർക്കുകൾ പ്രവർത്തിപ്പിക്കുന്നത് വരെ എല്ലാം ശരിയായിരുന്നു. എന്നാൽ എനിക്ക് ഈ പിശക് (error) വീണ്ടും വീണ്ടും കാണാൻ കഴിഞ്ഞു:
UnicodeEncodeError: 'cp949' codec can't encode characters.
പ്രശ്നം എന്റെ പൈത്തൺ (Python) കോഡിലാണെന്നാണ് ഞാൻ കരുതിയത്. എൻകോഡിംഗ് സെറ്റിംഗുകൾ utf-8 ലേക്ക് മാറ്റാൻ ഞാൻ ശ്രമിച്ചു. സ്ട്രിംഗുകൾ മാനുവലായി ഡീകോഡ് ചെയ്യാൻ ശ്രമിച്ചു. മണിക്കൂറുകളോളം ശ്രമിച്ചിട്ടും ഒന്നും ഫലിച്ചില്ല.
യഥാർത്ഥ പ്രശ്നം എന്റെ സ്ക്രിപ്റ്റിലായിരുന്നില്ല. ലോക്കൽ LLM വർക്കർ സിസ്റ്റത്തിന്റെ ഡിഫോൾട്ട് എൻകോഡിംഗ് ഉപയോഗിച്ചാണ് മോഡൽ മറുപടികൾ സേവ് ചെയ്യാൻ ശ്രമിച്ചിരുന്നത്. വിൻഡോസിൽ (Windows), ഇത് പലപ്പോഴും CP949 ആണ്. വർക്കർ കൊറിയൻ അക്ഷരങ്ങൾ CP949 ഉപയോഗിച്ച് സേവ് ചെയ്യാൻ ശ്രമിച്ചപ്പോൾ അത് പരാജയപ്പെട്ടു.
പരിഹാരം ലളിതമായിരുന്നു. ഫയലുകൾ സേവ് ചെയ്യുമ്പോൾ utf-8 വ്യക്തമായി (explicitly) ഉപയോഗിക്കാൻ ഞാൻ വർക്കറിനെ മാറ്റി.
ഈ പ്രക്രിയ നിയന്ത്രിക്കുന്നതിനായി ഞാൻ ഒരു ഓട്ടോമേറ്റഡ് സിസ്റ്റവും നിർമ്മിച്ചു. ഇത് താഴെ പറയുന്ന ഘട്ടങ്ങൾ പിന്തുടരുന്നു:
- ഉദ്യോഗാർത്ഥി മോഡലുകളെ (candidate models) ഡൗൺലോഡ് ചെയ്യുന്നു.
- നിലവിലെ ഏറ്റവും മികച്ച മോഡലിൽ ബെഞ്ച്മാർക്കുകൾ നടത്തുന്നു.
- എല്ലാ പുതിയ മോഡലുകളെയും പരിശോധിക്കുന്നു.
- സ്കോറുകൾ അടിസ്ഥാനമാക്കി ഏറ്റവും മികച്ച മോഡലിനെ തിരഞ്ഞെടുക്കുകയും ശുപാർശ ചെയ്യുകയും ചെയ്യുന്നു.
ഈ ഓട്ടോമേഷനിലൂടെ, കൊറിയൻ ഭാഷാ ജോലികൾക്കായി EXAONE മോഡലിനേക്കാൾ മികച്ച രീതിയിൽ Gemma2:2b പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഞാൻ കണ്ടെത്തി. സമാനമായ വേഗതയിൽ തന്നെ ഇത് കൂടുതൽ സ്വാഭാവികമായ ഉത്തരങ്ങളും മികച്ച സർഗ്ഗാത്മകമായ ഫലങ്ങളും നൽകുന്നു.
പാഠങ്ങൾ:
- ഒരിക്കലും സിസ്റ്റത്തിന്റെ ഡിഫോൾട്ട് എൻകോഡിംഗിനെ മാത്രം ആശ്രയിക്കരുത്. ഫയൽ I/O-യ്ക്ക് എപ്പോഴും
utf-8ഉപയോഗിക്കുക. - കൊറിയൻ ടെക്സ്റ്റുമായി
json.dumpഉപയോഗിക്കുമ്പോൾ,ensure_ascii=Falseഉപയോഗിക്കുകയുംutf-8വ്യക്തമാക്കുകയും ചെയ്യുക. - എൻകോഡിംഗ് പിശകുകൾ കാണുകയാണെങ്കിൽ, നിങ്ങളുടെ കോഡ് മാത്രം നോക്കാതെ മുഴുവൻ സിസ്റ്റവും ഫയൽ സേവിംഗ് ലോജിക്കും പരിശോധിക്കുക.
- നിങ്ങളുടെ പ്രത്യേക ആവശ്യങ്ങൾക്കായി ഏറ്റവും മികച്ച മോഡലുകൾ കണ്ടെത്താൻ ഓട്ടോമേഷൻ ഉപയോഗിക്കുക.
Optional learning community: https://t.me/GyaanSetuAi