| --- |
| language: |
| - en |
| - vi |
| library_name: pytorch |
| tags: |
| - token-classification |
| - language-identification |
| - vietnamese |
| - english |
| - qwen3 |
| license: apache-2.0 |
| base_model: Qwen/Qwen3-14B |
| --- |
| |
| # LLM Language Intent |
|
|
| Checkpoint PyTorch để nhận diện ngôn ngữ **English (`en`)** và **Vietnamese |
| (`vi`)** cho từng token trong văn bản sinh bởi `Qwen/Qwen3-14B`. |
|
|
| Đây không phải là causal language model độc lập. Checkpoint gồm ba linear |
| classifier hoạt động trên hidden states của Qwen3-14B tại các layer `-1`, `-2` |
| và `-3`; nhãn cuối cùng được chọn bằng hard majority vote. |
|
|
| ## Kết quả |
|
|
| | Split | Hard-vote accuracy | |
| | --- | ---: | |
| | Validation | 94.44% | |
| | Test | 97.64% | |
|
|
| Các metric trên được tính trên tập token test nội bộ. Chúng không thay thế cho |
| đánh giá trên dữ liệu thực tế hoặc các miền văn bản khác. |
|
|
| ## Nội dung repository |
|
|
| - `best_model.pt`: checkpoint classifier tốt nhất. |
| - `train_summary.json`: kết quả validation và test đã lưu. |
|
|
| ## Cách dùng |
|
|
| Checkpoint yêu cầu code inference của dự án cùng base model `Qwen/Qwen3-14B` |
| hoặc bản Qwen3-14B 4-bit tương thích. Cài dependencies của dự án, sau đó tải |
| checkpoint về thư mục `checkpoints/`: |
|
|
| ```bash |
| hf download luvox-ai/llm-language-intent best_model.pt \ |
| --local-dir checkpoints |
| |
| hf download luvox-ai/llm-language-intent train_summary.json \ |
| --local-dir checkpoints |
| ``` |
|
|
| Từ repository mã nguồn, chạy inference: |
|
|
| ```bash |
| python inference.py \ |
| --model-path /path/to/Qwen3-14B \ |
| --checkpoint-path checkpoints/best_model.pt \ |
| --prompt "Xin chào, how are you?" |
| ``` |
|
|
| Lệnh in ra nội dung được sinh cùng nhãn `en`/`vi`, confidence theo tỷ lệ phiếu, |
| và kết quả riêng của từng layer. Môi trường cần CUDA, PyTorch CUDA và |
| BitsAndBytes để chạy Qwen3-14B 4-bit. |
|
|
| ## Định dạng checkpoint |
|
|
| `best_model.pt` được lưu bằng `torch.save` với các trường: |
|
|
| - `model_state_dict`: trọng số của ba linear classifier. |
| - `config`: `input_dim=5120`, `layer_indices=[-1, -2, -3]`, hai lớp, |
| `aggregation=hard_vote`. |
| - `labels`: `english=0`, `vietnamese=1`. |
| - `metrics`: validation metrics tại thời điểm chọn checkpoint. |
|
|
| Chỉ tải checkpoint từ nguồn tin cậy vì `torch.load` có thể thực thi mã tùy ý |
| khi mở các file pickle không đáng tin cậy. |
|
|
| ## Hạn chế |
|
|
| - Nhãn dự đoán ở mức token, nên tokenization có thể làm ranh giới từ không |
| trùng hoàn toàn với văn bản hiển thị. |
| - Checkpoint được huấn luyện cho hidden-size 5120 và các hidden layer nêu trên; |
| không dùng trực tiếp được với model có kiến trúc khác. |
| - Độ chính xác có thể giảm với ngôn ngữ khác, tên riêng, ký hiệu, hoặc dạng |
| viết không chuẩn. |
|
|