Đây là solution đạt Top 3 tại cuộc thi Legal Document Retrieval - SoICT Hackathon 2024, với MRR@10 = 0.7754 trên tập private test.
Truy vấn và tìm kiếm thông tin pháp luật từ các văn bản tiếng Việt.
Dữ liệu được cung cấp bởi ban tổ chức bao gồm 3 tập:
- Training data: 119,456 cặp (truy vấn, văn bản liên quan) — dùng để huấn luyện mô hình.
- Public test: 10,000 truy vấn — dùng để đánh giá công khai.
- Private test: 50,000 truy vấn — dùng để đánh giá cuối cùng trên hệ thống.
Tiêu chí đánh giá: MRR@10
Pipeline của chúng tôi gồm 2 bước:
- Retrieval — sử dụng Bi-Encoder:
vietnamese-bi-encoder - Re-ranking — sử dụng Cross-Encoder:
itdainb/PhoRanker
- Vì dữ liệu chỉ có dạng Question-Answer, việc fine-tune dễ gây bias.
- Với Bi-Encoder, chúng tôi sử dụng MultiNegativeRanking loss.
- Với Cross-Encoder, chúng tôi áp dụng negative mining để tăng chất lượng mô hình.
- Tập training được chia nhỏ thành
trainvàevalđể tự đánh giá do hạn chế số lần nộp bài. - Sự khác biệt giữa các tập
eval,public,privatelà không đáng kể. - Phương pháp không dùng ensemble nhưng vẫn đạt hiệu quả cao.
- Dễ dàng mở rộng cho các dataset khác chỉ có dạng QA.
Do kích thước mô hình và cơ sở dữ liệu khá lớn, bạn cần tải thủ công các tệp từ liên kết sau:
🔗 Tải xuống tại đây
Sau khi tải về, vui lòng thay thế các thư mục gốc của dự án bằng các thư mục tương ứng:
dataresultsaved_model
$python data_processing.py$python train_bi.py
#$python bm25.py (Optinal) Thử nghiệm BM25:$python predict_bi.py --train$python negative_mining.py$python train_cross.py$python predict_cross.pyBạn có thể đặt câu hỏi liên quan đến pháp luật Việt Nam bằng cách sử dụng dòng lệnh như sau:
$ python run.py --question "Tội bán hàng giả bị xử lý như thế nào?"Nếu bạn có bất kỳ thắc mắc hoặc góp ý nào, vui lòng liên hệ qua email:
📧 22520490@gm.uit.edu.vn