為 AI 訓練資料建立不可變稽核追蹤:技術要求
EU AI Act 第 10 條和第 11 條要求對訓練資料的收集、處理和使用方式保留可驗證、防篡改的記錄。以下是不可變 AI 稽核追蹤的技術架構。
當 EU AI Act 表示 AI 系統必須維護其操作記錄時,並不意味著「在某處保存日誌文件」。它的意思是可驗證、防篡改的記錄,稽核員可以獨立確認這些記錄自創建以來未被修改。記錄必須涵蓋訓練資料的整個生命週期——從初始收集到每個 處理步驟,直到在模型訓練中的最終使用。
這是一個工程問題,而非政策問題。你無法用治理文件或手動記錄流程來解決它。你需要一個使修改歷史記錄不可能的技術系統——不只是困難,不只是可稽核,而是在架構上不可能。
本文涵蓋建立此類系統的技術要求:「不可變」在實踐中的含義、架構選項、在每個管道階段記錄什麼、儲存要求和整合考量。
「不可變」在此情境中的含義
稽核追蹤情境中的不可變性有一個特定的技術定義:一旦記錄被寫入,任何用戶、管理員或系統流程都無法修改、覆寫或刪除它。記錄在其整個保留期間以原始形式存在。
這比大多數記錄系統提供的保證更強。寫入文件的典型應用程式日誌可以被任何有文件系統訪問權限的人編輯。資料庫日誌可以被任何有寫入權限的人更新或刪除。即使是大多數資料庫中的「僅附加」配置也可以被管理員規避。
真正的不可變性需要以下一個或多個技術機制:
一次寫入儲存:在寫入後物理上或邏輯上防止修改的儲存媒體或配置。AWS S3 Object Lock、Azure Immutable Blob Storage 和 WORM(一次寫入多次讀取)儲存系統在儲存層提供此功能。對於本地部署,NetApp SnapLock 和類似技術在本地硬體上提供 WORM 儲存。
密碼學鏈接:每個日誌條目包含前一個條目的哈希值,創建一個修改任何單個條目都會使所有後續條目無效的鏈。這與區塊鏈使用的原理相同,但不需要分散式共識開銷。
數位簽名:每個日誌條目由記錄系統持有的私鑰簽名。對應的公鑰允許任何人驗證條目是由授權系統創建的,且未被修改。
具有行級安全的僅附加資料庫:具有適當行級安全策略的 PostgreSQL 可以防止對稽核表的 UPDATE 和 DELETE 操作,同時允許 INSERT。這是最弱的不可變性形式——資料庫管理員仍然可以規避它——但結合密碼學驗證,它提供了合理的保證。
對於 EU AI Act 合規,實際最低要求是帶有密碼學完整性驗證的僅附加儲存。稽核員應該能夠獨立驗證日誌未被篡改。
架構選項
選項 1:帶密碼學哈希的僅附加資料庫
對於擁有現有 PostgreSQL 基礎設施的團隊,這是最直接的方法。
實施:
- 創建一個具有僅插入權限的專用稽核架構
- 每個日誌條目包含其內容的 SHA-256 哈希值加上前一個條目的哈希值(哈希鏈)
- 行級安全策略防止對稽核表的 UPDATE 和 DELETE
- 一個單獨的驗證服務定期驗證哈希鏈完整性
- 將哈希鏈檢查點匯出到不可變的外部儲存用於獨立驗證
優點:使用現有資料庫基礎設施、快速查詢、熟悉的工具。
限制:具有超級用戶訪問權限的資料庫管理員可以繞過行級安全。通過以下方式緩解:(a) 將超級用戶訪問限制於帶有單獨記錄的緊急情況,(b) 將哈希檢查點匯出到 DBA 不控制的單獨系統,(c) 使用與生產資料庫不同管理員的單獨稽核資料庫。
成本:除現有 PostgreSQL 基礎設施外幾乎沒有額外成本。哈希計算每個日誌條目增加不到 1 毫秒。
選項 2:用於資料集版本控制的 Merkle 樹
Merkle 樹對資料集中的每條記錄進行哈希,然後對哈希對進行哈希,然後對這些哈希對進行哈希,直到得到單一根哈希。根哈希唯一標識資料集的確切內容。在單條記錄中更改一個字符,根哈希就會改變。
實施:
- 當資料集版本最終確定時,計算其 Merkle 樹根哈希
- 將根哈希存儲在防篡改位置(已簽名、加時間戳、匯出到不可變儲存)
- 要驗證資料集版本,重新計算其 Merkle 樹並比較根哈希
- 要識別版本之間哪些記錄發生了變化,比較中間哈希(高效差異比較)
優點:大型資料集的高效驗證(你可以通過檢查單個根哈希來驗證 100 萬條記錄的資料集)。版本之間的高效差異比較。具有良好安全屬性的標準密碼學原語。
限制:Merkle 樹驗證資料集完整性,但不捕獲過程(誰在何時做了什麼)。將 Merkle 樹用於資料集版本控制,同時使用單獨的日誌鏈記錄操作歷史。
成本:為 100 萬條記錄的資料集計算 Merkle 樹需要 2-5 秒。在資料管道的情境中可以忽略不計。