| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | IOAI 2025 — Chameleon | 100 (p) | 1.0s | 256M |
| 2 | IOAI 2025 — Dự báo thời tiết qua ảnh vệ tinh | 100 (p) | 1.0s | 256M |
| 3 | IOAI 2025 — Radar (Vòng At-Home / Practice) | 100 (p) | 1.0s | 256M |

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ò:
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.
Theo quy định gốc của IOAI 2025:
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.
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ệp descriptions.json ánh xạ mỗi id sang 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.Nộp một tệp ZIP chứa duy nhất test_answer.csv với cấu trúc sau:
test_set.json.options củ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).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ố:
Đ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.
Đề 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.

Ảnh vệ tinh GOES-16 và mặt nạ mưa MRMS tương ứng (đầu vào và nhãn cho mô hình).
Bạn là học sinh thực tập tại phòng thí nghiệm khí hậu, làm việc cùng nhóm các nhà khoa học muốn dự báo mưa chỉ dựa vào ảnh vệ tinh (radar và cảm biến mặt đất tốn kém, khó triển khai ở vùng xa). Ý tưởng: huấn luyện mô hình phát hiện mưa trực tiếp từ ảnh vệ tinh GOES-16, kết hợp các thông tin bổ trợ như góc mặt trời, thời điểm và vị trí.
Cụ thể, bạn cần xây dựng mô hình phân đoạn ngữ nghĩa nhị phân theo từng pixel: với mỗi pixel, mô hình phải dự đoán pixel đó có mưa hay không. Đầu vào gồm ảnh đa phổ 16 kênh từ GOES-16 cùng metadata (vĩ độ, kinh độ, thời gian, góc cao mặt trời); đầu ra là một mặt nạ nhị phân mưa / không mưa cùng kích thước với ảnh. Đề bài có cung cấp một baseline U-Net pretrained để bạn xuất phát.
ĐƯỢC PHÉP: tinh chỉnh hoặc thay đổi kiến trúc baseline U-Net; sử dụng metadata; thay đổi logic suy luận (ngưỡng, hậu xử lý, ensemble…).
KHÔNG được phép: dùng tập dữ liệu bên ngoài; dùng mô hình pretrained khác ngoài baseline được cung cấp; tham khảo bài báo / lời giải về dự báo mưa trên Internet (bài này chuẩn bị cho vòng on-site).
Tập dữ liệu gồm các quan sát vệ tinh trong năm 2024:
mưa / không mưa cho từng pixel.Tập huấn luyện thiên về cảnh có mưa (chỉ giữ patch có ≥3% pixel có mưa). Tập validation phản ánh điều kiện thực tế nên nhiều patch có rất ít hoặc không có mưa; một số mẫu còn cố tình bị thiếu/lỗi ở vài kênh phổ để mô phỏng sự cố tín hiệu.
LQDOJ không đính kèm dữ liệu huấn luyện và test (chỉ giữ đáp án để chấm). Tải dữ liệu từ mirror Hugging Face https://huggingface.co/datasets/JettChenT/ioai-weather-satellite hoặc Bohrium https://bohrium.dp.tech/competitions/2103745032?tab=introduce. Mã nguồn baseline: https://github.com/IOAI-official/IOAI-2025/blob/main/At-Home-Round/Weather/Weather.ipynb.
File đính kèm trên LQDOJ: ioai25weather_baseline.ipynb (notebook baseline đầy đủ) và figures.zip (hình minh hoạ).
Nộp một file .zip chứa duy nhất file test_answer.npz. File test_answer.npz phải có đúng hai mảng numpy:
Y_pred_128: boolean (hoặc 0/1), shape (51, 128, 128) — mặt nạ dự đoán cho 51 mẫu test 128×128.Y_pred_256: boolean (hoặc 0/1), shape (183, 256, 256) — mặt nạ dự đoán cho 183 mẫu test 256×256.Tổng cộng 234 patch test (51 + 183). Thứ tự các mẫu phải khớp với thứ tự gốc của tập test (xem code mẫu trong notebook baseline).
Điểm cuối cùng tính trên toàn bộ 234 patch (gộp cả hai độ phân giải):
Final = (Mean Dice + Image-level Rain Accuracy) / 2
Dice = 2 × |giao| / (|dự đoán| + |thật|), lấy trung bình trên các patch.trong ảnh có mưa / không có mưa khớp ground truth.Mục tiêu là cải thiện điểm Final so với baseline mà không được nhìn vào nhãn của tập test.
Nguồn đề: IOAI 2025 — At-Home Round — Satellite Weather Forecasting (https://github.com/IOAI-official/IOAI-2025/tree/main/At-Home-Round/Weather). GOES-16 ABI: NOAA / NESDIS; MRMS: NOAA NSSL — đều công khai.

Khái niệm khoảng cách (range), góc phương vị (azimuth), góc ngẩng (elevation) và vận tốc (velocity) trong radar.

Trực quan hóa một mẫu radar trong tập huấn luyện: 6 heatmap đặc trưng + bản đồ nhãn.
Radar phát tín hiệu, nhận phản xạ từ vật thể trong môi trường, rồi suy ra hướng, khoảng cách và vận tốc — nền tảng của nhiều ứng dụng như xe tự lái. Khó khăn chính là nhiễu và phản xạ từ vật không phải mục tiêu. Nhiệm vụ của bạn là dùng AI phân tích tín hiệu radar và xác định tại mỗi pixel có vật thể hay không.
Đây là bài toán phân đoạn nhị phân trên lưới 50 × 181: mỗi pixel dự đoán nền hay vật thể.
| Nhãn | Ý nghĩa |
|---|---|
0 |
Nền (background) |
1 |
Vật thể (object) |
Trong đó 50 là số range bins (khoảng cách), 181 là số angular bins (phủ góc từ \(-90^\circ\) đến \(+90^\circ\)).
Mỗi mẫu trong tập huấn luyện gốc là tensor (7, 50, 181): 6 kênh đầu là các heatmap radar, kênh thứ 7 là nhãn ground-truth.
0 = nền, 1 = vật thể), ở dạng range-azimuthStatic nhấn mạnh phản xạ từ vật đứng yên, dynamic từ vật đang chuyển động. Các giá trị heatmap đã được chuẩn hoá, không cần đổi đơn vị.
Lưu ý: các tệp .pt đính kèm trên LQDOJ chỉ có 6 kênh đặc trưng (kênh nhãn đã bị loại bỏ để chấm kín), nên tensor nạp được có hình dạng (6, 50, 181).
Các tệp đính kèm:
validation_features.zip — 500 tệp .pt của tập validation (chỉ đặc trưng). Dùng cùng val_answer.csv để tự đánh giá ở máy của bạn.val_answer.csv — nhãn thật của tập validation, đúng định dạng CSV mà bài nộp yêu cầu — vừa dùng chấm thử cục bộ, vừa làm mẫu file nộp.testing_features.zip — 500 tệp .pt của tập test (chỉ đặc trưng). Đây là phần bạn cần dự đoán và nộp.ioai25radarpre_baseline.ipynb — notebook baseline để bắt đầu.figures.zip — các hình minh họa trong đề gốc.Tập huấn luyện (~1800 mẫu, ~821 MB) quá lớn để lưu trên LQDOJ; tải tại repo chính thức: https://github.com/IOAI-official/IOAI-2025/tree/main/At-Home-Round/Radar.
Nộp một tệp .zip chứa đúng một tệp test_answer.csv, với:
filename, pixel_0, pixel_1, ..., pixel_9049 (tổng cộng 9050 = 50 × 181 cột pixel, cộng cột filename)..pt trong testing_features.zip. Cột filename là tên tệp .pt (giữ nguyên); các cột pixel là dự đoán nhị phân (0 hoặc 1) cho từng pixel của lưới 50 × 181, duyệt theo thứ tự hàng (pixel_k ứng pixel hàng k // 181, cột k % 181).Cấu trúc CSV này trùng bài Radar vòng cá nhân, nên cùng pipeline xuất file có thể dùng lại.
Điểm là độ chính xác pixel có trọng số, tính độc lập từng pixel:
0) dự đoán đúng được 1 điểm.1) dự đoán đúng được 5000 điểm.0 điểm.Tổng điểm sau đó được chuẩn hoá bằng cách chia cho điểm tối đa lý thuyết (toàn bộ pixel đoán đúng), nên điểm cuối nằm trong \([0, 1]\).
Hệ số 5000 lớn hơn nhiều so với 1, nên một mô hình chỉ đoán toàn 0 sẽ ăn điểm rất thấp; ngược lại, đoán đúng các pixel có vật thể (vốn rất hiếm) sẽ kéo điểm lên đáng kể.
Nguồn đề gốc: https://github.com/IOAI-official/IOAI-2025/tree/main/At-Home-Round/Radar.