When a citation survives but the answer does not

개요

citation-drift-lab은 문서 소스 변경 시 인용된 답변이 유효하지 않게 되는 문제를 재현하고 감사하는 오프라인 도구로, 마크다운을 분석하여 원본 버전과 정확한 문자 오프셋을 유지하고, 추출된 주장을 나중에 변경된 소스 버전과 비교하여 감사합니다.

주요 내용

* 인용 드리프트 문제 재현: 문서의 특정 부분(예: 줄 번호, URL)을 인용하여 얻은 답변이라도 원본 소스가 변경되면(텍스트 이동, 숫자 변경, 예외 제거 등) 답변의 유효성이 상실될 수 있는 '인용 드리프트(citation-drift)' 현상을 실험적으로 보여줍니다.
* citation-drift-lab 작동 방식:
* 마크다운 파일을 입력으로 받아 원본 소스 버전과 정확한 문자 오프셋을 기록합니다.
* 추출(extractive) 방식으로 답변을 생성하며, 이 답변이 나중에 변경된 소스 버전과 비교하여 감사됩니다.
* 기본적으로 모델을 사용하지 않아(model-free), 결과보다는 감사 과정 자체에 초점을 맞춥니다.
* 데모 예시 (policy-v1.md):
* 버전 1: 30개 프로젝트 제한, 사고 예외 조항, 감사-내보내기 문구, HTML 헤더 등이 포함됩니다.
* 버전 2: 프로젝트 제한을 20개로 줄이고, 사고 예외 조항을 삭제하며, 감사-내보내기 섹션을 이동시키고, 관련 없는 텍스트를 수정합니다.
* 감사 결과: 프로젝트 제한 변경, 사고 예외 삭제, 감사-내보내기 문구 위치 변경 등의 결과가 보고됩니다.
* 응답 불가 질문의 경우, 답변을 생성하지 않고 'abstain'으로 기록하며, 이는 에이전트 파이프라인에서 잘못된 답변 대신 불충분한 증거를 기록하는 유용한 방식으로 활용될 수 있습니다.
* 구조 및 기록 메커니즘:
* 마크다운 파싱 후 SHA-256 해시로 원본 버전을 관리합니다.
* 청크(chunk)는 ATX 헤더 계층 구조와 Python 문자열 오프셋을 유지합니다.
* 인용 정보에는 문서 ID, 소스 해시, 경로, 헤더 경로, 청크 ID, 인용 텍스트, 오프셋이 저장되어 원본 문자열 슬라이싱으로 확인할 수 있습니다.
* 소스 해시는 제공된 텍스트가 영수증과 일치하는지 확인하지만, 출처나 신뢰성을 보장하지는 않습니다.
* LangGraph를 기반으로 prepare, retrieve, validate, answer, revise, abstain 단계를 포함하는 그래프 구조를 사용합니다.
* 기본 검색기는 lexical_bm25이며, hybrid_bm25_ollama 옵션으로 로컬 임베딩을 활용할 수 있습니다.
* 응답 생성은 기본적으로 추출 방식을 사용하며, Ollama 기반의 ollama_chat_unverified 옵션은 증거를 제시하지만 의미론적 일관성이나 문장 단위의 출처를 보장하지 않습니다.
* 감사 프로세스:
* 전역적으로 정확한 인용 텍스트를 검색합니다.
* 존재하지 않으면 헤더를 고려한 시퀀스 유사도 비교를 수행합니다.
* 숫자 변경이나 부정 표현 변경은 중요한 변경으로 간주될 수 있습니다.
* 이러한 규칙은 휴리스틱이며 인간의 검토를 지원하기 위한 것입니다.
* 경계의 중요성:
* 마크다운을 데이터로 취급하고, 프롬프트 텍스트는 실행되지 않으며, Pydantic 모델을 사용하여 필드와 스팬의 유효성을 검사합니다.
* 동적 값을 정적 HTML로 이스케이프 처리하여 보안을 강화합니다.
* 정확한 텍스트 일치는 증거의 존재 여부를 묻고, 해시 검증은 소스 바이트의 일치 여부를 확인하지만, 문맥 변경으로 인한 의미 변화는 감지하지 못합니다.
* 비용 및 한계:
* ATX 파싱은 CommonMark의 일부만 지원합니다.
* 청크가 길 수 있습니다.
* Lexical 검색은 결정론적이지만 관련성 벤치마크가 아닙니다.
* 중복 인용은 첫 번째 발생지로 해결됩니다.
* 드리프트 분류 및 중요도 플래그는 정책 결정 전에 인간의 검토가 필요합니다.
* 검증 및 결과:
* Repository는 AI 지원을 받아 개발되었으며, 구현, 테스트, 모델 없는 영수증, 명시된 한계 사항을 검토할 수 있습니다.
* 29개의 테스트가 통과되었으며, 의미론적 답변 품질이나 실제 모델 품질은 측정되지 않았습니다.

시사점

citation-drift-lab은 문서 변경으로 인한 정보의 불안정성을 기술적으로 파악하고 검증할 수 있는 도구로, 특히 AI 에이전트가 사용하는 정보의 신뢰성을 확보하고 잘못된 정보 생성을 방지하는 데 기여할 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions