Tôi đã dùng Local AI để clean data như thế nào?

Xin chào,
Chắc hẳn anh em nào từng xử lí data cũng đã từng có giai đoạn "trầm cảm" với việc xử lý data dạng text.
Ví dụ đơn giản như tách địa chỉ nhà, lọc số điện thoại từ văn bản chat, hay chuẩn hóa tên sản phẩm.
Thông thường tôi sẽ có hai cách:
- Dùng Regex: Cách này rất nhanh, nhưng cực khổ. Ngày nào viết regex xong đọc lại cũng muốn loạn cả não.
- Dùng API (như của ChatGPT, Gemini...): Cách này rất ngon, hiểu ngữ cảnh tốt. Nhưng vấn đề là Tiền (khi lượng data ngày càng lớn) và Privacy (không thể gửi thông tin nhạy cảm của khách hàng lên cloud được).
Đứng giữa hai vấn đề đó, mình quyết định tự build một giải pháp thứ ba: Vẫn dùng AI, nhưng cho chạy trên local.
Mình đã đóng gói nó thành một thư viện Python tên là loclean.
Cơ chế hoạt động của nó khác gì so với việc gọi API thông thường? Thay vì chỉ prompt cho AI và hy vọng nó trả lời đúng, mình sử dụng kỹ thuật Grammar Constrained Generation (thông qua Pydantic).
Tức là sao? Mình ép con AI (như con Phi hay Llama bản 4-bit) BẮT BUỘC nó phải nhả ra kết quả đúng format JSON mình định nghĩa. Nếu nó định "chém gió" ra text linh tinh, bộ sampler sẽ chặn lại ngay.
Kết quả:
- Chạy Offline 100%: Không cần internet, data nằm gọn trên máy, không sợ lộ PII.
- Chi phí = 0 (không tính tiền điện/phần cứng): Hoàn toàn tận dụng phần cứng có sẵn mà không còn cống tiền cho API.
- Tương thích: Mình đã làm cho nó hỗ trợ tốt với nhiều format data khác nhau (như parquet, csv,... )
Hiện tại tool vẫn đang trong giai đoạn phát triển, mình rất mong nhận được feedback của cộng đồng về hiệu năng cũng như các case sử dụng thực tế.
Mời mọi người ghé qua GitHub repo dùng thử và cho mình xin ý kiến nhé!
Link GitHub: Github
All rights reserved