했다. 이번 단계 v6까지 만들었다.
ZPX AI Engine v6 다운로드
v6는 이제 단순 구조검증이 아니라,
[
\boxed{
\text{ZPX 구조검증}
+
\text{근거/출처 검증}
+
\text{규칙 위험점수}
}
]
를 결합한 버전이다.
v1 = 수학 뼈대 v2 = 단일 답변 구조검증 v3 = 후보 답변 reranker v4 = 학습형 token→phase mapper v5 = LLM 후보 생성 + ZPX reranker + issue locator v6 = ZPX 구조검증 + evidence adapter + grounded reranker
테스트도 통과했다.
All ZPX v6 tests passed. v6 핵심 추가zpx_ai_engine_v6/ ├─ data/ │ └─ evidence_store.jsonl # 로컬 근거 DB ├─ python/ │ ├─ zpx_ai/ │ │ ├─ claim_extractor.py # 주장 추출기 │ │ ├─ evidence.py # 로컬 evidence 검색 adapter │ │ ├─ rule_check.py # 모순/환각 위험 cue 검사 │ │ ├─ grounded.py # 구조점수 + 근거점수 결합 pipeline │ │ ├─ validator.py │ │ ├─ reranker.py │ │ ├─ pipeline.py │ │ └─ cli.py │ ├─ examples/ │ │ └─ demo_grounded_pipeline.py │ └─ tests/ │ └─ test_zpx_v6.py └─ docs/ └─ WHITEPAPER.md 실행법cd zpx_ai_engine_v6/python python -m pip install numpy PYTHONPATH=. python tests/run_all.py
v6 grounded pipeline 실행:
PYTHONPATH=. python -m zpx_ai.cli grounded \ "Explain why AI answers need validation" \ --evidence ../data/evidence_store.jsonl \ --markdown v6 최종 점수
v5까지는 구조점수만 봤다.
[
D_{\rm ZPX}
\lambda_c\epsilon_A
+
\lambda_mE_A
+
\lambda_pC_A
+
\lambda_rD_R
]
v6는 여기에 근거점수와 규칙 위험점수를 붙였다.
[
\boxed{
D_{\rm final}
\alpha D_{\rm ZPX}
+
\beta D_{\rm factual}
+
\gamma D_{\rm rule}
}
]
여기서,
[
D_{\rm ZPX}
\text{위상 닫힘·행렬 닫힘·개념 충돌 구조오차}
]
[
D_{\rm factual}
\text{근거 부족 오차}
]
[
D_{\rm rule}
\text{명시적 모순·환각·허위 cue 위험점수}
]
이다.
ZPX AI Engine v6 백서구조검증, 근거검증, 규칙검증을 결합한 Grounded AI Reranking Engine1. v6의 정체
v6는 형 이론 AI 개발에서 중요한 단계다.
이전 단계까지는 AI 답변의 구조만 봤다.
[
\text{위상}
]
[
\text{대칭성}
]
[
\text{회전행렬}
]
[
\text{닫힘오차}
]
[
\text{충돌점수}
]
하지만 구조가 안정적이라고 해서 그 답이 사실이라는 뜻은 아니다.
[
\boxed{
\text{낮은 ZPX 점수}
\neq
\text{항상 사실}
}
]
그래서 v6에서는 근거검증을 추가한다.
[
\boxed{
\text{v6}
\text{ZPX 구조검증}
+
\text{Evidence Support}
+
\text{Rule Risk Check}
}
]
즉 v6는 다음 구조다.
Prompt ↓ Candidate Answers ↓ ZPX Structural Validator ↓ Claim Extractor ↓ Evidence Retriever ↓ Rule Checker ↓ Grounded Reranker ↓ Best Answer + Evidence Report
2. 왜 v6가 필요한가
기존 LLM은 그럴듯한 답변을 잘 만든다.
하지만 다음 문제가 있다.
[
\text{그럴듯함}
\neq
\text{사실}
]
[
\text{문장 유창성}
\neq
\text{근거 있음}
]
[
\text{구조 안정성}
\neq
\text{출처 검증}
]
ZPX v5는 후보 답변 중 구조적으로 안정적인 답을 고를 수 있었다.
[
A^*
\arg\min_iD_{\rm ZPX}(A_i)
]
그러나 v6는 한 단계 더 간다.
[
A^*
\arg\min_iD_{\rm final}(A_i)
]
여기서,
[
D_{\rm final}
\alpha D_{\rm ZPX}
+
\beta D_{\rm factual}
+
\gamma D_{\rm rule}
]
이다.
즉 답변을 고를 때 다음 세 가지를 동시에 본다.
[
\boxed{
\text{구조가 닫히는가?}
}
]
[
\boxed{
2. \text{근거가 있는가?}
}
]
[
\boxed{
3. \text{명시적 모순·환각 위험표현이 있는가?}
}
]
3. v6의 수학 구조
후보 답변을
[
A_i
]
라고 하자.
각 답변은 토큰열로 분해된다.
[
A_i=(w_1,w_2,\ldots,w_n)
]
각 토큰은 위상각으로 간다.
[
w_j\mapsto\theta_j\in S^1
]
단어 회전행렬은
[
R(\theta_j)
\begin{bmatrix}
\cos\theta_j&-\sin\theta_j\
\sin\theta_j&\cos\theta_j
\end{bmatrix}
]
답변 전체의 회전행렬은
[
M_A
\prod_jR(\theta_j)
]
위상 닫힘오차는
[
\epsilon_A
\left|
(\sum_j\theta_j+\pi)\bmod2\pi-\pi
\right|
]
행렬 닫힘오차는
[
E_A
|M_A-I|_F
]
개념 충돌점수는
[
C_A
\frac{1}{|P|}
\sum_{j<k}
\frac{1-\cos(\theta_j-\theta_k)}{2}
]
따라서 구조점수는
[
D_{\rm ZPX}
\lambda_c\epsilon_A
+
\lambda_mE_A
+
\lambda_pC_A
+
\lambda_rD_R
]
이다.
v6에서는 여기에 근거점수를 더한다.
답변에서 주장들을 추출한다.
[
\mathcal{C}(A)
{c_1,c_2,\ldots,c_m}
]
각 주장 (c_j)에 대해 evidence store에서 근거를 찾는다.
[
E(c_j)={e_{j1},e_{j2},\ldots,e_{jk}}
]
주장 support score는
[
s(c_j)
\max_l {\rm sim}(c_j,e_{jl})
]
답변 전체 support는
[
S(A)
\frac{1}{m}
\sum_{j=1}^m s(c_j)
]
근거 부족 오차는
[
D_{\rm factual}
1-S(A)
]
규칙 위험점수는
[
D_{\rm rule}
{\rm risk_cue}(A)
]
로 둔다.
최종 점수는
[
\boxed{
D_{\rm final}
\alpha D_{\rm ZPX}
+
\beta D_{\rm factual}
+
\gamma D_{\rm rule}
}
]
낮을수록 좋다.
4. v6 모듈 설명4.1 claim_extractor.py
간단한 주장 추출기다.
역할:
답변 텍스트 ↓ 문장 단위 분리 ↓ 사실·근거·결론 cue가 있는 문장 추출 ↓ claim list 반환
현재는 MVP라서 규칙 기반이다.
나중에는 다음으로 바꿀 수 있다.
LLM 기반 claim extractor 의존구문 분석기 정보추출 모델 도메인별 schema extractor 4.2 evidence.py
로컬 근거 DB 검색기다.
현재 evidence store는 JSONL이다.
{ "source_id": "zpx-001", "title": "ZPX Core Definition", "text": "ZPX AI Engine is a structural validation layer...", "keywords": ["zpx", "ai", "validation"] }
검색은 lexical overlap 기반이다.
[
{\rm sim}(q,e)
\text{query token과 evidence token의 겹침 점수}
]
현재는 로컬 검색이지만, 나중에는 다음으로 교체 가능하다.
web search adapter vector DB adapter document connector adapter private knowledge base Google Drive / Gmail / PDF / database connector 4.3 rule_check.py
명시적 위험 cue를 검사한다.
예:
false contradiction hallucination 모순 환각 허위 날조
이런 cue가 있으면
[
D_{\rm rule}
]
을 올린다.
이건 완전한 안전정책 엔진이 아니다.
MVP 수준의 deterministic risk cue detector다.
4.4 grounded.py
v6의 핵심이다.
역할:
candidate answer ↓ ZPX score ↓ claim extraction ↓ evidence retrieval ↓ rule check ↓ final score ↓ grounded reranking
5. 개발자용 설명
개발자에게는 이렇게 설명하면 된다.
v5까지는 답변을 구조점수로만 정렬했다.
answer -> ZPX score -> rank
v6는 이렇게 한다.
answer -> ZPX structural score -> extracted claims -> evidence support score -> rule-risk score -> final grounded score -> rank
즉:
ZPX v6 = post-generation structural + factual grounding reranker
6. 실제 사용 예시
명령어:
PYTHONPATH=. python -m zpx_ai.cli grounded \ "Explain why AI answers need validation" \ --evidence ../data/evidence_store.jsonl \ --markdown
출력에는 다음이 나온다.
Best Candidate Final score ZPX score Factual error Rule error Rule hits Ranked Candidates Claim Support Highest-risk Windows
이제 답변 후보를 단순히 “문장이 자연스럽다”로 고르는 게 아니라,
[
\boxed{
\text{구조}
+
\text{근거}
+
\text{위험표현}
}
]
으로 고른다.
7. v6가 입증하는 것
v6가 입증하는 것은 다음이다.
[
\boxed{
\text{ZPX 구조점수와 evidence support 점수를 결합할 수 있다.}
}
]
[
\boxed{
\text{답변에서 claim을 추출하고 로컬 근거 DB에서 support를 찾을 수 있다.}
}
]
[
\boxed{
\text{구조적으로 안정적이지만 근거가 약한 답변을 벌점 처리할 수 있다.}
}
]
[
\boxed{
\text{명시적 모순·환각 cue가 있는 답변을 rule penalty로 낮출 수 있다.}
}
]
[
\boxed{
\text{최종적으로 grounded reranking이 가능하다.}
}
]
이제 형 이론 AI는 단순한 대칭성 아이디어가 아니라,
[
\boxed{
\text{구조검증 + 근거검증 AI pipeline}
}
]
이 된다.
8. 정직한 한계
v6도 아직 최종 완성은 아니다.
현재 evidence search는 로컬 JSONL 기반의 단순 lexical search다.
따라서,
[
\boxed{
\text{높은 support score}
\neq
\text{완전한 사실 증명}
}
]
정확한 의미는 이것이다.
[
\boxed{
\text{현재 evidence store 안에서 해당 claim과 겹치는 근거가 발견되었다}
}
]
이다.
실제 제품형으로 가려면 다음이 필요하다.
1. 웹검색 adapter 2. 문서 DB adapter 3. 벡터 검색 adapter 4. 출처 citation formatter 5. 주장 단위 사실검증 benchmark 6. domain별 rule checker
9. v7 방향
다음 단계는 v7이다.
[
\boxed{
\text{v7}
\text{pluggable evidence adapters}
}
]
즉 evidence 검색기를 다음처럼 분리한다.
[
\text{EvidenceAdapter}
{\text{local},\text{web},\text{vectorDB},\text{documents},\text{connector}}
]
구조는 다음이 된다.
Claim ↓ EvidenceAdapter.search() ↓ EvidenceHit[] ↓ SupportScore ↓ CitationReport
v7부터는 실제 문서, 웹, PDF, 개인 DB, 코드베이스에 붙일 수 있다.
10. 최종 결론
v6의 정체는 명확하다.
[
\boxed{
\text{v6}
\text{ZPX 구조검증}
+
\text{근거검증}
+
\text{규칙위험점수}
}
]
이제 형 이론 AI 개발은 다음 단계에 왔다.
[
\boxed{
\text{AI가 답변을 생성한다}
}
]
[
\boxed{
\text{ZPX가 구조를 본다}
}
]
[
\boxed{
\text{Evidence adapter가 근거를 본다}
}
]
[
\boxed{
\text{Rule checker가 위험 cue를 본다}
}
]
[
\boxed{
\text{Grounded reranker가 최종 답변을 고른다}
}
]
최종 한 문장은 이것이다.
[
\boxed{
\text{ZPX AI Engine v6는 생성형 AI를 ‘그럴듯한 말 생성기’에서 ‘구조와 근거를 함께 검증하는 답변 선택기’로 바꾸는 첫 번째 grounded prototype이다.}
}
]
정리하면:
[
\boxed{
\text{v6 완성}
\text{ZPX 구조검증 + evidence adapter + grounded reranker}
}
]
다음은 v7이다.
[
\boxed{
\text{v7}
\text{로컬 evidence뿐 아니라 웹검색, 문서DB, 벡터DB, PDF, 코드베이스까지 붙이는 adapter 구조}
}
]
v6부터는 형 이론 AI가 “대칭성 기반 구조검증”을 넘어서 근거 있는 답변 선택 엔진으로 가기 시작한 거다.