লোকাল LLM বেঞ্চমার্কিংয়ে এনকোডিং ত্রুটি সমাধান করা

আমি লোকাল LLM মডেলগুলো পরিবর্তন এবং বেঞ্চমার্ক করার জন্য একটি টুল তৈরি করতে চেয়েছিলাম। সেগুলোকে আরও ভালোভাবে পরীক্ষা করার জন্য আমি অনেক কোরিয়ান বেঞ্চমার্ক প্রশ্নও যোগ করেছি।

বেঞ্চমার্ক চালানোর আগ পর্যন্ত সবকিছু ঠিকঠাক কাজ করছিল। কিন্তু এরপর আমি বারবার এই ত্রুটিটি দেখতে পাচ্ছিলাম: UnicodeEncodeError: 'cp949' codec can't encode characters.

আমি ভেবেছিলাম সমস্যাটি আমার Python কোডে। আমি আমার এনকোডিং সেটিংস পরিবর্তন করে utf-8 করার চেষ্টা করেছি। আমি ম্যানুয়ালি স্ট্রিংগুলো ডিকোড করার চেষ্টাও করেছি। ঘণ্টার পর ঘণ্টা চেষ্টা করেও কোনো কাজ হয়নি।

আসল সমস্যাটি আমার স্ক্রিপ্টে ছিল না। লোকাল LLM ওয়ার্কারটি সিস্টেমের ডিফল্ট এনকোডিং ব্যবহার করে মডেলের রেসপন্সগুলো সেভ করার চেষ্টা করছিল। Windows-এ এটি প্রায়শই CP949 হয়। যখন ওয়ার্কারটি CP949 ব্যবহার করে কোরিয়ান অক্ষরগুলো সেভ করার চেষ্টা করছিল, তখন সেটি ব্যর্থ হয়।

সমাধানটি ছিল সহজ। আমি ফাইল সেভ করার সময় ওয়ার্কারটিকে স্পষ্টভাবে utf-8 ব্যবহার করতে বলে পরিবর্তন করে দিয়েছি।

আমি এই প্রক্রিয়াটি পরিচালনা করার জন্য একটি স্বয়ংক্রিয় সিস্টেমও তৈরি করেছি। এটি নিচের ধাপগুলো অনুসরণ করে:

এই অটোমেশনের মাধ্যমে আমি দেখতে পেয়েছি যে, কোরিয়ান ভাষার কাজের জন্য Gemma2:2b মডেলটি EXAONE মডেলের চেয়ে অনেক ভালো পারফর্ম করে। এটি একই গতিতে আরও স্বাভাবিক উত্তর এবং উন্নত সৃজনশীল ফলাফল প্রদান করে।

যা শিখলাম:

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

ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi