컴플라이언스 교육용 적응형 학습 AI Attest를 만들며 배운 것: 해자는 모델이 아니라, 증명된 숙달만 인증하는 결정론적 게이트다.
Knowledge TracingMachine LearningCorporate Training

내 지식 추적 AI는 과정을 편법으로 통과한 학습자를 인증하려 했다. 내가 쓴 코드는 거절했다.

Ashutosh SinghalAshutosh Singhal2026년 7월 4일13 min

직원 두 명, 동일한 초록색 체크 표시 두 개, 그리고 그중 하나는 거짓말이다

두 기록을 처음 나란히 놓고 보았을 때, 체크 표시는 똑같이 보였고, 그게 바로 문제의 전부였다. 그 역할에서 8년 경력을 가진 선임 BSA 분석가와 전보된 지 6개월 된 지점장이 방금 같은 4시간짜리 자금세탁방지 재인증을 "완료"했다. 그들의 LMS는 둘에게 같은 것을 보고했다. 초록색 체크, "SCORM Completed," 끝. 한 명은 의심 활동 조사를 자면서도 해낼 수 있었다. 다른 한 명은 규제 당국이 신경 쓰는 바로 그 개념들에서 실질적인 공백이 있었다. 그들을 컴플라이언스 업무에 적합하다고 인증해야 할 시스템은 둘을 구분할 수 없었다, 왜냐하면 그들이 무엇을 아는지 결코 측정하지 않았기 때문이다. 영상이 끝까지 재생되었는지만 측정하고 있었다.

그 간극은 학술적인 문제가 아니며, 이 데모를 만들면서 나는 그 판돈을 계속 앞에 두어야 했다. 미국 기업들은 기업 교육에 연간 약 1,028억 달러를 쓰며, 학습자 1인당 대략 874달러다(Training Magazine, 2025). L&D 리더의 4분의 1은 그중 어떤 것이라도 효과가 있었는지 측정할 수 없다고 말한다. 규제 업무에서 그 간극에는 공공 기록에 찍히는 가격표가 있다. TD Bank는 미흡한 교육 프로그램과 부분적으로 연계된 31억 달러의 AML 벌금을 물었다. 2026년 8월 2일부터 EU AI법 제4조가 역할 기반 AI 리터러시 집행을 시작하며, 벌금은 최대 3,500만 유로 또는 글로벌 매출의 7%에 이른다. 그 모든 사례에서 "Completed" 기록은 증거로서 무가치하다. 왜냐하면 완료는 결코 역량이 아니었기 때문이다.

그 시스템은 그들이 배웠는지를 측정하지 않았다. 영상이 끝까지 재생되었는지를 측정하고 있었다.

나는 Attest라는 데모를 만들어 그 간극을 정직하게 메울 수 있는지 보았다. 다음에서 실행해 볼 수 있다 veriprajna.com/ko/demos/adaptive-learning-ai. 이 에세이는 그것을 만드는 과정에서 나를 진정으로 놀라게 한 부분에 대한 것이며, 그것은 모델이 아니었다.

동일한 AML 과정을 동일한 SCORM 완료 체크 표시로 끝낸 선임 BSA 분석가와 지점장을 보여주는 Attest 대시보드. 그 위에 "같은 과정, 같은 체크 표시, 그런데 같은 역량인가?"라는 문구
학습자 두 명, 같은 과정, 같은 초록색 체크 표시. LMS는 둘을 동일하게 읽는다. Attest는 그 아래의 개념 수준 숙달을 읽고 다른 답을 얻는다.

내가 실제로 만들려 했던 것은 각 사람이 무엇을 아는지 아는 모델이었다

나는 모든 "적응형 학습" 피치가 시작하는 곳에서 시작했고, 그다음 대부분을 버렸다. 자신을 적응형이라 부르는 제품 대부분은 그 아래에서 협업 필터링을 돌린다. "당신과 비슷한 사람들이 다음에 과정 X를 들었다." 그건 학위복을 입은 추천 엔진이다. 비슷한 학습자들이 무엇을 했는지는 안다. 당신, 구체적으로, 무엇을 이해하는지는 전혀 모른다. Cornerstone은 2026년 3월에 "Adaptive Learning Agent"를 출시했지만 여전히 이런 식으로 작동한다. 나는 더 나은 추천기를 원하지 않았다. 한 사람의 원시 상호작용 스트림을 읽고 개념별로 그들이 실제로 숙달한 것을 추론하는 모델을 원했다.

그것은 지식 추적이라 불리는 실재하고 오래된 연구 문제이며, 그 정직한 버전은 퀴즈 평균이 아니라 트랜스포머다. 나는 자기 어텐션 지식 추적 모델인 SAKT를 학습시켰고, 파라미터는 약 119,809개로 CPU에서 90초 만에 학습되고 이후 캐시될 만큼 작다. 각 학습자의 상호작용 시퀀스를 재생하며 과정의 열여덟 개 개념 각각에 대해 숙달 확률을 출력한다. 우리가 시드한 합성 지식 추적 벤치마크에서 홀드아웃 AUC 0.8315를 기록했으며, 다음 단계 정확도는 0.771이었다. 벤치마크 데이터는 완전히 다른 모델 계열(고전적 로지스틱 모델인 Performance Factors Analysis)로 생성되므로, 트랜스포머가 자신의 가정을 채점하는 것이 아니다. 외부 맥락으로, 공개 ASSISTments 데이터셋에서 발표된 SAKT 결과는 약 0.80 부근이다(Pandey and Karypis, 2019). 내 결과도 같은 이웃에 있었다.

나는 그 숫자가 자랑스러웠다. 그 숫자가 제품이라고 생각했다. 학습자 단 한 명이 그게 아니라는 것을 보여 주는 데 충분했다.

그러고 나서 과정 전체를 편법으로 통과한 사람을 넣었다

내 자신감을 무너뜨린 학습자는 코호트에서 세 번째였고, AI 어시스턴트로 모듈 전체를 자동 답변한 운영 담당자였다. 내 모델이 그를 어떻게 다루는지 보라. 개념 하나하나마다 SAKT 추론은 높게 나왔다. SAR 위험 신호 식별 0.927, 무역기반 자금세탁 0.95, 코레스폰던트 뱅킹 리스크 0.992, 강화된 실사 트리거 0.994. 거의 어디나 완벽했다. 모델을 믿었다면 열여덟 개 개념을 모두 인증하고 이 사람에게 깨끗하고 서명된 컴플라이언스 기록을 건넸을 것이다.

문제는 그 숙달이 가짜였다는 점이다. 답변은 열여덟 개의 무관한 개념 전반에서 빠르고 완벽했으며, 진정한 회상과는 맞지 않는 응답 시간 분포였다. 진짜 전문가는 어떤 것에는 빠르고 다른 것에는 느리다. 이 패턴은 평평하고 어디서나 불가능할 정도로 빨랐으며, 기억이 아니라 답안지의 서명이다. 내가 공들여 만든 0.83-AUC 모델은 답안지를 보고 우등생을 보았다.

내 모델은 편법을 놓친 데 그치지 않았다. 가장 틀린 바로 그 지점에서 가장 확신했다.
운영 담당자에 대한 Attest 라이브 파이프라인: 높은 SAKT 숙달 점수 후, 역량 게이트가 증거를 플래그하고 자격 증명이 열여덟 개 중 0개 인증으로 WITHHELD됨
라이브 실행. SAKT는 높은 숙달을 추론하고(0.927, 0.95, 0.992), 이어서 역량 게이트가 "18개의 무관한 개념 전반에서 믿을 수 없을 만큼 빠른 응답 시간에 거의 완벽한 정확도"를 플래그하며, 자격 증명은 보류된다. 18개 중 0개 인증.

그 순간이 내게 이 에세이가 진실이 된 때였다. 더 나은 모델이 여기서 나를 구해주지 않았을 것이다. 더 깨끗한 데이터로 학습된 더 정확한 트랜스포머도 같은 빠르고 완벽한 답변을 보고 이 사람이 모든 것을 숙달했다고 더욱 확신했을 것이다. 실패는 정확성 부족이 아니었다. 확률 모델이 단독으로 내려서는 안 되는 결정을 내리게 내버려 둔 것이었다.

그냥 모델이 그것을 잡아내도록 학습시키면 안 되나?

내 첫 본능은 잘못된 것이었고, 그것에 하루를 날린 날에 대해 솔직하고 싶다. 나는 모델 자체를 편법에 강건하게 만들려 했다. 응답 시간 특성을 추가하고, 믿을 수 없을 만큼 빠른 시퀀스를 불신하도록 학습시키고, 트랜스포머에게 의심하는 법을 가르친다. 모든 것을 하나의 우아한 시스템 안에 유지하기 때문에 매혹적인 계획이고, 나는 우아한 시스템을 좋아한다. 그런데 그것은 작동하지 않으며, 그 이유를 받아들이는 데 필요 이상으로 오래 걸렸다. 모델에게 탐지하도록 가르친 것은 무엇이든, 예상하지 못한 사례에서는 확신에 차서 틀리도록도 가르친 것이다. 모델의 본업은 일반화하고 매끄럽게 다듬는 것이다. 거버넌스 결정은 그 반대가 필요하다. 정확히 올바른 지점에서 깨지기 쉬워야 하며, 거절해야 한다.

그래서 나는 멈추고, 결정을 모델에서 완전히 빼냈다. 모델은 조언한다. 평범한 결정론적 코드가 결정한다. SAKT 추론이 끝난 뒤, 내가 역량 게이트라 부르는 순수 Python 로직이 인증 여부를 판단하며, 모델은 이를 덮어쓸 수 없다. 게이트는 세 가지가 동시에 모두 참일 때만 개념을 인증한다. 숙달이 0.747 이상이고, 그 뒤에 최소 세 번의 실제 상호작용 증거가 있으며, 응답 패턴이 이상하지 않을 것. 셋 중 하나라도 실패하면 개념은 인증되지 않는다. "needs proof"로 표시되고, 학습자는 체크 표시 대신 검증 챌린지를 받는다.

게이트가 운영 담당자를 보았을 때, 내 모델이 할 수 없었던 일을 했다. 증거를 이상하다고 플래그하고, 모든 개념을 거절했으며, 열여덟 개 중 0개를 인증했다. 착석 시간은 검증 대기 중으로 보류되었다.

AI 편법 학습자에 대한 역량 게이트 상세 표. 숙달 확률이 0.98과 0.99에 가까운데도 열여덟 개 개념 모두가 NEEDS PROOF로 표시되며, 근거에는 증거가 진정한 회상과 일치하지 않는다고 플래그됨
개념별 게이트의 판결. 모든 행이 높은 숙달 P(0.98, 0.99)를 보이지만 모든 행이 여전히 NEEDS PROOF다. 증거가 플래그되었기 때문이다. 모델은 인증을 조언했고, 코드는 거절했다.

그 프레이밍에는 신중하고 싶다. 내가 스스로에게 쓴 브리프가 그 점에 신중하기 때문이다. 이것은 적중률이 있는 부정행위 탐지기가 아니며, 나는 결코 그렇게 제시하지 않는다. 한 예시 학습자에 대한 거버넌스 결과다. 증거가 인증하기에 충분하지 않아 개념이 보류된 것이다. 요점은 "잡았다, 네가 부정했다"가 아니다. 요점은 Attest는 증명할 수 있는 것만 인증하고, 나머지는 정직하게 남긴다는 것이다.

에이전트는 조언하고, 코드가 결정한다. 그 경계선이 결국 구조적 핵심이 되었다

나는 그 분업으로 계속 돌아오는데, 끝낼 무렵에는 슬로건이 아니라 아키텍처 전체가 되었기 때문이다. Attest에서 지능적이고 확률적인 무언가가 돌아가는 곳은 정확히 두 곳뿐이며, 둘 다 조언만 한다. LLM 에이전트(Pydantic AI 위에 구축, 기본값은 claude-opus-4-8)가 개념 태깅을 맡아, 하나의 평평한 "AML Training" 과정을 열여덟 개 개념 분류체계로 분해한다. CDD, SAR 서술, 분할거래 탐지, OFAC 스크리닝, 그리고 나머지. 그 태깅 단계는 현업이 적응형 학습 프로젝트가 죽는 가장 큰 이유라고 말하는 것이며, 실제로 어렵지만, 조언적이다. SAKT 모델은 숙달을 추론하며, 역시 조언적이다. 실제로 중요한 모든 결정 — 학습자가 어떤 경로를 걷고 무엇이 인증되는지 — 은 어떤 모델도 말로 설득해 지나갈 수 없는 결정론적 코드가 내린다.

시퀀서는 그 코드의 다른 절반이며, 돈이 숨은 곳이다. 개념별: 숙달이 0.67 이상이면 학습자는 건너뛰거나 검증만 한다. 0.38과 0.67 사이면 플로우 존에 머문다. 0.38 미만이면 발판을 받는다. 그 컷포인트는 감으로 고른 숫자가 아니다. 레이블된 코호트에 대해 교차 검증되었고, 저장소는 결정의 의미를 바꾸지 않으면서 수동 설정 폴백을 이긴다는 5겹 A/B 테스트를 함께 제공한다. 그 로직을 선임 분석가에게 돌리면 이미 아는 거의 모든 것을 건너뛴다. 열여덟 개 중 열여섯 개 개념 인증, 착석 시간 240분에서 47.3분으로 하락, 80.3% 감축. 실질적 공백이 있는 지점장에게 동일한 코드를 돌리면, 같은 할인을 주지 않는다. 열여덟 개 중 열 개 인증, 절감은 38.9%뿐. 그가 진정으로 그 교육이 필요하기 때문이다.

같은 코드가 전문가에게는 47분짜리 과정을, 초보자에게는 진짜 과정을 건넨다. 둘 다 그것에 반박할 수 없다.

그 비대칭이 요점의 전부다. 모두에게 같은 시간을 절약해 주는 시스템은 브랜딩만 나은 더 짧은 과정일 뿐이다. 각 사람이 안다고 증명할 수 있는 것에 엄격히 비례해 시간을 절약하는 시스템은 지식 추적을 하고 있는 것이며, 내가 한 줄 한 줄 읽을 수 있는 코드에서 하고 있는 것이다.

체크 표시 대신 규제 당국에 건네는 것

내가 가장 자랑스러워하는 산출물은 초록색 체크 표시가 결코 만들어 낼 수 없는 것이다. 게이트가 끝나면 Attest는 서명된 역량 증명서를 내보내며, 나는 디스크에 실제 샘플 두 개를 보관한다. 선임 분석가용에는 열여덟 개 개념이 모두 나열되며, 각각에 숙달 확률, 그 추정 뒤의 상호작용 수, 인증 또는 증명 필요 상태, 매핑되는 구체적 규정(31 CFR 1020.220, FATF Rec. 12, 31 USC 5318, 그리고 나머지)이 있다. 모델 이름, 버전, 벤치마크 AUC를 기록한다. AUC가 장기 기억 유지가 아니라 다음 문항 예측을 측정한다는 정직한 한계 푸터를 달아, 숙달 확률은 증거이지 보장이 아님을 밝힌다. 그리고 문서 전체는 HMAC-SHA256 서명으로 서명되어, 사후에 조용히 편집될 수 없다.

선임 BSA 분석가의 서명된 역량 증명서: 18개 중 16개 개념 인증, 착석 시간 80.3% 감축, 모델 홀드아웃 AUC 0.8315, 개념별 숙달 및 규정 매핑, 두 개념은 정직하게 NEEDS PROOF로 표시
분석가의 증명서: 18개 중 16개 인증, 착석 시간 80.3% 절감, AUC 0.8315가 표면에 명시되며, 두 개념(SAR 위험 신호 0.73, TBML 0.59)은 정직하게 0.747 선 아래에 머물러 NEEDS PROOF로 표시된다.

