NL-285, Self-Consistent Decoding for More Factual Open Responses, Preprint 2024
◼ Comment
- https://ai-information.blogspot.com/2025/06/nl-280-ucs-lightweight-reranking-for.html
- 위 논문과 상당히 유사한 방법이다
- 방법론은 거의 유사한데, 이 논문은 아직 억셉이 안된거 같음
- 비교 방법도 좀 빈약한 느낌이다
- 앞으로 억셉되려면 UCS 논문외에도 비슷한 연구들 인용을 해야하니.. 쉽지 않을거 같다
- 약간 타이밍을 놓친 느낌?
- 방법론은 다음과 같다
- 테스크: 요약
- 일단 여러 개 샘플을 생성한다
- 그리고, 이를 리랭킹하는데 리랭킹은 매우 간단한게 문장내 토큰이 다른 샘플링문장에서 얼마나 자주 빈번하게 발생하냐를 기준으로 점수를 매긴다
- 예) 바이든에 대한 문서를 요약해달라고 하자
- 모든 요약된 샘플에는 바이든이라는 토큰이 등장할 것이다
- 그렇다면 바이든에 해당하는 점수는 매우 높게 될 것이다 (모든 요약문에 등장하니)
- 이런식으로 샘플링된 요약문에 자주 등장하는 토큰일수록 높은 점수일거고
- 문장내 토큰점수를 평균화해서 문장 점수를 산출한다
- 이 점수로 리랭킹해서 Top-1을 고르는식이다
- 벤치마크나 비교 모델이 좀 아쉽긴하지만 직관적인 방식으로 실험만 좀 탄탄히 했으면 어땠을까 하는 아쉬움이 있다
- 그리고 이 방법은 디코딩이라 부르기 좀 애매함
- 디코딩이 아니라 샘플링하여 리랭킹하는 것이기 때문에..
- 문장 점수내는 것을 환각 검출 방법인 selfcheckgpt로 시도한것과 비교했는데, 그것보다 낫다고 한다
- 이러한 관찰은 괜찮은듯
Abstract
자기 일관성(Self-consistency)은 대규모 언어 모델(LLM)이 생성한 짧은 답변의 정확성을 향상시키는 강력한 방법으로 부상했습니다. 기존 정의는 생성된 텍스트에서 파싱된 최종 답변의 정확성만을 고려했습니다. 본 연구에서는 이러한 아이디어를 오픈 응답 생성까지 확장하여, 투표(voting) 방식을 디코딩 과정에 통합합니다. 각각의 출력 문장은 이전에 선택된 문장에 조건을 걸어 여러 샘플 중에서 단순한 토큰 중첩(token overlap) 점수를 기준으로 선택됩니다.
우리는 이 "샘플링 후 선택(Sample & Select)" 방법을 greedy 디코딩, beam search, nucleus sampling, 그리고 최근 소개된 DoLa, P-CRR, S-CRR과 같은 환각(hallucination)을 방지하는 디코더들과 비교했습니다. 그 결과, CNN/DM과 XSum 데이터셋의 FRANK 벤치마크 하위 집합에서 NLI 기반 평가를 수행한 결과, 본 방법이 기존 디코더들보다 사실성을 상대적으로 30% 개선하는 동시에, 참조 요약(reference summaries)에 대한 ROUGE-1 F1 점수는 비슷한 수준을 유지했습니다.
또한 생성된 요약에 대한 인간 평가를 수행하여 본 방법의 우수한 사실성을 확인했습니다.
1 서론 (Introduction)
대규모 언어 모델(LLM, Large Language Model)은 프롬프트(prompt)와 이전에 생성된 토큰에 조건을 걸어 각 토큰에 대한 확률을 예측함으로써 출력 텍스트를 생성한다. 그런 다음 greedy 디코딩, beam search, nucleus 샘플링과 같은 디코딩 전략을 사용하여 각 위치에서 토큰을 선택하고 출력 문자열을 구성한다. 다른 추상적 생성 모델(abstractive generative model)과 마찬가지로 LLM은 맥락이나 폐쇄적 지식(closed book knowledge)에 비추어 잘못되었거나 근거 없는 정보를 출력할 위험이 있으며, 이를 흔히 환각(hallucination)이라고 부른다 (Kryscinski et al., 2020; Fabbri et al., 2021; Manakul et al., 2023).
최근의 연구는 대규모 언어 모델로부터 여러 응답을 샘플링할 경우, 각 응답이 서로 다른 세부사항을 환각하는 경향이 있음을 관찰했다 (Manakul et al., 2023; Wang et al., 2023). 반면에, 여러 샘플에서 공통적으로 등장하는 세부사항은 사실일 가능성이 높다.
생성된 응답에서 짧은 정답을 쉽게 추출(parsing)할 수 있는 경우, 자기 일관성(self-consistency, Wang et al., 2023)은 투표(voting, 추출된 짧은 정답의 정확한 일치를 기준으로 함)의 아이디어를 사용하여 개별 샘플을 사용하는 것보다 더 신뢰할 수 있는 좋은 답을 선택한다. 하지만 이 방법은 추출된 짧은 정답이 아니라 전체 응답(full response)이 필요한 과제(task)에는 적용할 수 없다.
본 연구의 주된 기여(contribution)는 모든 LLM 작업(task)에 적용할 수 있는 새로운 디코딩 메커니즘을 제안하는 것이다. 이 메커니즘은 LLM으로부터 다수의 텍스트 출력을 샘플링한 뒤, 각 문장에 대해 여러 응답에서 가장 일관적인 선택을 하는 방식으로, 여러 응답 간의 공통성을 반영하여 최종 문장을 선택한다.
우리는 본 디코딩 기법을 Llama 2 (chat)와 Mistral 모델에 적용하여 여러 자동적 사실성(factuality) 평가 기준(metrics)으로 다양한 기준선(baseline) 모델들과 비교한다. 또한 인간 평가를 통해 생성된 텍스트에 대한 오류의 대략적 분류(coarse classification)를 포함한 평가를 추가적으로 수행하였다. 첨부된 코드에서 우리는 제안 방법과 기준선 방법들의 구현, 그리고 인간 평가를 위한 데이터셋을 제공한다.
2 관련 연구 (Related Work)
최근의 연구들은 환각(hallucination)을 방지하기 위한 디코딩 전략을 도입하기 시작했다.
Faithfulness-Aware Decoding(신뢰성 인식 디코딩)과 Context-Aware Decoding(문맥 인식 디코딩)은 생성된 텍스트가 반드시 주어진 맥락(context)에 의해 뒷받침되어야 한다는 가정을 기반으로 한다(Wan et al., 2023a; Shi et al., 2023).
한편, Decoding by Contrasting Layers(레이어 대비 디코딩, DoLa)와 Certainty-Based Response Ranking(확실성 기반 응답 순위화, CRR)은 응답이 맥락에 제공된 정보로만 제한되지 않는 일반적인 경우에 적용 가능하다(Chuang et al., 2023; Wan et al., 2023b). 본 연구는 이러한 환경에 관심이 있으며, 이 기술들을 기준선(baseline)으로 간주한다.
SelfCheckGPT(Manakul et al., 2023)는 다수의 샘플링된 응답을 이용해 개방형 생성(open-ended generation)의 환각 정도를 점수화하는 기술을 도입했다. 이 기술은 더 사실적인 생성을 위한 별도의 디코딩 기법을 제안하지는 않는다. 그러나 본 연구에서는 그들이 제안한 점수 방식을 추가적인 기준선으로 삼아, 우리 방법의 디코딩 기법과 성능을 비교했으며, 우리의 방법이 더 우수함을 보였다.
3 방법: 샘플링 후 선택(Sample and Select)
주어진 대규모 언어 모델(LLM)과 프롬프트(prompt) 텍스트를 사용하여, 출력 텍스트는 다음과 같은 방식으로 생성된다.
먼저, nucleus 샘플링(Holtzman et al., 2020)을 사용하여 로 설정하고, 개의 샘플 출력을 LLM으로부터 디코딩하여 각각 문장 끝까지 얻는다. 그런 다음 각 샘플 출력의 각 토큰이 다른 샘플 문장들에서 얼마나 많이 나타나는지 횟수를 계산하고, 각 문장의 점수를 토큰당 평균 등장 횟수로 정한다.
공식적으로, 샘플된 문장 이 단어 ()로 구성될 때, 샘플 의 점수는 다음과 같다.
여기서 는 토큰 가 문장 에 있으면 1이고, 없으면 0이다. 이 점수는 세부사항들이 토큰에 의해 표현된다는 직관을 구현한 것이며, 각 신뢰할 만한 세부사항은 다수의 다른 샘플에서도 반복 등장해야 한다는 원리를 반영한다.
만약 샘플에서 중복 토큰이 없다고 가정하면, 이 점수는 다른 샘플과의 ROUGE-1 정밀도의 합과 비례하지만, ROUGE-1과는 달리 반복 횟수를 직접 비교하지는 않는다. Manakul et al.(2023)은 다른 종류의 unigram 점수(본 연구에서도 기준선으로 비교함)가 높은 차수의 n-gram 점수나 BERTscore(Zhang* et al., 2020)보다 환각 탐지 성능이 우수하다는 것을 발견했는데, 이는 본 연구에서 토큰 수준의 세부사항에 집중한 이유를 뒷받침한다.
우리는 주어(subject)와 동사(verb)의 존재 여부를 기준으로 문장의 문법적 타당성(grammaticality)을 검사한다. 이를 위해 품사(part-of-speech) 태깅과 의존성(dependency) 파싱을 수행하여, 부록 A에 제시된 특정 태그들과 비교한다. 문법 검사에서 탈락한 샘플 문장의 점수는 0으로 설정된다. 만약 문법 검사 후 남아 있는 샘플 출력이 없다면 생성을 중단할 수도 있다. 최종적으로 가장 높은 점수를 얻은 샘플 출력이 최종 결과로 추가되며 프롬프트에 덧붙여진다.
추가적인 문장들은 순차적으로(iteratively) 최종 출력에 덧붙여지며(그림 1 참조), 이전에 선택된 문장을 포함하는 프롬프트에 조건을 걸어 새로 샘플링한다. 만약 현재 문장 이후에 문장 끝이 나온 샘플이 있다면, 그 시점에서 생성을 멈추고 최종 결과를 반환한다.
이러한 토큰 중첩 점수를 계산하는 데 걸리는 시간은 무시할 수 있을 만큼 짧기 때문에, 문장 끝이 나오는 즉시 생성을 중단하도록 구현한다면 이 방법은 일반적인 nucleus 샘플링에서 여러 샘플을 얻는 것만큼 효율적으로 실행될 수 있다.
다음은 Sample and Select 방법을 구체적인 예시를 통해 알기 쉽게 설명한 것입니다.
예시 상황:
주어진 뉴스 기사로부터 요약(summary)을 생성하려고 합니다. 모델로부터 첫 번째 문장을 생성할 때, 같은 조건에서 총 5개의 문장을 샘플링합니다.
아래는 5개 샘플의 첫 번째 문장입니다.
-
샘플 1:
"미국의 바이든 대통령은 화요일 기후변화에 대한 새로운 정책을 발표했다." -
샘플 2:
"조 바이든 대통령은 화요일 새로운 환경 정책을 공개했다." -
샘플 3:
"미국 대통령 조 바이든은 수요일 경제 관련 정책을 발표했다." -
샘플 4:
"바이든 대통령은 화요일 기후변화 관련 정책을 발표했다." -
샘플 5:
"화요일, 바이든 대통령은 새로운 기후변화 정책을 소개했다."
1단계: 토큰 중첩(token overlap) 점수 계산
각 샘플 문장에 대해 다른 문장들과 얼마나 많은 토큰이 겹치는지 점수를 매깁니다.
-
예를 들어, 샘플 1의 토큰은 ["미국의", "바이든", "대통령은", "화요일", "기후변화에", "대한", "새로운", "정책을", "발표했다."]입니다.
-
이 토큰들이 다른 샘플들에 얼마나 자주 등장하는지 확인합니다.
-
"미국의": 샘플 3에서 등장 → 1회
-
"바이든": 샘플 2, 3, 4, 5에서 등장 → 4회
-
"대통령은": 샘플 4, 5에서 등장 → 2회
-
"화요일": 샘플 2, 4, 5에서 등장 → 3회
-
"기후변화에": 샘플 4, 5에서 등장 → 2회
-
"대한": 다른 샘플에서 없음 → 0회
-
"새로운": 샘플 2, 5에서 등장 → 2회
-
"정책을": 샘플 3, 4, 5에서 등장 → 3회
-
"발표했다.": 샘플 3, 4에서 등장 → 2회
-
이 토큰들의 총합은 이며,
토큰의 개수는 총 9개입니다.
따라서 샘플 1의 점수는 입니다.
이런 방식으로 모든 샘플 문장의 점수를 계산합니다.
2단계: 문장 선택
점수가 가장 높은 문장을 선택합니다.
점수 계산 결과, 가장 많이 반복된 세부사항을 갖고 있는 문장이 일반적으로 높은 점수를 얻게 됩니다.
위의 예시에서, 만약 각 샘플의 점수가 다음과 같다면:
샘플 | 점수 |
---|---|
샘플 1 | 2.11 |
샘플 2 | 2.00 |
샘플 3 | 1.67 |
샘플 4 | 2.33 |
샘플 5 | 2.22 |
점수가 가장 높은 샘플 4를 최종적으로 첫 문장으로 선택합니다.
선택된 문장:
"바이든 대통령은 화요일 기후변화 관련 정책을 발표했다."
3단계: 조건부 추가 문장 생성 (iterative selection)
선택된 문장을 프롬프트에 추가하고, 이 문장까지의 내용을 조건으로 걸어서 다음 문장을 다시 샘플링합니다. 이 과정은 요약이 완료될 때까지 반복됩니다.
예를 들어, 위에서 선택한 문장을 프롬프트에 추가한 뒤 다시 5개의 다음 문장 샘플을 생성하여 똑같은 방식으로 점수를 매기고, 다음 문장을 선택하는 과정을 반복합니다.
이 방식으로 생성된 요약은 문장마다 가장 많은 공통적인 사실을 포함한 문장들을 연결해 만들어지기 때문에, 개별 샘플링된 문장들보다 더욱 사실적이고 신뢰성이 높아집니다.
이 방법은 다음과 같은 장점을 가집니다:
-
여러 개의 샘플링된 응답을 활용하여 사실(factual) 정보를 강화함.
-
각 문장 선택이 이전에 선택된 문장에 조건을 걸고 수행되기 때문에 전체적인 문맥적 일관성을 유지함.
-
계산이 간단하고 효율적이기 때문에 실제 사용에 용이함.
이 예시를 통해 Sample and Select 방식이 어떻게 동작하는지 명확히 이해할 수 있습니다.
4 실험 구성 (Experiment Setup)
우리는 Llama 2 chat(13 billion)(Touvron et al., 2023)과 Mistral-7B-Instruct-v0.2(Jiang et al., 2023) 모델을 이용하여 CNN/DM(Hermann et al., 2015)과 XSum(Narayan et al., 2018) 데이터셋의 영문 뉴스 기사에 대한 제로샷(zero-shot) 요약(summarization) 성능을 평가했다. 각기 다른 디코딩 방법을 적용하여 얻은 결과들을 서로 비교하였다.
각 데이터셋으로부터는 FRANK(Pagnoni et al., 2021) 벤치마크의 테스트 세트 중 하위 집합인 175개의 문서를 사용하였다.
- FRANK는 이전 시스템들의 자동 및 인간 검증을 수집해 놓은 벤치마크이다.
- 문장 분할(sentence segmentation) 문제를 수정하기 위해, 정규 표현식(regular expressions)을 사용해 기사들을 요약하기 전에 정제(clean)하였다(부록 B 참고).
- 하지만 평가 지표(metrics)를 계산할 때는 이러한 정제를 적용하지 않았다.
자동적 사실성 평가(automatic factuality evaluation)에는 자연어 추론(NLI) 기반의 평가 척도인 SummaC(Laban et al., 2022)와 질문 답변(question answering) 기반 평가인 QAFactEval(QAFE)(Fabbri et al., 2022)을 사용하였다. 또한 ROUGE-1 F1 점수(Lin, 2004)도 함께 보고하였다. SummaC의 경우, 문장 단위(sentence granularity)에서 Zero-Shot(ZS) 버전과 convolutional(Conv) 버전을 "vitc" 모델을 사용하여 실행했다. QAFactEval은 평균 F1 점수를 보고하였다.
인간 평가(human factuality evaluation)의 경우, FRANK 테스트 세트에서 무작위로 50개의 기사를 선택하여 SummaC_ZS 점수가 가장 높은 상위 4개 시스템을 평가하였다. Amazon Mechanical Turk의 신뢰할 수 있는 작업자(pool of trusted crowdworkers)로부터 각 시스템이 생성한 요약의 각 문장에 대해 세 명씩 평가를 받았다(평가 지침은 부록 C 참조, 작업자 모집 프로토콜은 부록 D 참조).
각 시스템의 점수는 생성된 문장들에 대한 모든 평가자의 평점 평균으로 계산했다. 평가자 간 전체 합의율(majority labels에 대한 일치율)은 94.3%였으며(거짓 긍정 false positive 비율 6.8%, 거짓 부정 false negative 비율 5.3%), 매우 높은 편이었다.
기준선(baseline)으로는 greedy 디코딩, beam search (beam 수=5), nucleus 샘플링(p = 0.9)을 사용하였다(Holtzman et al., 2020). 또한, 환각을 줄이기 위해 최근에 제안된 네 가지 디코딩 기술을 테스트하였다.
-
DoLa (Decoding by Contrasting Layers) (Chuang et al., 2023): Transformer 모델의 초기층(early layer)과 후기층(late layer)의 로짓(logit) 차이를 비교하여 다음 토큰의 확률 분포를 수정한다. 논문을 따라 Transformer의 전체 층(layer) 중 전반부의 짝수 층을 선택해 동적 조기 레이어 선택(dynamic premature layer selection)을 위한 후보로 삼고, 이를 40번째 층과 대비하였다. 공식 구현(official implementation)은 Llama 모델에서는 작동하지만 Mistral 모델에서는 동작하지 않는다.
-
P-CRR (Probabilistic Certainty-based Response Ranking) (Wan et al., 2023b): 전체 시퀀스의 평균 로그 확률(mean log probability)을 이용하여 응답을 순위화한다. P-CRR은 본 연구에서 직접 구현하였다.
-
S-CRR (Semantic Certainty-based Response Ranking) (Wan et al., 2023b): 함의(entailment) 기반 일치 점수를 사용하여 응답을 순위화한다. 본 연구에서는 논문을 따라 Adversarial NLI(ANLI)(Nie et al., 2020)로 학습된 Roberta-Large 모델을 사용하여 entailment를 판단하는 방식으로 직접 구현하였다.
-
SelfCheckGPT (Manakul et al., 2023): 본 연구의 접근법과 유사하게 샘플링을 통해 환각을 탐지한다. 원래 논문에서는 디코딩 기법을 제안하지 않고, 문장의 환각 가능성에 따라 점수만 매겼다. 본 연구에서는 이를 디코딩 방법으로 확장하여, 각 문장에 대해 가장 낮은 환각 점수를 가진 샘플을 선택한 뒤, 선택된 문장들에 재조건부(re-conditioning) 하도록 하였다. 이는 본 연구가 제안한 방식과 유사하다. 원 논문에서 제안된 점수 방식 중 일부는 실제 사용하기에는 너무 느리거나(예: QA기반 점수는 한 예제에 4.5분 소요), 사실상 사실성 평가자를 호출하는 것이기 때문에 효율적이지 않았다. 따라서 본 연구에서는 다른 응답들에서 토큰의 출현 여부에 기반한 음의 로그 우도(negative log likelihood)를 사용한 효율적인 unigram 점수를 활용했으며, 이는 원 논문에서 우수한 성능을 보인 점수이다.
본 연구에서 제안한 방법은 표에서 "Sample & Select"로 지칭한다.
또한, 독립적(independent)이라는 제거 실험(ablation)을 수행했는데, 이는 전체 응답을 개별적으로 디코딩한 뒤, 이후 문장들을 최종 선택된 문장에 조건부로 하지 않고 같은 방식으로 각 문장을 독립적으로 선택하는 방식이다.
5 결과 및 논의 (Results and Discussion)
표 1과 표 2는 모든 시스템에 대한 자동 평가 결과를 나타낸다. 제안된 시스템(Sample & Select)은 모든 모델에서 SummaC 측정 기준(metric)으로 큰 차이의 성능 향상을 보였다.
"Independent" 방식과의 비교를 통해 이후 문장을 최종 선택된 샘플에 조건부로 설정(conditioning)하는 것이 중요함을 알 수 있다. 이러한 이점은 우리가 설계한 SelfCheckGPT 기준선(baseline)에도 적용되었으며, SelfCheckGPT는 Llama 2 모델에서 그 다음으로 좋은 성능을 보였으며, 이와의 성능 차이는 본 연구의 개선된 점수 계산 방식 때문으로 볼 수 있다. Llama 2 모델을 기준으로 본 연구가 제안한 방법은 SelfCheckGPT를 제외한 모든 다른 기준선 대비 최소한 30%(상대적)의 SummaCZS 점수 향상을 보였다.
- selfcheckgpt 로 점수매겨서 리랭킹하는것보다 좋음을 보여주긴하네
- 복잡한 환각점수보다 그냥 단순히 Uni-gram 같은 것을 이용해서 리랭킹하는게 더효율적이긴 한가봄
기존 디코딩 기법 중 beam search가 강력한 성능을 보인다는 점은 이미 Wan et al. (2023a)에 의해 지적된 바 있으며, beam search는 때때로 QAFactEval(QAFE) 지표에서 Sample & Select 방식보다 높은 성능을 보였다. 이러한 현상은 부록 E에서 추가적으로 탐구하였으며, 우리가 교정한 오류가 항상 질문이 생성되는 사실성(factoid)과 관련되지 않을 수 있음을 보였다. ROUGE 지표는 원래의 참조 요약(reference summaries)을 요구하고 사실성 평가에 초점이 강하지는 않지만, 본 연구에서는 사실성을 높이면서도 다른 기법들과 비슷한 점수를 유지할 수 있음을 보이기 위해 이를 포함하였다.
인간 평가는 표 3에서 보여주는 바와 같이, Sample & Select 방식이 가장 높은 사실적 정확성(factual accuracy)과 가장 낮은 수준의 지원되지 않은(unsupported) 문장 비율을 보였다고 판단하였다.
하지만 이 기술이 의미 없는 문장(meaningless sentences)이나 대명사 오류(pronoun errors)를 방지하지는 못하는 것으로 보인다. 특히 평가자에게 "Sure!"와 같이 요약 앞에 붙은 의미 없는 문장들을 표시하도록 지시하였는데, 이러한 문장은 Llama 2 13B 모델이 어떤 디코딩 방식을 사용하더라도 대부분의 요약에서 나타났다.
결론적으로, 본 연구의 Sample & Select 방식은 자동 및 인간 평가를 통해 다른 방법 대비 우수한 사실성 성능을 입증하였다. 특히 문장 단위로 선택된 샘플에 조건을 걸어 이후 문장을 생성하는 과정이 중요하며, 그렇지 않고 조건 설정을 하지 않은 샘플을 기준으로 이후 문장을 생성하면 사실성 향상 효과가 줄어든다는 점을 확인했다.
6 결론 (Conclusion)
한 번에 한 문장씩 여러 응답을 샘플링한 후, 간단하고 효율적인 토큰 중첩(token overlap) 일관성 점수를 사용하여 문장을 선택하는 방식이 생성된 응답의 사실성(factuality)을 상당히 향상시킬 수 있음을 보였다. 다른 환각(hallucination) 평가 방법 역시 토큰 중첩 점수 대신 효과적으로 사용될 수 있겠지만, SelfCheckGPT에서 제안된 unigram 점수는 자연어 추론(NLI) 기반 평가에서 본 연구가 제안한 점수보다 최소 10% 이상 낮은 성능을 보였다.
이전에 선택된 문장에 조건부로 각 문장을 생성하는 것이 필수적이다. 만약 최종적으로 선택되지 않은 샘플에 조건을 걸어 이후 문장을 생성하면 사실성 향상 효과가 줄어든다.
본 연구의 범위를 넘어서는 것이기는 하지만, 본 연구에서 제안된 Sample & Select 방식은 요약(summarization) 외의 다른 텍스트 생성 작업에도 적용될 수 있다. 우리는 향후 연구자들이 이 방법을 자신들의 생성 파이프라인(generation pipeline)에 쉽게 적용하고 유용하게 활용하기를 바란다.
Reference
댓글
댓글 쓰기