Hướng dẫn
Tham chiếu kết quả và thực thi
Một lần chạy gửi gì tới một hệ thống HTTP và kỳ vọng nhận lại gì, mỗi trường hợp đi vào mẫu số của một chỉ số ra sao, các trạng thái quyết định và các mã lý do giải thích chúng, các mã thoát, và dữ liệu nào ở lại cục bộ hay được chuyển lên một không gian làm việc được lưu trữ. Để hiểu các ý tưởng đằng sau, hãy đọc Khái niệm; để biết các trường của chính sách, hãy đọc Tham chiếu cấu hình.
Hợp đồng của hệ thống HTTP
Một hệ thống HTTP (system.http trong oloproof.yaml) được gọi một lần cho mỗi trường hợp, và một lần cho mỗi lần lặp.
| Khía cạnh | Hành vi |
|---|---|
| Yêu cầu | Mặc định là POST (GET và PUT cũng được chấp nhận). Thân yêu cầu là giá trị input của trường hợp dưới dạng JSON. |
| Header và xác thực | Không thể cấu hình. Yêu cầu chỉ mang các giá trị mặc định của client HTTP. Một endpoint cần khóa nên được đặt sau một hệ thống callable Python có thêm khóa đó. |
| Phản hồi | Phải là JSON. output_path chọn đầu ra bằng một đường dẫn có dấu chấm, chẳng hạn result.answer; không có nó thì toàn bộ thân phản hồi là đầu ra. Một trường output_path bị thiếu được ghi lại là lỗi thực thi cho trường hợp đó. |
| Artifact | Mỗi mục http.artifacts đọc một đường dẫn có dấu chấm từ phản hồi. Một trường đã khai báo mà phản hồi không có là một lỗi hợp đồng, và lần chạy dừng với mã thoát 2. |
| Thời gian chờ | http.timeout_s cho mỗi yêu cầu, mặc định 30 giây. |
| Thử lại | Hết thời gian, lỗi kết nối và HTTP 408, 429 và 5xx được thử lại, tối đa bốn lần thử tổng cộng, với thời gian chờ tăng theo hàm mũ có nhiễu và tôn trọng Retry-After. Các phản hồi 4xx khác không được thử lại. |
| Sau lần thử cuối | Lần thực thi của trường hợp được ghi là lỗi và trường hợp được tính là bị thiếu (hoặc là thất bại, với on_execution_error: fail). Lần chạy tiếp tục. |
| Đồng thời | Tối đa concurrency.system yêu cầu đang chạy cùng lúc, mặc định 8. |
URL, phương thức, đường dẫn đầu ra và ánh xạ artifact đi vào phiên bản của hệ thống, nhưng những gì máy chủ làm thì không. Hãy đổi system.version mỗi khi hành vi của máy chủ thay đổi; xem Tham chiếu cấu hình để biết lý do.
Ba bộ từ vựng khác nhau
Một kết quả có ba loại trạng thái, và chúng không bao giờ thay thế cho nhau.
| Loại | Giá trị | Trả lời |
|---|---|---|
| Trạng thái quyết định | PASS, FAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEW | Bằng chứng nói gì về một quy tắc. |
| Trạng thái thực thi | Trạng thái lần chạy RUN_ERROR hoặc CANCELLED; mức hoàn chỉnh của lần chạy PARTIAL; thực thi của trường hợp ERROR hoặc TIMEOUT | Điều đã xảy ra với lần chạy hoặc với lời gọi của một trường hợp. Không phải một kết quả chất lượng. |
| Hành động phát hành | ALLOW, WARN, BLOCK | Chính sách của bạn làm gì với mỗi quyết định: các trạng thái trong block_on chặn, các trạng thái trong warn_on cảnh báo, còn lại cho phép. |
Một lần chạy kết thúc bình thường là DECIDED, hoặc DECIDED_EARLY khi việc dừng sớm đã kết thúc nó. Một lần chạy bị ngắt bởi Ctrl-C hoặc việc hủy tác vụ là CANCELLED; một lần chạy mà bộ khung ném lỗi là RUN_ERROR. Cả hai đều để lần chạy ở trạng thái PARTIAL, giữ lại các trường hợp đã hoàn thành, và cho lần chạy tiếp theo tái sử dụng các bản ghi đã lưu đệm của chúng. Xem Lỗi.
Với một ngưỡng tối thiểu T và một khoảng [L, U], một quy tắc là PASS khi L >= T, FAIL khi U < T, và INSUFFICIENT_EVIDENCE trong trường hợp còn lại. Một ngưỡng tối đa thì đối xứng. Trước khi đọc khoảng, một quy tắc kiểm tra xem nó có nên quyết định hay không: trước hết là các lý do cho MANUAL_REVIEW, rồi đến các lý do cho INSUFFICIENT_EVIDENCE. Tầng đầu tiên có một lý do sẽ quyết định, và liệt kê mọi lý do mà nó tìm thấy.
Mã lý do
Mọi quyết định đều mang một hoặc nhiều mã lý do.
MANUAL_REVIEW
| Mã | Ý nghĩa |
|---|---|
| policy_requires_review | Quy tắc đặt requires_manual_review: true. |
| unsupported_method | Không có khoảng được chấp nhận nào cho chỉ số này trong tình huống này. Xem bên dưới. |
| unsupported_dependence_structure | Bộ kiểm thử khai báo các cụm (group_id) và không phương pháp được chấp nhận nào xử lý chúng cho chỉ số này. |
| approximate_method_not_permitted | Khoảng duy nhất là xấp xỉ, và chính sách không đặt allow_approximate_methods: true. |
| evaluator_retired | Một bộ đánh giá đằng sau chỉ số đã bị loại bỏ. |
INSUFFICIENT_EVIDENCE
| Mã | Ý nghĩa |
|---|---|
| no_observations | Không trường hợp nào được quan sát cho chỉ số này. |
| missingness_exceeds_policy | Số trường hợp đủ điều kiện bị thiếu nhiều hơn mức max_missing_fraction của quy tắc cho phép. |
| missingness_unbounded | Phương pháp bỏ các trường hợp bị thiếu thay vì chặn biên chúng, và quy tắc không khai báo max_missing_fraction. |
| evaluator_not_validated | Một giám khảo mô hình đằng sau chỉ số chưa được xác thực so với nhãn của con người, và require_validated_evaluators được bật (mặc định). |
| evaluator_recalibration_required | Giám khảo đã được xác thực trên một mô hình được phục vụ mà các phán quyết của lần chạy này không đến từ đó. |
| interval_unavailable | Chỉ số không có khoảng để đọc. |
| insufficient_clusters | Ít cụm hơn min_clusters của chính sách. |
| interval_monte_carlo_uncertain | Ngưỡng rơi vào trong độ bất định mô phỏng của một cận theo cụm. |
| interval_overlaps_threshold | Khoảng chứa ngưỡng. Thêm trường hợp sẽ thu hẹp nó. |
| interval_unbounded | Khoảng không có cận ở phía mà quy tắc đọc. |
| missing_could_change_outcome | Một quy tắc observed_count: các trường hợp bị thiếu có thể đẩy số thất bại vượt quá max_failures. |
| interval_overlaps_zero, interval_overlaps_margin, interval_overlaps_margins | Một phép so sánh mà khoảng khác biệt vắt ngang 0 hoặc một biên. |
| insufficient_support | Một quy tắc so sánh lát cắt mà lát cắt có ít trường hợp hơn min_support của nó. |
| family_correction_withheld | Một quy tắc trong một mục families: mà hiệu chỉnh Holm đã dừng lại trước nó. |
PASS và FAIL
| Mã | Trạng thái |
|---|---|
| lower_bound_meets_minimum, upper_bound_meets_maximum | PASS |
| upper_bound_below_minimum, lower_bound_above_maximum | FAIL |
| observed_failures_within_limit | PASS |
| observed_failures_exceed_limit | FAIL |
| difference_above_zero, lower_bound_above_margin, interval_within_margins | PASS (so sánh) |
| difference_below_zero, upper_bound_below_margin, interval_outside_margins | FAIL (so sánh) |
| cost_ceiling_exceeded | Được nêu bên cạnh trạng thái của một quy tắc chi phí mà mức trần đã khai báo bị một lần thực thi đã ghi vượt quá |
Chỉ không gian làm việc được lưu trữ
Một không gian làm việc tự quyết định một lần chạy được push có thể giữ lại một quyết định với ppi_not_verified (nó đã không xác minh khoảng mà quyết định dựa vào), execution_not_verified (các đầu ra không đến từ một runner đã đăng ký) hoặc workspace_cannot_decide (nó không giữ bản sao nào của chính sách, hoặc không thể đọc bằng chứng). Xem Cổng.
Mỗi trường hợp đi vào mẫu số ra sao
Mọi chỉ số đều báo bốn số đếm: n_total (số trường hợp trong bộ kiểm thử), n_eligible, n_observed và n_missing, với n_eligible = n_observed + n_missing. Các trường hợp nằm ngoài n_eligible được liệt kê dưới exclusions kèm một lý do.
| Điều đã xảy ra với trường hợp | Được tính là | Trong mẫu số |
|---|---|---|
| Bộ đánh giá trả về đạt hoặc không đạt | được quan sát, thành công hoặc thất bại | có |
| Bộ đánh giá tự tuyên bố không áp dụng (ví dụ, không có giá trị kỳ vọng để so sánh) | bị loại trừ, kèm lý do | không |
| Lời gọi hệ thống bị lỗi hoặc hết thời gian | bị thiếu, hoặc thất bại với on_execution_error: fail | có |
| Bộ đánh giá ném lỗi, hoặc không thể đọc được câu trả lời của một giám khảo | bị thiếu | có |
| Trường hợp không bao giờ chạy vì lần chạy bị ngắt | bị thiếu, và lần chạy là PARTIAL | có |
Một trường hợp bị thiếu được chặn biên, không bị bỏ đi. Với một tỷ lệ đạt, cận dưới của khoảng coi mọi trường hợp bị thiếu là thất bại và cận trên coi chúng là thành công, nên một lần chạy có nhiều trường hợp bị thiếu sẽ có một khoảng rộng không thể vượt qua một quy tắc khắt khe; một trung bình bị chặn thay vào đó các đầu mút của khoảng giá trị đã khai báo theo cùng cách. Một phương pháp không thể chặn biên các trường hợp bị thiếu (một thống kê xếp hạng, chẳng hạn) sẽ bỏ chúng và ghi lại giả định, và một quy tắc trên nó ghi missingness_unbounded cho tới khi nó khai báo max_missing_fraction.
Một quy tắc observed_count đếm số thất bại trên bộ kiểm thử đã thực thi và không đọc khoảng nào. Nó chỉ đạt khi số thất bại quan sát được cộng với mọi trường hợp bị thiếu vẫn nằm trong max_failures.
Các chỉ số không có khoảng được chấp nhận
Một quy tắc chỉ quyết định dựa trên một khoảng có phương pháp đã được chấp nhận qua kiểm định. Khi không có, chỉ số vẫn được tính và hiển thị, và một quy tắc trên nó không mượn một phương pháp chưa được xác thực:
| Tình huống | Một quy tắc trên nó ghi gì |
|---|---|
| Một chỉ số điểm số (trung bình) không có khoảng giá trị được khai báo, chẳng hạn một bộ đánh giá điểm số tùy chỉnh không có score_range | MANUAL_REVIEW, unsupported_method |
| Một chỉ số trung bình, phân vị, xếp hạng hoặc chi phí trên một bộ kiểm thử khai báo group_id | MANUAL_REVIEW, unsupported_dependence_structure |
| Một tỷ lệ đạt trên một bộ kiểm thử theo cụm | một khoảng xấp xỉ: MANUAL_REVIEW trừ khi allow_approximate_methods: true, khi đó là các kiểm tra cụm nêu trên |
| Một chỉ số phân vị hoặc xếp hạng với replicates lớn hơn 1 | MANUAL_REVIEW, unsupported_method |
| Bất kỳ chỉ số nào trên một bộ kiểm thử có cả group_id lẫn lần lặp | MANUAL_REVIEW, unsupported_dependence_structure |
| Một phép so sánh trên một bộ kiểm thử theo cụm | MANUAL_REVIEW |
| Một lát cắt dưới min_slice_support | không có khoảng, nhưng lát cắt không bao giờ tới được cổng |
| Các chỉ số human_score, human_preference hoặc cost_per_accepted | bị từ chối khi tệp được đọc, mã thoát 2 |
Mã thoát
oloproof gate, oloproof run với một chính sách, và các lệnh khác có quyết định đều dùng cùng các mã.
| Mã | Ý nghĩa |
|---|---|
| 0 | Không có gì mà chính sách chặn: mọi quy tắc đều đạt, hoặc những quy tắc không đạt nằm ngoài block_on. |
| 1 | Một quy tắc trong block_on đã thất bại. |
| 2 | Cấu hình hoặc lời gọi lệnh sai, hoặc một hệ thống đã vi phạm hợp đồng của nó; không có gì được quyết định. |
| 3 | Một quy tắc trong block_on ghi INSUFFICIENT_EVIDENCE. |
| 4 | Một quy tắc trong block_on ghi MANUAL_REVIEW. |
| 5 | Lần chạy chưa hoàn tất và block_on_partial_run được bật (mặc định). |
Khi nhiều mã cùng áp dụng, mã được báo là mã đầu tiên trong 1, 5, 4, 3. Một trạng thái không có trong block_on không thể thay đổi mã thoát: với block_on: [FAIL] và warn_on: [INSUFFICIENT_EVIDENCE], một quy tắc chưa quyết định sẽ cảnh báo và cổng thoát với 0. Vì vậy mã thoát 0 chỉ có nghĩa là không có gì mà chính sách của bạn chặn đã xảy ra, không có nghĩa là mọi quy tắc đều đạt. Xem Cổng.
Công việc chạy ở đâu và dữ liệu đi đâu
Cục bộ, mặc định
oloproof run, oloproof gate và SDK chạy trên máy của bạn. Mọi bản ghi (trường hợp, đầu ra, artifact, phán quyết, chỉ số và quyết định) được ghi vào .oloproof/store.sqlite bên cạnh oloproof.yaml, hoặc dưới OLOPROOF_HOME khi biến này được đặt. Không có gì được gửi tới Oloproof. Lưu lượng mạng duy nhất là những gì cấu hình của bạn gây ra: các lời gọi tới URL của hệ thống HTTP của bạn, và các lời gọi mà một giám khảo mô hình hoặc bộ phân loại mô hình gửi tới nhà cung cấp của nó, nơi nhận nội dung trường hợp mà chúng chấm và tính phí bạn cho việc đó.
Push lên một không gian làm việc được lưu trữ
oloproof push gửi bằng chứng của một lần chạy tới không gian làm việc mà bạn đã kết nối bằng oloproof login. Theo mặc định, nó gửi các chỉ số, khoảng, quyết định và các lát cắt tổng hợp, cùng danh tính, trạng thái, thời gian và mức sử dụng của mọi bản ghi, nhưng không gửi nội dung của chúng. Nội dung thô được che từng trường trước khi bất cứ thứ gì rời khỏi máy, và một bản ghi đã được che cho biết những loại nào đã bị giữ lại. Một loại chỉ được gửi khi egress: trong oloproof.yaml liệt kê nó:
| Loại | Nó bao gồm gì |
|---|---|
| raw_inputs | Đầu vào của kịch bản, giá trị kỳ vọng và metadata của trường hợp: các dòng của tập dữ liệu |
| raw_outputs | Những gì hệ thống được kiểm thử đã trả về cho mỗi trường hợp |
| judge_rationales | Văn bản mà một giám khảo viết để giải thích một phán quyết, có trích dẫn đầu ra |
| artifacts | Ngữ cảnh truy xuất, trích dẫn và quỹ đạo được ghi lại trong một lần chạy |
| error_detail | Thông điệp và chi tiết ngoại lệ, thường mang nguyên văn đầu vào |
| system_config | Cấu hình đã khai báo của hệ thống được kiểm thử và của các bộ đánh giá của nó |
| label_notes | Ghi chú mà một người viết bên cạnh một nhãn, thường trích dẫn đầu ra |
| span_names | Tên trace, span, công cụ và agent mà một bộ đo đạc đã ghi lại |
Digest của bản ghi không được tính lại sau khi che, nên một bản ghi được lưu trữ vẫn nêu bằng chứng gốc, thứ vẫn nằm trên máy của bạn. Việc che không phải là mã hóa, và một chỉ số trên một lát cắt rất nhỏ vẫn có thể nhận diện được các trường hợp đằng sau nó.
Khi người xem xét gán nhãn các trường hợp trong hàng đợi xem xét được lưu trữ, trình duyệt của họ lấy nội dung trường hợp từ oloproof collect chạy ở phía bạn; nội dung không đi qua không gian làm việc. Các khóa nhà cung cấp mà một không gian làm việc dùng được lưu bằng oloproof credentials set, và oloproof credentials list hiển thị tên của chúng, không bao giờ hiển thị giá trị. Một công việc được quản lý chạy trên một worker do Oloproof vận hành, nơi không chạy mã Python của bạn; oloproof job báo kết quả của nó và thoát theo cổng của nó.
Trong một không gian làm việc được lưu trữ, engine không bao giờ tái sử dụng các lần thực thi, phán quyết hay phân tích đã lưu đệm, vì một lần push có thể ghi vào các bộ nhớ đệm đó; nó tính lại chúng.