Hai cổng và hai ngân hàng câu hỏi
Chuẩn đang chạy trên tokyo.conan.school từ 28.08.2026, thay cho cơ chế "ba vòng 95%" cũ.
Hai cổng, cố ý khác nhau
| Điều kiện | Ý nghĩa | |
|---|---|---|
| Mở Unit sau | Làm xong quiz chốt của mọi bài trong Unit trước. Không có ngưỡng điểm. | Đi tiếp được |
| Unit đã XONG | Nộp Performance Task đạt từ 80% | Hoàn thành thật |
Hai điều rút ra từ cách chia này:
Performance Task không chặn đường đi tiếp. Người học có thể chạy hết cả khoá mà chưa nộp cái nào, khoá khi đó là "đang học", không phải "hoàn thành". Việc nặng mà chặn đường thì người ta bỏ giữa chừng.
Quiz chốt không có ngưỡng điểm. Cổng chặn thật đã nằm ở Performance Task; chặn thêm ở quiz là chặn hai lần cho cùng một việc, và người học kẹt lại vì một câu trắc nghiệm.
Cổng tuần tự đang mở
Luật "mở Unit sau khi làm xong assessment của Unit trước" vẫn được tính đầy đủ trong computeUnitStates(), nhưng hiện không dùng để khoá, người học xem được mọi Unit ngay từ đầu. Bật lại là đổi đúng một dòng const unlocked = true thành previousAssessmentsDone.
Hai ngân hàng tách rời
Mỗi bài có hai ngân hàng không giao nhau, mỗi ngân hàng 15 câu:
| Ngân hàng | Dùng ở đâu | Vai |
|---|---|---|
formative | Ba câu tự kiểm giữa bài | Dò lỗ hổng, không chặn ai |
summative | Quiz chốt bài | Quyết định mở Unit sau |
Vì sao phải tách: chung một ngân hàng thì hai lượt rút trùng nhau, và bài chốt hoá ra đo trí nhớ ngắn hạn của bài dò chứ không đo hiểu.
Đích là 15+15; lượt sinh nào sau khi kiểm còn dưới 12 câu mỗi ngân hàng thì coi như hỏng và sinh lại (minAccept của chuẩn v2.1), thà fail để máy điều phối làm lại còn hơn ghi một cặp ngân hàng mỏng rồi được tính là "đủ mức 4" vĩnh viễn.
Quiz chốt rút 10 câu ngẫu nhiên từ ngân hàng summative. Thứ tự câu và thứ tự đáp án đều xáo lại mỗi lượt, làm lại lần hai mà đáp án đúng vẫn nằm ở chữ B thì người học nhớ vị trí chứ không nhớ ý. Bộ câu đã xáo được chụp nguyên vào lượt làm (items_json giữ trọn đề + ô đúng sau xáo): máy sinh nền có làm mới ngân hàng giữa chừng thì lượt đang làm vẫn chấm được, không nổ 500 giữa mặt người học.
Bốn lớp lọc chất lượng câu hỏi
Mọi câu sinh ra đều qua bốn lớp, chốt bằng mã chứ không bằng lời dặn trong prompt. Cả bốn đều ra đời từ lỗi thật đã thấy trong dữ liệu:
| Lớp | Chặn gì | Câu hỏng thật đã bắt được |
|---|---|---|
leaksAnswer | Đề chứa nguyên văn đáp án | , |
isCircular | Đáp án chỉ nhắc lại một cụm trong đề | "Ai là người nghe?" → đáp án "Người nghe" |
optionsShareStem | Bốn đáp án cùng mở đầu giống nhau | Cả bốn bắt đầu bằng "Người quyết định là người…" |
rationaleContradicts + kiểm lại đáp án | correct_index trỏ nhầm ô | Đáp án đúng là "người có chức vụ cao nhất" nhưng lời giải viết "nên trình bày trước người có quyền quyết định" |
Lớp cuối là lớp đắt nhất và cũng quan trọng nhất: hệ thống đưa lại đề mà không nói đáp án cho một model KHÁC model ra đề (VERIFY_PARTNER, temperature 0), bắt nó tự chọn. Chỉ loại câu khi người kiểm bất đồng hai lượt liên tiếp và cả hai lượt cùng chỉ về một phương án khác, bất đồng một lượt với câu khó là chuyện thường, lấy một lượt làm trọng tài thì loại oan tới 67% ngân hàng. Kiểm bằng chính model ra đề thì nó nghiêng về đúng cách đọc đã sinh ra lỗi; kiểm chéo phá đúng thiên vị đó.
Lớp này loại chừng 40% số câu sinh ra. Con số đó không phải lỗi của lớp kiểm, nó là bằng chứng mô hình thật sự hay đánh dấu nhầm ô đúng. Nên cách xử lý là bơm thêm nguồn (sinh–kiểm–bù tối đa 5 vòng cho pool chung của cả hai ngân hàng, đo tiến độ bằng số câu ĐÃ QUA kiểm), không phải hạ ngưỡng.
Hai chi tiết kỹ thuật đáng nhớ, cả hai đều từng làm hỏng cả mẻ sinh:
- Kiểm theo lô 10 câu: gửi cả 15 thì mô hình đánh lệch chỉ số và loại oan hàng loạt (ngân hàng tụt còn 4/15); lô 10 vẫn khớp chỉ số mà tốn nửa số lượt gọi so với lô 5. Chỉ số trả về được siết bằng schema (0–9) và lượt kiểm trả lời chưa được nửa số câu thì bị coi là hỏng, giữ nguyên lô kèm log, không phán nửa ngân hàng bằng dữ liệu cụt.
- Tiếng Việt tách theo âm tiết, nên mọi phép đo đếm "từ" phải nới ngưỡng. Ba âm tiết chung ("vì nó giúp") là chuyện thường; đáp án
"khách hàng"mà đề có chữ "khách" và chữ "hàng" ở hai câu khác nhau không phải câu vòng tròn. Và dấu chấm trong1.000.000 đồnglà dấu ngăn nghìn, không phải dấu ngắt câu, phép đếm câu phải gỡ nó ra trước.
Lớp kiểm thứ năm: người học thật
Mọi lớp trên chạy lúc sinh. Sau khi câu hỏi ra sân, còn một lớp không luật hình thức nào thay được: câu có từ 5 lượt trả lời mà quá 60% người học cùng chọn MỘT phương án khác ô đáp án là câu nghi đánh dấu nhầm (suspect-answer-key, blocker), chính là loại lỗi từng lọt qua cả bốn lớp lọc lẫn lượt kiểm chéo. Bộ audit gom lượt trả lời theo văn bản phương án (vì đáp án đã xáo theo lượt), và máy điều phối tự sinh lại ngân hàng chứa câu đó ở lượt kế.
Thư viện Big Idea
Mỗi Unit có 10 câu xoay quanh Big Idea. Trang Unit rút 3 câu ngẫu nhiên mỗi lần tải, nên quay lại là gặp bộ khác. Đây là chỗ nghịch cho thấm ý, không chấm điểm, không chặn gì.
Cách chơi câu hỏi giữa bài
Áp cho cả tự kiểm lẫn Big Idea:
- Mỗi câu đóng sẵn, bấm mới mở, người học đối diện một câu tại một thời điểm.
- Chọn xong không hiện đúng/sai và không hiện lời giải. Muốn biết thì tự bấm "Xem lời giải".
Phản hồi tức thì cắt ngang đúng khoảnh khắc người học đang tự nghĩ.