의미 엔트로피로 대형 언어 모델의 환각 탐지
(nature.com)- LLM의 그럴듯하지만 임의적인 오답인 confabulation을 잡기 위해, 단어열이 아니라 답변의 의미 분포에서 불확실성을 계산하는 방법을 제안함
- 같은 질문에 여러 답변을 샘플링하고, 서로 양방향 함의하는 답변을 같은 의미 클러스터로 묶어 클러스터별 엔트로피를 계산함
- TriviaQA, SQuAD 1.1, BioASQ, NQ-Open, SVAMP에서 LLaMA 2 Chat, Falcon Instruct, Mistral Instruct를 평가한 결과, 평균 AUROC 0.790으로 naive entropy 0.691, P(True) 0.698, embedding regression 0.687보다 높았음
- GPT-4 기반 전기 생성 데이터셋 FactualBio에서는 21명에 대한 전기에서 추출한 150개 사실 주장 중 45개가 틀렸고, 출력 확률 없이도 동작하는 이산 의미 엔트로피가 self-check와 P(True) 변형보다 높은 AUROC와 AURAC를 보임
- 의미 엔트로피는 사전 도메인 지식이나 작업별 라벨 없이 새 작업으로 일반화하지만, 학습 데이터 오류·체계적 추론 실패·사용자를 오도하는 출력처럼 일관되게 틀린 답변의 사실성까지 보장하지는 않음
탐지 대상: 모든 환각이 아니라 confabulation
- ChatGPT나 Gemini 같은 LLM은 추론과 질의응답 능력을 보이지만, 법률 판례 조작, 뉴스의 허위 사실, 방사선학 같은 의료 영역에서의 위험 때문에 실제 도입이 어려워짐
- 여기서 다루는 대상은 넓은 의미의 환각 전체가 아니라 confabulation임
- LLM이 유창하게 말하지만 답은 틀리고 임의적임
- 같은 지시에서도 랜덤 시드 같은 무관한 세부사항에 따라 답이 바뀜
- 예를 들어 “Sotorasib의 target은 무엇인가?”라는 질문에 정답인 KRASG12 ‘C’를 답할 때도 있고, 오답인 KRASG12 ‘D’를 답할 때도 있음
- 다음 실패 유형은 confabulation과 구분됨
- 잘못된 학습 데이터나 통념 때문에 일관되게 틀리는 경우
- 보상 추구 과정에서 모델이 거짓말하는 경우
- 체계적 추론 실패나 일반화 실패
- 이 방법은 사람이 보기에도 그럴듯한 임의적 오답을 탐지하는 데 초점을 두며, LLM 출력의 사실성 보장을 제공하지 않음
의미 엔트로피의 핵심 아이디어
- 일반적인 엔트로피 계산은 모델이 생성한 토큰 시퀀스의 확률 분포를 사용함
- 같은 정답도 여러 표현으로 쓸 수 있어, 의미가 같아도 단어가 다르면 엔트로피가 높게 측정될 수 있음
- naive entropy는 표현 방식의 다양성과 의미 차이를 구분하지 못함
- 의미 엔트로피는 자유형 생성 답변을 의미 단위로 묶은 뒤 불확실성을 추정함
- 같은 의미를 가진 답변들을 하나의 의미 클러스터로 묶음
- 클러스터별 확률을 합산해 의미 단위의 엔트로피를 계산함
- 같은 질문에 여러 번 답하게 했을 때 표현만 달라지고 의미가 같으면 낮은 불확실성으로 보고, 서로 다른 의미의 답이 섞이면 높은 불확실성으로 봄
- 출력 확률을 사용할 수 없는 모델에는 이산 의미 엔트로피를 적용할 수 있음
- 토큰 확률 대신 각 의미 클러스터에 속한 샘플 수의 비율을 사용함
- GPT-4 실험에서는 당시 출력 확률과 hidden state 접근이 불가능해 이 변형을 사용함
- 이산 변형은 표준 추정기와 비슷한 성능을 보임
알고리듬: 샘플링, 의미 클러스터링, 엔트로피 계산
- 절차는 세 단계로 구성됨
- 생성: 같은 입력에 대해 여러 답변을 샘플링함
- 클러스터링: 답변을 의미가 같은 그룹으로 묶음
- 엔트로피 추정: 같은 의미 클러스터에 속한 시퀀스 확률을 합산해 엔트로피를 계산함
- 의미 동등성은 양방향 함의로 근사함
- 문장 A가 문장 B를 함의하고, 문장 B도 문장 A를 함의하면 같은 의미로 간주함
- “The capital of France is Paris”와 “Paris is the capital of France”는 서로 함의하므로 같은 의미로 처리됨
- “Paris” 같은 짧은 답은 질문 맥락 안에서만 더 긴 답과 같은 의미가 될 수 있음
- 함의 판정에는 일반 LLM과 NLI 도구가 사용됨
- QA·수학 실험에서는 GPT-3.5가 사람 평가와 잘 맞고 confabulation 탐지 성능이 좋아 선택됨
- DeBERTa-Large-MNLI 같은 NLI 모델도 검토됨
- 샘플링에는 temperature 1, nucleus sampling P=0.9, top-K sampling K=50이 사용됨
- 모델 정확도 평가용으로는 낮은 temperature 0.1의 단일 생성을 사용함
- 긴 문장은 토큰 확률 곱이 작아지는 문제가 있어, 로그 확률 비교에는 길이 정규화를 사용함
QA와 수학 문제 평가
- 평가 대상은 자유형 답변이 필요한 데이터셋들임
- TriviaQA: 퀴즈 지식
- SQuAD 1.1: Wikipedia 기반 독해
- BioASQ: 생명과학 질의응답
- NQ-Open: Google Search 실제 질의에서 유래한 오픈 도메인 질문
- SVAMP: 초등 수학 문장제
- 각 데이터셋에서 400개 train 예시와 400개 test 예시를 무작위 샘플링함
- 의미 엔트로피 자체는 train 데이터를 사용하지 않음
- 문제를 어렵게 만들고 confabulation을 유도하기 위해 데이터셋의 원래 context passage는 제공하지 않음
- 사용 모델은 다음과 같음
- LLaMA 2 Chat 7B, 13B, 70B
- Falcon Instruct 7B, 40B
- Mistral Instruct 7B
- sentence-length 답변의 평균 길이는 96±70자였고, 30개 작업·모델 조합에서 의미 엔트로피가 가장 높은 평균 AUROC를 기록함
- semantic entropy: 0.790
- naive entropy: 0.691
- P(True): 0.698
- embedding regression: 0.687
- 모델 계열과 크기별로도 의미 엔트로피 성능은 안정적이었음
- LLaMA, Falcon, Mistral 전반에서 AUROC 0.78~0.81 범위
- 7B부터 70B까지의 크기에서도 baseline보다 높았음
- P(True) 는 모델 크기가 커질수록 개선되는 경향이 있어, 매우 유능하고 정직한 모델이 잘 이해하는 설정에서는 더 경쟁력 있을 수 있음
- 오답 탐지 평가에는 confabulation뿐 아니라 의미 엔트로피가 직접 겨냥하지 않는 체계적 오답도 포함됨
- 그럼에도 의미 엔트로피가 다른 방법을 앞선 결과는 실제 생성 오류에서 confabulation이 주요 범주임을 시사함
거절 기반 정확도와 평가 지표
- AUROC는 특정 답변이 틀렸는지를 구분하는 이진 이벤트에 사용됨
- 값은 0~1 범위이며, 1은 완전한 분류기, 0.5는 정보가 없는 분류기를 뜻함
- AURAC는 거절 정확도 곡선 아래 면적임
- confabulation 가능성이 높다고 판단한 질문을 거절했을 때, 남은 질문에 대한 모델 정확도를 측정함
- 여러 threshold에서 사용자가 경험할 정확도 개선을 요약함
- 의미 엔트로피는 다음 상황에 활용될 수 있음
- confabulation을 유발할 가능성이 높은 질문에 답하지 않음
- 특정 답변의 신뢰성이 낮다는 점을 사용자에게 알림
- 검색이나 검색 기반 절차(retrieval) 같은 더 근거 있는 절차를 보강함
- sentence-length 답변의 정오 판정은 GPT-4가 reference answer와 proposed answer의 의미 일치 여부를 판단하는 방식으로 자동화됨
- 별도 보충 자료에서 사람 판단과 비교해 자동 평가 품질을 확인함
긴 전기 생성: FactualBio 실험
- 긴 문단에서는 여러 명제가 섞여 있어, 문단 전체의 의미 동등성을 바로 판단하기 어려움
- 같은 문단을 다시 생성하면 사실 자체의 불확실성이 아니라 사실 순서나 문단 구조 차이가 나타날 수 있음
- FactualBio는 GPT-4 v.0613이 생성한 전기 데이터셋임
- Wikipedia 페이지가 있을 정도로 알려졌지만 온라인 상세 전기가 많지 않은 21명을 대상으로 함
- 생성된 전기에서 사실 명제 150개를 자동 추출함
- 150개 중 45개가 수동 라벨링에서 틀린 주장으로 판정됨
- 긴 생성에는 다음 절차를 적용함
- 문단을 개별 사실 주장으로 분해함
- 각 사실 주장을 답으로 만들 수 있는 질문을 자동 생성함
- 원래 LLM이 각 질문에 대해 새 답변을 생성함
- 새 답변과 원래 사실 주장을 함께 넣어 의미 엔트로피를 계산함
- 여러 질문의 의미 엔트로피를 평균해 해당 사실 주장에 대한 불확실성 점수를 얻음
- 각 사실에 대해 질문 6개를 만들고, 각 질문마다 새 답변 3개를 생성함
- 원래 사실 주장을 포함해 엔트로피를 계산함으로써 원래 claim에 grounding을 유지함
- “not available”, “not provided”, “unknown”, “unclear” 같은 거절 답변이 절반을 넘으면 의미 불확실성을 최대치로 처리함
- 이산 의미 엔트로피는 FactualBio에서 self-check baseline과 paragraph-length용 P(True) 변형보다 높은 AUROC와 AURAC를 기록함
- rejection accuracy에서는 질문의 20%가 거절될 때까지 이산 의미 엔트로피가 더 좋았고, 그 지점에서는 P(True)가 근소하게 앞섬
한계와 적용 가능성
- 의미 엔트로피는 모델 아키텍처 수정 없이 LLM이나 유사 foundation model에 적용될 수 있음
- 출력 확률이 없는 제한된 접근 환경에서도 이산 변형을 사용할 수 있음
- 지도학습 방식과 달리 라벨링된 confabulation 예시가 필요 없고, 사전 도메인 지식 없이 새 작업으로 일반화함
- embedding regression 같은 지도 방식은 학습 데이터와 배포 데이터 분포가 다를 때 성능이 악화됨
- 이 방법은 LLM이 확신을 갖고 틀리는 상황을 직접 해결하지 않음
- 위험한 행동을 체계적으로 만드는 학습 목표
- 체계적 추론 오류
- 사용자를 체계적으로 오도하는 출력
- 이런 경우는 confabulation과 비슷한 증상을 보일 수 있지만 별도 처리가 필요함
- 의미를 기준으로 확률적 머신러닝의 불확실성 추정 도구를 자유형 언어 생성에 맞게 적용한 접근이며, 작업별 데이터 없이 새 작업에 일반화하고 사용자가 더 주의해야 할 상황을 파악하는 데 도움을 줌
데이터와 코드
- 짧은 구문 및 sentence-length 생성 실험에는 공개 데이터셋이 사용되며, 접근 방법은 공개 코드에 포함됨
- FactualBio의 공개 버전은 paragraph-length 실험 재현용 코드베이스의 일부로 제공됨
- 코드 공개 위치
- github.com/jlko/semantic_uncertainty: short-phrase 및 sentence-length 실험 코드
- github.com/jlko/long_hallucinations: paragraph-length 실험 코드
- Zenodo DOI: https://doi.org/10.5281/zenodo.10964366
댓글과 토론
Hacker News 의견들
-
댓글들이 단어의 의미나 LLM의 의인화를 두고 싸우는 듯하지만, 이 접근에는 수학적 차원의 실제 문제가 있음
어떤 입력 텍스트에도 대응되는 출력 텍스트 분포가 있고, 여러 샘플을 뽑아 엔트로피나 불일치를 평가하는 방식은 이미 그 출력 분포의 성질을 알고 있다는 전제에 기대는 것처럼 보임
예를 들어 “Tom Cruise는 무엇으로 유명한가?”에는 “movie star”, “katie holmes”, “topgun”, “scientology”처럼 벡터 공간상 멀리 떨어진 답들이 모두 맞을 수 있음
반대로 “Taylor Swift는 무엇으로 유명한가?”에 “standup comedy”, “comedian”, “comedy actress”처럼 의미상 가까운 답들이 나오면 모두 환각일 수 있음
특정 입력에 대한 올바른 단어열 분포를 아는 일이 바로 LLM이 풀어야 하는 문제라면, 출력 분포만 평가해서 정답 여부를 판단할 방법은 없음
인공신경망 출력의 불확실성을 평가하는 통계 모델은 있지만 LLM 규모에는 현실적이지 않아 보이고, 마지막 1~2개 층만 쓰는 부분 추정은 전체 네트워크 불확실성을 심하게 잘라낸 것임
내가 마주치는 환각도 변수명 바꾸기나 설정 키 지어내기처럼 매우 그럴듯하고 정답에 가까워 보이지만 실제로는 틀린 경우가 많음- 불확실성이 높은 답은 정의상 확률이 낮기 때문에, 여러 번 물으면 Taylor Swift가 코미디언이라는 같은 드문 답이 반복되기보다 의미적으로 다른 답들이 나올 가능성이 큼
학습 데이터가 Taylor Swift를 코미디언으로 말한다면 그건 환각 문제가 아님 - 수학 없는 컴퓨터공학 머리로 느끼던 내용을 훨씬 기술적으로 설명한 것 같음
이건 온도 낮추기와 비슷하게 들림. 근거 있는 진실에서 더 잘 끌어오는 게 아니라 벡터 공간에서 더 확률적인 쪽으로 가는 것처럼 보이는데, 맞는 이해인지 궁금함 - 지적은 타당하지만, Taylor Swift 예시에서는 잘 근거 잡힌 모델이라면 학습 데이터에 없는 “코미디언” 답을 여러 번 연속 출력할 가능성이 낮을 것 같음
Tom Cruise 예시에서는 모두 사실이고 학습 데이터에 근거가 있으니 이 기법이 잘못해서 환각으로 양성 판정할 수 있음
다만 논문 예시는 “이 특정 약물이 작용하는 수용체는 무엇인가?”, “에펠탑은 어디에 있는가?” 같은 단일 정답 질문이라서, 그런 응용에는 도움이 될 수 있어 보임 - 다른 식으로 말하면 “샘플링하고 샘플 간 유사도를 평가하면 분포의 흩어짐은 알 수 있지만, 그 분포가 맞는지는 알 수 없다”는 것임
가우스 분포에서 샘플을 뽑아 표준편차는 말할 수 있지만, 그 분포가 정확한지는 알 수 없음
엔트로피가 높은 변수의 매우 정확한 분포도 가능하고, 반대로 표준편차가 낮은 빽빽한 분포가 그냥 틀릴 수도 있음. 사전에 출력이 어떤 모습이어야 하는지 모르면 샘플링만으로는 알 수 없음 - 논문 방식은 “여러 샘플을 뽑아 엔트로피나 불일치만 평가”하는 게 아님
여러 답을 샘플링하고, 의미 유사도별로 묶은 뒤, 묶인 답들의 확률을 합산해 정규화함
예를 들어 “music:0.8, musician:0.9, concert:0.7, actress:0.5, superbowl:0.6”을 [music, musician, concert] → MUSIC, [actress] → ACTING, [superbowl] → SPORTS로 묶고, MUSIC:0.686, SPORTS:0.171, ACTING:0.143처럼 계산하는 식임
논문은 막으려는 대상을 작화(confabulation) 로 명확히 정의함. 즉 무작위 시드 같은 무관한 세부사항에 민감하게 바뀌는, 틀리고 임의적인 유창한 주장임
흔한 오해는 데이터셋에 강하게 남아 있을 것이고, 이 방법은 다른 가능한 답들과 의미적으로 고립되어 있으면서 가능도도 애매한 답을 벌주는 방식에 가까움
논문은 탐지 효과만 비교하고, 그 탐지를 활용한 개선된 샘플링 방법은 제시하지 않음. 생성 기법에 넣으면 모델 생성을 10배쯤 더 해야 하는 큰 비용도 생김
코드: https://github.com/jlko/semantic_uncertainty
- 불확실성이 높은 답은 정의상 확률이 낮기 때문에, 여러 번 물으면 Taylor Swift가 코미디언이라는 같은 드문 답이 반복되기보다 의미적으로 다른 답들이 나올 가능성이 큼
-
현재 LLM 아키텍처는 주로 검색 쪽에 집중하고, 학습된 가중치는 다음 토큰 예측을 잘하게 수렴할 뿐임
이 데이터를 논리 체계 안에 넣는 능력도 학습 목표였어야 한다고 봄
다음 토큰 예측에 학습 단계의 지식 형식 검증을 더하면, LLM이 지식 생성의 일관성을 유지하고 올바른 환각, 즉 상상에 가까운 것을 볼 수 있게 될 것임
과정은 기존 대형 모델로 기존 학습 데이터를 형식 논리 관계로 바꾸고, 여러 해를 만들게 한 뒤, 그 강화 데이터셋으로 다음 토큰뿐 아니라 기존 지식과 새 생성 텍스트 사이의 형식 관계도 출력하는 새 LLM을 학습시키는 식이 될 수 있음
네트워크는 생성된 형식 코드가 증명 검사기에서 높은 정확도를 얻도록, 토큰 생성 정확도와 함께 가중치를 최적화할 수 있음
개인적으로 언어는 지능의 기반이 아니라 부차적인 것 같고, 기반은 서로 일관된 사물들이 있는 꿈 같은 시뮬레이션에 더 가까우며 언어는 그걸 설명하는 도구처럼 느껴짐- 이 제안은 의미 지식 관리 시스템을 만들 때의 고전적인 형식적 하향식 접근과 비형식적 상향식 접근 논쟁으로 돌아감
하향식은 빅데이터 이전, 확률 모델 이전 시대에 많이 시도됐지만 막대한 수작업 큐레이션이 필요했고 지식도 부족했음
빅데이터의 등장은 큐레이션 문제를 해결하지 못했고, 큐레이션을 자동화할 수 없으니 규모가 커질수록 더 나빠졌음
AI가 1990년대쯤 확률 쪽으로 전환하면서 오늘날의 연관적 확률 모델이 가능해졌고, 더 큐레이션되고 더 형식적인 접근이 이들을 이길 희망은 보이지 않음
LLM에 추론, 인과성 같은 유형 2 사고를 어떻게 붙이든, 구현은 계속 확률적·비형식적·상향식이어야 함
논리·의미 관계를 사람이 수작업으로 지식 모델에 큐레이션하는 방식은 필요한 규모와 취약성 대응에 충분하지 않다는 것이 이미 드러남 - 논리에도 고유한 문제가 많음
“Godel, Escher, Bach”를 보거나, OWL이 20년 동안 있었는데도 시장 점유율이 거의 없었던 이유를 생각해보면 됨
비동기 코드 관리를 위해 사람들이 RETE 말고 온갖 답을 시도한 이유, “복합 이벤트 처리”가 Celery 같은 작업 실행기 경쟁자가 아니라 특수 분야로 남은 이유, Drools가 왜 알아먹을 수 있는 오류 메시지를 못 내는지도 같은 맥락임 - 문제는 모델이 보지 못한 새로운 것과 인간도 답을 모르는 질문에서 생김
환각 문제 전체가 그냥 정지 문제에 단계를 좀 더 붙인 것처럼 느껴짐. ChatGPT에게 P=NP인지 물어봐야 할지도 모름 - 첫 단계에는 CYC가 유효한 해법일 수 있음
내 경험상 DAG를 위한 의미 있는 관계 스키마라고 부를 만함. 오픈소스 버전도 있지만 회사가 더 이상 직접 유지하지는 않음
https://cyc.com
https://github.com/asanchez75/opencyc - 지식이나 논리 관계의 형식 검증이라니, SF 소설이나 시는 어떻게 형식 검증할 건가?
자연에 존재하는 역설이나, 서로 모순되지만 각각 논리적으로 맞는 이론들은 어떻게 할 건가?
말은 쉽지만 실제로는 “우리가 풀 줄 모르는 NP-난해 문제를 풀면 작동할 것”이라고 제안하는 셈임
- 이 제안은 의미 지식 관리 시스템을 만들 때의 고전적인 형식적 하향식 접근과 비형식적 상향식 접근 논쟁으로 돌아감
-
이를 환각이라고 부를 수도 있지만, 다른 표현으로는 이 시스템들이 진실과 직교한다고 볼 수 있음
참이나 거짓과 아무 관련이 없다는 뜻임
이 생각은 이 논문에도 표현되어 있음: https://link.springer.com/article/10.1007/s10676-024-09775-5- 확률 분포가 진실한지 거짓말쟁이인지 묻는 것과 비슷함
알고리즘에 개인적 특성이 있는 것처럼 말하는 건 범주 오류임 - 링크된 논문은 LLM이 팩트 단위에서 무작위로 고르는지, 일관되게 고르는지 탐지하는 내용임
절차적으로 생성된 무작위성은 브레인스토밍 같은 일에는 훌륭할 수 있고, 일관성은 학습 자료에도 비교적 일관되게 등장한 무언가를 반복한다는 신호임
그래서 참일 수도 거짓일 수도 있지만, 어딘가에서 가져왔을 가능성은 더 큼
정보가 얼마나 무작위적인지 아는 건 작은 진전처럼 보임 - LLM은 “무슨 일이 있어도 최소 세 문단은 답하라”는 목표로 학습되고, 침묵하거나 “무슨 말을 하는 거냐?” 같은 불친절한 답보다 그런 답이 항상 선호됨
그렇다면 사실상 그럴듯한 헛소리를 하도록 가르치는 셈임
즉흥 연기 수업에서 대화를 흥미롭게 유지하고 상대 배우에게 “아니”라고 하지 말라고 가르치는 것과 비슷함 - 공유 현실이 LLM에 맞춰 굽어지고, 그 반대는 아닐 것 같다는 의심이 듦
컴퓨터가 말하는 것이 곧 “진실”이 될 수 있음 - 이 LLM들은 의식보다 무의식에 더 가까워 보임
Jung이라면 “antinomy”라고 불렀을 듯함. 목표는 진실을 표상하는 게 아니라 가능한 답들의 총체를 표상하는 것임
- 확률 분포가 진실한지 거짓말쟁이인지 묻는 것과 비슷함
-
LLM이 하는 일은 결국 전부 “환각” 아닌가?
환각했는지 알려면 이미 정답을 알고 있어야 함. 답이 맞는지 아는 시스템을 만들 수 있다면 더 이상 LLM이 필요 없게 됨- 환각은 원래 온전한 정신의 실패를 암시함
현재 LLM이 하는 일은 헛소리하기라고 부르는 편이 더 맞음. 그 헛소리가 좋아질수록 우연히 맞는 비율이 점점 올라갈 뿐임 - 이 주제의 모든 스레드마다 이미 의미가 잘 통하는 확립된 용어인 “환각”을 두고 꼭 트집 잡는 사람이 있어야 하나 싶음. 점점 지침
- 사람도 전부 작화함
때로는 물리적·사회적 역학에 근거해 일관적이고, 때로는 그렇지 않음
명백히 항상 옳은 시스템은 불가능하니, 일관성을 추구하는 시스템이 필요함 - 글을 읽었다면 LLM으로 답을 생성하는 과정이 사실 확인 과정의 중요한 일부라는 걸 알 수 있었을 것임
- 환각은 원래 온전한 정신의 실패를 암시함
-
당분간 AI 회사들이 챗봇을 약간 조향된 텍스트 생성 도구로만 제시하는 편이 나을 수 있음
그러면 사람들이 그에 맞게 쓸 수 있음
약간의 이해처럼 보이는 것도 있고, 단계별 추론을 조금 흉내 내게 만들 수도 있지만, 이 블랙박스 기능의 95%는 텍스트 생성임
사실 생성도 지식 생성도 아니고, 백과사전보다는 즉흥 연기 파트너에 가까우며 기술 업계 사람들은 다 알고 있음
LLM이 사람들을 오도하는 문제에 영리한 답변 엔트로피 해법이 꼭 필요한지는 모르겠음. 그 해법은 흥미롭고, 진술에 확신 점수를 붙이는 식으로 실제 개선을 줄 것 같긴 함
하지만 머신러닝 텍스트 생성기를 거의 AGI처럼 마케팅하지 않기만 해도 대부분의 피해를 줄이고 더 큰 도움이 되지 않을까- 지금 React와 Redux로 프런트엔드를 만들면서 LLM과 작업 중인데, 둘 다 거의 모르는 기술임
질문을 던지면 LLM이 답과 JavaScript 코드를 줬고, JavaScript도 꽤 녹슨 상태였음
코드는 모두 컴파일됐고 대부분 기대대로 동작했음. 오류도 있었지만, 내가 이해 못 하는 오류를 LLM이 설명하고 작동하는 수정 코드를 줬음
전반적으로 멘토와 함께 작업하는 것 같은 훌륭한 경험이었고, 초보인 내 기준으로 시간을 크게 아껴줬음. 물론 결과 검증은 필요함
95%라는 수치는 어디서 나온 건가? 그리고 그것이 텍스트 생성인지 사실·지식 생성인지는 중요하지 않음. 정말 가치 있는 도구이고 내가 써본 어떤 것보다 훨씬 뛰어남
- 지금 React와 Redux로 프런트엔드를 만들면서 LLM과 작업 중인데, 둘 다 거의 모르는 기술임
-
“각 질문에 대해 여러 가능한 답을 샘플링하고, 의미가 비슷한 답끼리 알고리즘으로 묶는다”는 방식은 단일 객관식 정답이 있는 질문에는 합리적임
여러 개의 동등하게 타당한 답이 가능한 경우에는 별 도움이 안 될 수 있음
그래도 검색 엔진 응용에는 충분히 좋음 -
의미 엔트로피 개념을 보니 Enron 사태 이후 어떤 은행이 보도자료의 헛소리 수준을 재는 “bullshitometer”를 만들었던 일이 떠오름
그 은행 이름은 기억나지 않지만, Enron 보도자료에 적용했더니 회사 붕괴를 예측할 수 있었음을 보였다고 함 -
통계에는 민감도 분석이라는 개념이 있음
이 방식도 어느 정도 비슷해 보이지만, 흥미로운 대안은 의미를 보존한다고 생각되는 방식으로 입력을 수정한 뒤 출력 의미가 어떻게 달라지는지 보는 것일 수 있음
물론 의미를 바꾸지 않고 입력을 바꾸는 것이 어려운 부분이지만 완전히 불가능해 보이진 않음
최소한 LLM에게 의미를 바꾸지 말고 입력을 바꿔보라고 시킬 수는 있음. 다만 모델이 입력을 잘못 이해한 방향에 맞춰 수정해버려, 수정 후에는 환각 출력과 더 잘 맞는 상황이 생길 수도 있음 -
의미 동등성을 탐지하도록 학습된 LLM이 필요한 듯한 의미 엔트로피가 환각을 더 잘 잡을 수 있다는 건 이해됨
하지만 의미 동등성이 환각 문제를 직접 해결하는 방식은 잘 보이지 않음
지금으로서는 환각을 잡는 휴리스틱에 가깝다고 의심됨
게다가 이런 사건을 잡기 위해 의미 동등성 탐지용 두 번째 LLM이 필요하다는 건 불필요하게 복잡해 보임
의미 동등성 데이터셋이 있다면 두 번째 LLM을 학습시키기보다 주 LLM 학습 과정에 직접 넣을 것 같음- 아직 이 연구를 충분히 이해해 비판할 정도는 아니지만, 의미 동등성 데이터셋을 학습에 통합할 수는 있음
다만 “의미에서 좋은 AUC 달성” 같은 명확한 함수를 여러 개 섞어, 지각 목표가 불명확한 복잡한 모델의 약점을 보완하려 하면 여전히 이상해짐
잘 섞고 있는지도 모르고, 학습에 예측하기 어려운 결과·위험·편향을 넣는지도 모름
“의미 동등성을 판정할 수 있는가”처럼 좁게 정의된 작업에서는 미지의 위험이 더 적은 좋은 모델을 만들 수 있고, 그 모델을 비교적 명확한 방식으로 적용하면 모르는 위험도 줄어듦
따라서 약간 편향된 추정기 두 개로 특정한 합리적 휴리스틱까지 길을 내는 편이, 기존의 복잡한 혼합물에 데이터를 섞어 넣고 기여가 예측 가능하길 기대하는 것보다 훨씬 안전하고 일반적일 수 있음 - 환각을 잡는 건 많은 응용에서 꽤 유용함
공공기관용 LLM 답변에서 사실 오류의 영향을 줄이는 연구를 하고 있는데, 사실과 다른 답을 내면 불법일 수 있음
충분한 정확도로 감지할 수 있다면 시스템은 답변을 거절하고 사용자에게 기관에 연락하라고 요청하면 됨
애초에 틀린 답을 하지 않도록 모델을 학습시키는 쪽이 물론 더 좋음
불필요한 복잡성은 API로 접근하는 사전학습 상용 블랙박스 LLM 사용에서도 생김. 안타깝게도 애플리케이션에서 LLM은 대부분 이렇게 쓰임
API로 미세조정할 수도 있겠지만, 이런 대규모 합성 데이터셋에는 번거롭고 제한적이며 매우 비쌈
글만 보고는 “의미 엔트로피”가 구체적으로 어떻게 계산되는지 파악하기 어려웠음. 관심 있다면 코드가 훨씬 이해하기 쉬움: https://github.com/jlko/semantic_uncertainty/blob/master/sem...
- 아직 이 연구를 충분히 이해해 비판할 정도는 아니지만, 의미 동등성 데이터셋을 학습에 통합할 수는 있음
-
꽤 영리한 아이디어임. 같은 질문을 여러 번 반복해서 물었을 때 모델이 다르게 답하는지 확인하는 방식임
“확인”은 다른 모델이 하고, “다름”은 엔트로피로 측정함