Điều gì đảm bảo thước đo đúng?
Nội dung được chấm bằng một bộ luật. Bộ luật được viết theo yêu cầu của chuẩn. Nhưng yêu cầu ấy lại được viết theo cái gì, và thước đo nào chấm chính thước đo?
Câu trả lời thành thật: không có gì tự động đảm bảo cả. Thước đo do người viết ra, và một thước đo viết sai thì máy vẫn chấm rất nghiêm túc theo cái sai đó. Điều làm được, và là toàn bộ nội dung trang này, là khiến chỗ lệch không thể nấp.
Xem tại admin.conan.school/content/content-review, tab Thước đo & yêu cầu.
Ba điều kiện của một bộ luật đứng vững
- Mỗi luật phải trỏ về một yêu cầu trong chuẩn. Luật không trỏ về đâu là luật ai đó thêm vào mà không ai còn nhớ vì sao, và không ai dám gỡ.
- Mỗi yêu cầu trong chuẩn phải có ít nhất một luật hoặc một phép đếm gác. Yêu cầu không ai gác chỉ là một lời hứa trong tài liệu mà hệ thống không kiểm.
- Mỗi luật phải khai nó được gác ở đâu, lúc sinh (không đạt thì không ghi) hay lúc kiểm (đã ghi rồi mới soi lại). Hai chỗ đó chặn được những thứ khác nhau. Một luật tưởng là có mà thật ra không chạy ở đâu cả là loại lỗ hổng tệ nhất: nó tạo cảm giác an toàn giả.
Bản đồ này nằm ở api.conan.school/src/domains/course-intelligence/rubric.ts, đọc ra qua GET /ops/rubric.
Thước đo của chính thước đo
Chuỗi lùi "thước đo nào chấm thước đo" phải dừng ở đâu đó, và chỗ dừng phải nhìn thấy được chứ không nấp trong đầu ai. Nó dừng ở ruleMeta trong chuẩn v2.3: sáu điều kiện mà mọi luật chất lượng phải khai đủ.
| Điều kiện | Luật phải | Vì sao |
|---|---|---|
traces-to-requirement | Trỏ về một yêu cầu trong shape/counts/gates | Luật không trỏ về đâu là luật không ai dám gỡ |
deterministic | Đếm được hoặc so khớp được, không cần phán đoán | Luật cần phán đoán thì phải hỏi mô hình, mà mô hình chấm bài của chính nó thì gần như luôn cho qua |
born-from-defect | Nêu lỗi thật đã bắt được, hoặc khai rõ là luật phòng ngừa | Luật sinh từ chỗ hỏng có thật khác hẳn luật nghĩ ra vì nghe hợp lý, loại sau hay chặn nhầm văn đúng |
declares-enforcement | Khai gác lúc sinh, lúc kiểm, hay cả hai | Luật không chạy ở đâu cả tạo cảm giác an toàn giả |
severity-by-harm | blocker chỉ cho lỗi làm hiểu sai hoặc chặn đường học | Dán blocker cho mọi thứ thì lỗi thật bị đẩy ra ngoài cửa sổ |
falsifiable | Nêu được một ví dụ mà luật cho qua | Luật đúng với mọi thứ thì không phân biệt được gì |
Bốn điều đầu và severity-by-harm máy tự kiểm cho từng luật, kết quả ra ở gaps.rules_failing_meta. Hai điều deterministic và falsifiable là phán đoán lúc viết luật, không phải thứ máy đọc ra từ dữ liệu, chúng được ghi là "người tự giữ" chứ không giả vờ đã kiểm.
Chuỗi lùi dừng ở một bộ điều kiện nhỏ, do người viết, có phiên bản, không sửa tại chỗ. Không có cách nào tự động chứng minh bộ này đúng. Cái làm được là giữ nó nhỏ đủ để đọc hết trong một phút, và bắt mọi luật phía dưới phải khai đủ theo nó.
Bốn chỗ hở, và đó mới là phần đáng đọc
Màn hình đếm sẵn bốn danh sách. Danh sách rỗng là tin tốt; không rỗng là việc phải làm, và phải sửa ở chuẩn hoặc ở engine, không phải ở nội dung.
- Yêu cầu chưa ai gác, chuẩn có nói, hệ thống không kiểm.
- Luật chưa khai chỗ gác, tưởng là có mà không chạy ở đâu.
- Luật chưa nêu lỗi thật, nghĩ ra vì nghe hợp lý, chưa từng bắt được lỗi nào.
- Luật không đạt thước đo của thước đo, chuẩn đang chứa luật chưa khai đủ.
Tính tới v2.3, hai yêu cầu đang chưa ai gác: "các khái niệm trong một unit phải dễ nhầm với nhau" và "mở unit sau = làm xong assessment mọi bài, không ngưỡng điểm". Hai chỗ đó hiện là lời hứa trong tài liệu chứ chưa phải luật.
Chiều lệch ngược: máy chặt hơn chuẩn
Có sáu luật chạy thật trong mã nhưng chưa có trong chuẩn (options-malformed, story-complete, story-cast, story-scene, story-brevity, story-no-formula). Không sai, nhưng người soạn đọc chuẩn sẽ không đoán được vì sao bài của mình bị chặn. Danh sách này cũng hiện trên màn hình, để chỗ lệch không nấp được ở chiều nào.
Lời dặn máy cũng phải bám chuẩn
promptContract trong v2.3 đặt ba điều kiện cho prompt, vì prompt là chỗ yêu cầu biến thành chữ dặn máy, prompt không bám chuẩn thì thước đo có đúng đến mấy cũng chỉ đang chấm một thứ được sinh ra theo ý khác:
- Mỗi engine sinh phải khai nó phục vụ artefact nào trong
levels[].artifacts. - Ràng buộc nào chuẩn nói là bắt buộc thì phải chốt bằng mã ở đường ghi, không chỉ dặn trong prompt. Chữ trong prompt không giữ được, đã thử nhiều lần và mỗi lần đều thua.
- Prompt phải đọc được bởi người soạn, không chỉ bởi kỹ sư.
Xem thêm: Hệ thống tự sinh và tự nâng chất lượng · Sới so bản (A/B)