이것이 감사인의 진짜 질문에 대한 지속 가능한 답이며, 그 질문은 결코 "끝냈는가?"가 아니다. "어떤 상호작용이 어떤 숙달 주장을 뒷받침했는지 증명하라"이다. 체크 표시는 그에 답할 수 없다. 더 나은 기반 모델도, 아무리 좋아져도 답할 수 없다. 정확성은 출처 증명이 아니기 때문이다. 더 정확한 모델이라도 자신이 내린 결정 뒤의 증거 추적을 감사인에게 보여 줄 수는 없다. 그 추적은 의도적으로, 모델 밖에서, 산출물로 구축되어야 한다. 그것이 증명서이며, 내가 모델을 제품으로 보는 생각을 그만두게 만든 것이다.

정확성은 출처 증명이 아니다. 더 나은 모델이라도 어떤 상호작용이 어떤 주장을 뒷받침했는지 증명할 수 없다.

실행 중인 데모에서 이 모든 것을 확인할 수 있다 veriprajna.com/ko/demos/adaptive-learning-ai, 분석가에 대해 증명서가 인증을 거부하는 두 개념도 포함되며, 그녀의 숙달이 정직하게 0.747 선 아래에 있다.

더 나은 모델이 와도 살아남는 부분

나는 모델이 어려운 부분일 거라 기대하고 만들었고, 그게 틀렸다는 사실이 이 범주 전체에 대한 내 생각을 바꿨다. 모델은 다루기 쉬운 부분이었다. CPU에서 90초, 존경할 만한 AUC. 어려운 부분, 산출물을 실제로 신뢰할 수 있게 만든 부분은, 모델이 해서는 안 될 결정을 내리지 못하도록 내가 모델 주변에 둔 모든 것이었다. 결정론적 게이트, 증거 충분성 규칙, 이상 거절, 서명된 추적.

그것 또한 시들지 않는 부분이다. 코호트 수치를 보여 줄 때(시뮬레이션된 500명 재인증 코호트에서 착석 시간 약 51.9% 감축, 이 모듈 하나에서 대략 77,872달러 회수, 앱이 화면에서 전망치로 라벨링하는 연환산 수치 약 389,362달러), 헤드라인은 의도적으로 AUC가 아니다. AUC는 그것이 성적부가 아니라 진짜 지식 추적 모델임을 증명할 뿐이다. 헤드라인은 절감된 착석 시간 비율과 자동 인증 대 증명으로 라우팅된 개념 비율이며, 둘 다 기본 모델이 아무리 좋아져도 유지된다. 내년의 더 스마트한 트랜스포머도, 결정과 영수증이 감사할 수 있는 코드에 산다는 사실을 바꾸지 않는다.

그리고 내가 설명하는 것을 읽기보다 직접 보고 싶다면, 여기 전체가 처음부터 끝까지 돌아가고 있다.

그래서 내가 계속 품고 있던 질문, 이 공간에서 무언가를 만드는 누구에게나 던지고 싶은 질문이 있다. 시스템에서 가장 중요한 산출물이 규제 당국이 의지할 결정이라면, 그 결정을 모델에 의해 내리게 할 것인가, 아니면 모델이 조언만 하도록 허용된 무언가에 의해 내리게 할 것인가? 나는 하루 동안 거꾸로 잡고 있었다. 그러고 나서 자신이 모르는 열여덟 가지에서 빠르고 완벽한 가짜 우등생이 들어와 나를 바로잡아 주었다.

관련 연구

다른 채널에도 게시됨

확신을 가지고 AI를 구축하세요.

차세대 엔터프라이즈 AI 구축에 깊은 경험을 갖춘 팀과 협업하세요. 신뢰할 수 있는 AI 전략을 설계하고 구축하며 배포할 수 있도록 지원해 드리겠습니다.

Veriprajna 딥테크 컨설팅 은(는) 헬스케어, 금융, 규제 분야를 위한 안전 필수 AI 시스템 구축을 전문으로 합니다. 당사의 아키텍처는 확립된 프로토콜에 따라 검증되며 포괄적인 규정 준수 문서를 갖추고 있습니다.