[논문 리뷰] Enhancing Noise Robustness of Retrieval-Augmented Language Models with Adaptive Adversarial Training
Psalms 12:6-7
2026. 2. 13. 17:26
본 논문 리뷰는 저의 개인적인 해석과 의견을 바탕으로 작성된 글입니다. 내용 중 해석의 오류나 개념적인 착오가 있다면, 망설이지 마시고 댓글로 혼내주시면 감사하겠습니다~
Preview - RAG에서 검색기로 문서를 검색했을 때 발생하는 노이즈 상황을 3가지로 분류 - 3가지 노이즈 상황을 adversarial sample로 사용해 Adaptive Adversarial Training 수행 - 단순히 노이즈 상황에 강겅한 LLM 튜닝이 아닌 노이즈 분류 loss도 추가함으로써 input으로 들어오는 문서들의 노이즈 유형까지 분류하게 학습 진행
모델을 개발하다 보면, 학습 데이터에서는 완벽했던 모델이 실전에서는 아주 작은 노이즈에도 엉뚱한 대답을 내놓는 모습을 보일 때가 있습니다. 마치 온실 속의 화초처럼 자란 모델을, 거친 비바람에도 끄떡없는 '야생화'로 만드는 방법이 적대적 학습(Adversarial Training)입니다.
적대적 학습을 한마디로 정의하자면, "모델을 속이려는 적(Adversary)을 일부러 만들어서, 그 적을 이기도록 훈련시키는 과정"입니다. 이 학습 방법은 수학적으로 Min-Max Game이라고 불립니다. 두 개의 주체가 서로 반대되는 목표를 가지고 싸우기 때문입니다. - 공격자 (Attacker): 모델이 가장 헷갈려 할 만한 노이즈(Perturbation)를 찾아서 입력 데이터에 섞습니다. (Loss 최대화) - 방어자 (Defender/Model): 노이즈가 섞인 데이터를 보고도 정답을 맞히려고 노력합니다. (Loss 최소화) 이 과정을 반복하면, 모델은 단순한 패턴 암기가 아니라 데이터의 진짜 핵심 특징(Robust Feature)을 파악하는 능력을 갖게 됩니다.
대표적인 예가 바로 구글의 '판다' 실험입니다. AI에게 판다(Panda) 사진을 보여주면 "판다"라고 잘 맞힙니다 (확신도 57.7%). 그러나 여기에 사람 눈에는 보이지 않는 미세한 노이즈를 섞습니다. 사람 눈에는 여전히 판다로 보이지만, AI는 이것을 긴팔원숭이(Gibbon)라고 99.3%의 확신으로 오답을 냅니다. 참고 : https://thenextweb.com/news/what-is-adversarial-machine-learning-syndication
초기 연구들은 컴퓨터 비전 분야에서 adversarial training을 활발히 연구했다. (위 내용처럼)
NLP 분야에서는 단어 임베딩에 perturbation(작은 교란)을 추가하는 방식을 제안했다.
original embedding = [0.2, 0.8, ...]
perturbed embedding = [0.21, 0.79, ...]
NLP에서 adversarial은 여러 수준에서 가능하다.
문자 교란 (typo 추가)
동의어 치환
문장 순서 변경
irrelevant 문장 삽입
본 논문에서는 샘플링 또는 패러프레이징을 통해 노이즈 adversarial example을 생성한다.
📍3. Methodology
3.1 Problem Setup
기존 QA 목표 : f(x) = y
RAG 이상적 목표 : f(c_{golden}, x) = y
이 논문의 최종 목표 : f(c_{golden}, c_{noisy}, x) = y
3.2 Diverse Retrieval Noises
이 파트에서 c_{noisy}에 포함되는 retrieval noise를 실제 환경을 반영하도록 체계적으로 분류한다.
기존 연구들은 retrieval noise를 단순히 relevant vs irrelevant로 이분화했다.
그러나 본 논문에서는 3가지 케이스로 분류한다.
1) Relevant retrieval noise (c_r) : 질문과 겉보기에는 관련 있어 보이지만, 정답을 포함하지 않는 문맥을 의미한다.
semantic similarity가 높지만 실제로는 정답이 없다.
2) Irrelevant retrieval noise (c_i) : 질문과 거의 관련 없는 문맥을 의미한다.
3) Counterfactual retrieval noise (c_c) : 질문과 주제는 관련 있지만, 틀린 정보를 포함하는 문맥이다.
세 가지 서로 다른 retrieval noise가 LLM에 미치는 영향을 분석하기 위해, LLM의 retrieval noise 강건성을 평가할 수 있는 벤치마크를 구축했다.
세 가지 open-domain QA 데이터셋인 Natural Questions, TriviaQA, WebQ를 사용했다.
이 벤치마크를 활용하여, 여러 오픈소스 LLM이 세 가지 노이즈 유형에 얼마나 취약한지 평가했다.
구체적으로 ChatGPT-3.5, LLaMA2 7B/13B/70B, Qwen 7B/14B를 대상으로 실험했다. (총 6개 LLM 사용)
각 모델에 대해 두 가지 실험 설정을 사용했다
1) golden retrieval context만 있는 경우
2) golden + 세 가지 노이즈 중 하나가 추가된 경우
위 Figure 2를 보면 성능 하락 폭은 0.2%에서 13.43%까지 나타났다.
3.3 Retrieval-augmented Adaptive Adversarial Training
최근 일부 연구들은 noisy training을 통해 LLM의 노이즈 강건성을 높이려 했다. 이는 fine-tuning 데이터에 retrieval noise를 포함시키는 방식이다.
기존 Noisy training은 오프라인 데이터 증강 방식이고, 반면 adversarial training은 온라인 데이터 증강을 활용한다.
Offline augmentation : 미리 노이즈 데이터를 만들어 둠 → 고정된 분포
Online adversarial training : 학습 중 모델 상태에 따라 → 가장 취약한 입력을 동적으로 선택
Adversarial training의 핵심은 adversarial perturbation을 도입해 모델을 공격 환경에 강하게 만드는 것이다.
여기서 perturbation이란?
일반적으로는 embedding에 작은 벡터 추가, 단어 교체, 문장 변형. 하지만 이 논문에서는 retrieval noise 자체가 perturbation입니다.
그리고 Adversarial sample(노이즈 샘플)을 구성할 때, min-max 최적화 전략이 핵심 역할을 한다.
Min-Max Optimization
기존 min-max
max 단계: 모델을 가장 힘들게 하는 노이즈 선택
먼저 maximization 단계에서는 모델을 가장 틀리게 만드는 입력을 찾는다 = 어떤 노이즈에서 loss가 가장 큰가?
min 단계: 그 노이즈에 대해 모델 업데이트
그 다음 minimization 단계에서는 그 노이즈에 대해 모델을 업데이트해 강건성을 높인다.
이 전략은 균형을 맞추는 것을 목표로 한다. (Accuracy와 Robustness 사이의 균형)
너무 공격 데이터에만 집중하면 → 정상 데이터 성능 하락
정상 데이터만 보면 → 공격에 취약
즉, 모델이 정상 데이터는 정확히 처리하면서도 adversarial example(노이즈)에 대해서는 강건하게 방어할 수 있도록 만든다.
본 연구에서는 retrieval noise 강건성 문제를 해결하기 위해 adversarial training의 목적 함수를 정교화한다.
1) 먼저 하나의 질문 x에 대해 네 가지 증강 형태가 존재한다고 가정한다.
d_{g}: golden context만
d_{r}: relevant noise 추가
d_{i}: irrelevant noise 추가
d_{c}: counterfactual noise 추가
그리고 데이터 증강 공간을 다음과 같이 정의한다. (각 질문에 대해 4개의 adversarial 후보가 존재)
DA = { d_{g}, d_{r}, d_{i}, d_{c} }
이제 adversarial 후보가 만들어졌으니, min-max 최적화 문제는 아래처럼 정의할 수 있다.
결국 위 min-max 최적화 식을 보면 증강된 4개의 데이터 중에서 그 상황마다 loss가 가장 큰 것들을 선택하며 학습하기 때문에 adaptive adversarial training이 된다.
여기서 "adaptive"라는 단어가 붙었는데, 그 의미는 매 스텝마다 loss를 비교하고 동적으로 선택 한다는 뜻이다.
기존 Min-Max: "임베딩 공간을 뒤져서 새로운 최악의 노이즈를 창조해라." (Creation)
RAAT Adaptive: "우리가 정의한 3대 난제(시나리오) 중, 네가 지금 제일 못하는 걸 골라라." (Selection)
다시 말해, Adaptive adversarial training에서는 모든 adversarial sample에 대해 동시에 업데이트하지 않는다.
대신, 각 adversarial sample에 대해 generation loss를 계산하여, 모델이 각 노이즈 환경에 얼마나 적응했는지 측정한다.
여기서 generation loss가 높다는 것은 해당 노이즈 환경에 대한 모델의 적응력이 낮다는 의미다. (해당 노이즈에 대한 학습 필요)
각 질문은 1개의 golden 샘플과 3개의 adversarial 샘플을 포함하므로, 매 iteration마다 4개의 generation loss가 계산된다.
그리고 Min-max 전략에 따라, 모델은 가장 큰 loss를 선택하여 그 방향으로 파라미터를 업데이트한다.
여기서 generation loss(모델이 어떤 노이즈에 약한지 판단하는 기준) 수식을 살펴보면 아래와 같다.
다음 토큰 예측(Next Token Prediction)의 오차를 계산하는 공식(Negative Log-Likelihood)
한마디로 정의하면 노이즈가 섞인 문맥(x')을 보고 정답 문장(y)을 한 글자(토큰)씩 만들어낼 때, 모델이 정답을 맞힐 확률을 로그로 변환하여 평균 낸 값이다. 이 값이 작을수록 모델이 노이즈에도 불구하고 정답을 잘 맞혔다는 뜻이다.
❗️ 여기까지 RAAT의 학습 과정을 살펴보면, 총 4개의 노이즈 시나리오를 준비하고 각각의 generation loss를 계산한다. 그리고 generation loss가 가장 큰 시나리오(해당 시나리오에 모델이 약하다)를 선택해 해당 시나리오 loss를 최소화 하는 방향으로 학습한다. 결국 매 스탭마다 학습이 필요한 시나리오를 모델이 선택하고 학습하기 때문에 adaptive 학습이다.
그런데 단순히 가장 어려운 노이즈(max loss)만 학습하는 구조이기 때문에 모델이 특정 노이즈 유형 하나에만 과적합 될 위험이 있다.
단순히 가장 큰 loss를 줄이는 것뿐 아니라, 노이즈들 간의 loss 차이 자체도 줄여야 하지 않을까?
그래서 저자들은 다양한 노이즈 환경 전반에서 성능을 효과적으로 향상시키기 위해, adaptive adversarial training은 손실 함수에 정규화 항을 추가한다.
이 정규화 항은 모델이 특정 노이즈 유형에 과적합하는 위험을 줄이기 위해 설계되었다.
구체적으로 정규화 항은 서로 다른 generation loss들 간의 분산(variance)을 줄여준다.
이 정규화 항은 각 학습 단계에서 네 개의 generation loss 중 가장 큰 값(Lmax)과 가장 작은 값(Lmin)을 식별하여 작동한다.
정규화 항은 Lmax와 Lmin의 차이를 제곱한 값으로 계산되며, 모델이 retrieval noise에 과도하게 민감해지는 것을 줄이고 보다 균형 잡힌 최적화를 유도한다.
최대 loss와 최소 loss의 격차를 줄여라. 차이가 클수록 강하게 페널티를 줌.
그래서 최종 adaptive adversarial training loss function는 다음과 같이 정의한다.
여기서 w_{reg} 는 L_{reg}의 가중치를 조절하기 위한 사전에 정의된 하이퍼파라미터
3.4 Incorporating Noise Awareness
retrieval noise를 정확히 식별하는 것은 RAG에서 retrieval noise에 대한 강건성을 강화하는 데 핵심적인 역할을 한다.
즉, 서로 다른 노이즈 유형을 구별할 수 있는 능력을 가진 모델은 학습 데이터를 더 효과적으로 선택하고 활용할 수 있으며, 이는 생성 품질 향상으로 이어진다.
이러한 동기에서 출발하여, 저자들은 노이즈 유형을 자동으로 인식하는 보조 과제를 제안한다.
RAAT를 multi-task learning 구조로 만들었다.
Main task : QA generation
Auxiliary task : noise type classification
즉, 저자들은 모델이 노이즈에 민감한 토큰을 생성하도록 하여, 내부적으로 서로 다른 노이즈 유형을 구별하는 능력을 향상시키고자 한다.
저자들은 단순히 마지막에 classifier를 붙인 게 아니라, 모델이 생성하는 hidden representation 자체가 noise-aware해지도록 만들었다.
구체적으로, LLM 아래에 하나의 선형 계층(linear layer)을 추가한다.
LLM → hidden state → linear layer → classification
LLM 파라미터도 함께 업데이트되기 때문에 classification loss가 LLM representation을 직접 shaping한다.
각 입력 x에 대해, golden context와 세 가지 adversarial sample 각각에 대해 classification loss Lcls를 계산한다.
분류 작업에서는 one-hot encoding을 사용하며, 1부터 4까지의 값을 레이블로 부여하여 각 노이즈 유형에 맞는 분류기를 학습시킨다. (Loss는 cross-entropy)
마지막으로, 저자들은 multi-task learning 맥락에서 adaptive adversarial training loss와 classification loss를 결합하여 최종 RAAT loss를 정의한다.
w_{ada} 와 w_{cls} 는 이 두 가지 서로 다른 작업의 중요도를 균형 있게 조절하기 위해 사전에 정의된 하이퍼파라미터
📍4. Experiments
4.1 Dataset Construction
저자들은 LLM의 retrieval noise에 대한 강건성을 평가하기 위해 특별히 설계된 RAG-Bench라는 벤치마크를 구축했다.
RAG-Bench는 오픈 도메인 질문응답(QA)을 중심으로 하는 세 가지 널리 사용되는 데이터셋(Natural Questions (NQ), TriviaQA, WebQ)을 기반으로 구축되었다.
각 데이터셋에 대해 DPR을 retriever로 사용하여 각 질문마다 Wikipedia로부터 10개의 문서를 검색한다.
그 다음, 질문에 필터링을 적용하여, 필터링된 하위 집합에 포함된 각 질문이 최소 두 개 이상의 golden retrieval context(정답을 포함한 문맥)를 갖도록 하였다.
즉, 정답이 확실히 들어 있는 문서가 최소 2개 있어야 실험에 사용됨.
데이터셋의 각 샘플은 하나의 golden retrieval context를 포함하며, 의도적으로 세 가지 유형의 retrieval noise가 추가되도록 설계되었다.
1) relevant retrieval noise를 추가하기 위해, golden retrieval context를 제외한 10개의 검색 문서 중에서 질문과 가장 관련성이 높은 문서를 선택한다.
2) irrelevant retrieval noise의 경우, 현재 질문과 관련된 검색 문서들 중에서는 어떠한 선택도 하지 않는다.
대신, 다른 질문들의 검색 문서 중에서 하나를 무작위로 선택하여 현재 질문과 완전히 무관하도록 한다.
3) counterfactual retrieval noise의 경우, 두 개의 golden retrieval context 중 하나를 무작위로 선택한 후, 그 안의 정답 엔티티를 잘못된 값으로 치환한다.
RAG-Bench의 테스트 세트는 3개 QA 데이터셋의 테스트 세트에서 각각 1000개씩 무작위로 선택된 샘플로 구성되며, 총 3000개의 샘플로 이루어진다.
훈련 세트는 3개 데이터셋의 훈련 세트에서 각각 1500개씩 무작위로 선택된 샘플로 구성되며, 총 4500개의 샘플이다.
검증 세트는 3개 QA 데이터셋의 훈련 세트에서 추출되었으며, 300개의 샘플을 포함한다.
특히, RAG-Bench의 훈련 데이터와 어떠한 중복도 발생하지 않도록 신중한 조치를 취하였다.
4.2 Evaluation Metrics
두 가지 지표 (Exact Match(EM)와 F1)를 사용한다.
구체적으로, EM은 시스템이 생성한 답변이 문자 단위 수준에서 어떠한 차이도 없이 정답과 정확히 일치하는지를 평가한다.
반면, F1 점수는 precision과 recall을 포함하며, 정답을 정확히 식별하는 것과 정답을 빠뜨리지 않는 것 사이의 균형을 고려한다.
4.3 Baseline Methods
RAAT 방법을 zero-shot LLM들과, RAAT와 동일한 backbone을 공유하는 LLaMA2-7B에 적용된 fine-tuning 방법들과 비교한다.
Zero-Shot Methods
여섯 개의 잘 알려진 LLM을 baseline으로 선택한다.
ChatGPT-3.5, LLaMA2-7B, LLaMA2-13B, LLaMA2-70B, Qwen-7B, Qwen-14B를 사용한다.
Fine-tuning Methods
RALM_golden : instruction tuning이 적용된 RALM(retrieval-augmented language models)
이 방법은 golden retrieval context를 입력 앞에 추가하여 LLaMA2-7B를 fine-tuning한다.
RetRobust : 모델이 학습 중 golden retrieval text와 다양한 retrieval noise에 모두 노출되도록 하기 위해 제안한 방법
각 질문에 대해 RetRobust는 top-1 문서, 낮은 순위 문서, 혹은 무작위 문서를 동일한 확률로 선택하여 학습에 사용한다. (즉, 노이즈를 랜덤하게 섞어서 학습하는 방식이다.)
RALM_retrieved : instruction tuning이 적용된 RALM 변형 모델
RALM_golden과 달리, RALM_retrieved는 학습 세트에 인위적으로 노이즈를 설계하지 않고, 단순히 top-2 검색 문서를 직접 사용한다.
이 학습 방식은 실제 검색 환경과 더 유사하다.
RALM_multiple : RetRobust와 매우 유사하지만, 학습 데이터 구성 방식에서 차이가 있음
RALM_multiple에서는 각 질문마다 하나의 노이즈를 무작위로 추가하는 대신, 모든 노이즈 유형을 해당 샘플과 결합하여 데이터셋에 포함시킨다.
즉, 각 질문은 네 개의 증강된 노이즈 샘플과 연결된다. (이건 RAAT와 가장 가까운 baseline이다.)
4.4 Implementation Details
RAAT 방법은 LLaMA2-7B를 기반 모델로 사용한다.
가중치 파라미터를 다음과 같이 설정하였다.
w_reg는 0.1, w_raat는 2, w_cls는 1
w_reg = 0.1 → variance penalty는 보조적 역할
w_ada(= w_raat) = 2 → adversarial objective를 더 강조
w_cls = 1 → classification도 중요하지만 2배는 아님
시퀀스 길이, 학습 epoch 수, 학습률은 각각 512, 2, 그리고 5e-6으로 설정하였다.
실험은 각각 80GB 메모리를 갖춘 NVIDIA A100 GPU 4개가 장착된 연산 클러스터에서 수행되었다.
📍5. Experimental Results
5.1 Main Results
Table 2는 F1 점수와 EM 점수 측면에서 RAAT 방법이 baseline들과 비교하여 얼마나 효과적인지를 보여준다.
모든 모델이 세 가지 유형의 retrieval noise 공격의 영향을 받는다.
irrelevant retrieval noise의 영향은 미미한 반면, counterfactual retrieval noise가 가장 큰 영향을 미친다.
동일한 아키텍처를 공유하는 모델들 사이에서는, 파라미터 수가 클수록 더 높은 성능과 더 나은 노이즈 강건성을 보인다.
예를 들어, LLaMA2-7B는 relevant retrieval noise에 직면했을 때 F1 점수가 12.46% 감소한 반면, 동일한 조건에서 LLaMA2-13B는 7%만 감소하였다.
fine-tuning이 LLM이 retrieval text의 정보를 더 잘 활용하도록 만든다는 것도 관찰할 수 있다.
fine-tuning된 모델들은 파라미터 크기에 관계없이 zero-shot LLM보다 현저히 더 뛰어난 성능을 보인다.
또한, RALM_multiple은 RALM_golden, RALM_retrieved, RetRobust보다 상당한 성능 향상을 보였으며, 이는 retrieval noise에 대한 민감성이 학습 데이터 구성에 크게 영향을 받으며, 학습 중 다양한 노이즈 공격이 중요함을 보여준다.
RAAT 방법은 네 가지 모든 환경에서 RALMmultiple보다 더 우수한 성능을 달성하였으며, 평균적으로 F1 점수는 2.08%, EM 점수는 2.5% 향상되었고, 이는 다양한 retrieval noise를 처리하는 데 있어 우수한 능력을 입증한다.
5.2 Ablation Study
이 파트는 RAAT의 각 구성 요소가 전체 성능에 기여하는 바를 종합적으로 이해하기 위해, 정규화 손실 항(Lreg 제거, w/o Lreg)과 노이즈 인식 분류 손실(Lcls 제거, w/o Lcls)을 각각 제거한 ablation 실험을 수행하였다.
classification loss를 제거한 후, 모델의 평균 성능은 F1 점수 기준으로 0.49%, EM 점수 기준으로 0.52% 감소하였다.
큰 폭은 아니지만 representation 정렬 효과는 있음 → 그러나 성능 개선의 핵심은 아님
정규화 항(Lreg)을 제거했을 때, irrelevant retrieval noise를 처리하는 성능에서 상당한 감소가 나타났다.
5.3 Further Discussion
What types of adversarial samples does RAAT employ during training?
이 파트에서는 RAAT의 내부 메커니즘, 특히 모델의 강건성을 향상시키기 위해 특정 retrieval 데이터를 어떻게 활용하는지를 종합적으로 이해하기 위해, 학습 반복 과정을 면밀히 추적하고 학습 단계 동안 사용된 다양한 adversarial 샘플의 수를 정량적으로 분석하는 심층적인 조사를 수행하였다.
RAAT는 relevant retrieval noise와 counterfactual retrieval noise에 해당하는 adversarial 샘플을 학습에 더 자주 선택하는 경향이 있다.
📍6. Conclusion
본 연구는 먼저 RALM에서의 retrieval noise를 조사하고, 이를 실제 환경을 반영하는 세 가지 서로 다른 유형으로 분류하였다.
RALM이 직면한 noise robustness 문제를 해결하기 위한 방법으로 RAAT를 제안하였으며, 이는 adaptive adversarial learning과 multi-task learning을 활용하여 모델의 능력을 향상시켰다.
실험 결과는 RAAT로 fine-tuning된 LLaMA2-7B 모델이 다양한 노이즈 환경에서 F1 및 EM 점수 측면에서 상당한 향상을 보였음을 보여준다.
📍7. Limitations
첫째, 실험을 위해 구축한 벤치마크는 세 개의 오픈 도메인 QA 데이터셋에만 의존하고 있다.
다양한 NLP 작업에서 고품질 데이터셋을 추가로 수집 필요
둘째, RAAT 프레임워크 내에서 LLM 측면에서의 retrieval noise 강건성 강화에만 집중하고 있다.
Retriever는 고정된 DPR을 사용
📖 Appendix
Has the Model Truly Attained Noise Awareness?
RALM_golden과 RetRobust가 retrieval noise 유형을 분류할 수 있는 내재적 능력을 갖추고 있는가?
Figure 5에 제시된 결과는 RALM_golden과 RetRobust의 텍스트 벡터들이 명확하게 클러스터링되지 않음을 보여주며, 이는 이들 모델의 내부 표현이 노이즈 분류를 위해 충분히 명확하지 않을 수 있음을 시사한다.
반대로 RAAT는 classification loss를 도입함으로써 실제적인 성능 향상이 있음을 보여주었다.
또한 RAAT로 fine-tuning된 모델의 클러스터링 효과를 평가한 결과, irrelevant, relevant, no retrieval noise 샘플들은 서로 가까운 거리를 보인 반면, counterfactual retrieval noise 샘플은 이들과 상당히 떨어진 위치에 분포함을 관찰하였다.
특히 counterfactual retrieval noise는 LLM에게 가장 큰 도전 과제를 제시하였으나, RAAT 튜닝 이후에는 더 우수한 클러스터링과 표현 학습 결과를 보였으며, 이는 RAAT의 효과를 간접적으로 입증한다.