Chuyển đến nội dung

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ạnhHành vi
Yêu cầuMặ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ựcKhô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ồiPhả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 đó.
ArtifactMỗ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ạiHế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ốiLầ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ờiTố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ạiGiá trịTrả lời
Trạng thái quyết địnhPASS, FAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEWBằng chứng nói gì về một quy tắc.
Trạng thái thực thiTrạ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ànhALLOW, WARN, BLOCKChí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_reviewQuy tắc đặt requires_manual_review: true.
unsupported_methodKhô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_structureBộ 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_permittedKhoảng duy nhất là xấp xỉ, và chính sách không đặt allow_approximate_methods: true.
evaluator_retiredMột bộ đánh giá đằng sau chỉ số đã bị loại bỏ.

INSUFFICIENT_EVIDENCE

MãÝ nghĩa
no_observationsKhông trường hợp nào được quan sát cho chỉ số này.
missingness_exceeds_policySố 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_unboundedPhươ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_validatedMộ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_requiredGiá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_unavailableChỉ 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_uncertainNgưỡng rơi vào trong độ bất định mô phỏng của một cận theo cụm.
interval_overlaps_thresholdKhoảng chứa ngưỡng. Thêm trường hợp sẽ thu hẹp nó.
interval_unboundedKhoảng không có cận ở phía mà quy tắc đọc.
missing_could_change_outcomeMộ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_marginsMột phép so sánh mà khoảng khác biệt vắt ngang 0 hoặc một biên.
insufficient_supportMộ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_withheldMộ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_maximumPASS
upper_bound_below_minimum, lower_bound_above_maximumFAIL
observed_failures_within_limitPASS
observed_failures_exceed_limitFAIL
difference_above_zero, lower_bound_above_margin, interval_within_marginsPASS (so sánh)
difference_below_zero, upper_bound_below_margin, interval_outside_marginsFAIL (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ạicó
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ý dokhông
Lời gọi hệ thống bị lỗi hoặc hết thời gianbị thiếu, hoặc thất bại với on_execution_error: failcó
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ảobị thiếucó
Trường hợp không bao giờ chạy vì lần chạy bị ngắtbị thiếu, và lần chạy là PARTIALcó

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ốngMộ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_rangeMANUAL_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_idMANUAL_REVIEW, unsupported_dependence_structure
Một tỷ lệ đạt trên một bộ kiểm thử theo cụmmộ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 1MANUAL_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ặpMANUAL_REVIEW, unsupported_dependence_structure
Một phép so sánh trên một bộ kiểm thử theo cụmMANUAL_REVIEW
Một lát cắt dưới min_slice_supportkhô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_acceptedbị 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
0Khô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.
1Một quy tắc trong block_on đã thất bại.
2Cấ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.
3Một quy tắc trong block_on ghi INSUFFICIENT_EVIDENCE.
4Một quy tắc trong block_on ghi MANUAL_REVIEW.
5Lầ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ạiNó 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_outputsNhững gì hệ thống được kiểm thử đã trả về cho mỗi trường hợp
judge_rationalesVă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
artifactsNgữ cảnh truy xuất, trích dẫn và quỹ đạo được ghi lại trong một lần chạy
error_detailThông điệp và chi tiết ngoại lệ, thường mang nguyên văn đầu vào
system_configCấ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_notesGhi 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_namesTê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.