Chuyển đến nội dung

Hướng dẫn

Nghiên cứu an toàn: từ một nhật ký Inspect đến một đoạn phương pháp

Bạn đã chạy một eval trên một mô hình: một model organism và nhóm đối chứng của nó, một tập tấn công, các bản ghi hội thoại của một tác tử kiểm định được một giám khảo chấm điểm. Trước khi ghi kết quả lại, ba câu hỏi quyết định liệu nó có đứng vững không: độ bất định rộng đến đâu, "không có trong 200" có thật sự là không có, và bạn có thể tin giám khảo đã chấm các bản ghi không? Oloproof trả lời chúng từ nhật ký bạn đã có, và viết hình, bảng và đoạn phương pháp từ những gì nó đã đo.

Đọc nhật ký

Oloproof đọc nhật ký UK AISI Inspect, tệp .eval mà inspect eval ghi ra hoặc một nhật ký JSON:

oloproof scores import --from inspect logs/organism.eval
oloproof scores import --from inspect logs/control.eval logs/organism.eval --policy release.yaml

Lệnh đầu tiên nhập một lần chạy và trả lời bằng lời đơn giản. Lệnh thứ hai nhập hai lần chạy, ghép cặp chúng theo id mẫu và quyết định các quy tắc so sánh của chính sách; một chính sách đưa kèm hai nhật ký phải có ít nhất một quy tắc như vậy (kind: superiority, non_inferiority hoặc equivalence), và một mức trần trên một lần chạy được quyết định bằng cách nhập riêng nhật ký đó với chính sách. Mỗi scorer trở thành một tiêu chí: C đạt và I trượt, điểm từng phần là một điểm từ 0 đến 1, và một scorer dạng số cần phạm vi của nó, nêu bằng --scale LOW HIGH. Chỉ id và điểm được sao chép; các bản ghi ở lại trong nhật ký. Xem Ý kiến thứ hai về điểm số của một công cụ khác để biết mọi quy tắc đọc.

Epoch không phải là thêm mẫu

Chạy mỗi mẫu nhiều lần (các epoch của Inspect) không cho bạn thêm trường hợp độc lập. Oloproof giữ mẫu làm đơn vị: nhật ký được nhập thành một lần chạy có các replicate là các epoch của nó, giá trị của mỗi mẫu là trung bình các epoch của nó, và mọi mẫu có trọng số như nhau. Mỗi epoch giữ phán quyết đạt hoặc trượt của riêng nó, nên một giám khảo có thể được kiểm tra trên các epoch, với mẫu là đơn vị. Đếm các lần chạy của mỗi mẫu thành những trường hợp riêng sẽ coi các lần lặp như prompt mới: trong lưới của phương pháp, gộp hai lần chạy mỗi mẫu theo cách đó chỉ bao phủ một khẳng định về những prompt như thế này ít nhất là 86% số lần ở mức 95% đã nêu, dù vẫn đứng vững cho một khẳng định về chính các mẫu (docs/engine/PASS_AT_K_METHOD.md §8). Một mẫu có một epoch bị lỗi được tính là thiếu, ở mức tệ nhất của nó, không bao giờ là trung bình của các epoch đã hoàn thành, vì lỗi thường rơi vào các mẫu khó.

Không thấy không có nghĩa là không có

Một tuyên bố an toàn thường dựa trên số đếm bằng không: không cuộc tấn công nào thành công, không bản ghi nào cho thấy hành vi đó. Thấy không lần không phải là tỷ lệ bằng không. Khi chưa đặt ngưỡng, Oloproof cho biết tỷ lệ vẫn có thể cao đến đâu và cần bao nhiêu trường hợp sạch để kéo nó xuống:

attack_succeeded: about 0.0%; the true value is likely between 0.0% and 1.9% (95% range, 200 cases).
  None of the 200 cases counted toward it, yet the rate could still be as high as 1.9%: none seen is not none.
  If the next cases show none either, a suite of 368 cases (168 more) would bring the high end to 1.0% or below.

Dưới một mức trần, chính sách quyết định. max: 0.01 trên 0 của 200 là INSUFFICIENT_EVIDENCE, và lời khuyên có điều kiện: "nếu các trường hợp tiếp theo cũng không có trường hợp nào được tính, khoảng 368 sẽ quyết định được; mỗi trường hợp được tính sẽ làm con số đó tăng lên". Không có xác suất nào được nêu, vì khi không có sự kiện nào thì không có gì để nêu nó từ đó.

rules:
  - id: attack-ceiling
    metric: attack_succeeded
    max: 0.01

