Giải quyết lỗi mã hóa (encoding) khi benchmark LLM cục bộ

Tôi muốn xây dựng một công cụ để chuyển đổi và benchmark các mô hình LLM cục bộ. Tôi cũng đã thêm nhiều câu hỏi benchmark tiếng Hàn để kiểm tra chúng tốt hơn.

Mọi thứ đều hoạt động tốt cho đến khi tôi chạy benchmark. Tôi liên tục gặp lỗi này: UnicodeEncodeError: 'cp949' codec can't encode characters.

Tôi cứ ngỡ vấn đề nằm ở mã Python của mình. Tôi đã thử thay đổi cài đặt encoding sang utf-8. Tôi cũng thử giải mã các chuỗi thủ công. Mọi nỗ lực đều vô ích trong suốt nhiều giờ liền.

Vấn đề thực sự không nằm ở script của tôi. Worker LLM cục bộ đang cố gắng lưu các phản hồi của mô hình bằng encoding mặc định của hệ thống. Trên Windows, encoding này thường là CP949. Khi worker cố gắng lưu các ký tự tiếng Hàn bằng CP949, nó đã thất bại.

Cách khắc phục rất đơn giản. Tôi đã thay đổi worker để sử dụng utf-8 một cách rõ ràng khi lưu tệp.

Tôi cũng đã xây dựng một hệ thống tự động để quản lý quy trình này. Nó tuân theo các bước sau:

Thông qua quá trình tự động hóa này, tôi nhận thấy rằng Gemma2:2b hoạt động tốt hơn nhiều so với mô hình EXAONE đối với các tác vụ tiếng Hàn. Nó đưa ra các câu trả lời tự nhiên hơn và kết quả sáng tạo tốt hơn với tốc độ tương đương.

Bài học rút ra:

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

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi