IOAI 2025 — Chameleon
Xem PDFMô tả

Ví dụ gợi ý: chuỗi biểu tượng này gợi ý từ bí mật "fire station" (trạm cứu hỏa).

Cùng các biểu tượng nhưng đảo thứ tự lại gợi ý "firefighter" (lính cứu hỏa) -- thứ tự là có nghĩa.
Chameleon là trò chơi đoán từ trong đó người chơi truyền đạt ý tưởng qua các biểu tượng (icon). Có hai vai trò:
- Người ra gợi ý (Clue-Giver) chọn một từ bí mật (một từ hoặc cụm từ), rồi tạo gợi ý bằng một chuỗi biểu tượng có thứ tự từ kho biểu tượng dùng chung; không được nói hoặc viết.
- Người đoán (Guesser) nhìn chuỗi biểu tượng và một danh sách 100 phương án (đảm bảo chứa từ bí mật), rồi xuất ra danh sách xếp hạng tối đa 10 dự đoán.
Thứ tự biểu tượng là có nghĩa: biểu tượng đầu tiên thường biểu diễn ý chính của từ bí mật, các biểu tượng sau cung cấp ngữ cảnh bổ sung. Cùng một biểu tượng có thể mang ý nghĩa khác tùy ngữ cảnh — ví dụ biểu tượng "trái tim" có thể gợi tới ống nghe (dụng cụ bác sĩ nghe tim) hoặc thây ma (nhân vật vừa chết vừa sống).
Nhiệm vụ của bạn là xây dựng chương trình AI đóng vai Người đoán: cho gợi ý và 100 phương án, xuất ra danh sách xếp hạng tối đa 10 dự đoán. Điểm cao hơn nếu từ bí mật ở vị trí càng đầu danh sách.
Ràng buộc về mô hình
Theo quy định gốc của IOAI 2025:
- Lời giải phải sử dụng mô hình có dưới 1 tỷ tham số (xấp xỉ 4 GB bộ nhớ).
- Không được gọi bất kỳ API mô hình bên ngoài nào tại thời điểm suy luận (inference time).
- Trong giai đoạn phát triển và huấn luyện, bạn được phép sử dụng các mô hình tiền huấn luyện (pre-trained), nhưng lời giải nộp lên phải độc lập (self-contained).
Trên LQDOJ, hệ thống chấm không kiểm tra kích thước mô hình — đây là quy định kiểu honour-system, mong các bạn tự giác tuân thủ tinh thần của bài.
Dữ liệu
Các tệp dữ liệu đính kèm:
hint_icons.zip— chứa 118 biểu tượng dạng JPEG (<id>.jpg) cùng tệpdescriptions.jsonánh xạ mỗiidsang phần mô tả văn bản của biểu tượng.takehome_validation.json— 20 ví dụ kèm nhãn để bạn làm quen với định dạng.validation_set.json— 79 truy vấn validation, có nhãn, dùng để đánh giá lời giải tại chỗ.test_set.json— 79 truy vấn test, KHÔNG có nhãn. Đây là tập bạn cần trả lời.
Mỗi mục trong các tệp validation/test có hai trường:
hints: danh sách số nguyên — id các biểu tượng theo đúng thứ tự Người ra gợi ý chỉ ra.options: danh sách 100 chuỗi là các từ/cụm từ ứng cử cho từ bí mật (đảm bảo từ bí mật nằm trong danh sách này).
Ngoài ra còn có:
ioai25chameleon_baseline.ipynb— notebook baseline (sentence-transformers + cosine similarity, có ví dụ fine-tune cơ bản) để bạn bắt đầu.figures.zip— các hình minh họa của đề bài gốc.
Bài nộp
Nộp một tệp ZIP chứa duy nhất test_answer.csv với cấu trúc sau:
- Đúng 79 dòng, không có dòng tiêu đề, theo đúng thứ tự các truy vấn trong
test_set.json. - Mỗi dòng gồm 10 dự đoán ngăn cách bởi dấu phẩy, xếp hạng từ khả năng cao nhất tới thấp nhất.
- Mỗi dự đoán phải trùng khớp một chuỗi trong
optionscủa truy vấn tương ứng. So sánh thực hiện theo kiểu không phân biệt hoa thường (case-insensitive).
Tiêu chí chấm
Với mỗi truy vấn, hệ thống tính điểm bằng tổ hợp có trọng số của hai chỉ số:
- Hits@10: bằng 1 nếu từ bí mật xuất hiện trong 10 dự đoán, ngược lại bằng 0.
- nDCG@10: nếu từ bí mật xuất hiện ở vị trí thứ \(i\) (đánh số từ 1) thì điểm là \(\dfrac{1}{\log_2(i+1)}\) (ví dụ: hạng 1 → 1.00, hạng 2 → ~0.63, hạng 4 → ~0.43, hạng 10 → ~0.29). Nếu không có trong danh sách thì bằng 0.
Điểm cho mỗi truy vấn:
Điểm tổng là trung bình cộng điểm trên toàn bộ 79 truy vấn của tập test.
Nguồn
Đề bài lấy từ vòng At-Home Round của IOAI 2025: https://github.com/IOAI-official/IOAI-2025/tree/main/At-Home-Round/Chameleon.
Kỳ thi:
- IOAI 2025 — Practice (At-Home Round) (2 Tháng bảy, 2025)
Bình luận