Skip to content

hoivd/Legal_Retrieval

Repository files navigation

Legal Document Retrieval - SoICT Hackathon 2024

Đâ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.

🧾 Nhiệm vụ

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

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

⚙️ Phương pháp

Pipeline của chúng tôi gồm 2 bước:

  1. Retrieval — sử dụng Bi-Encoder: vietnamese-bi-encoder
  2. Re-ranking — sử dụng Cross-Encoder: itdainb/PhoRanker

Pipeline

Chi tiết:

  • 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.

Lưu ý:

  • Tập training được chia nhỏ thành traineval để 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, privatekhô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:

  • data
  • result
  • saved_model

🚀 Reproduce

1. Data processing:

$python data_processing.py

2. Train BiEncoder:

$python train_bi.py
#$python bm25.py (Optinal) Thử nghiệm BM25:

3. Retrieval candiates:

$python predict_bi.py --train

4. Get negative examples for CrossEncoder training:

$python negative_mining.py

5. Train CrossEncoder

$python train_cross.py

6. Re-rank candidates by CrossEncoder:

$python predict_cross.py

🚀 Hướng dẫn sử dụng

Bạ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?"

📬 Liên hệ

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages