𝗥𝗲𝘀𝗼𝗹𝘃𝗶𝗻𝗴 𝗘𝗻𝗰𝗼𝗱𝗶𝗻𝗴 𝗘𝗿𝗿𝗼𝗿𝘀 𝗶𝗻 𝗟𝗼𝗰𝗮𝗹 𝗟𝗟𝗠 𝗕𝗲𝗻𝗰𝗵𝗺𝗮𝗿𝗸𝗶𝗻𝗴 -> ਲੋਕਲ LLM ਬੈਂਚਮਾਰਕਿੰਗ ਵਿੱਚ ਐਨਕੋਡਿੰਗ ਗਲਤੀਆਂ (Encoding Errors) ਨੂੰ ਸੁਲਝਾਉਣਾ

ਮੈਂ ਲੋਕਲ LLM ਮਾਡਲਾਂ ਨੂੰ ਬਦਲਣ ਅਤੇ ਉਹਨਾਂ ਦੀ ਬੈਂਚਮਾਰਕਿੰਗ ਕਰਨ ਲਈ ਇੱਕ ਟੂਲ ਬਣਾਉਣਾ ਚਾਹੁੰਦਾ ਸੀ। ਮੈਂ ਉਹਨਾਂ ਨੂੰ ਬਿਹਤਰ ਤਰੀਕੇ ਨਾਲ ਟੈਸਟ ਕਰਨ ਲਈ ਕਈ ਕੋਰੀਅਨ ਬੈਂਚਮਾਰਕ ਸਵਾਲ ਵੀ ਜੋੜੇ।

ਬੈਂਚਮਾਰਕ ਚਲਾਉਣ ਤੱਕ ਸਭ ਕੁਝ ਠੀਕ ਚੱਲ ਰਿਹਾ ਸੀ। ਪਰ ਮੈਨੂੰ ਵਾਰ-ਵਾਰ ਇਹ ਗਲਤੀ ਦਿਖਾਈ ਦੇ ਰਹੀ ਸੀ: UnicodeEncodeError: 'cp949' codec can't encode characters.

ਮੈਨੂੰ ਲੱਗਿਆ ਕਿ ਸਮੱਸਿਆ ਮੇਰੇ Python ਕੋਡ ਵਿੱਚ ਹੈ। ਮੈਂ ਆਪਣੀਆਂ ਐਨਕੋਡਿੰਗ ਸੈਟਿੰਗਾਂ ਨੂੰ utf-8 ਵਿੱਚ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਮੈਂ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਮੈਨੂਅਲੀ ਡੀਕੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਕਈ ਘੰਟਿਆਂ ਤੱਕ ਕੁਝ ਵੀ ਕੰਮ ਨਹੀਂ ਕਰਿਆ।

ਅਸਲ ਸਮੱਸਿਆ ਮੇਰਾ ਸਕ੍ਰਿਪਟ ਨਹੀਂ ਸੀ। ਲੋਕਲ LLM ਵਰਕਰ ਸਿਸਟਮ ਦੀ ਡਿਫੌਲਟ ਐਨਕੋਡਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਾਡਲ ਦੇ ਜਵਾਬਾਂ ਨੂੰ ਸੇਵ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਸੀ। Windows 'ਤੇ, ਇਹ ਅਕਸਰ CP949 ਹੁੰਦੀ ਹੈ। ਜਦੋਂ ਵਰਕਰ ਨੇ CP949 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੋਰੀਅਨ ਅੱਖਰਾਂ ਨੂੰ ਸੇਵ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਤਾਂ ਇਹ ਫੇਲ੍ਹ ਹੋ ਗਿਆ।

ਇਸਦਾ ਹੱਲ ਸਧਾਰਨ ਸੀ। ਮੈਂ ਫਾਈਲਾਂ ਸੇਵ ਕਰਦੇ ਸਮੇਂ ਵਰਕਰ ਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ utf-8 ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਬਦਲ ਦਿੱਤਾ।

ਮੈਂ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਇੱਕ ਆਟੋਮੇਟਡ ਸਿਸਟਮ ਵੀ ਬਣਾਇਆ। ਇਹ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:

ਇਸ ਆਟੋਮੇਸ਼ਨ ਰਾਹੀਂ, ਮੈਂ ਪਾਇਆ ਕਿ ਕੋਰੀਅਨ ਭਾਸ਼ਾ ਦੇ ਕੰਮਾਂ ਲਈ Gemma2:2b, EXAONE ਮਾਡਲ ਨਾਲੋਂ ਕਿਤੇ ਬਿਹਤਰ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦਾ ਹੈ। ਇਹ ਸਮਾਨ ਰਫ਼ਤਾਰ 'ਤੇ ਵਧੇਰੇ ਕੁਦਰਤੀ ਜਵਾਬ ਅਤੇ ਬਿਹਤਰ ਰਚਨਾਤਮਕ ਨਤੀਜੇ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।

ਸਿੱਖੇ ਗਏ ਸਬਕ:

Source: https://dev.to/junhee916/resolving-cp949-errors-in-local-llm-benchmarking-and-building-an-automatic-model-recommendation-128g

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