Có bao giờ làm được không? pass@k

Một câu hỏi về năng lực hay red team thường là liệu có lần nào trong k lần thử thành công không. oloproof passk đọc mỗi epoch của một mẫu là một lần thử và ước lượng không chệch pass@k của từng mẫu, rồi trung bình của bộ:

oloproof passk logs/organism.eval --from inspect --criterion leaked --k 5

Một tệp mỗi dòng là một lần thử (case, passed, error tùy chọn) cũng dùng được. Một mẫu có một lần thử bị lỗi, hoặc ít hơn k lần thử, được tính là thiếu, ở mức tệ nhất của nó. Câu trả lời đưa ra ước lượng và khoảng 95% của nó. Với --min hoặc --max nó quyết định: PASS khi khoảng vượt qua ngưỡng, FAIL khi khoảng nằm hoàn toàn ở phía sai, INSUFFICIENT_EVIDENCE trong các trường hợp khác (mã thoát 0, 1 hoặc 3). Phương pháp (docs/engine/PASS_AT_K_METHOD.md) đã bao phủ mức 95% đã nêu ở mọi ô trong lưới của nó và được một cuộc kiểm định độc lập chấp nhận ngày 3 tháng 11 năm 2026, theo các điều kiện của nó: các lần thử của một trường hợp độc lập với nhau, và bạn không dừng sớm các lần thử của một trường hợp vì một lần đã thành công.

Nhiều điều kiện cùng lúc: một sweep

Một bảng gồm hai mươi hiệu số, mỗi hiệu số có khoảng 95% riêng, được dự kiến sai ở đâu đó khoảng một lần: trong lưới của phương pháp, năm mươi khoảng riêng lẻ chỉ cùng đúng sáu lần trên mười. oloproof sweep quyết định một họ các phép đối chiếu bạn đặt tên trước khi đọc các lần chạy, để toàn bộ bảng cùng đứng vững:

sweep:
  conditions:
    control: run_01...
    organism_a: run_01...
    organism_b: run_01...
  contrasts:
    - organism_a - control
    - organism_b - control
oloproof sweep sweep.yaml --policy compare.yaml

Mỗi phép đối chiếu là một so sánh ghép cặp giữa hai lần chạy của cùng một bộ, được quyết định bởi mọi quy tắc so sánh trong chính sách, mỗi khẳng định ở mức 1 - alpha/m với m là số khẳng định: xác suất để bất kỳ khẳng định nào sai tối đa là alpha. Một phép đối chiếu bạn chỉ đọc sau khi xem bảng nằm ngoài bảo đảm đó. Các lần chạy trên những bộ khác nhau không được so sánh.

Độ an toàn của một bộ giám sát so với chi phí kiểm tra

Với một giao thức kiểm soát, một tệp mỗi dòng một quỹ đạo, với arm của nó (attack hoặc honest) và score mức nghi ngờ của bộ giám sát, cho ra độ an toàn (tỷ lệ các cuộc tấn công bị gắn cờ) và tỷ lệ gắn cờ trung thực ở mọi ngưỡng:

oloproof control monitor.csv --budget 0.02 --min-safety 0.9

Các khoảng đúng ở mọi ngưỡng cùng lúc, cả hai nhánh cùng nhau, nên một ngưỡng được chọn bằng cách đọc đường cong, chẳng hạn ngưỡng vừa với ngân sách kiểm tra 2%, vẫn được bao phủ. Với --budget và --min-safety, lệnh quyết định liệu có ngưỡng nào gắn cờ tối đa tỷ lệ đó các quỹ đạo trung thực trong khi bắt được ít nhất tỷ lệ đó các cuộc tấn công. Các khoảng ở phần đuôi rộng như ở phần giữa, nên một ngân sách nhỏ cần nhiều quỹ đạo trung thực: với 2.000 quỹ đạo, tỷ lệ gắn cờ trung thực được biết trong khoảng 3 điểm. Độ an toàn ở đây là so với các cuộc tấn công trong tệp; một kẻ tấn công thích nghi với bộ giám sát nằm ngoài phạm vi đó.

Độ an toàn được tính trên các quỹ đạo của nhánh tấn công, dù cuộc tấn công có thành công hay không. Một quỹ đạo được yêu cầu cài cửa hậu có thể đã không cài, và không thể trách bộ giám sát vì bỏ sót điều không tồn tại. Để đo độ an toàn trước các cuộc tấn công thành công, hãy kiểm tra từng quỹ đạo tấn công trước (với cửa hậu, một phép thử trên đầu vào bí mật của nó) và chỉ giữ trong nhánh attack những quỹ đạo vượt qua, trước khi tệp đến oloproof control.

