رفع خطاهای انکودینگ (Encoding) در بنچمارک‌گیری مدل‌های محلی LLM

قصد داشتم ابزاری برای جابه‌جایی و بنچمارک‌گیری مدل‌های محلی LLM بسازم. همچنین برای تست بهتر آن‌ها، سوالات بنچمارک کره‌ای زیادی را اضافه کردم.

همه چیز خوب کار می‌کرد تا اینکه بنچمارک‌ها را اجرا کردم. مدام با این خطا مواجه می‌شدم: UnicodeEncodeError: 'cp949' codec can't encode characters.

فکر کردم مشکل از کد پایتون من است. سعی کردم تنظیمات انکودینگ را به utf-8 تغییر دهم. سعی کردم رشته‌ها را به صورت دستی دیکود کنم. ساعت‌ها تلاش کردم اما هیچ‌کدام جواب نداد.

مشکل اصلی اسکریپت من نبود. ورکر (worker) مدل محلی سعی می‌کرد پاسخ‌های مدل را با استفاده از انکودینگ پیش‌فرض سیستم ذخیره کند. در ویندوز، این انکودینگ اغلب 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