1. 서론
최근 LLM 커뮤니티는 공개적으로 접근 가능한 대규모 언어모델들의 성능을 개선하기 위해 지속적인 노력을 기울이고 있습니다. 특히, Llama-3-70B-Instruct, QWen2-72B-Instruct, Nemotron-4-340B-Instruct 등 다양한 모델들이 개발되었으나, GPT-4 Turbo와 같은 선도적인 모델들과의 성능 차이는 여전히 존재합니다. 이 연구에서는 Llama3과 GPT-4 Turbo 사이의 긴 컨텍스트 이해 능력 격차를 해소하는 것을 목표로 합니다.
2. 관련 연구
2.1 긴 컨텍스트 LLM
컨텍스트 윈도우를 확장하는 기술은 Claude와 같은 모델에서 시작되었으며, RoPE 기반의 위치 인코딩을 통해 입력 컨텍스트의 길이를 늘리는 연구가 활발히 이루어지고 있습니다. 예를 들어, Yi-34B 모델은 기존 4K에서 200K까지 컨텍스트 윈도우를 확장했으며, 이는 RoPE의 기본 frequencies $\theta$를 10,000에서 5M으로 증가시킴으로써 가능하게 되었습니다.
\[\theta_{new} = \theta_{base} \times \frac{200K}{4K}\]2.2 검색 보강 생성(RAG)
RAG는 검색을 통해 관련 문맥을 추출하고, 이를 기반으로 언어 모델이 답변을 생성하도록 돕는 기술입니다. 이 방법은 긴 문서 요약이나 복잡한 질문에 대한 답변 생성에 특히 유용하며, 최근 연구에서는 RAG의 컨텍스트 윈도우를 32K까지 확장하는 시도가 이루어지고 있습니다.
3. 컨텍스트 윈도우를 128K로 확장
이 섹션에서는 Llama3 모델의 컨텍스트 윈도우를 8K에서 128K로 확장하는 방법을 소개합니다. 이를 위해, Slimpajama 데이터셋을 사용하여 긴 문맥의 문서를 추가하고, RoPE의 $\theta$ 값을 크게 증가시켜 모델이 더 긴 입력을 처리할 수 있도록 합니다. 이런 확장은 모델이 긴 문맥을 더 효과적으로 이해하고 처리할 수 있게 만듭니다.
\[\theta_{expanded} = \theta_{initial} \times \frac{Sequence Length_{new}}{Sequence Length_{initial}}\]Llama3-70B 모델은 세 단계의 지시 조정 과정을 통해 지시 사항을 따르는 능력, RAG 성능, 그리고 긴 컨텍스트 이해 능력을 각각 향상시킵니다. 이 과정은 모델이 다양한 데이터셋에 대해 파인튜닝되며, 각 단계에서의 학습은 특정 목표에 초점을 맞춥니다.
4. 지시 조정과 긴 컨텍스트 데이터
이 섹션에서는 긴 컨텍스트 이해 능력과 RAG 성능을 동시에 향상시키기 위해 설계된 지시 조정 방법을 소개합니다.
구체적으로, 세 단계의 지시 조정을 구현합니다. 첫 두 단계에서는 128K 고품질 지시 데이터셋에서 초기 훈련을 진행한 후, 제공된 컨텍스트와 함께 대화형 QA 데이터의 혼합에 대해 훈련을 진행합니다(ChatQA 1.5 참고). 그러나 이 두 단계는 최대 4K 토큰의 상대적으로 짧은 컨텍스트만을 다룹니다. 연구팀의 모델이 최대 128K 토큰의 긴 컨텍스트 시퀀스를 처리할 수 있도록 하기 위해, 긴 SFT 데이터셋을 수집합니다.
이 데이터셋은 두 가지 범주로 수집됩니다.
5. 긴 컨텍스트 검색기와 긴 컨텍스트 LLM의 만남
앞선 섹션에서 언급한 바와 같이, 현재 RAG 파이프라인은 다음과 같은 문제점을 갖고 있습니다.
아래 표 1은 top-$k$ 검색의 다양한 chunk size와 context window의 전체 토큰 수를 비교합니다. 총 3000에서 12000 토큰까지의 비교에서, 더 많은 토큰이 일관되게 더 좋은 결과를 가져온 것으로 확인되었습니다. 이는 연구팀의 모델의 강력한 긴 컨텍스트 능력을 확인시켜 줍니다. 또한, 총 토큰 수가 6000일 때, 1200 크기의 조각이 비용과 성능 사이의 좋은 균형을 제공한다는 것을 발견했습니다. 따라서, 실험에서는 기본 값으로 chunk size 1200과 top-5 조각을 사용합니다.
# Chunk Size | Top-$k$ | Total Tokens | Avg. |
---|---|---|---|
300 | 10 | 3000 | 46.31 |
300 | 20 | 6000 | 46.28 |
300 | 40 | 12000 | 46.96 |
600 | 10 | 6000 | 46.88 |
1200 | 5 | 6000 | 47.08 |
1200 | 10 | 12000 | 47.13 |
표 1: 32K 토큰 범위 내 중-장 컨텍스트 벤치마크에서 다양한 top-$k$ = {5, 10, 20, 40}, chunk size = {300, 600, 1200}에 대한 Llama3-ChatQA2-70B의 RAG 성능 비교(자세한 내용은 섹션 6.2 참조). 총 토큰 수가 6000으로 같을 경우, 큰 chunk size(1200)가 작은 chunk size(300, 600)보다 더 나은 결과를 보임을 확인합니다. Context Window의 총 토큰이 많을수록 정확도도 향상될 수 있음을 확인합니다.
6. 평가 벤치마크
다양한 상태 최신 모델들과 비교하여 모델 성능을 평가합니다.
평가 벤치마크는 세 가지 범주로 나뉩니다.
RAG의 경우 적용 가능한 down-stream 태스크에 적용합니다.
6.1 100K 토큰을 넘는 긴 컨텍스트 벤치마크
InfiniteBench를 사용하여 100K 시퀀스 길이 이상의 LLM 긴 컨텍스트 능력을 평가합니다. 이 벤치마크는 긴 소설 요약(En.Sum), 질문응답(En.QA), 다중선택(En.MC), 대화(En.Dia) 등 네 가지 관련 작업으로 구성됩니다.
6.2 32K 토큰 이내의 중-장 컨텍스트 벤치마크
NarrativeQA를 제외한 Xu et al. (2024)의 긴 컨텍스트 데이터셋을 중-장 컨텍스트 벤치마크로 사용합니다. 여기에는 QMSum, Qasper, QuALITY, HotpotQA, MuSiQue, MultiFieldQA-en이 포함되며, 공식 메트릭에 따라 QMSum은 ROUGE 점수의 기하 평균, QLTY는 정확한 일치 점수, 나머지 네 개의 데이터셋은 F1 점수로 보고됩니다.
6.3 4K 토큰 이내의 짧은 컨텍스트
ChatRAG Bench를 사용하여 4K 토큰 이내의 짧은 컨텍스트 벤치마크를 평가합니다.
ChatRAG Bench는 10개의 데이터셋으로 구성되며, 훈련에 포함된 HDial을 제외합니다. 각 데이터셋은 F1 점수로 평가되며, 다양한 모델 간 공정한 비교를 위해 HDial 없이 평균 점수를 보고합니다.
7. 결과
실험 결과는 광범위한 벤치마크 평가를 통해 제시됩니다. 우선, 합성된 Needle in a Haystack 벤치마크 테스트를 시작으로, 실제 긴 컨텍스트 이해 및 RAG 작업에 초점을 맞춥니다.
7.1 Needle In A Haystack
이 합성 작업은 LLM의 긴 컨텍스트 능력을 테스트하기 위해 설계되었으며, 연구팀의 모델은 128K 토큰까지 100% 정확도를 달성하여 우수한 긴 컨텍스트 검색 능력을 입증합니다.
7.2 100K 토큰 이상의 긴 컨텍스트 평가
InfiniteBench의 실제 작업에서 100K 토큰 이상의 긴 컨텍스트 능력을 평가합니다. 연구팀의 모델은 GPT4-Turbo 및 다른 최신 모델들을 능가하며, Qwen2-72B-Instruct와도 경쟁적인 성능을 보입니다.
7.3 32K 토큰 이내의 중-장 컨텍스트 평가
32K 토큰 이내의 범위에서 중-장 컨텍스트 능력을 평가합니다.
GPT-4-Turbo가 가장 높은 점수를 달성하는 반면, 연구팀의 모델은 Llama-3-70B-Instruct-Gradient-262k보다는 높지만 Qwen2-72B-Instruct보다는 낮은데, 이 차이는 Qwen2-72B-Instruct가 훨씬 더 큰 32K 사전 훈련 코퍼스를 사용한 것에 기인할 수 있습니다. 또한, 모든 RAG 솔루션은 긴 컨텍스트 솔루션보다 성능이 낮다는 것을 발견했습니다. 이는 모든 최신 긴 컨텍스트 LLM이 실제로 32K 토큰 범위 내에서 컨텍스트를 처리할 수 있음을 시사합니다.