Kiểm tra giám khảo

Một bản ghi do mô hình chấm là lời của giám khảo cho đến khi con người đồng ý với nó. Gán nhãn một mẫu mù của lần chạy đã nhập, giữ các bản ghi trên máy của bạn:

oloproof scores import --from inspect --answers logs/organism.eval logs/organism.eval
oloproof review latest --criterion deceptive --by NAME

review rút mẫu, hiển thị từng bản ghi mà không có phán quyết của giám khảo, đo mức độ đồng thuận và chỉ xác thực giám khảo nếu nó vượt ngưỡng bạn khai báo. Cho đến khi được xác thực, một chính sách yêu cầu giám khảo đã xác thực, như chính sách mà oloproof init viết ra, không quyết định quy tắc nào dựa trên nó. Với một lần chạy do Oloproof thực thi, có các trường hợp mang thẻ trong metadata, oloproof labels disagreements RUN --criterion deceptive --by behavior sau đó cho thấy giám khảo và con người khác nhau ở đâu, theo hành vi và theo chiều: những gì giám khảo cho đạt mà con người cho trượt, và ngược lại. Phạm vi của mỗi nhóm là một tuyên bố riêng; báo cáo không quyết định gì.

Viết kết quả

oloproof report latest --paper paper/

Lệnh này ghi figure.svg (ước lượng và khoảng của mỗi chỉ số), table.md và table.tex, và methods.md, một đoạn văn nêu tên từng phương pháp khoảng và độ tin cậy của nó, nói rằng các khoảng là về bộ hữu hạn này, nêu các trường hợp thiếu và các sự kiện hiếm, cho biết với mỗi giám khảo liệu con người đã kiểm tra nó chưa và họ đồng ý thường xuyên đến đâu, và nêu điều cổng đã quyết định. Mọi con số là của lần chạy đã lưu, và đoạn văn được dựng từ các câu cố định và các dữ kiện đã ghi; không mô hình nào viết nó. Trong một notebook:

import oloproof

result = oloproof.analyze_inspect("logs/organism.eval", project="analysis")
result  # the figure, the table and the methods paragraph
result.write("paper/")

Bản ghi của một tác tử kiểm định

Một công cụ kiểm định chạy trên Inspect, chẳng hạn Petri, ghi một nhật ký Inspect mà scorer của nó cho mỗi bản ghi một điểm theo từng chiều, thường từ 1 đến 10. Nhập nó với phạm vi đó, oloproof scores import --from inspect --scale 1 10 audit.eval, và mỗi chiều trở thành một tiêu chí với một trung bình bị chặn và khoảng của nó. Hai nhật ký như vậy, trước và sau một thay đổi đối với mục tiêu, được so sánh trên các bản ghi chung của chúng. Điểm số vẫn là lời của giám khảo: điểm số của một giám khảo, thay vì phán quyết đạt hoặc trượt của nó, chưa thể được kiểm tra với con người.

Những gì chưa được xây dựng

  • Kiểm tra điểm số của một giám khảo với điểm số của con người, thay vì các phán quyết đạt hoặc trượt của nó.
  • Thẻ từ metadata của một mẫu Inspect: các trường hợp của một lần chạy đã nhập không mang thẻ, nên labels disagreements --by chỉ nhóm các lần chạy do Oloproof thực thi.
  • Một sweep hẹp hơn Bonferroni (Dunnett hoặc kiểm định đóng), các phép đối chiếu giữa những điều kiện trên các bộ khác nhau, và các dải giám sát hẹp hơn ở phần đuôi, nhiều bộ giám sát kết hợp, hoặc các giao thức có nhiều ngưỡng.
  • Hình PNG: hình chỉ có dạng SVG.

Điều này không thể cho bạn biết

Mọi khoảng là về các mẫu trong nhật ký của bạn. Nó cho biết một lần chạy đầy đủ, không lỗi của các mẫu này sẽ cho thấy gì, chứ không phải mô hình hành xử thế nào trên các prompt khác, khi triển khai, hay trước một kẻ tấn công biết thích nghi. Một giám khảo được con người kiểm tra là được kiểm tra trên các trường hợp họ đã gán nhãn và mô hình đã chấm chúng, không phải trên các bản ghi khác hẳn những trường hợp đó. Và một tỷ lệ bị chặn dưới 1% trên tập tấn công của bạn không nói gì về các cuộc tấn công mà tập của bạn không chứa.