Chuyển đến nội dung chính

Cách champollion hoạt động

champollion dịch các tệp ngôn ngữ (locale) của ứng dụng chỉ bằng một lệnh duy nhất. Dưới đây là những gì diễn ra bên dưới hệ thống.

Quy trình xử lý (Pipeline)

Khi bạn chạy npx champollion sync, champollion sẽ thực thi một quy trình xử lý gồm sáu giai đoạn:

Các quyết định thiết kế cốt lõi:

  • Phát hiện thay đổi qua mã băm SHA-256. Champollion theo dõi từng giá trị nguồn bằng một mã băm trong .champollion.lock. Khi bạn cập nhật một chuỗi tiếng Anh, chỉ có khóa đó được dịch lại. Đây là lý do tại sao sync chạy rất nhanh trong các lần chạy tiếp theo — nó thực hiện lượng công việc tối thiểu.

  • Bộ nhớ đệm Bản dịch (Translation Memory caching). Trước khi thực hiện bất kỳ lệnh gọi API nào, champollion sẽ kiểm tra .champollion/tm.json để tìm các bản dịch đã được lưu trong bộ nhớ đệm (được định danh bằng văn bản nguồn + ngôn ngữ + phương thức). Trong một lần đồng bộ lại thông thường sau khi thay đổi một khóa, 142 khóa sẽ được lấy từ bộ nhớ đệm và chỉ có 1 khóa cần gọi API.

  • Cổng kiểm soát chất lượng trước khi ghi (Quality gate). Mỗi bản dịch đều phải vượt qua năm bước kiểm tra tự động (trống, lặp lại nguồn, lặp ảo giác, phình to độ dài, tuân thủ hệ chữ viết) trước khi được ghi vào tệp của bạn. Các lỗi thất bại sẽ được ghi nhật ký (log) chứ không bao giờ được chấp nhận một cách âm thầm.

  • Thử lại phân cấp khi thất bại (Retry cascade). Nếu một loạt (batch) bị lỗi (lỗi phân tích cú pháp JSON, hết thời gian gọi API), champollion sẽ thử lại với các loạt nhỏ dần: toàn bộ → một nửa → từng khóa riêng lẻ. Điều này giúp cô lập khóa gặp sự cố mà không làm nghẽn các khóa còn lại.

Các phương thức dịch

Champollion hỗ trợ bốn phương thức dịch, mỗi phương thức phù hợp với các tình huống khác nhau:

Phương thứcCách hoạt độngPhù hợp nhất cho
llmPrompt có cấu trúc gửi đến bất kỳ mô hình OpenRouter nàoCác ngôn ngữ có tài nguyên phong phú
llm-coachedCùng một prompt + quy tắc ngữ pháp, từ điển và lưu ý về phong cáchCác ngôn ngữ mà LLM thường mắc lỗi có thể dự đoán được
google-translateYêu cầu hàng loạt (batch request) đến Google Cloud Translation APICác ngôn ngữ tài nguyên cao có sự hỗ trợ tốt từ GT
apiHTTP POST đến endpoint của riêng bạnCác quy trình tùy chỉnh, các mô hình do cộng đồng kiểm soát

Các phương thức được cấu hình theo từng cặp ngôn ngữ. Bạn có thể sử dụng google-translate cho tiếng Pháp nhưng lại dùng llm-coached cho tiếng Plains Cree — mỗi cặp ngôn ngữ sẽ sử dụng phương thức hoạt động hiệu quả nhất cho nó.

Dữ liệu huấn luyện (Coaching Data)

Đối với các cặp ngôn ngữ llm-coached, dữ liệu huấn luyện cung cấp cho LLM kiến thức ngôn ngữ rõ ràng: các quy tắc ngữ pháp, thuật ngữ bắt buộc và tùy chọn phong cách. Thông tin này được đưa vào mỗi prompt dưới dạng ngữ cảnh có cấu trúc.

coaching/crk.json
{
"grammar_rules": ["Animate nouns take different plural forms than inanimate nouns"],
"dictionary": {"welcome": "ᑕᓂᓯ", "settings": "ᐃᑕᐢᑌᐘᐃᓇ"},
"style_notes": "Use Standard Roman Orthography (SRO) unless explicitly configured otherwise."
}

Dữ liệu huấn luyện là cơ chế chính để cải thiện chất lượng dịch thuật mà không cần tinh chỉnh (fine-tuning) mô hình. Thay đổi quy tắc → chạy lại đồng bộ (sync) → xem kết quả có cải thiện không. Quá trình thử nghiệm diễn ra tức thì.

Plugins

Plugin là các công thức dịch thuật được đóng gói sẵn cho các cặp ngôn ngữ cụ thể. Chúng là các tệp khai báo JSON — không phải mã nguồn — để chỉ dẫn cho champollion biết nên sử dụng phương thức nào, với cấu hình ra sao và chất lượng đã được đánh giá chuẩn (benchmark) như thế nào.

champollion plugin install ./crk-coached-v3/
champollion sync # uses the installed plugin for en→crk

Plugin giúp thu hẹp khoảng cách giữa nghiên cứu và thực tế triển khai: một phương thức đạt điểm cao trong MT Eval Arena có thể được đóng gói thành một plugin và triển khai tại đây.

Bức tranh toàn cảnh

champollion là một nửa của hệ sinh thái gồm hai phần:

  • MT Eval Arena — nơi các phương thức dịch thuật được phát triển và chứng minh bằng các bài đánh giá chuẩn (benchmarking) có thể tái lập
  • champollion — nơi các phương thức đã được chứng minh được triển khai để dịch nội dung thực tế

Eval Harness Bridge kết nối hai phần này với nhau. Một phương thức chứng minh được hiệu quả trong Arena sẽ được triển khai tại đây. Phản hồi từ người bản xứ trong môi trường thực tế sẽ giúp cải thiện phiên bản tiếp theo.


Tìm hiểu sâu hơn