Вирішення помилок кодування під час бенчмаркінгу локальних LLM

Я хотів створити інструмент для перемикання та бенчмаркінгу локальних моделей LLM. Також я додав багато корейських тестових запитань, щоб краще їх протестувати.

Все працювало добре, поки я не запустив бенчмарки. Я постійно бачив цю помилку: UnicodeEncodeError: 'cp949' codec can't encode characters.

Я думав, що проблема у моєму Python-коді. Я намагався змінити налаштування кодування на utf-8. Я намагався декодувати рядки вручну. Протягом кількох годин нічого не допомагало.

Справжня проблема була не в моєму скрипті. Воркер локальної LLM намагався зберегти відповіді моделі, використовуючи системне кодування за замовчуванням. У Windows це часто CP949. Коли воркер намагався зберегти корейські символи за допомогою CP949, ставалася помилка.

Виправлення було простим. Я налаштував воркер так, щоб він явно використовував utf-8 під час збереження файлів.

Я також створив автоматизовану систему для керування цим процесом. Вона виконує такі кроки: