ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 대규모 언어 모델(LLM : Large Language Models) 연구 동향
    인공지능 2023. 10. 9. 23:22

    대규모 언어 모델에 대한 조사

    A Survey of Large Language Models

    요약

    1950년대에 튜링 테스트(Turing Test)가 제안된 이래로 인간은 기계가 언어 지능을 마스터하는 방법을 탐구해 왔습니다. 언어는 본질적으로 문법 규칙에 의해 지배되는 복잡하고 정교한 인간 표현 체계입니다. 이는 유능한 인공지능을 개발하는 데 언어를 이해하고 파악할 수 있는 유능한 인공 지능(AI) 알고리즘을 개발하는 것은 중요한 과제입니다. 언어 모델링은 지난 20년 동안 언어 이해와 생성을 위해 널리 연구되어 왔으며, 통계적 언어 모델(statistical language models)에서 신경망 언어 모델(neural language models)로 발전해 왔습니다. 최근에는 대규모 말뭉치(large-scale corpora)를 대상으로 Transformer 모델을 사전 학습시켜 다양한 자연어 처리(NLP) 작업을 해결하는 데 강력한 성능을 보이는 사전 학습 언어 모델(PLM: pre-trained language models)이 제안되고 있습니다. 연구진은 모델 스케일링이 모델 용량 향상으로 이어질 수 있다는 사실을 발견한 후, 파라미터 스케일을 더 큰 크기로 늘려 스케일링 효과를 추가로 조사했습니다. 흥미롭게도 매개변수 규모가 일정 수준을 초과하면 이렇게 확대된 언어 모델은 성능이 크게 향상될 뿐만 아니라 소규모 언어 모델(예: BERT)에는 없는 몇 가지 특별한 능력(예: 비문맥 학습 incontext learning)도 발휘합니다. 다양한 매개변수 규모에서 언어 모델을 구별하기 위해 연구 커뮤니티에서는 상당한 규모(예: 수백억 또는 수천억 개의 매개변수를 포함하는)의 PLM에 대해 대규모 언어 모델(LLM)이라는 용어를 만들어냈습니다. 최근 학계와 산업계에서 LLM에 대한 연구가 크게 진전되고 있으며, 괄목할 만한 진전으로 LLM을 기반으로 개발된 강력한 AI 챗봇인 ChatGPT가 출시되어 사회적으로 큰 주목을 받고 있습니다. LLM의 기술적 진화는 AI 커뮤니티 전체에 중요한 영향을 미치고 있으며, 이는 AI 알고리즘 개발 및 사용 방식에 혁신을 가져올 것입니다. 이러한 빠른 기술 진보를 고려하여 이번 조사에서는 LLM의 등장 배경과 주요 연구 결과, 주요 기술을 소개함으로써 최근의 발전 상황을 살펴봅니다. 특히 사전 학습, 적응 튜닝, 활용, 역량 평가 등 LLM의 네 가지 주요 측면에 초점을 맞춥니다. 또한 LLM을 개발하는 데 사용할 수 있는 리소스를 요약하고 향후 방향에 대한 나머지 문제에 대해서도 논의합니다. 이 조사는 연구자와 엔지니어 모두에게 유용한 자료가 될 수 있는 LLM에 대한 최신 문헌 검토를 제공합니다.

    대규모 언어 모델
    대규모 언어 모델

    1. 소개

    "내 언어의 한계는 내 세계의 한계를 의미한다." - 루드비히 비트겐슈타인
    “The limits of my language mean the limits of my world.” – Ludwig Wittgenstein, Tractatus logigo-philosphicus, 1922.

    언어는 인간이 표현하고 소통하는 중요한 능력으로, 유아기에 발달하여 일생에 걸쳐 진화합니다[1, 2]. 그러나 기계는 강력한 인공 지능(AI) 알고리즘을 갖추지 않는 한 인간의 언어를 이해하고 소통하는 능력을 자연스럽게 파악할 수 없습니다. 기계가 인간처럼 읽고, 쓰고, 소통할 수 있도록 하는 것은 오랜 연구 과제였습니다[3].

    기술적으로 언어 모델링(LM)은 기계의 언어 지능을 발전시키기 위한 주요 접근 방식 중 하나입니다. 일반적으로 LM은 단어 시퀀스의 생성 가능성을 모델링하여 미래의 토큰(또는 누락된 토큰)의 확률을 예측하는 것을 목표로 합니다. LM에 대한 연구는 문헌에서 광범위한 관심을 받아왔으며, 이는 크게 네 가지 주요 개발 단계로 나눌 수 있습니다.

    • 통계적 언어 모델(SLM : Statistical language models).
      SLM[4-7]은 1990년대에 부상한 통계적 학습 방법을 기반으로 개발되었습니다. 기본 아이디어는 마르코프 가정을 기반으로 단어 예측 모델을 구축하는 것입니다. 예를 들어, 가장 최근의 문맥을 기반으로 다음 단어를 다음 단어를 예측하는 것입니다. 고정된 문맥 길이 n을 가진 고정된 문맥 길이 n을 가진 SLM은 n-gram 언어 모델이라고도 합니다(예: bigram, trigram 언어 모델). SLM은 정보 검색(IR : information retrieval)에서 작업 성능을 향상시키기 위해 정보 검색(IR) [8, 9] 및 자연어 처리(NLP) [10-12]에서 널리 적용됩니다. 하지만 다음과 같은 문제가 있습니다. 고차 언어 모델은 기하급수적으로 많은 전이 확률을 추정해야 하기 때문에 정확한 추정이 어렵다는 차원성의 저주(the curse of dimensionality)를 겪습니다. 따라서 특별히 고안된 평활화 전략인 백오프 추정(backoff estimation) [13] 및 굿 튜링 추정(Good-Turing estimation) [14]과 같은 특수 설계된 평활화 전략이 데이터 희소성 문제를 완화하기 위해 도입되었습니다.
    • 신경 언어 모델(NLM : Neural language models).
      NLM[15-17]은 순환신경망(RNN)과 같은 신경망에 의해 단어 시퀀스의 확률을 특성화합니다. 주목할 만한 기여로, [15]의 연구는 단어의 분산 표현 개념을 도입하고 집계된 문맥 특징(즉, 분산된 단어 벡터)에 조건부 단어 예측 함수를 구축했습니다. 단어 또는 문장에 대한 효과적인 특징을 학습하는 아이디어를 확장하여 다양한 NLP 작업을 위한 통합 솔루션을 구축하기 위해 일반 신경망 접근 방식이 개발되었습니다 [18]. 또한 분산된 단어 표현을 학습하기 위한 단순화된 얕은 신경망을 구축하기 위해 word2vec[19, 20]이 제안되었으며, 이 신경망은 다양한 NLP 작업에서 매우 효과적인 것으로 입증되었습니다. 이러한 연구들은 단어 시퀀스 모델링을 넘어 표현 학습에 언어 모델을 사용하기 시작했으며, NLP 분야에 중요한 영향을 미쳤습니다.
    • 사전 학습된 언어 모델(PLM : Pre-trained language models).
      초기 시도로 ELMo[21]는 고정된 단어 표현을 학습하는 대신 양방향 LSTM(biLSTM) 네트워크를 먼저 사전 학습한 다음 특정 다운스트림 작업에 따라 biLSTM 네트워크를 미세 조정하여 문맥 인식 단어 표현을 캡처하도록 제안되었습니다. 또한, 자체 주의 메커니즘(self-attention mechanisms)을 갖춘 고도로 병렬화 가능한 Transformer 아키텍처[22]를 기반으로 대규모 라벨링되지 않은 말뭉치에 대해 특별히 설계된 사전 훈련 작업을 통해 양방향 언어 모델을 사전 훈련하여 BERT[23]를 제안했습니다. 이러한 사전 학습된 문맥 인식 단어 표현은 범용 의미 기능으로 매우 효과적이며, 이는 NLP 작업의 성능 기준을 크게 높였습니다. 이 연구는 '사전 학습 및 미세 조정(pre-training and fine-tuning)' 학습 패러다임을 설정하는 수많은 후속 연구에 영감을 주었습니다. 이 패러다임에 따라 다양한 아키텍처[24, 25](예: GPT-2 [26] 및 BART [24]) 또는 개선된 사전 학습 전략[27-29]을 도입하여 PLM에 대한 수많은 연구가 개발되었습니다. 이 패러다임에서는 다양한 다운스트림 작업에 적응하기 위해 PLM을 미세 조정해야 하는 경우가 많습니다.
    • 대규모 언어 모델(LLM : Large language models).
      연구자들은 PLM을 확장(예: 모델 크기 또는 데이터 크기 확장)하면 다운스트림 작업에서 모델 용량이 향상되는 경우가 많다는 사실을 발견했습니다(즉, 확장 법칙[30]을 따르는 경우). 많은 연구에서 훨씬 더 큰 PLM(예: 175B 파라미터의 GPT-3 및 40B 파라미터의 PaLM)을 학습시켜 성능 한계를 탐색했습니다. 확장은 주로 모델 크기(유사한 아키텍처 및 사전 학습 작업)로 수행되지만, 이러한 대형 PLM은 소형 PLM(예: 330M 파라미터 BERT 및 1.5B 파라미터 GPT-2)과 다른 동작을 보이며 일련의 복잡한 작업을 해결할 때 놀라운 능력(창발력(emergent abilities)[31])을 발휘합니다. 예를 들어, GPT-3는 상황 내 학습을 통해 단발성 작업을 해결할 수 있습니다.

    학습을 통해 짧은 과제를 해결할 수 있는 반면, GPT-2는 잘 할 수 없습니다. 따라서 연구 커뮤니티에서는 이러한 대형 PLM에 대해 "대규모 언어 모델(LLM)"이라는 용어를 사용합니다[32-35], 연구계의 주목을 받고 있습니다(그림 1 참조). LLM의 주목할 만한 응용 사례로는 GPT 시리즈의 LLM을 대화에 적용하여 인간과의 놀라운 대화 능력을 보여주는 ChatGPT가 있습니다. 우리는 인공지능과 관련된 논문이 급격히 증가하는 것을 관찰할 수 있습니다. 그림 1에서 ChatGPT 이후 LLM과 관련된 아카이브 논문의 급격한 증가를 관찰할 수 있습니다. 

    Fig. 1 The trends of the cumulative numbers of arXiv papers that contain the keyphrases language model
    Fig. 1 The trends of the cumulative numbers of arXiv papers that contain the keyphrases language model

    기존 문헌에서 PLM에 대한 논의와 조사는 광범위하게 이루어졌지만[36-39], LLM에 대한 체계적인 검토는 거의 이루어지지 않았습니다. 조사의 동기를 부여하기 위해 먼저 LLM과 PLM의 세 가지 주요 차이점을 강조합니다. 첫째, LLM은 이전의 소규모 PLM에서는 관찰할 수 없었던 몇 가지 놀라운 새로운 기능을 보여줍니다. 이러한 능력은 복잡한 작업에서 언어 모델을 수행하는 데 핵심적인 역할을 하며, AI 알고리즘을 전례 없이 강력하고 효과적입니다. 둘째, LLM은 인간이 AI 알고리즘을 개발하고 사용하는 방식에 인간이 AI 알고리즘을 개발하고 사용하는 방식을 혁신할 것입니다. 소규모 소규모 PLM과 달리, LLM에 액세스하는 주요 접근 방식은 프롬프트 인터페이스(예: GPT-4 API)입니다. 인간은 다음을 수행해야 합니다. LLM이 작동하는 방식을 이해하고 LLM이 따라갈 수 있는 방식으로 작업을 형식화해야 합니다. 셋째, LLM의 개발로 인해 더 이상 연구와 엔지니어링을 명확하게 구분하지 않습니다. LLM을 학습시키려면 대규모 데이터 처리 및 분산형 데이터에 대한 대규모 데이터 처리 및 분산된 병렬 학습이 필요합니다. 유능한 LLM을 개발하기 위해 연구자들은 복잡한 엔지니어링 문제를 해결해야 합니다. 엔지니어와 함께 일하거나 엔지니어가 되어야 합니다.

    오늘날 LLM은 AI 커뮤니티에 큰 영향을 미치고 있으며, ChatGPT와 GPT-4의 출현으로 인공 일반 지능(AGI)의 가능성에 대해 다시 생각하게 되었습니다. OpenAI는 AGI에 접근하기 위한 단기 및 장기 계획에 대해 논의하는 "AGI와 그 이후를 위한 계획"이라는 제목의 기술 문서를 발표했으며[40], 최근 논문에서는 GPT-4가 AGI 시스템의 초기 버전으로 간주될 수 있다고 주장했습니다[41]. AI 연구 분야는 LLM의 급속한 발전으로 인해 혁신적으로 변화하고 있습니다. 자연어 처리(NLP) 분야에서 LLM은 범용 언어 과제 해결사 역할을 어느 정도 수행할 수 있으며, 연구 패러다임이 LLM을 사용하는 방향으로 전환되고 있습니다. IR 분야에서는 AI 챗봇을 통한 새로운 정보 탐색 방식이 전통적인 검색 엔진에 도전하고 있으며, New Bing은 LLM을 기반으로 검색 결과를 향상시키는 초기 시도를 선보이고 있습니다. CV 분야에서 연구자들은 멀티모달 대화에 더 잘 대응할 수 있는 ChatGPT와 유사한 비전 언어 모델을 개발하려고 시도하고 있으며[42-45], GPT-4 [46]는 시각 정보를 통합하여 멀티모달 입력을 지원했습니다. 이러한 새로운 기술의 물결은 잠재적으로 LLM을 기반으로 하는 실제 애플리케이션의 번영하는 생태계로 이어질 수 있습니다. 예를 들어, Microsoft 365는 LLM(예: Copilot)을 통해 사무 업무를 자동화하고 있으며, OpenAI는 특수 기능 구현을 위해 ChatGPT에서 플러그인 사용을 지원합니다.

    이러한 발전과 영향에도 불구하고 LLM의 기본 원리는 아직 잘 알려지지 않았습니다. 첫째, 왜 더 작은 PLM이 아닌 LLM에서 새로운 기능이 발생하는지 의문입니다. 보다 일반적인 문제로서, LLM의 우수한 능력에 기여하는 주요 요인에 대한 깊고 상세한 조사가 부족합니다. LLM이 언제, 어떻게 그러한 능력을 획득하는지 연구하는 것이 중요합니다[47]. 이 문제에 대한 몇 가지 의미 있는 논의가 있지만[31, 47], LLM의 '비밀'을 밝히기 위해서는 보다 원칙적인 조사가 필요합니다. 둘째, 연구 커뮤니티에서 유능한 LLM을 양성하는 것이 어렵습니다. 계산 리소스에 대한 막대한 수요로 인해 수행 비용이 매우 많이 듭니다. 효과를 조사하기 위해 반복적인 연구를 수행하는 것은 매우 비용이 많이 듭니다. 효과를 조사하기 위한 연구를 반복적으로 수행하는 것은 매우 비용이 많이 듭니다. 실제로 LLM은 주로 산업별로 훈련되며, 중요한 훈련이 많은 세부 사항(예: 데이터 수집 및 정리)이 공개되지 않습니다. 공개되지 않습니다. 셋째, LLM을 인간의 가치관이나 선호도에 맞게 인간의 가치관이나 선호도에 맞추기가 어렵습니다. 능력에도 불구하고 LLM은 독성, 허위, 유해한 콘텐츠를 생성할 가능성도 있습니다. 따라서 효과적이고 효율적인 제어 접근 방식이 필요합니다. 효과적이고 효율적인 통제 접근법이 필요합니다[46].

    기회와 도전 모두에 직면한 지금, LLM의 연구와 개발에 더 많은 관심이 필요합니다. 본 조사에서는 LLM에 대한 기본적인 이해를 제공하기 위해 사전 훈련(유능한 LLM을 사전 훈련하는 방법), 적응(사전 훈련된 LLM을 효과적으로 적응시켜 더 잘 사용하는 방법), 활용(다양한 다운스트림 작업을 해결하기 위해 LLM을 사용하는 방법), 능력 평가(LLM의 능력과 기존 경험적 결과를 평가하는 방법) 등 크게 네 가지 측면에서 최근 발전한 LLM에 대한 문헌 검토를 수행합니다. 문헌을 면밀히 검토하여 LLM의 주요 연구 결과, 기술 및 방법을 요약합니다. 또한 이 조사를 위해 링크(https://github.com/RUCAIBox/LLMSurvey)에서 LLM에 대한 지원 리소스를 수집하여 GitHub 프로젝트 웹사이트를 만들었습니다. 또한 PLM 또는 LLM에 대한 여러 관련 리뷰 논문[32, 36, 38, 39, 43, 48-54]을 알고 있습니다. 이러한 논문은 다음 중 하나를 다룹니다. PLM 또는 LLM의 특정(또는 일반적인) 측면에 대해 논의합니다. 이 논문들과 비교하여 우리는 LLM을 개발하고 사용하는 기술과 LLM을 개발하고 사용하는 방법과 비교적 포괄적인 참조를 제공합니다. LLM의 중요한 측면에 대한 포괄적인 참조를 제공합니다. 이 설문조사의 나머지 부분은 다음과 같이 구성되어 있습니다: 섹션 2에서는 LLM의 배경과 GPT 시리즈 모델의 진화에 대해 소개한 다음, 섹션 3에서는 LLM을 개발하는 데 사용할 수 있는 리소스를 요약합니다. 섹션 4, 5, 6, 7에서는 최근의 진행 상황을 검토하고 요약합니다. 사전 교육, 적응, 활용, 역량 평가의 네 가지 측면에서 최근의 진척 상황을 활용 및 역량 평가의 네 가지 측면에서 최근 진행 상황을 각각 검토하고 요약합니다. 그런 다음 섹션 8에서는 신속한 설계를 위한 실용적인 가이드에 대해 설명합니다, 섹션 9에서는 몇 가지 대표적인 영역에서 LLM의 적용 사례를 적용 사례를 검토합니다. 마지막으로 섹션 10에서는 주요 조사 결과를 요약하고 향후 연구를 위한 남은 과제에 대해 논의합니다.

    2. 개요

    이 섹션에서는 LLM의 배경에 대한 개요를 살펴본 다음 GPT 시리즈 모델의 기술적 진화에 대해 요약합니다.

    2.1 LLM의 배경

    일반적으로 대규모 언어 모델(LLM)은 수천억 개(또는 그 이상)의 파라미터를 포함하는 트랜스포머(Transformer) 언어 모델을 말하며, GPT-3 [55], PaLM [56], Galactica [35], LLaMA [57]와 같은 대규모 텍스트 데이터[32]로 학습됩니다. LLM은 자연어를 이해하고 (텍스트 생성을 통해) 복잡한 작업을 해결하는 데 강력한 역량을 발휘합니다. 이 부분에서는 LLM의 작동 방식을 빠르게 이해할 수 있도록 스케일링 법칙, 창발력, 핵심 기술 등 LLM의 기본 배경을 소개합니다.

    LLM의 스케일링 법칙(Scaling Laws for LLMs). 

    현재 LLM은 주로 트랜스포머 아키텍처[22]를 기반으로 구축되며, 이 아키텍처는 매우 심층적인 신경망에 멀티헤드 어텐션층(multi-head attention layers)이 쌓여 있습니다. 기존 LLM은 작은 언어 모델로서 유사한 트랜스포머 아키텍처와 사전 학습 목표(예: 언어 모델링)를 채택합니다. 그러나 LLM은 모델 크기, 데이터 크기, 총 연산량을 크게 확장합니다(orders of magnification). 광범위한 연구에 따르면 확장을 통해 LLM의 모델 용량을 크게 향상시킬 수 있습니다[26, 55, 56]. 따라서 스케일링 효과를 특성화하기 위한 정량적 접근법을 확립하는 것이 유용합니다. 다음으로 트랜스포머 언어 모델에 대한 두 가지 대표적인 스케일링 법칙을 소개합니다 [30, 34].

    • KM 스케일링 법칙(KM scaling law).
      2020년에 Kaplan 등[30](OpenAI 팀)은 신경 언어 모델에 대해 모델 크기(N), 데이터 세트 크기(D), 학습 연산량(C)이라는 세 가지 주요 요인에 대한 모델 성능의 파워-법칙 관계를 모델링할 것을 처음 제안했습니다. 연구진은 컴퓨팅 예산 C가 주어졌을 때, 스케일링 법칙에 대한 세 가지 기본 공식을 경험적으로 제시했습니다.
       
      수식 1
      수식 1
       
      여기서 L(-)는 자연어의 교차 엔트로피 손실을 나타냅니다. 이 세 가지 법칙은 다양한 데이터 크기(2200만~23억 개의 토큰), 모델 크기(7억 6800만~15억 개의 비포함 파라미터), 학습 연산에 따라 모델 성능을 다양한 가정(예: 한 요소의 분석이 다른 두 요소에 의해 병목 현상이 발생하지 않아야 한다는 가정)에 맞춰 도출되었습니다. 그 결과 모델 성능은 세 가지 요인에 대해 강한 의존 관계가 있음을 보여주었습니다.
    • 친칠라 스케일링 법칙(Chinchilla scaling law).
      또 다른 대표적인 연구로 호프만 등[34](구글 딥마인드 팀)은 LLM에 대한 컴퓨팅 최적 훈련을 지시하기 위한 스케일링 법칙의 대안적 형태를 제안했습니다. 이들은 더 넓은 범위의 모델 크기(70M~16B)와 데이터 크기(5B~500B 토큰)를 변화시키며 엄격한 실험을 진행했고, 비슷한 스케일링 법칙을 적용하면서도 아래와 같이 다른 계수를 적용했습니다[34]: 
       
       
      여기서 E = 1.69, A = 406.4, B = 410.7, α = 0.34, β = 0.28입니다. 제약 조건 C ≈ 6ND에서 손실 L(N, D)을 최적화하여 모델 크기와 데이터 크기에 대한 컴퓨팅 예산의 최적 배분을 다음과 같이 도출할 수 있음을 보여주었습니다:
       
       
      여기서 a =α/(α+β), b = β/(α+β), G는 A, B, α, β로 계산할 수 있는 스케일링 계수입니다. [34]에서 분석된 것처럼, 컴퓨팅 예산이 증가하면 KM 스케일링 법칙은 데이터 크기보다 모델 크기에 더 큰 예산을 할당하는 것을 선호하는 반면 친칠라 스케일링 법칙은 두 크기가 동일한 비율로, 즉 수식식 (3)에서 a와 b가 비슷한 값으로 증가해야 한다고 주장합니다.

    몇 가지 제한적인 가정이 있기는 하지만, 이러한 스케일링 법칙은 스케일링 효과를 직관적으로 이해할 수 있게 해주므로 훈련 중 LLM의 성능을 예측하는 데 유용합니다[46]. 그러나 일부 능력(예: 문맥 내 학습[55])은 스케일링 법칙에 따라 예측할 수 없으며, 이는 모델 크기가 특정 수준을 초과할 때만 관찰할 수 있습니다(아래 설명 참조).

    LLM의 창발력(Emergent Abilities of LLMs). 

    문헌[31]에서 LLM의 창발력(創發力, emergent abilities)은 공식적으로 "작은 모델에는 존재하지 않지만 큰 모델에서 발생하는 능력"로 정의되며, 이는 LLM을 이전 PLM과 구별하는 가장 두드러진 특징 중 하나입니다. 또한 이머전트 어빌리티가 발생할 때 주목할 만한 특징이 있는데[31], 그 규모가 일정 수준에 도달하면 성능이 무작위보다 크게 상승한다는 것입니다. 비유하자면, 이러한 이머전트 패턴은 물리학의 상전이(相轉移, phase transition) 현상과 밀접한 관련이 있습니다 [31, 58]. 원칙적으로 창발력은 일부 복잡한 작업과 관련하여 정의될 수 있지만[31, 59], 우리는 다양한 작업을 해결하는 데 적용될 수 있는 일반적인 능력에 더 관심을 두고 있습니다. 여기에서는 LLM의 대표적인 세 가지 창발력과 이러한 능력을 가진 대표적인 모델에 대해 간략히 소개합니다.

    • 문맥 내 학습(In-context learning).
      문맥 내 학습(ICL) 능력은 GPT-3[55]에 의해 공식적으로 도입된 것으로, 언어 모델에 자연어 명령어 및/또는 여러 작업 데모가 제공되었다고 가정하면 추가 학습이나 그라데이션 업데이트 없이 입력 텍스트의 단어 시퀀스를 완성하여 테스트 인스턴스에 대해 예상되는 출력을 생성할 수 있습니다. GPT 시리즈 모델 중 175B GPT-3 모델은 일반적으로 강력한 ICL 능력을 보였으나 GPT-1 및 GPT-2 모델은 그렇지 않았습니다. 이러한 능력은 특정 다운스트림 작업에 따라 달라집니다. 예를 들어, 13B GPT-3의 경우 산술 작업(예: 3자리 덧셈 및 뺄셈)에서 ICL 능력이 나타날 수 있지만 175B GPT-3는 페르시아어 QA 작업에서도 잘 작동하지 못했습니다[31].
    • 다음 지침(Instruction following).
      자연어 설명을 통해 형식이 지정된 다중 작업 데이터 세트의 혼합으로 미세 조정(명령어 튜닝이라고 함)하면 LLM은 명령어 형태로도 설명되는 보이지 않는 작업에서 잘 작동하는 것으로 나타났습니다 [28, 61, 62]. 명령어 튜닝을 통해 LLM은 명시적인 예제를 사용하지 않고도 새로운 작업에 대한 작업 지침을 따를 수 있으므로 일반화 능력이 향상됩니다. 62]의 실험에 따르면, 인스트럭션을 튜닝한 LaMDA-PT[63]는 모델 크기가 68B에 도달했을 때 보이지 않는 과제에서 튜닝하지 않은 모델보다 훨씬 뛰어난 성능을 보이기 시작했지만, 8B 이하의 모델 크기에서는 그렇지 않았습니다. 최근 연구[64]에 따르면 PaLM이 네 가지 평가 벤치마크(예: MMLU, BBH, TyDiQA, MGSM)에서 다양한 작업을 잘 수행하려면 최소한 62B의 모델 크기가 필요하지만, 일부 특정 작업(예: MMLU)의 경우 훨씬 작은 크기로도 충분할 수 있다고 합니다.
    • 단계별 추론(Step-by-step reasoning).
      작은 언어 모델의 경우 일반적으로 수학 단어 문제와 같이 여러 추론 단계가 필요한 복잡한 작업을 해결하기가 어렵습니다. 반면, 생각의 사슬(CoT) 프롬프트 전략[33]을 사용하면 LLM은 최종 답을 도출하기 위한 중간 추론 단계가 포함된 프롬프트 메커니즘을 활용하여 이러한 과제를 해결할 수 있습니다. 이러한 능력은 코드에 대한 훈련을 통해 잠재적으로 얻을 수 있는 것으로 추측됩니다 [33, 47]. 실증 연구[33]에 따르면 CoT 프롬프트는 모델 크기가 60B보다 큰 PaLM 및 LaMDA 변형에 적용될 때 산술 추론 벤치마크에서 성능 향상을 가져올 수 있으며, 모델 크기가 100B를 초과할 때 표준 프롬프트에 비해 이점이 더욱 분명해집니다. 또한, CoT 프롬프팅을 통한 성능 향상은 작업마다 다른 것으로 나타났습니다(예: PaLM의 경우 GSM8K > MAWPS > SWAMP) [33].

    LLM을 위한 핵심 기술(Key Techniques for LLMs)

    LLM이 일반적이고 유능한 학습자라는 현재의 상태로 진화하기까지는 오랜 시간이 걸렸습니다. 개발 과정에서 여러 가지 중요한 기법들이 제안되었고, 이는 LLM의 역량을 크게 향상시켰습니다. 여기에서는 LLM의 성공으로 이어질 수 있는 몇 가지 중요한 기술을 다음과 같이 간략하게 나열합니다.

    • 스케일링(Scaling).
      이전 부분에서 설명한 바와 같이 Transformer 언어 모델에는 모델/데이터 크기가 커지고 학습 연산이 많아지면 일반적으로 모델 용량이 향상되는 확장이라는 분명한 효과가 존재합니다[30, 34]. 대표적인 두 가지 모델인 GPT-3와 PaLM은 모델 크기를 각각 175B와 540B로 늘림으로써 확장 한계를 탐색했습니다. 일반적으로 컴퓨팅 예산은 제한되어 있기 때문에 컴퓨팅 리소스를 보다 효율적으로 할당하기 위해 스케일링 법칙을 추가로 사용할 수 있습니다. 예를 들어, Chinchilla(더 많은 트레이닝 토큰을 사용)는 데이터 규모를 증가시킴으로써 대응 모델인 Gophor(더 큰 모델 크기)보다 성능이 우수합니다. 동일한 컴퓨팅 예산으로 데이터 규모를 늘릴 수 있습니다[34]. 또한 사전 학습 데이터의 품질이 모델 용량에 중요한 역할을 하므로 데이터 확장은 신중한 정리 과정을 거쳐야 합니다.
    • 훈련(Training).
      모델 크기가 방대하기 때문에 유능한 LLM을 성공적으로 훈련시키는 것은 매우 어렵습니다. 다양한 병렬 전략이 공동으로 활용되는 경우가 많은 LLM의 네트워크 파라미터를 학습하려면 분산 학습 알고리즘이 필요합니다. 분산 학습을 지원하기 위해 DeepSpeed [65] 및 Megatron-LM [66-68]과 같은 병렬 알고리즘의 구현과 배포를 용이하게 하는 여러 최적화 프레임워크가 출시되었습니다. 또한 훈련 손실 급증을 극복하기 위한 재시작[56] 및 혼합 정밀도 훈련[69]과 같은 최적화 트릭은 훈련 안정성과 모델 성능에도 중요합니다. 최근에는 GPT-4[46]에서 훨씬 작은 모델로 대규모 모델의 성능을 안정적으로 예측하는 특수 인프라 및 최적화 방법을 개발할 것을 제안하고 있습니다.
    • 능력 도출(Ability eliciting).
      대규모 말뭉치에 대한 사전 학습을 마친 LLM은 범용 작업 해결사로서의 잠재적 능력을 부여받습니다. 이러한 능력은 LLM이 특정 작업을 수행할 때 명시적으로 드러나지 않을 수도 있습니다. 기술적 접근 방식으로는 이러한 능력을 이끌어내기 위해 적절한 작업 지침이나 특정 상황별 학습 전략을 설계하는 것이 유용합니다. 예를 들어, 연쇄적 사고 프롬프트는 중간 추론 단계를 포함함으로써 복잡한 추론 과제를 해결하는 데 유용한 것으로 나타났습니다. 또한 자연어로 표현된 과제 설명으로 LLM에 대한 인스트럭션 튜닝을 수행하여 보이지 않는 과제에 대한 LLM의 일반화 가능성을 향상시킬 수 있습니다. 이러한 유도 기법은 주로 작은 언어 모델에서는 동일한 효과를 보이지 않을 수 있는 LLM의 출현 능력에 해당합니다.
    • 정렬 튜닝(Alignment tuning).
      LLM은 사전 학습 코퍼스의 데이터 특성(고품질 및 저품질 데이터 모두 포함)을 포착하도록 학습되기 때문에 사람에게 유해하거나 편향적이거나 심지어 유해한 콘텐츠를 생성할 가능성이 있습니다. 따라서 도움이 되고, 정직하며, 무해한 등 인간의 가치에 맞게 LLM을 조정할 필요가 있습니다. 이를 위해 InstructGPT[61]는 인간의 피드백이 포함된 강화 학습 기법을 활용하여 LLM이 예상되는 지침을 따를 수 있도록 효과적인 튜닝 접근 방식을 설계합니다[61, 70]. 정교하게 설계된 라벨링 전략으로 훈련 루프에 사람을 통합합니다. 실제로 ChatGPT는 모욕적인 질문에 대한 답변을 거부하는 등 고품질의 무해한 응답을 생성하는 데 있어 강력한 조정 능력을 보여주는 InstructGPT와 유사한 기술을 기반으로 개발되었습니다.
    • 도구 조작(Tools manipulation).
      기본적으로 LLM은 방대한 일반 텍스트 말뭉치에 대한 텍스트 생성자로 훈련되었기 때문에 텍스트 형태로 가장 잘 표현되지 않는 작업(예: 숫자 계산)에서는 성능이 떨어집니다. 또한 사전 학습 데이터에 한정되어 있어 최신 정보를 캡처할 수 없는 등의 한계도 있습니다. 이러한 문제를 해결하기 위해 최근 제안된 기법은 외부 도구를 사용하여 LLM의 결함을 보완하는 것입니다[71, 72]. 예를 들어, LLM은 정확한 계산을 위해 계산기를 활용하고[71], 알려지지 않은 정보를 검색하기 위해 검색 엔진을 사용할 수 있습니다[72]. 최근에는 ChatGPT가 외부 플러그인(기존 또는 새로 생성된 앱)을 사용하는 메커니즘을 활성화했는데, 이는 LLM의 '눈과 귀'에 비유할 수 있습니다. 이러한 메커니즘은 LLM의 용량 범위를 광범위하게 확장할 수 있습니다.

    이 외에도 하드웨어 업그레이드와 같은 다른 많은 요인들도 LLM의 성공에 기여합니다. 현재로서는 LLM 개발을 위한 주요 기술적 접근 방식과 주요 연구 결과에 대한 논의로 한정합니다.

    그림 2. 기존 대규모 언어 모델(LLM)의 타임라인
    Fig. 2 A timeline of existing large language models (having a size larger than 10B) in recent years.

    2.2 GPT 시리즈 모델의 기술적 진화

    Fig. 3 A brief illustration for the technical evolution of GPT-series models
    Fig. 3 A brief illustration for the technical evolution of GPT-series models

    ChatGPT는 인간과의 뛰어난 대화 능력으로 인해 출시 이후 AI 커뮤니티의 열기를 불러일으켰습니다. ChatGPT는 특별히 최적화된 대화 능력을 갖춘 강력한 GPT 모델을 기반으로 개발되었습니다. ChatGPT와 GPT 모델에 대한 관심이 계속 높아짐에 따라, 지난 몇 년 동안의 개발 과정을 간략히 요약하기 위해 GPT 시리즈 모델의 기술적 진화에 대한 특별 토론을 추가합니다. GPT 모델의 기본 원리는 언어 모델링을 통해 세계 지식을 디코더 전용 Transformer 모델에 압축하여 세계 지식의 의미를 복구(또는 암기)하고 범용 작업 해결사 역할을 할 수 있도록 하는 것입니다. 성공의 두 가지 핵심 포인트는 (1) 다음 단어를 정확하게 예측할 수 있는 디코더 전용 트랜스포머 언어 모델 학습과 (2) 언어 모델의 규모를 확장하는 것입니다. LLM에 대한 OpenAI의 연구는 크게 다음 단계로 나눌 수 있습니다.

    초기 탐색(Early Explorations)

    일리야 수츠케버(OpenAI의 공동 창립자이자 수석 과학자)와의 인터뷰에 따르면, 언어 모델로 지능형 시스템에 접근하는 아이디어는 이미 OpenAI 초창기에 탐색되었으며, 순환 신경망(RNN)을 통해 시도되었습니다[104]. 트랜스포머의 출현과 함께 OpenAI는 GPT-1 [105] 및 GPT-2 [26]라는 두 가지 초기 GPT 모델을 개발했으며, 이는 이후 더 강력한 모델, 즉 GPT-3 및 GPT-4의 기반이라고 할 수 있습니다.

    • GPT-1.
      2017년에 구글은 트랜스포머 모델[22]을 도입했고, OpenAI 팀은 언어 모델링 작업을 이 새로운 신경망 아키텍처에 빠르게 적용했습니다. 2018년에 첫 번째 GPT 모델, 즉 GPT-1[105]을 출시하고 모델 이름으로 생성적 사전 학습(Generative Pre-Training)의 약자인 GPT라는 약어를 만들었습니다. GPT-1은 생성형 디코더 전용 트랜스포머 아키텍처를 기반으로 개발되었으며, 비감독 사전 학습과 감독 미세 조정의 하이브리드 접근 방식을 채택했습니다. GPT-1은 GPT 시리즈 모델의 핵심 아키텍처를 설정하고 자연어 텍스트 모델링, 즉 다음 단어 예측을 위한 기본 원칙을 확립했습니다.
    • GPT-2.
      GPT-1과 유사한 아키텍처를 따르는 GPT-2[26]는 매개변수 규모를 1.5B로 늘렸으며, 대규모 웹 페이지 데이터 세트인 WebText로 훈련했습니다. GPT-2의 논문에서 주장한 바와 같이, 레이블이 지정된 데이터를 사용하여 명시적인 미세 조정 없이 비지도 언어 모델링을 통해 작업을 수행하려고 했습니다. 이 접근 방식에 동기를 부여하기 위해 그들은 다중 태스크 해결을 위한 확률적 형태, 즉 p(출력|입력, 태스크)(유사한 접근 방식이 [106]에서 채택됨)를 도입하여 입력 및 태스크 정보에 따라 조건부 출력을 예측했습니다. 이러한 조건부 확률을 모델링하기 위해 언어 텍스트를 입력, 출력 및 작업 정보의 형식을 통일하는 통합 방법으로 자연스럽게 사용할 수 있습니다. 이러한 방식으로 과제를 푸는 과정을 풀이 텍스트를 생성하기 위한 단어 예측 문제로 변환할 수 있습니다. 또한, 그들은 이 아이디어에 대한 보다 공식적인 주장을 도입했습니다: "(작업별) 감독된 목표는 비감독 (언어 모델링) 목표와 동일하지만 시퀀스의 하위 집합에서만 평가되므로, 비감독 목표의 전역 최소값은 (다양한 작업에 대한) 감독된 목표의 전역 최소값이기도 하다". [26]12. 이 주장에 대한 기본적인 이해는 각 (NLP) 작업을 세계 텍스트의 하위 집합에 기반한 단어 예측 문제로 간주 할 수 있다는 것입니다. 따라서 비지도 언어 모델링은 세계 텍스트를 복구하는 데 충분한 능력을 갖도록 훈련되면 다양한 작업을 해결할 수 있습니다. GPT-2 논문의 이러한 초기 논의는 일리아 수츠케버와 젠슨 황의 인터뷰에서도 그대로 반영되었습니다. "신경망이 학습하는 것은 텍스트를 생성한 프로세스의 일부 표현입니다. 이 텍스트는 실제로 세상을 투영한 것입니다... 다음 단어를 더 정확하게 예측할수록 충실도가 높아지고 이 과정에서 더 많은 해상도를 얻을 수 있습니다..."

    용량 도약(Capacity Leap)

    GPT-2는 '비지도 멀티태스크 학습자'를 위한 것이지만, 전반적으로 지도 미세 조정 최신 방식에 비해 성능이 떨어집니다. 모델 크기가 상대적으로 작기 때문에 다운스트림 작업, 특히 대화 작업에서 광범위하게 미세 조정되었습니다 [107, 108]. GPT-2를 기반으로 하는 GPT-3는 (거의 동일한) 생성적 사전 훈련 아키텍처의 확장을 통해 핵심적인 용량 도약을 보여줍니다.

    • GPT-3.
      2020년에는 모델 파라미터를 175B로 확장한 GPT-3[55]가 출시되었습니다. GPT-3의 논문에서는 몇 샷 또는 제로 샷 방식으로 LLM을 활용하는 상황 내 학습(ICL)14의 개념을 공식적으로 소개했습니다. ICL은 자연어 텍스트의 형태로 작업을 이해하도록 LLM을 가르치거나 지시할 수 있습니다. 사전 학습은 컨텍스트에 따라 다음 텍스트 시퀀스를 예측하고, ICL은 작업 설명과 데모가 주어지면 텍스트 시퀀스로도 형식화할 수 있는 올바른 작업 솔루션을 예측하는 등 사전 학습과 LLM의 활용은 동일한 언어 모델링 패러다임으로 수렴됩니다. GPT-3는 다양한 자연어 처리 작업뿐만 아니라 추론이나 도메인 적응 능력이 필요한 특수 설계된 여러 작업에서도 매우 뛰어난 성능을 보여줍니다. GPT-3의 논문에서는 LLM의 새로운 능력에 대해 명시적으로 논의하지는 않았지만, 기본 스케일링 법칙[30]을 초월할 수 있는 큰 성능 비약을 관찰할 수 있습니다(예: 더 큰 모델은 훨씬 더 강력한 ICL 능력을 가짐)(GPT-3의 논문 [55]의 원본 그림 1.2에 설명되어 있음). 전반적으로 GPT-3는 PLM에서 LLM으로 진화하는 여정에서 주목할 만한 랜드마크로 볼 수 있습니다. 신경망을 상당한 규모로 확장하면 모델 용량이 크게 증가할 수 있다는 것이 경험적으로 입증되었습니다.

    용량 향상(Capacity Enhancement)

    강력한 성능으로 인해 GPT3는 OpenAI를 위한 더욱 뛰어난 성능의 LLM을 개발하기 위한 기본 모델이 되었습니다. 전반적으로 OpenAI는 코드 데이터에 대한 학습과 인간 선호도와의 조율이라는 두 가지 주요 접근 방식을 통해 GPT3 모델을 더욱 개선하기 위해 노력해 왔으며, 그 자세한 내용은 다음과 같습니다.

    • 코드 데이터에 대한 훈련(Training on code data).
      일반 텍스트로 사전 학습된 기존 GPT-3 모델의 가장 큰 한계는 코드를 완성하고 수학 문제를 푸는 등 복잡한 작업에 대한 추론 능력이 부족하다는 점입니다. 이러한 능력을 향상시키기 위해 2021년 7월 OpenAI는 대규모 GitHub 코드 코퍼스를 기반으로 미세 조정된 GPT 모델인 Codex[89]를 도입했습니다. 코덱스는 매우 어려운 프로그래밍 문제를 해결할 수 있으며 수학 문제 풀이에서도 상당한 성능 향상을 가져올 수 있음을 보여주었습니다[109]. 또한 2022년 1월에는 텍스트 및 코드 임베딩 훈련에 대한 대조적인 접근 방식[110]이 보고되었는데, 이는 일련의 관련 작업(예: 선형 프로브 분류, 텍스트 검색 및 코드 검색)을 개선하는 것으로 나타났습니다. 실제로 GPT-3.5 모델은 코드 기반 GPT 모델(즉, code-davinci-002)을 기반으로 개발되었으며, 이는 코드 데이터에 대한 훈련이 GPT 모델의 모델 능력, 특히 추론 능력을 향상시키는 데 매우 유용하다는 것을 나타냅니다. 또한 코드 데이터에 대한 훈련이 LLM의 연쇄적 사고 유도 능력을 크게 향상시킬 수 있다는 추측도 있지만[47], 아직은 더 철저한 검증을 통해 더 연구할 가치가 있습니다. 
    • 인간 정렬(Human alignment).
      휴먼 얼라인먼트와 관련된 연구는 2017년(또는 그 이전)으로 거슬러 올라갈 수 있습니다. OpenAI 블로그에 "인간 선호도로부터 학습하기"라는 제목의 블로그 기사가 게시되어 강화 학습(RL)을 적용하여 사람이 주석으로 달았던 선호도 비교를 통해 학습하는 작업을 설명했습니다[70](그림 9의 InstructGPT 얼라인먼트 알고리즘의 보상 훈련 단계와 유사). 이 RL 논문[70]이 발표된 직후, 2017년 7월에는 인간의 선호도를 학습하기 위한 기본 RL 알고리즘이 된 근거리 정책 최적화(PPO)[111] 논문이 발표되었습니다[61]. 2020년 1월 말, GPT-2는 앞서 언급한 RL 알고리즘[70, 111]을 사용하여 미세 조정되었으며, 이는 인간의 선호도를 활용하여 NLP 작업에서 GPT-2의 역량을 향상시켰습니다. 같은 해에 또 다른 연구[112]에서는 비슷한 방식으로 인간의 선호도를 최적화하기 위한 요약 모델을 훈련했습니다.이러한 선행 연구를 바탕으로 2022년 1월에는 인간 정렬을 위한 GPT-3 모델을 개선하기 위해 인간 피드백으로부터의 3단계 강화 학습(RLHF) 알고리즘을 공식적으로 확립한 InstructGPT[61]가 제안되었습니다. OpenAI의 논문과 문서에서 "인스트럭션 튜닝"이라는 표현은 거의 사용되지 않았으며, 이는 인간의 시연에 대한 감독 미세 조정(즉, RLHF 알고리즘의 첫 번째 단계[61])으로 대체된 것으로 보입니다. RLHF 알고리즘은 명령 추종 능력을 향상시킬 뿐만 아니라, 실제로 LLM을 안전하게 배포하는 데 핵심적인 LLM의 유해성 또는 독성 콘텐츠 생성 문제를 완화하는 데 특히 유용합니다. OpenAI는 기술 문서 [113]에서 정렬 연구에 대한 접근 방식을 설명하며, 세 가지 유망한 방향을 요약했습니다: "인간의 피드백을 사용하고, 인간의 평가를 지원하며, 정렬 연구를 수행하도록 AI 시스템을 훈련시키는 것". 

    이러한 개선 기술은 더 강력한 성능을 갖춘 개선된 GPT-3 모델로 이어지며, OpenAI에서는 이를 GPT-3.5 모델이라고 부릅니다(섹션 3.1의 OpenAI API에 대한 논의 참조).

    언어 모델의 이정표(The Milestones of Language Models)

    모든 탐색 노력을 바탕으로 OpenAI가 달성한 두 가지 주요 이정표는 ChatGPT [114]와 GPT-4 [46]로, 기존 AI 시스템의 용량 기준을 크게 높인 것입니다.

    • ChatGPT.
      2022년 11월, OpenAI는 GPT 모델(GPT-3.5 및 GPT-4)을 기반으로 한 대화 모델 ChatGPT를 출시했습니다. 공식 블로그 글에서 소개한 것처럼[114], ChatGPT는 InstructGPT(원래 글에서는 "InstructGPT의 형제 모델"이라고 함)와 유사한 방식으로 학습되었지만 대화에 특별히 최적화되어 있습니다. 연구진은 데이터 수집 설정에서 ChatGPT와 InstructGPT의 훈련에 차이가 있다고 보고했는데, 사람이 생성한 대화(사용자와 AI의 역할을 모두 수행)를 대화 형식의 InstructGPT 데이터 세트와 결합하여 ChatGPT를 훈련했습니다. ChatGPT는 방대한 지식 저장소, 수학적 문제 추론 능력, 다중 턴 대화에서 정확한 문맥 추적, 안전한 사용을 위한 인간 가치와 잘 일치하는 등 인간과의 의사소통에서 뛰어난 역량을 보여주었습니다. 이후 ChatGPT에서는 플러그인 메커니즘을 지원하여 기존 도구나 앱과 함께 ChatGPT의 기능을 더욱 확장할 수 있습니다. 지금까지 인공지능 역사상 가장 강력한 챗봇이 될 것으로 보입니다. ChatGPT의 출시는 인간과 유사한 AI 시스템의 탐구에 빛을 비추는 앞으로의 AI 연구에 큰 영향을 미칠 것입니다.
    • GPT-4.
      또 다른 주목할 만한 발전으로 2023년 3월에 텍스트 입력을 멀티모달 신호로 확장한 GPT-4[46]가 출시되었습니다. 전반적으로 GPT-4는 GPT-3.5보다 복잡한 작업을 해결하는 데 더 강력한 능력을 가지고 있으며 많은 평가 작업에서 큰 성능 향상을 보여줍니다. 최근 연구[41]에서는 다양한 고난이도 과제에 걸쳐 사람이 생성한 문제로 정성적 테스트를 수행하여 GPT-4의 역량을 조사한 결과, GPT-4가 ChatGPT와 같은 이전 GPT 모델보다 더 우수한 성능을 달성할 수 있음을 보여주었습니다. 또한, 6개월에 걸친 반복적인 학습을 통해 악의적이거나 도발적인 쿼리에 더욱 안전하게 대응할 수 있습니다(RLHF 학습에서 추가 안전 보상 신호 포함). 기술 보고서에서 OpenAI는 GPT-4를 안전하게 개발하는 방법을 강조하고 환각, 프라이버시, 과잉 의존 등 LLM에서 발생할 수 있는 문제를 완화하기 위해 여러 가지 개입 전략을 적용했습니다. 예를 들어, 유해성 또는 독성 콘텐츠 생성을 줄이기 위해 red teaming[115]이라는 메커니즘을 도입했습니다. 또 다른 중요한 측면으로, GPT4는 최적화 방법이 개선된 잘 구축된 딥러닝 인프라에서 개발되었습니다. 예측 가능한 스케일링이라는 새로운 메커니즘을 도입하여 모델 훈련 중에 적은 컴퓨팅으로 최종 성능을 정확하게 예측할 수 있습니다. 

    이러한 비약적인 발전에도 불구하고, 사실 오류로 인한 환각을 생성하거나 특정 상황에서 잠재적으로 위험한 반응을 보이는 등의 한계가 여전히 존재합니다[46]. LLM의 더 많은 한계나 문제는 섹션 7에서 논의할 것입니다. 이는 더 유능하고 안전한 LLM을 개발하기 위한 오랜 연구 과제를 제기합니다. 엔지니어링 관점에서 OpenAI는 모델 사용의 잠재적 위험을 효과적으로 줄이기 위해 5단계 개발 및 배포 수명 주기에 따라 모델과 제품을 개발하기 위해 반복 배포 전략[116]을 채택했습니다. 다음에서는 모델과 제품이 어떻게 개발되었는지 구체적으로 이해하기 위해 기술적인 세부 사항을 자세히 살펴보겠습니다.

    3. LLM의 리소스

    까다로운 기술적 문제와 막대한 계산 리소스 수요를 고려할 때 LLM을 개발하거나 재현하는 것은 결코 쉬운 일이 아닙니다. 실현 가능한 방법은 기존 LLM에서 경험을 배우고 공개적으로 사용 가능한 리소스를 점진적 개발이나 실험 연구에 재사용하는 것입니다. 이 섹션에서는 모델 체크포인트(또는 API), 코퍼라, 라이브러리 등 LLM 개발에 사용할 수 있는 공개 리소스를 간략하게 요약합니다.

    3.1 공개적으로 사용 가능한 모델 체크포인트 또는 API 

    모델 사전 학습에 드는 막대한 비용을 고려할 때, 잘 훈련된 모델 체크포인트는 연구 커뮤니티의 LLM 연구 및 개발에 매우 중요합니다.  또한 추론의 경우 모델을 로컬에서 실행하지 않고도 공개 API를 직접 사용하여 작업을 수행할 수 있습니다. 다음은 공개적으로 사용 가능한 모델 체크포인트와 API를 소개합니다.

    수백억 개의 매개변수가 있는 모델(Models with Tens of Billions of Parameters)

    이 카테고리에 속하는 대부분의 모델은 LLaMA [57](가장 큰 버전에 65억 개의 파라미터 포함), NLLB [82](가장 큰 버전에 545억 개의 파라미터 포함), Falcon [117](가장 큰 버전에 40억 개의 파라미터 포함)을 제외하고는 파라미터 규모가 10억에서 200억 사이입니다. 이 범위에 속하는 다른 모델로는 mT5 [74], PanGu-α [75], T0 [28], GPTNeoX-20B [78], CodeGen [77], UL2 [80], Flan-T5 [64], mT0 [84] 등이 있습니다. 이 중 Flan-T5(11B 버전)는 작업 수 증가, 모델 크기 확장, 연쇄 프롬프트 데이터를 통한 미세 조정 등 세 가지 측면[64]에서 명령어 튜닝을 탐색하기 때문에 명령어 튜닝 연구에 가장 적합한 모델이라고 할 수 있습니다. 또한 코드 생성을 위해 설계된 자동 회귀 언어 모델인 CodeGen(11B 버전)은 코드 생성 기능을 탐색하는 데 좋은 후보로 고려할 수 있습니다. 또한 115개의 전문가 생성 문제로 구성된 멀티턴 프로그램 합성을 위한 새로운 벤치마크 MTPB[77]를 도입했습니다. 이러한 문제를 해결하기 위해서는 LLM이 충분한 프로그래밍 지식(예: 수학, 배열 연산, 알고리즘)을 습득해야 합니다. 다국어 작업의 경우, 다국어 프롬프트가 있는 다국어 작업에 대해 미세 조정된 mT0(13B 버전)이 좋은 후보 모델이 될 수 있습니다. 또한 딥러닝 프레임워크인 MindSpore [118]를 기반으로 개발된 PanGu-α [75]는 제로 샷 또는 소수 샷 설정에서 중국어 다운스트림 작업에서 우수한 성능을 보여줍니다. PanGu-α [75]는 여러 버전의 모델(최대 200억 개의 파라미터)을 보유하고 있으며, 가장 큰 공개 버전은 13억 개의 파라미터를 보유하고 있습니다. 널리 사용되는 LLM으로서 다른 모델보다 약 5배 많은 파라미터를 포함하는 LLaMA(65B 버전)[57]는 명령어 추종과 관련된 작업에서 우수한 성능을 보였습니다. 개방성과 효과성으로 인해 LLaMA는 연구 커뮤니티에서 상당한 관심을 끌었으며, 새로운 모델이나 도구를 구현하기 위해 다양한 모델 버전을 미세 조정하거나 지속적으로 사전 훈련하는 데 많은 노력[119-122]을 기울여 왔습니다. 최근에는 또 다른 오픈소스 LLM인 Falcon[117]도 공개 벤치마크에서 매우 우수한 성능을 달성했습니다. 이는 사전 학습 데이터를 준비하기 위한 보다 세심한 데이터 정리 프로세스가 특징입니다(공개적으로 공유되는 데이터 세트 RefinedWeb [123] 사용). 일반적으로 이 정도 규모의 사전 훈련 모델에는 수백 또는 수천 개의 GPU 또는 TPU가 필요합니다. 예를 들어, GPT-NeoX-20B는 12개의 슈퍼마이크로 서버를 사용하며, 각 서버에는 8개의 NVIDIA A100-SXM4-40GB GPU가 장착되어 있고, LLaMA는 원래 출판물에 보고된 대로 2,048개의 A100-80G GPU를 활용합니다. 필요한 계산 리소스를 정확하게 추정하려면 FLOPS(즉, 초당 부동 소수점 연산 수)와 같은 관련 계산 수를 측정하는 메트릭을 사용하는 것이 좋습니다[30].

    수천억 개의 매개변수가 있는 모델(Models with Hundreds of Billions of Parameters)

    이 카테고리에 속하는 모델의 경우 공개적으로 공개된 모델은 소수에 불과합니다. 예를 들어, OPT [81], OPT-IML [85], BLOOM [69], BLOOMZ [84]는 GPT-3(175B 버전)와 거의 동일한 수의 파라미터를 가지고 있으며, GLM [83]과 Galactica [35]는 각각 130B와 120B의 파라미터를 가지고 있습니다. 그 중 OPT(175B 버전)는 인스트럭션 튜닝 버전인 OPT-IML과 함께 연구자들이 대규모로 재현 가능한 연구를 수행할 수 있도록 하는 것을 목표로 하는 개방형 공유에 특별히 동기를 부여했습니다. 다국어 일반화 연구의 경우, 다국어 언어 모델링 작업에 능숙한 BLOOM(176B 버전)과 BLOOMZ(176B 버전)를 기본 모델로 사용할 수 있습니다. 이중 언어 LLM으로서 GLM은 효율성과 용량(예: 양자화, 32K 길이 컨텍스트, 빠른 추론 속도)이 크게 개선된 인기 있는 소형 중국어 채팅 모델 ChatGLM2-6B(ChatGLM-6B의 업데이트 버전)도 제공하고 있습니다. 이 정도 규모의 모델에는 일반적으로 수천 개의 GPU 또는 TPU가 학습에 필요합니다. 예를 들어, OPT(175B 버전)는 992개의 A100-80GB GPU를 사용했고, GLM(130B 버전)은 96개의 NVIDIA DGX-A100(8x40G) GPU 노드로 구성된 클러스터를 사용했습니다.

    LLaMA 모델 제품군(LLaMA Model Family)

    메타 AI는 2023년 2월에 네 가지 크기(7B, 13B, 30B, 65B)로 구성된 LLaMA 모델 컬렉션[57]을 출시했습니다. 출시 이후 LLaMA는 연구계와 산업계 모두에서 큰 관심을 끌었습니다. LLaMA 모델은 다양한 오픈 벤치마크에서 매우 우수한 성능을 달성하여 지금까지 가장 인기 있는 오픈 언어 모델이 되었습니다. 많은 연구자들이 명령어 튜닝 또는 지속적인 사전 학습을 통해 LLaMA 모델을 확장했습니다. 특히, 명령어 튜닝 LLaMA는 상대적으로 낮은 계산 비용으로 인해 맞춤형 또는 전문화된 모델을 개발하기 위한 주요 접근 방식이 되었습니다. 비영어권 언어에 LLaMA 모델을 효과적으로 적용하려면 원래 어휘(주로 영어 말뭉치에서 학습)를 확장하거나 대상 언어의 명령어 또는 데이터로 미세 조정해야 하는 경우가 많습니다. 이러한 확장 모델 중 스탠포드 알파카[124]는 LLaMA(7B)를 기반으로 미세 조정된 최초의 개방형 인스트럭트 팔로잉 모델입니다. 이 모델은 텍스트 다빈치-003을 사용하여 셀프 인스트럭트[125]를 통해 생성된 52K개의 명령어 팔로잉 데모로 학습됩니다. Alpaca-52K로 명명된 명령 데이터와 훈련 코드는 후속 작업에서 광범위하게 채택되어 AlpacaLoRA [126](LoRA [127]를 사용하여 스탠포드 알파카를 재현한 것), Koala [128], BELLE [129] 등의 작업에 사용되었습니다. 또한, ShareGPT에서 수집된 사용자 공유 대화를 기반으로 학습된 또 다른 인기 있는 LLaMA 변형인 Vicuna[120]도 있습니다. LLaMA 모델 제품군의 뛰어난 성능과 가용성으로 인해 많은 멀티모달 모델이 이를 기본 언어 모델로 통합하여 강력한 언어 이해 및 생성 능력을 달성합니다. 다른 변종에 비해 Vicuna는 멀티모달 언어 모델에서 더 선호되며, 이로 인해 LLaVA [130], MiniGPT4 [131], InstructBLIP [132], PandaGPT [133] 등 다양한 인기 모델이 등장하게 되었습니다. LLaMA의 출시는 LLM의 연구 발전을 크게 진전시켰습니다. LLaMA에 대해 수행된 연구 작업을 요약하기 위해 그림 4에 간략한 진화 그래프를 제시합니다.

    그림 4. LLaMA에 대해 수행된 연구 작업
    그림 4. LLaMA에 대해 수행된 연구 작업

    LLM의 공개 API(Public API of LLMs)

    API는 일반 사용자가 모델을 로컬에서 실행할 필요 없이 모델 사본을 직접 사용하는 대신 보다 편리하게 LLM을 사용할 수 있는 방법을 제공합니다. LLM을 사용하기 위한 대표적인 인터페이스로는 GPT 시리즈 모델[46, 55, 61, 89]에 대한 API가 학계와 산업계 모두에서 널리 사용되고 있습니다. OpenAI는 GPT-3 시리즈 모델에 ada, babbage, curie, davinci(GPT-3 시리즈 중 가장 강력한 버전), text-ada-001, text-babbage-001, text-curie-001 등 7가지 주요 인터페이스를 제공하고 있습니다. 이 중 처음 네 가지 인터페이스는 OpenAI의 호스트 서버에서 더욱 세밀하게 조정할 수 있습니다. 특히, babbage, curie, davinci는 각각 GPT-3 (1B), GPT-3 (6.7B), GPT-3 (175B) 모델에 해당합니다 [55]. 또한 code-cushman-001(Codex(12B)[89]의 강력한 다국어 버전)과 code-davinci-002라는 코드[89]와 관련된 두 가지 API도 있습니다. 또한 GPT-3.5 시리즈에는 하나의 기본 모델 code-davinci-002와 세 가지 향상된 버전, 즉 text-davinci-002, text-davinci-003 및 gpt-3.5-turbo-0301이 포함됩니다. gpt-3.5-turbo-0301은 ChatGPT를 호출하는 인터페이스라는 점에 주목할 필요가 있습니다. 최근에 OpenAI는 gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314 등 GPT-4에 대응하는 API도 출시했습니다. 전반적으로 API 인터페이스의 선택은 특정 애플리케이션 시나리오와 응답 요구 사항에 따라 달라집니다. 자세한 사용법은 해당 프로젝트 웹사이트에서 확인할 수 있습니다.

    3.2 일반적으로 사용되는 말뭉치

    이전 PLM과 달리 훨씬 더 많은 수의 파라미터로 구성된 LLM은 광범위한 콘텐츠를 포괄하는 더 많은 양의 학습 데이터를 필요로 합니다. 이러한 필요에 따라 연구용으로 공개된 훈련 데이터 세트에 대한 접근성이 점점 더 높아지고 있습니다. 이 섹션에서는 LLM 학습에 널리 사용되는 몇 가지 코퍼스를 간략하게 요약해 보겠습니다. 콘텐츠 유형에 따라 이러한 코퍼스를 6가지 그룹으로 분류합니다: 도서, CommonCrawl, Reddit 링크, Wikipedia, 코드 및 기타. 

    도서(Books)

    BookCorpus [134]는 이전의 소규모 모델(예: GPT [105] 및 GPT-2 [26])에서 일반적으로 사용되는 데이터 집합으로, 다양한 주제와 장르(예: 소설, 전기)를 다루는 11,000권 이상의 책으로 구성되어 있습니다. 또 다른 대규모 도서 말뭉치로는 소설, 에세이, 시, 드라마, 역사, 과학, 철학 및 기타 유형의 저작물을 포함한 70,000여 권의 문학 도서로 구성된 프로젝트 구텐베르크[135]가 있습니다. 현재 가장 큰 오픈 소스 도서 컬렉션 중 하나이며, MT-NLG [97] 및 LLaMA [57]의 교육에 사용됩니다. GPT-3 [55]에 사용된 Books1 [55] 및 Books2 [55]의 경우 BookCorpus보다 훨씬 크지만 아직까지 공개되지 않았습니다.

    커먼크롤(CommonCrawl)

    CommonCrawl [144]은 페타바이트 규모의 데이터를 포함하는 가장 큰 오픈소스 웹 크롤링 데이터베이스 중 하나로, 기존 LLM의 학습 데이터로 널리 사용되어 왔습니다. 전체 데이터 세트가 매우 방대하기 때문에 기존 연구에서는 주로 특정 기간 내 웹 페이지의 하위 집합을 추출합니다. 하지만 웹 데이터에는 노이즈가 많고 품질이 낮은 정보가 광범위하게 존재하기 때문에 사용하기 전에 데이터 전처리를 수행해야 합니다. CommonCrawl을 기반으로 기존 작업에서 일반적으로 사용되는 필터링된 데이터 세트는 네 가지가 있습니다: C4 [73], CCStories [136], CC-News [27], RealNews [137] 등이 있습니다. 대규모 클린 크롤링 코퍼스(C4)에는 en(806G), en.noclean(6T), realnewslike(36G), 웹 텍스트형(17G), 다국어(38T) 등 5가지 변형이 있습니다. en 버전은 T5 [73], LaMDA [63], Gopher [59], UL2 [80]의 사전 교육에 활용되었습니다. mC4라고도 하는 다국어 C4는 mT5 [74]에서 사용되었습니다. CC-Stories(31G)는 CommonCrawl 데이터의 하위 집합으로 구성되며, 콘텐츠가 스토리와 같은 방식으로 만들어집니다. 현재 CC-Stories의 원본 소스를 사용할 수 없기 때문에, 표 2에 재현 버전인 CC-Stories-R [145]을 포함시켰습니다. 또한 CommonCrawl에서 추출한 두 개의 뉴스 말뭉치, 즉 REALNEWS(120G)와 CC-News(76G)도 일반적으로 사전 학습 데이터로 사용됩니다.

    레딧 링크(Reddit links)

    Reddit은 사용자가 링크와 텍스트 게시물을 제출할 수 있는 소셜 미디어 플랫폼으로, 다른 사람들이 '업보트' 또는 '다운보트'를 통해 투표할 수 있습니다. 업보팅이 많이 된 게시물은 종종 유용한 것으로 간주되며 고품질 데이터 세트를 만드는 데 활용될 수 있습니다. 웹텍스트[26]는 레딧에서 높은 업보팅을 받은 링크로 구성된 잘 알려진 말뭉치이지만 공개적으로 사용 가능하지는 않습니다. 이를 대체할 수 있는 오픈소스 대안으로 OpenWebText[138]라는 것이 있습니다. Reddit에서 추출된 또 다른 말뭉치로는 PushShift.io[139]가 있는데, 이 코퍼스는 생성일 이후 Reddit의 과거 데이터로 구성된 실시간 업데이트 데이터 세트입니다. 푸시시프트는 월별 데이터 덤프뿐만 아니라 사용자가 전체 데이터셋을 검색, 요약 및 예비 조사를 수행할 수 있도록 지원하는 유용한 유틸리티 도구도 제공합니다. 이를 통해 사용자는 Reddit 데이터를 쉽게 수집하고 처리할 수 있습니다. 

    위키백과(Wikipedia)

    위키백과[140]는 다양한 주제에 대한 방대한 양의 고품질 기사가 포함된 온라인 백과사전입니다. 이러한 기사의 대부분은 다양한 언어와 분야를 다루는 설명식 글쓰기 스타일(참고 문헌 포함)로 구성되어 있습니다. 일반적으로 영어만 필터링된 Wikipedia 버전은 대부분의 LLM에서 널리 사용됩니다(예: GPT-3 [55], LaMDA [63], LLaMA [57]). Wikipedia는 여러 언어로 제공되므로 다국어 설정에서 사용할 수 있습니다.

    코드(Code)

    코드 데이터를 수집하기 위해 기존 작업은 주로 인터넷에서 오픈소스 라이선스가 부여된 코드를 크롤링합니다. 두 가지 주요 소스는 오픈 소스 라이선스 하의 공개 코드 리포지토리(예: GitHub)와 코드 관련 질문과 답변 플랫폼(예: StackOverflow)입니다. 구글은 다양한 프로그래밍 언어로 된 오픈소스 라이선스 코드 스니펫을 상당수 포함하는 빅쿼리 데이터셋[141]을 공개하여 대표적인 코드 데이터셋으로 사용하고 있습니다. 코드젠은 다국어 버전의 코드젠(코드젠-멀티)을 학습하기 위해 빅쿼리 데이터셋의 하위 집합인 빅쿼리[77]를 활용하고 있습니다.

    기타(Others)

    Pile[142]는 책, 웹사이트, 코드, 과학 논문, 소셜 미디어 플랫폼 등 다양한 출처의 800GB가 넘는 데이터로 구성된 대규모의 다양한 오픈소스 텍스트 데이터 세트입니다. 22개의 다양한 고품질 하위 집합으로 구성되어 있습니다. Pile 데이터 세트는 GPT-J (6B) [146], CodeGen (16B) [77], Megatron-Turing NLG (530B) [97] 등 다양한 파라미터 규모를 가진 모델에서 널리 사용됩니다. ROOTS [143]는 다양한 소규모 데이터 세트(총 1.61TB의 텍스트)로 구성되어 있으며 59개 언어(자연어 및 프로그래밍 언어 포함)를 다루고 있으며, 이는 BLOOM [69]의 훈련에 사용되어 왔습니다.

    실제로는 일반적으로 하나의 말뭉치 대신 다양한 데이터 소스를 혼합하여 LLM을 사전 훈련해야 합니다(그림 5 참조). 따라서 기존 연구에서는 일반적으로 여러 기성 데이터셋(예: C4, OpenWebText, Pile)을 혼합한 다음 추가 처리를 수행하여 사전 훈련 코퍼스를 얻습니다. 또한 특정 애플리케이션에 적응할 수 있는 LLM을 훈련하려면 관련 소스(예: Wikipedia 및 BigQuery)에서 데이터를 추출하여 사전 훈련 데이터의 해당 정보를 보강하는 것도 중요합니다. 기존 LLM에서 사용되는 데이터 소스를 빠르게 참조할 수 있도록 대표적인 세 가지 LLM의 사전 학습 코퍼스를 소개합니다:

    • GPT-3(175B) [55]는 CommonCrawl [144], WebText2 [55], Books1 [55], Books2 [55], Wikipedia [140]를 포함한 300B 토큰의 혼합 데이터셋으로 훈련되었습니다. 
    • PaLM(540B) [56]은 소셜 미디어 대화, 필터링된 웹페이지, 책, Github, 다국어 위키백과, 뉴스에서 가져온 780억 개의 토큰으로 구성된 사전 학습 데이터 세트를 사용합니다.
    • LLaMA [57]는 CommonCrawl, C4[73], Github, Wikipedia, 서적, ArXiv, StackExchange 등 다양한 소스에서 훈련 데이터를 추출합니다. LLaMA(6B)와 LLaMA(13B)의 훈련 데이터 크기는 1.0T 토큰이며, LLaMA(32B)와 LLaMA(65B)에는 1.4T 토큰이 사용됩니다.

    3.3 라이브러리 리소스

    이 부분에서는 LLM을 개발하는 데 사용할 수 있는 일련의 라이브러리를 간략하게 소개합니다.

    • Transformers [147]는 Hugging Face에서 개발 및 유지 관리하는 Transformer 아키텍처를 사용하여 모델을 구축하기 위한 오픈 소스 Python 라이브러리입니다. 간단하고 사용자 친화적인 API를 갖추고 있어 사전 학습된 다양한 모델을 쉽게 사용하고 커스터마이징할 수 있습니다. 모델과 알고리즘을 정기적으로 업데이트하고 개선하는 대규모의 활발한 사용자 및 개발자 커뮤니티가 있는 강력한 라이브러리입니다.
    • DeepSpeed [65]는 Microsoft에서 개발한 딥러닝 최적화 라이브러리(PyTorch와 호환 가능)로, MTNLG [97] 및 BLOOM [69]과 같은 여러 LLM을 훈련하는 데 사용되었습니다. 메모리 최적화(ZeRO 기법, 그라디언트 체크포인트), 파이프라인 병렬처리 등 분산 학습을 위한 다양한 최적화 기법을 지원합니다.
    • Megatron-LM [66-68]은 대규모 언어 모델 학습을 위해 NVIDIA에서 개발한 딥러닝 라이브러리입니다. 또한 모델 및 데이터 병렬 처리, 혼합 정밀도 훈련, 플래시어텐션 등 분산 훈련을 위한 다양한 최적화 기법을 제공합니다. 이러한 최적화 기법은 훈련 효율과 속도를 크게 향상시켜 GPU 전반에 걸쳐 효율적인 분산 훈련을 가능하게 합니다.
    • JAX [148]는 구글에서 개발한 고성능 머신러닝 알고리즘을 위한 파이썬 라이브러리로, 사용자가 하드웨어 가속(예: GPU 또는 TPU)이 적용된 어레이에서 쉽게 연산을 수행할 수 있도록 지원합니다. 다양한 기기에서 효율적으로 계산할 수 있으며 자동 차별화 및 적시 컴파일과 같은 여러 기능을 지원합니다.
    • Colossal-AI [149]는 대규모 AI 모델 학습을 위해 HPC-AI Tech에서 개발한 딥러닝 라이브러리입니다. 파이토치(PyTorch)를 기반으로 구현되었으며 다양한 병렬 훈련 전략 모음을 지원합니다. 또한 패트릭스타[150]가 제안한 방법으로 이기종 메모리 관리를 최적화할 수도 있습니다. 최근에는 ChatGPT와 유사한 모델인 ColossalChat [122]이 두 가지 버전(7B와 13B)으로 공개되었는데, 이는 LLaMA [57]에 기반한 Colossal-AI를 사용하여 개발되었습니다.
    • BMTrain [151]은 대규모 파라미터를 가진 모델을 분산된 방식으로 훈련하기 위해 OpenBMB에서 개발한 효율적인 라이브러리로 코드 단순성, 낮은 리소스, 고가용성을 강조합니다. BMTrain은 개발자가 이러한 모델을 직접 사용할 수 있는 모델센터에 이미 몇 가지 일반적인 LLM(예: Flan-T5 [64] 및 GLM [83])을 통합했습니다.
    • FastMoE [152]는 MoE(즉, 전문가 혼합) 모델을 위한 전문 트레이닝 라이브러리입니다. 파이토치(PyTorch)를 기반으로 개발되었으며, 설계 시 효율성과 사용자 친화성을 모두 우선시합니다. FastMoE는 트랜스포머 모델을 MoE 모델로 전송하는 프로세스를 간소화하고 훈련 중 데이터 병렬처리와 모델 병렬처리를 모두 지원합니다.

    위의 라이브러리 리소스 외에도 기존 딥 러닝 프레임워크(예: PyTorch [153], TensorFlow [154], MXNet [155], PaddlePaddle [156], MindSpore [118], OneFlow [157])도 대규모 모델 훈련에 일반적으로 사용되는 병렬 알고리즘을 지원합니다.

    4. 사전 교육

    사전 교육은 LLM의 능력의 기초를 확립합니다. 대규모 말뭉치에 대한 사전 훈련을 통해 LLM은 필수적인 언어 이해 및 생성 기술을 습득할 수 있습니다 [55, 56]. 이 과정에서 사전 학습 코퍼스의 규모와 품질은 LLM이 강력한 역량을 갖추기 위해 매우 중요합니다. 또한 LLM을 효과적으로 사전 훈련하려면 모델 아키텍처, 가속 방법, 최적화 기법을 잘 설계해야 합니다. 여기서는 먼저 4.1절에서 데이터 수집 및 처리에 대해 설명하고, 4.2절에서 일반적으로 사용되는 모델 아키텍처를 소개한 다음, 마지막으로 4.3절에서 LLM을 안정적이고 효율적으로 최적화하기 위한 훈련 기법을 제시합니다.

    4.1 데이터 수집

    소규모 언어 모델과 비교할 때, LLM은 모델 사전 학습을 위한 고품질 데이터에 대한 수요가 더 높으며, 모델 성능은 사전 학습 코퍼스와 전처리 방법에 크게 의존합니다. 이 부분에서는 데이터 소스, 전처리 방법, 그리고 사전 학습 데이터가 LLM의 성능에 미치는 영향에 대한 중요한 분석을 포함하여 사전 학습 데이터의 수집 및 처리에 대해 설명합니다.

    4.1.1 데이터 소스

    성능이 우수한 LLM을 개발하기 위해서는 다양한 데이터 소스에서 대량의 자연어 말뭉치를 수집하는 것이 핵심입니다. 기존 LLM은 주로 다양한 공개 텍스트 데이터셋을 혼합하여 사전 학습 코퍼스로 활용합니다. 그림 5는 대표적인 여러 LLM의 사전 학습 데이터 소스 분포를 보여줍니다. 

    사전 학습용 말뭉치의 출처는 크게 일반 데이터와 전문 데이터의 두 가지 유형으로 분류할 수 있습니다. 웹페이지, 책, 대화체 텍스트와 같은 일반 데이터는 규모가 크고 다양하며 접근이 용이하다는 특성으로 인해 대부분의 LLM[55, 56, 81]에서 활용되고 있으며, 이는 LLM의 언어 모델링 및 일반화 능력을 향상시킬 수 있습니다. LLM이 보여주는 인상적인 일반화 능력에 비추어 사전 학습 코퍼스를 다국어 데이터, 과학 데이터, 코드와 같은 보다 전문화된 데이터 집합으로 확장하여 LLM에 특정 작업 해결 능력을 부여하는 연구도 있습니다[35, 56, 77]. 아래에서는 이 두 가지 유형의 사전 학습 데이터 소스와 이들이 LLM에 미치는 영향에 대해 설명합니다. 일반적으로 사용되는 말뭉치에 대한 자세한 소개는 섹션 3.2를 참조하세요. 

    일반 텍스트 데이터

    그림 5에서 볼 수 있듯이 대부분의 LLM은 웹페이지, 책, 대화 텍스트와 같은 범용 사전 학습 데이터를 채택하여 다양한 주제에 대한 풍부한 텍스트 소스를 제공합니다. 다음은 세 가지 중요한 일반 데이터를 간략하게 요약한 것입니다. 

    • 웹페이지.
      인터넷의 확산으로 인해 다양한 유형의 데이터가 생성되었으며, 이를 통해 LLM은 다양한 언어 지식을 습득하고 일반화 능력을 향상시킬 수 있습니다 [26, 73]. 이러한 데이터 자원을 편리하게 사용하기 위해 기존 연구에서는 CommonCrawl [144]과 같이 웹에서 대량의 데이터를 크롤링합니다. 그러나 크롤링된 웹 데이터에는 위키백과와 같은 고품질 텍스트와 스팸 메일과 같은 저품질 텍스트가 모두 포함되는 경향이 있어 데이터 품질 향상을 위한 웹 페이지 필터링 및 가공이 중요합니다. 
    • 대화 텍스트.
      대화 데이터는 인공 지능의 대화 능력을 향상시킬 수 있으며[81], 다양한 질문-답변 작업에서 잠재적으로 성능을 향상시킬 수 있습니다[56]. 연구자들은 공개 대화 말뭉치의 하위 집합(예: PushShift.io Reddit 말뭉치)[139, 158]을 활용하거나 온라인 소셜 미디어에서 대화 데이터를 수집할 수 있습니다. 온라인 대화 데이터에는 여러 참여자 간의 토론이 포함되는 경우가 많기 때문에 효과적인 처리 방법은 대화를 트리 구조로 변환하여 발화를 응답하는 발화와 연결하는 것입니다. 이러한 방식으로 다자간 대화 트리를 여러 개의 하위 대화로 나눌 수 있으며, 이를 사전 학습 코퍼스에서 수집할 수 있습니다. 또한 대화 데이터를 LLM에 과도하게 통합하면 선언적 지시와 직접적인 의문문이 대화의 시작으로 잘못 인식되어 지시 효과의 저하를 초래하는 부작용[81]이 발생할 수 있다는 잠재적 위험도 있습니다.
    • .
      다른 말뭉치에 비해 책은 형식적인 긴 텍스트의 중요한 소스를 제공하며, 이는 LLM이 언어 지식을 학습하고, 장기적인 의존성을 모델링하며, 내러티브와 일관된 텍스트를 생성하는 데 잠재적으로 도움이 될 수 있습니다. 오픈 소스 도서 데이터를 얻기 위해 기존 연구에서는 일반적으로 Pile 데이터 세트에서 사용할 수 있는 Books3 및 Bookcorpus2 데이터 세트를 채택합니다[142]. 

    특수 텍스트 데이터. 

    전문화된 데이터 세트는 다운스트림 작업에서 LLM의 특정 기능을 향상시키는 데 유용합니다. 다음은 세 가지 종류의 전문화된 데이터를 소개합니다. 

    • 다국어 텍스트.
      목표 언어의 텍스트 외에도 다국어 코퍼스를 통합하면 언어 이해 및 생성의 다국어 능력을 향상시킬 수 있습니다. 예를 들어, BLOOM [69]과 PaLM [56]은 사전 학습 코퍼스 내에서 각각 46개 언어와 122개 언어를 포함하는 다국어 데이터를 큐레이션했습니다. 이러한 모델은 번역, 다국어 요약, 다국어 질문 답변과 같은 다국어 작업에서 인상적인 성능을 보여주며, 대상 언어의 말뭉치에 대해 미세 조정된 최첨단 모델과 비슷하거나 더 우수한 성능을 달성합니다.
    • 과학 텍스트.
      인류의 과학 탐구는 과학 출판물의 증가에 따라 더욱 활발해지고 있습니다. LLM의 과학 지식에 대한 이해를 높이기 위해[35, 159], 모델 사전 학습을 위해 과학 코퍼스를 통합하는 것이 유용합니다[35, 159]. 방대한 양의 과학 텍스트를 사전 학습함으로써 LLM은 과학 및 추론 작업에서 인상적인 성능을 달성할 수 있습니다[160]. 과학 말뭉치를 구축하기 위해 기존의 노력은 주로 arXiv 논문, 과학 교과서, 수학 웹페이지 및 기타 관련 과학 리소스를 수집합니다. 수학 기호나 단백질 서열과 같은 과학 분야 데이터의 복잡한 특성으로 인해, 이러한 다양한 형식의 데이터를 언어 모델에서 처리할 수 있는 통합된 형태로 변환하기 위해서는 일반적으로 특정 토큰화 및 전처리 기술이 필요합니다. 
    • 코드.
      프로그램 합성은 연구 커뮤니티에서 널리 연구되어 왔으며[89, 161-164], 특히 코드에 대해 학습된 PLM의 사용[146, 165]에 대한 연구가 활발합니다. 그러나 이러한 PLM(예: GPT-J [146])이 고품질의 정확한 프로그램을 생성하는 것은 여전히 어려운 과제입니다. 최근 연구[89, 164]에 따르면 방대한 코드 코퍼스에 대해 LLM을 훈련하면 합성된 프로그램의 품질을 크게 향상시킬 수 있습니다. 생성된 프로그램은 전문가가 설계한 단위 테스트 사례를 성공적으로 통과하거나[89] 경쟁 프로그래밍 문제를 해결할 수 있습니다[98]. 일반적으로 두 가지 유형의 코드 코퍼스가 사전 학습용 LLM에 일반적으로 사용됩니다. 첫 번째 소스는 스택 익스체인지와 같은 프로그래밍 질문 답변 커뮤니티에서 제공됩니다 [166]. 두 번째 소스는 코드 데이터(주석 및 독스트링 포함)가 수집되어 활용되는 GitHub와 같은 공개 소프트웨어 리포지토리[77, 89, 164]에서 제공됩니다. 자연어 텍스트에 비해 코드는 프로그래밍 언어의 형식으로 되어 있어 장거리 종속성과 정확한 실행 로직에 해당합니다[167]. 최근 연구[47]에 따르면 코드에 대한 훈련이 복잡한 추론 능력(예: 연쇄 사고 능력[33])의 원천이 될 수 있다고 추측하기도 합니다. 또한 추론 작업을 코드로 형식화하면 LLM이 더 정확한 결과를 생성하는 데 도움이 될 수 있다는 사실이 밝혀졌습니다[167].

    4.1.2 데이터 전처리

    대량의 텍스트 데이터를 수집한 후에는 사전 학습 말뭉치를 구성하기 위해 데이터를 전처리하는 것이 필수적이며, 특히 LLM의 용량과 성능에 큰 영향을 미칠 수 있는 노이즈, 중복, 관련성 없는 데이터, 잠재적으로 독성이 있는 데이터[56, 59, 168]를 제거해야 합니다. 이 부분에서는 수집된 데이터의 품질을 개선하기 위한 세부적인 데이터 전처리 전략을 검토합니다[59, 69, 96]. LLM을 위한 사전 학습 데이터를 전처리하는 일반적인 파이프라인은 그림 6에 나와 있습니다.

    품질 필터링

    수집된 말뭉치에서 품질이 낮은 데이터를 제거하기 위해 기존 연구에서는 일반적으로 (1) 분류기 기반과 (2) 휴리스틱 기반의 두 가지 접근 방식을 채택하고 있습니다. 전자의 접근 방식은 고품질 텍스트를 기반으로 선택 분류기를 훈련하고 이를 활용하여 저품질 데이터를 식별하고 필터링합니다. 일반적으로 이러한 방법[55, 56, 96]은 잘 선별된 데이터(예: Wikipedia 페이지)를 양성 인스턴스로, 샘플 후보 데이터를 음성 인스턴스로 사용하여 이진 분류기를 훈련하고 각 데이터 인스턴스의 품질을 측정하는 점수를 예측합니다. 그러나 여러 연구[59, 96]에 따르면 분류기 기반 접근 방식은 방언, 구어, 사회 언어의 고품질 텍스트를 의도치 않게 제거할 수 있으며, 이는 잠재적으로 사전 학습 코퍼스의 편향성을 초래하고 코퍼스 다양성을 감소시킬 수 있다고 합니다. 두 번째 접근 방식으로는 BLOOM [69] 및 Gopher [59]와 같은 여러 연구에서 휴리스틱 기반 접근 방식을 사용하여 잘 설계된 일련의 규칙을 통해 품질이 낮은 텍스트를 제거하는데, 이는 다음과 같이 요약할 수 있습니다.

    • 언어 기반 필터링. 특정 언어의 작업에서 LLM이 주로 사용되는 경우, 다른 언어의 텍스트는 필터링할 수 있습니다. 
    • 메트릭 기반 필터링. 생성된 텍스트에 대한 평가 지표(예: 난해성)를 사용하여 부자연스러운 문장을 감지하고 제거할 수 있습니다.
    • 통계 기반 필터링. 구두점 분포, 기호 대 단어 비율, 문장 길이 등 말뭉치의 통계적 특징을 활용하여 텍스트 품질을 측정하고 품질이 낮은 데이터를 필터링할 수 있습니다.
    • 키워드 기반 필터링. 특정 키워드 세트를 기반으로 HTML 태그, 하이퍼링크, 상용구, 불쾌감을 주는 단어 등 텍스트에서 노이즈가 많거나 쓸모없는 요소를 식별하고 제거할 수 있습니다.

    중복 제거

    기존 연구[169]에 따르면 말뭉치 내 중복 데이터는 언어 모델의 다양성을 감소시켜 학습 과정이 불안정해져 모델 성능에 영향을 미칠 수 있습니다. 따라서 사전 학습 코퍼스의 중복을 제거하는 것이 필요합니다. 특히 중복 제거는 문장 수준, 문서 수준, 데이터 세트 수준의 중복 제거 등 다양한 세부 수준에서 수행될 수 있습니다. 먼저, 반복되는 단어나 구를 포함하는 저품질 문장은 언어 모델링에서 반복 패턴을 유발할 수 있으므로 제거해야 합니다[170]. 문서 수준에서 기존 연구들은 대부분 문서 간 표면 특징의 중첩 비율(예: 단어와 n-그램의 중첩)에 의존하여 유사한 내용을 포함하는 중복 문서를 검출하고 제거합니다[57, 59, 69, 171]. 또한 데이터 세트 오염 문제를 피하기 위해 훈련 세트에서 가능한 중복 텍스트를 제거하여 훈련 세트와 평가 세트 간의 중복을 방지하는 것도 중요합니다[56]. 세 가지 수준의 중복 제거는 LLM의 학습을 개선하는 데 유용하며[56, 172], 실제로는 공동으로 사용해야 한다는 것이 입증되었습니다.

    개인정보 리댁션

    대부분의 사전 학습 텍스트 데이터는 민감한 정보나 개인 정보가 포함된 사용자 생성 콘텐츠를 포함하여 웹 소스에서 얻는데, 이는 개인정보 침해의 위험을 증가시킬 수 있습니다[173]. 따라서 사전 학습 코퍼스에서 개인 식별 정보(PII)를 제거해야 합니다. 한 가지 직접적이고 효과적인 접근 방식은 키워드 스팟팅과 같은 규칙 기반 방법을 사용하여 이름, 주소, 전화번호와 같은 PII를 탐지하고 제거하는 것입니다[143]. 또한 연구자들은 개인 정보 공격에 따른 LLM의 취약성이 사전 학습 코퍼스에 중복된 PII 데이터가 존재하기 때문일 수 있다는 사실을 발견했습니다[174]. 따라서 중복 제거를 통해 개인정보 보호 위험을 어느 정도 줄일 수 있습니다.

    토큰화

    토큰화 역시 데이터 전처리의 중요한 단계입니다. 토큰화는 원시 텍스트를 개별 토큰의 시퀀스로 분할하는 것을 목표로 하며, 이는 이후 LLM의 입력으로 사용됩니다. 전통적인 NLP 연구(예: 조건부 랜덤 필드를 사용한 시퀀스 라벨링[175])에서는 인간의 언어 인지에 더 잘 부합하는 단어 기반 토큰화가 주된 접근 방식입니다. 그러나 단어 기반 토큰화는 일부 언어에서 동일한 입력에 대해 서로 다른 분할 결과를 생성할 수 있고(예: 중국어 단어 분할), 빈도가 낮은 단어가 많이 포함된 방대한 단어 어휘를 생성하며, '어휘 부족' 문제를 겪을 수도 있습니다. 따라서 몇몇 신경망 모델은 단어 표현을 도출하기 위해 최소 단위로 문자를 사용합니다(예: ELMo의 CNN 단어 인코더 [21]). 최근에는 바이트쌍 인코딩 토큰화, 워드피스 토큰화, 유니그램 토큰화 등의 하위 단어 토큰화기가 Transformer 기반 언어 모델에서 널리 사용되고 있습니다. HuggingFace는 실행 예제와 함께 토큰화기에 대한 훌륭한 온라인 NLP 강좌를 운영하고 있으며, 초보자라면 이 강좌를 참고하시기 바랍니다. 다음은 대표적인 토큰화 방법 세 가지에 대해 간략하게 설명합니다.

    • 바이트쌍 인코딩(BPE) 토큰화.
      BPE는 원래 1994년에 일반적인 데이터 압축 알고리즘으로 제안된 후[176], 토큰화를 위해 NLP에 적용되었습니다[177]. 이 알고리즘은 일련의 기본 기호(예: 알파벳과 경계 문자)로 시작하여 말뭉치에서 빈번하게 연속되는 두 개의 토큰 쌍을 새로운 토큰으로 반복적으로 결합합니다(병합이라고 함). 각 병합에 대해 선택 기준은 인접한 두 토큰의 동시 발생 빈도에 따라 결정되며, 가장 빈번한 쌍이 선택됩니다. 병합 프로세스는 미리 정의된 크기에 도달할 때까지 계속됩니다. 또한 바이트 수준의 BPE는 병합을 위한 기본 기호로 바이트를 고려함으로써 다국어 말뭉치(예: ASCII가 아닌 문자가 포함된 텍스트)의 토큰화 품질을 개선하는 데 사용되었습니다. 이 토큰화 접근 방식을 사용하는 대표적인 언어 모델로는 GPT-2, BART, LLaMA 등이 있습니다.
    • 워드피스 토큰화.
      워드피스는 Google 내부의 하위 단어 토큰화 알고리즘입니다. 이 알고리즘은 원래 구글이 음성 검색 시스템을 개발할 때 제안했습니다[178]. 이후 2016년 신경망 기계 번역 시스템에 사용되었고[179], 2018년에는 BERT의 단어 토큰화 알고리즘으로 채택되었습니다[23]. 워드피스는 연속된 토큰을 반복적으로 병합한다는 점에서 BPE와 매우 유사한 아이디어를 가지고 있지만 병합을 위한 선택 기준은 약간 다릅니다. 병합을 수행하기 위해 먼저 언어 모델을 학습하고 이를 사용하여 가능한 모든 쌍에 점수를 매깁니다. 그런 다음 병합할 때마다 학습 데이터의 가능성을 가장 많이 증가시키는 쌍을 선택합니다. 구글은 아직 워드피스 알고리즘의 공식 구현을 공개하지 않았기 때문에 허깅페이스는 온라인 NLP 강좌에서 보다 직관적인 선택 척도를 제공합니다. 훈련 말뭉치를 기반으로 쌍의 공동 발생 횟수를 쌍에 포함된 두 토큰의 발생 횟수의 곱으로 나누어 쌍의 점수를 매깁니다.
    • 유니그램 토큰화.
      유니그램 토큰화[180]는 BPE 및 워드피스와 달리 말뭉치에 대해 충분히 큰 하위 문자열 또는 하위 토큰 집합으로 시작하여 예상 어휘 크기에 도달할 때까지 현재 어휘의 토큰을 반복적으로 제거합니다. 선택 기준으로는 현재 어휘에서 일부 토큰이 제거되었다고 가정하여 말뭉치 학습 가능성의 증가를 계산합니다. 이 단계는 훈련된 유니그램 언어 모델을 기반으로 수행됩니다. 유니그램 언어 모델을 추정하기 위해 각 반복마다 기대 최대화(EM) 알고리즘을 채택합니다, 먼저 이전 언어 모델을 기반으로 현재 최적의 단어 토큰화를 찾은 다음 유니그램의 확률을 다시 추정하여 언어 모델을 업데이트합니다. 이 과정에서 언어 모델이 주어진 단어의 최적 분해 방식을 효율적으로 찾기 위해 동적 프로그래밍 알고리즘(즉, 비터비 알고리즘)이 사용됩니다. 이러한 토큰화 방식을 채택한 대표적인 모델로는 T5와 mBART가 있습니다. 

    기존 토큰화기를 활용하는 것도 편리하지만(예: OPT [81] 및 GPT-3 [55]는 GPT2 [26]의 토큰화기를 활용), 특히 다양한 도메인, 언어 및 형식으로 구성된 말뭉치의 경우 사전 훈련 말뭉치를 위해 특별히 설계된 토큰화기를 사용하는 것이 매우 유용할 수 있습니다[69]. 따라서 최근의 LLM은 바이트 수준의 BPE와 유니그램 토큰화를 포함하는 SentencePiece 라이브러리[181]를 사용하여 사전 훈련 코퍼스를 위해 특별히 맞춤화된 토큰화기를 훈련하는 경우가 많습니다. 한 가지 주의할 점은 NFKC[182]와 같은 BPE의 정규화 기법이 토큰화 성능을 저하시킬 수 있다는 점입니다[34, 59, 69]. 기존 LLM을 확장할 때(즉, 지속적인 사전 학습 또는 명령어 튜닝) 맞춤형 토큰화 기법의 잠재적인 부작용에 대해서도 인지해야 합니다. 예를 들어, LLaMA는 주로 영어 텍스트로 구성된 사전 훈련 말뭉치를 기반으로 BPE 토큰화기를 훈련하는데, 이때 파생된 어휘는 중국어 텍스트를 생성하는 데 추론 지연 시간이 더 오래 걸리는 등 비영어 데이터 처리 능력이 떨어질 수 있습니다.

    4.1.3 사전 학습 데이터가 LLM에 미치는 영향

    소규모 PLM과 달리, 일반적으로 계산 리소스에 대한 막대한 수요로 인해 LLM의 사전 학습을 여러 번 반복하는 것은 불가능합니다. 따라서 LLM을 학습시키기 전에 잘 준비된 사전 학습 코퍼스를 구축하는 것이 특히 중요합니다. 이 부분에서는 사전 훈련 말뭉치의 품질과 분포가 LLM의 성능에 잠재적으로 어떤 영향을 미치는지에 대해 설명합니다.

    소스의 혼합

    앞서 설명한 것처럼 서로 다른 도메인이나 시나리오의 사전 학습 데이터는 서로 다른 언어적 특성이나 의미론적 지식을 가지고 있습니다. 다양한 소스의 텍스트 데이터를 혼합하여 사전 학습함으로써 LLM은 광범위한 지식을 습득할 수 있으며 강력한 일반화 능력을 발휘할 수 있습니다. 따라서 서로 다른 소스를 혼합할 때는 가능한 한 많은 고품질 데이터 소스를 포함하고, 사전 학습 데이터의 분포를 신중하게 설정하는 것이 좋으며, 이는 다운스트림 작업에서 LLM의 성능에도 영향을 미칠 가능성이 높기 때문입니다[59]. Gopher[59]는 혼합 소스가 다운스트림 작업에 미치는 영향을 조사하기 위해 데이터 분포에 대한 제거 실험을 수행합니다. LAMBADA 데이터셋[183]에 대한 실험 결과에 따르면 도서 데이터의 비중을 늘리면 텍스트에서 장기 종속성을 포착하는 모델의 용량이 향상될 수 있으며, C4 데이터셋[73]의 비중을 늘리면 C4 검증 데이터셋[59]의 성능이 향상됩니다. 그러나 부작용으로 특정 도메인에 대한 과도한 데이터에 대한 학습은 다른 도메인에 대한 LLM의 일반화 능력에 영향을 미칠 수 있습니다[35, 59]. 따라서 연구자들은 사전 훈련 코퍼스에서 다른 도메인의 데이터 비율을 신중하게 결정하여 특정 요구 사항을 더 잘 충족하는 LLM을 개발할 것을 제안합니다. 독자들은 그림 5를 참조하여 다양한 LLM의 데이터 소스를 비교할 수 있습니다. 

    사전 학습 데이터의 양

    효과적인 LLM을 사전 학습하기 위해서는 LLM의 데이터 양적 수요를 충족할 수 있는 충분한 양의 고품질 데이터를 수집하는 것이 중요합니다. 기존 연구에 따르면 LLM의 파라미터 규모가 커질수록 모델 학습에 더 많은 데이터가 필요한 것으로 나타났습니다[34, 57]. 모델 성능과 관련하여 모델 크기와 유사한 스케일링 법칙이 데이터 크기에서도 관찰됩니다. 최근 연구에 따르면 기존의 많은 LLM이 불충분한 사전 학습 데이터로 인해 최적이 아닌 학습을 수행한다는 사실이 밝혀졌습니다[34]. 또한 광범위한 실험을 통해 모델 크기와 데이터 크기를 동일한 규모로 늘리면 주어진 컴퓨팅 예산에서 더 효율적인 모델(예: 친칠라 모델)을 얻을 수 있음을 입증했습니다. 최근에는 LLaMA[57]에 따르면 더 많은 데이터와 더 긴 학습을 통해 더 작은 모델도 좋은 성능을 얻을 수 있습니다. 전반적으로 연구자들은 다음과 같은 사항을 고려해야 합니다. 특히 모델 파라미터를 확장할 때 모델을 적절하게 학습시키기 위해 고품질 데이터의 양에 더 많은 주의를 기울여야 합니다.

    사전 학습 데이터의 품질

    기존 연구에 따르면 노이즈, 독성, 중복 데이터 등 품질이 낮은 말뭉치에 대한 사전 학습은 모델의 성능을 저하시킬 수 있습니다[59, 169, 171, 174]. 우수한 성능의 LLM을 개발하기 위해서는 수집된 학습 데이터의 양과 품질을 모두 고려하는 것이 중요합니다. T5 [73], GLaM [96], Gopher [59] 등의 최근 연구에서는 데이터 품질이 다운스트림 작업의 성능에 미치는 영향에 대해 조사했습니다. 필터링된 말뭉치와 필터링되지 않은 말뭉치에 대해 학습된 모델의 성능을 비교한 결과, 정리된 데이터에 대해 LLM을 사전 학습하면 성능이 향상될 수 있다는 동일한 결론에 도달했습니다. 보다 구체적으로, 데이터의 중복은 "이중 하강"(처음에는 성능이 저하되었다가 이후 개선되는 현상을 말함)을 초래하거나[169, 184], 심지어 훈련 프로세스를 압도할 수도 있습니다[169]. 또한 다음과 같은 문제도 있습니다. 중복 데이터는 컨텍스트에서 복사하는 LLM의 능력을 저하시켜 컨텍스트 내 학습을 사용하는 LLM의 일반화 능력에 더 큰 영향을 미칠 수 있습니다[169]. 따라서 [56, 59, 69]에서 제안한 바와 같이, 훈련 과정의 안정성을 높이고 모델 성능에 영향을 미치지 않도록 사전 훈련 코퍼스에 전처리 방법을 신중하게 통합하는 것이 필수적입니다(4.1.2절에 설명된 바와 같이).

    4.2 아키텍처

    이 섹션에서는 LLM의 아키텍처 설계, 즉 주요 아키텍처, 사전 교육 목표 및 세부 구성을 검토합니다. 표 3에는 몇 가지 대표적인 LLM의 모델 카드와 공개 세부 정보가 나와 있습니다.

    4.2.1 메인스트림 아키텍처

    뛰어난 병렬 처리 능력과 용량으로 인해 Transformer 아키텍처[22]는 언어 모델을 수백, 수천억 개의 파라미터로 확장할 수 있어 다양한 LLM 개발의 사실상 근간이 되었습니다. 일반적으로 기존 LLM의 주류 아키텍처는 그림 7과 같이 크게 인코더-디코더, 인과 관계 디코더, 접두사 디코더의 세 가지 유형으로 분류할 수 있습니다.

    인코더-디코더 아키텍처. 

    바닐라 트랜스포머 모델은 인코더-디코더 아키텍처[22]를 기반으로 하며, 인코더와 디코더로 각각 두 개의 트랜스포머 블록 스택으로 구성됩니다. 인코더는 스택형 멀티헤드 셀프 어텐션 레이어를 채택하여 입력 시퀀스를 인코딩하여 잠재적 표현을 생성하고, 디코더는 이러한 표현에 대해 교차 어텐션을 수행하여 목표 시퀀스를 자동 회귀적으로 생성합니다. 인코더-디코더 PLM(예: T5 [73] 및 BART [24])은 다양한 NLP 작업에서 효과를 입증했습니다. 지금까지 인코더-디코더 아키텍처를 기반으로 구축된 LLM은 Flan-T5 [64]와 같이 소수에 불과합니다. 아키텍처 선택에 대한 자세한 논의는 4.2.4절에 남겨두겠습니다.

    인과 관계 디코더 아키텍처. 

    인과 관계 디코더 아키텍처는 단방향 주의 마스크를 통합하여 각 입력 토큰이 과거 토큰과 자신에만 주의할 수 있도록 보장합니다. 입력 토큰과 출력 토큰은 디코더를 통해 동일한 방식으로 처리됩니다. 이 아키텍처의 대표적인 언어 모델로는 인과관계 디코더 아키텍처를 기반으로 개발된 GPT 계열 모델 [26, 55, 105]이 있습니다. 특히 GPT-3 [55]는 이 아키텍처의 효과를 성공적으로 입증했으며, LLM의 놀라운 상황 내 학습 능력도 보여주었습니다. 흥미롭게도 GPT-1 [105]과 GPT2 [26]는 GPT-3만큼 우수한 능력을 보여주지 못하며, 스케일링이 이 모델 아키텍처의 모델 용량을 증가시키는 데 중요한 역할을 하는 것으로 보입니다. 지금까지 인과적 디코더는 OPT [81], BLOOM [69], Gopher [59] 등 기존의 다양한 LLM에서 LLM의 아키텍처로 널리 채택되고 있습니다. 다음에 설명하는 원인 디코더와 접두사 디코더는 모두 디코더 전용 아키텍처에 속합니다. "디코더 전용 아키텍처"를 언급할 때, 특별한 언급이 없는 한 주로 기존 문헌에서 인과적 디코더 아키텍처를 의미합니다.

    접두사 디코더 아키텍처. 

    접두사 디코더 아키텍처(일명 비인과적 디코더[185])는 인과적 디코더의 마스킹 메커니즘을 수정하여 접두사 토큰에 대한 양방향 주의[186]와 생성된 토큰에 대해서만 단방향 주의를 수행할 수 있도록 합니다. 이러한 방식으로 인코더-디코더 아키텍처와 마찬가지로 접두사 디코더는 접두사 시퀀스를 양방향으로 인코딩하고 인코딩과 디코딩 중에 동일한 매개 변수가 공유되는 출력 토큰을 하나씩 자동 회귀적으로 예측할 수 있습니다. 처음부터 사전 학습하는 대신, 인과 디코더를 지속적으로 학습한 후 융합을 가속화하기 위해 접두사 디코더로 변환하는 것이 현실적으로 제안되고 있습니다[29](예: U-PaLM [102]는 PaLM [56]에서 파생된 것). 접두사 디코더를 기반으로 하는 기존의 대표적인 LLM으로는 GLM130B [83], U-PaLM [102] 등이 있습니다.

    세 가지 유형의 아키텍처의 경우, 각 입력에 대한 신경망 가중치의 하위 집합이 드물게 활성화되는 전문가 혼합(MoE) 스케일링을 통해 확장하는 것도 고려할 수 있습니다(예: 스위치 트랜스포머[25] 및 GLaM[96]). 전문가 수 또는 전체 파라미터 크기를 늘리면 상당한 성능 향상이 관찰되는 것으로 나타났습니다[187].

    4.2.2 세부 구성

    트랜스포머 출시 이후[22], 훈련 안정성, 성능 및 계산 효율을 향상시키기 위한 다양한 개선이 제안되었습니다. 이 부분에서는 정규화, 위치 임베딩, 활성화 기능, 주의 및 편향성 등 Transformer의 네 가지 주요 부분에 대한 해당 구성에 대해 설명합니다. 이 설문조사를 보다 쉽게 이해할 수 있도록 이러한 구성에 대한 자세한 공식은 표 4에 제시되어 있습니다.

    정규화 방법. 

    훈련 불안정성은 사전 훈련 중인 LLM에게 어려운 문제입니다. 이 문제를 완화하기 위해 정규화는 신경망의 훈련을 안정화하기 위해 널리 채택된 전략입니다. 바닐라 트랜스포머[22]에서는 LayerNorm[189]이 사용됩니다. 최근에는 LayerNorm을 대체할 수 있는 몇 가지 고급 정규화 기법(예: RMSNorm 및 DeepNorm)이 제안되었습니다. 

    • LayerNorm.
      초기 연구에서는 BatchNorm [198]이 일반적으로 사용되는 정규화 방법입니다. 그러나 가변 길이의 시퀀스 데이터와 소량의 배치 데이터를 처리하기 어렵습니다. 따라서 레이어 단위 정규화를 수행하기 위해 LayerNorm [189]이 도입되었습니다. 구체적으로 레이어별 모든 활성화에 대한 평균과 분산을 계산하여 활성화를 최신화하고 스케일을 재조정합니다. 
    • RMSNorm.
      LayerNorm(LN)의 훈련 속도를 향상시키기 위해 평균과 분산 대신 합산된 활성화의 평균제곱근(RMS)만으로 활성화의 스케일을 재조정하는 RMSNorm[190]이 제안되었습니다. 관련 연구를 통해 Transformer[199]에서 훈련 속도와 성능의 우수성이 입증되었습니다. RMSNorm을 채택한 대표적인 모델로는 Gopher [59], Chinchilla [34] 등이 있습니다.
    • DeepNorm.
      DeepNorm은 Microsoft[191]에서 딥 트랜스포머의 학습을 안정화하기 위해 제안한 것입니다. 딥노름을 잔여 연결로 사용하면 트랜스포머를 최대 1,000층까지 확장할 수 있으며[191], 안정성과 우수한 성능의 이점을 보여줍니다. GLM-130B에 채택되었습니다 [83].

    정규화 위치. 

    정규화 방법 외에도 정규화 위치도 LLM에서 중요한 역할을 합니다. 정규화 위치에는 일반적으로 포스트-LN, 프리-LN, 샌드위치-LN의 세 가지 선택이 있습니다.

    • 포스트-LN.
      포스트-LN은 잔여 블록 사이에 배치되는 바닐라 트랜스포머[22]에 사용됩니다. 그러나 기존 연구에 따르면 포스트-LN을 사용한 트랜스포머의 훈련은 출력 레이어 근처의 큰 기울기로 인해 불안정한 경향이 있습니다 [200]. 따라서 포스트-LN은 다른 전략과 결합하는 경우를 제외하고는 기존 LLM에서 거의 사용되지 않습니다(예: GLM130B에서 포스트-LN과 프리-LN 결합 [83]).
    • Pre-LN.
      포스트-LN과 달리, 프리-LN[201]은 각 하위 레이어 앞에 적용되며, 최종 예측 전에 추가 LN이 배치됩니다. 포스트-LN에 비해 프리-LN이 적용된 트랜스포머는 훈련에서 더 안정적입니다. 그러나 포스트-LN을 사용한 변형보다 성능이 떨어집니다[202]. 성능 저하에도 불구하고 대부분의 LLM은 훈련 안정성으로 인해 여전히 pre-LN을 채택하고 있습니다. 그러나 한 가지 예외는 GLM에서 100억 개 이상의 파라미터를 모델에 학습시킬 때 pre-LN이 불안정한 것으로 밝혀졌다는 것입니다[83]. 
    • 샌드위치-LN.
      pre-LN을 기반으로 하는 샌드위치-LN[188]은 트랜스포머 레이어 출력의 값 폭발 문제를 피하기 위해 잔여 연결 앞에 추가 LN을 추가합니다. 그러나 샌드위치-LN은 때때로 LLM의 학습을 안정화시키지 못하고 학습이 붕괴될 수 있다는 사실이 밝혀졌습니다[83].

    활성화 기능. 

    좋은 성능을 얻으려면 피드 포워드 네트워크에서 활성화 함수도 적절하게 설정해야 합니다. 기존 LLM에서는 GeLU 활성화[203]가 널리 사용됩니다. 특히 최신 LLM(예: PaLM 및 LaMDA)에서는 GLU 활성화의 변형[195, 204]도 활용되고 있으며, 특히 SwiGLU 및 GeGLU 변형은 실제로 더 나은 성능을 달성하는 경우가 많습니다[199]. 그러나 GeLU에 비해 피드 포워드 네트워크에서 추가 매개변수(약 50%)가 필요합니다[205].

    위치 임베딩. 

    트랜스포머의 자기 주의 모듈은 순열 등변량이기 때문에 모델링 시퀀스에 절대 또는 상대 위치 정보를 주입하기 위해 위치 임베딩(PE)이 사용됩니다.

    • 절대 위치 임베딩.
      바닐라 트랜스포머[22]에서는 절대 위치 임베딩이 사용됩니다. 인코더와 디코더의 하단에서 절대 위치 임베딩이 입력 임베딩에 추가됩니다. 바닐라 트랜스포머[22]에서 제안된 절대 위치 임베딩에는 사인 곡선형과 학습된 위치 임베딩의 두 가지 변형이 있는데, 후자는 기존의 사전 학습된 언어 모델에서 일반적으로 사용됩니다.
    • 상대적 위치 임베딩.
      절대 위치 임베딩과 달리 상대 위치 임베딩은 키와 쿼리 사이의 오프셋에 따라 생성됩니다[206]. 상대적 PE의 인기 있는 변형은 Transformer-XL에 도입되었습니다 [207, 208]. 키와 쿼리 간의 주의 점수 계산은 상대적 위치에 해당하는 학습 가능한 임베딩을 도입하기 위해 수정되었습니다. T5 [73]는 상대적 위치 임베딩을 더욱 단순화했으며, 이는 이후 Gopher [59]에 의해 채택되었습니다. 구체적으로, 주의도 점수에 학습 가능한 스칼라를 추가하고, 스칼라는 쿼리와 키의 위치 사이의 거리를 기반으로 계산됩니다. 절대 PE와 비교하여 상대 위치 임베딩을 사용하는 트랜스포머는 훈련용 시퀀스보다 더 긴 시퀀스, 즉 외삽으로 일반화할 수 있습니다 [197].
    • 회전 위치 임베딩.
      회전 위치 임베딩(RoPE)[196]은 각 토큰의 절대 위치를 기반으로 특정 회전 행렬을 설정합니다. 키와 쿼리 사이의 점수는 상대적인 위치 정보로 계산할 수 있습니다. 뛰어난 성능과 장기적인 감쇠 특성으로 인해 RoPE는 PaLM [56] 및 LLaMA [57]와 같은 최신 LLM에서 널리 채택되고 있습니다. RoPE에 기반한 xPos [209]는 트랜스포머의 변환 불변성과 길이 외삽을 더욱 개선합니다. 회전도 벡터의 각 차원에서 xPos는 회전도가 클수록 더 작아지는 특수 지수 감쇠를 추가합니다. 거리가 멀어질수록 훈련 중 불안정한 현상을 완화할 수 있습니다.
    • ALiBi.
      ALiBi[197]는 트랜스포머의 외삽을 개선하기 위해 제안되었습니다. 상대적 위치 임베딩과 유사하게 키와 쿼리 사이의 거리에 따라 페널티를 부여하여 주의력 점수를 편향시킵니다. T5[73]와 같은 상대적 위치 임베딩 방법과 달리, ALiBi의 페널티 점수는 학습 가능한 파라미터 없이 미리 정의됩니다. 197]의 경험적 결과에 따르면 정현파 PE [22], RoPE [196], T5 바이어스 [73]와 같이 널리 사용되는 여러 위치 임베딩 방법보다 훈련용보다 긴 시퀀스에 대해 ALiBi가 더 나은 추정 성능을 보이는 것으로 나타났습니다. 또한 ALiBi는 BLOOM [69]에서도 훈련 안정성을 향상시킬 수 있는 것으로 나타났습니다.

    주의와 편향. 

    어텐션 메커니즘은 트랜스포머의 핵심 구성 요소입니다. 이를 통해 시퀀스의 토큰이 서로 상호 작용하고 입력 및 출력 시퀀스의 표현을 계산할 수 있습니다.

    • 완전한 주의.
      바닐라 트랜스포머[22]에서 주의 메커니즘은 시퀀스의 모든 토큰 쌍 간의 관계를 고려하여 쌍 방식으로 수행됩니다. 숨겨진 상태가 쿼리, 키, 값으로 매핑되는 확장된 도트-제품 주의 방식을 채택합니다. 또한 Transformer는 단일 주의 대신 다중 헤드 주의를 사용하여 쿼리, 키 및 값을 서로 다른 헤드에 서로 다른 투영으로 투영합니다. 각 헤드의 출력의 연결이 최종 출력으로 사용됩니다. 
    • 스파스 어텐션.
      전체 주의의 중요한 과제는 긴 시퀀스를 처리할 때 부담이 되는 이차적 계산 복잡성입니다. 따라서 주의 메커니즘의 계산 복잡성을 줄이기 위해 다양한 효율적인 트랜스포머 변형이 제안되고 있습니다 [210, 211]. 예를 들어, 국소적으로 띠를 두른 희소 주의(즉, 팩터화된 주의[212])가 GPT3[55]에 채택되었습니다. 각 쿼리는 전체 시퀀스 대신 위치에 기반한 토큰의 하위 집합에만 주의를 기울일 수 있습니다. 
    • 다중 쿼리 관심.
      다중 쿼리 주의는 서로 다른 헤드가 키와 값에 대해 동일한 선형 변환 행렬을 공유하는 주의 변형을 말합니다[213]. 이는 모델 품질을 약간만 희생하면서 계산 비용을 크게 절감할 수 있습니다. 멀티쿼리 어텐션이 적용된 대표적인 모델로는 PaLM [56], StarCoder [214] 등이 있습니다. 
    • 플래시어텐션.
      플래시어텐션[215]은 컴퓨팅 효율을 개선하기 위해 모델 품질을 절충하는 대부분의 기존 근사 어텐션 방법과 달리, IO 인식 관점에서 GPU의 어텐션 모듈의 속도와 메모리 소비를 최적화할 것을 제안합니다. 최신 GPU에는 다양한 수준의 메모리가 존재합니다(예: 빠른 IO를 가진 SRAM과 상대적으로 느린 IO를 가진 HBM). 플래시어텐션은 입력을 블록으로 구성하고 필요한 재연산을 도입하여 빠른 메모리 SRAM을 더 잘 활용할 수 있도록 합니다. CUDA에서 퓨즈 커널로 구현된 플래시어텐션은 파이토치[153], 딥스피드[65], 메가트론-LM[66]에 통합되었습니다.

    이러한 모든 논의를 종합하기 위해 기존 문헌에서 제안한 세부 구성에 대한 제안을 요약합니다. 일반화 및 훈련 안정성을 강화하기 위해 레이어 정규화에는 사전 RMSNorm을, 활성화 함수로는 SwiGLU 또는 GeGLU를 선택하는 것이 좋습니다. 또한 레이어를 임베딩한 직후에는 LN을 사용하지 않을 수 있으므로 성능 저하가 발생할 수 있습니다. 위치 임베딩의 경우, 긴 시퀀스에서 더 나은 성능을 발휘하는 RoPE 또는 ALiBi가 더 나은 선택입니다.

    4.2.3 사전 훈련 작업

    사전 훈련은 대규모 말뭉치의 일반 지식을 대규모 모델 파라미터로 인코딩하는 핵심적인 역할을 합니다. LLM을 훈련하기 위해 일반적으로 사용되는 사전 훈련 작업에는 언어 모델링과 노이즈 제거 자동 인코딩이라는 두 가지가 있습니다.

    언어 모델링

    언어 모델링 작업(LM)은 GPT3 [55] 및 PaLM [56]과 같은 디코더 전용 LLM을 사전 훈련하기 위해 가장 일반적으로 사용되는 목표입니다. 토큰 시퀀스 x = {x1, . . . , xn}의 시퀀스가 주어지면 LM 작업은 시퀀스의 이전 토큰 x<i를 기반으로 목표 토큰 xi를 자동 회귀적으로 예측하는 것을 목표로 합니다. 일반적인 훈련 목표는 다음과 같은 가능성을 최대화하는 것입니다:

    수식 (4)

    대부분의 언어 작업은 입력에 기반한 예측 문제로 캐스팅할 수 있기 때문에 이러한 디코더 전용 LLM은 통합 LM 방식으로 이러한 작업을 수행하는 방법을 암시적으로 학습하는 데 잠재적으로 유리할 수 있습니다. 일부 연구에서는 디코더 전용 LLM이 미세 조정 없이 다음 토큰을 자동 회귀적으로 예측함으로써 특정 작업으로 자연스럽게 전환될 수 있다는 사실도 밝혀졌습니다[26, 55]. LM의 중요한 변형은 접두사 언어 모델링 작업으로, 접두사 디코더 아키텍처로 모델을 사전 학습하기 위해 설계되었습니다. 무작위로 선택된 접두사 내의 토큰은 접두사 언어 모델링의 손실을 계산하는 데 사용되지 않습니다. 사전 학습 중에 동일한 양의 토큰을 볼 경우, 접두사 언어 모델링은 모델 사전 학습에 사용되는 시퀀스의 토큰 수가 적기 때문에 언어 모델링보다 성능이 약간 떨어집니다[29].

    노이즈 제거 자동 인코딩

    기존의 LM 외에도 잡음 제거 자동 인코딩 작업(DAE)도 언어 모델을 사전 훈련하는 데 널리 사용되어 왔습니다[24, 73]. DAE 작업의 입력 x\x˜는 무작위로 대체된 스팬을 가진 손상된 텍스트입니다. 그런 다음 언어 모델은 대체된 토큰 x˜를 복구하도록 훈련됩니다. 공식적으로 DAE의 훈련 목표는 다음과 같이 표현할 수 있습니다:

    수식 (5)

    그러나 DAE 작업은 LM 작업보다 구현이 더 복잡한 것으로 보입니다. 따라서 대규모 언어 모델을 사전 훈련하는 데 널리 사용되지는 않았습니다. DAE를 사전 학습 목표로 삼는 기존 LLM으로는 T5 [73], GLM-130B [83] 등이 있습니다. 이러한 모델은 주로 자동 회귀 방식으로 대체된 스팬을 복구하도록 훈련됩니다.

    혼합 디노이저

    UL2 손실이라고도 하는 혼합 디노이저(MoD)[80]는 언어 모델을 사전 학습하기 위한 통합된 목표로 도입되었습니다. MoD는 LM과 DAE 목표를 서로 다른 유형의 노이즈 제거 작업, 즉 S-디노이저(LM), R-디노이저(DAE, 짧은 스팬 및 낮은 손상), X-디노이저(DAE, 긴 스팬 또는 높은 손상)로 간주합니다. 세 가지 노이즈 제거 작업 중 S-디노이저는 기존의 LM 목표(식 (4))와 유사하고, R-디노이저와 X-디노이저는 DAE 목표(식 (5))와 유사하지만 스팬의 길이와 손상된 텍스트의 비율에서 서로 다릅니다. 다른 특수 토큰(예: {[R], [S], [X]})으로 시작하는 입력 문장의 경우 모델은 해당 디노이저를 사용하여 최적화됩니다. MoD는 최신 PaLM 2 모델에 적용되었습니다[216].

    4.2.4 요약 및 토론

    아키텍처와 사전 훈련 작업의 선택에 따라 LLM의 귀납적 편향이 달라질 수 있으며, 이는 모델 용량 차이로 이어질 수 있습니다. 이 부분에서는 LLM 아키텍처에 대한 두 가지 미해결 문제에 대해 논의합니다. 

    아키텍처 선택. 

    사전 학습된 언어 모델에 대한 초기 문헌에는 다양한 아키텍처의 효과에 대한 많은 논의가 있습니다[29, 80]. 그러나 대부분의 LLM은 인과적 디코더 아키텍처를 기반으로 개발되었으며, 다른 대안에 비해 이 아키텍처의 장점에 대한 이론적 분석이 아직 부족합니다. 다음은 이 문제에 대한 기존 논의를 간략히 요약합니다.

    • 인과적 디코더 아키텍처는 LM 목표에 대한 사전 학습을 통해 우수한 제로샷 및 소수샷 일반화 능력을 달성할 수 있는 것으로 보입니다. 기존 연구에 따르면 멀티태스크 미세 조정 없이도 인과 관계 디코더는 다른 아키텍처보다 제로 샷 성능이 더 우수합니다 [29]. GPT-3[55]의 성공은 대규모 인과적 디코더 모델이 좋은 소수 샷 학습자가 될 수 있음을 보여줍니다. 또한 섹션 5에서 설명한 명령어 튜닝과 정렬 튜닝은 대규모 인과 관계 디코더 모델의 성능을 더욱 향상시키는 것으로 입증되었습니다[61, 62, 64]. 
    • 스케일링 법칙은 인과적 디코더에서 널리 관찰되었습니다. 모델 크기, 데이터 세트 크기 및 총 계산을 확장함으로써 인과 관계 디코더의 성능을 크게 향상시킬 수 있습니다 [30, 55]. 따라서 스케일링을 통해 인과 디코더의 모델 용량을 늘리는 것이 중요한 전략이 되었습니다. 그러나 인코더-디코더 모델에 대한 자세한 조사는 아직 부족하며, 대규모로 인코더-디코더 모델의 성능을 조사하기 위해서는 더 많은 노력이 필요합니다. 아키텍처 및 사전 학습 목표에 대한 논의에 대한 더 많은 연구 노력은 다음과 같은 분석을 위해 필요합니다.

    아키텍처와 사전 학습 작업의 선택이 특히 인코더-디코더 아키텍처의 경우 LLM의 용량에 어떤 영향을 미치는지 분석하기 위해서는 아키텍처와 사전 학습 목표에 대한 더 많은 연구가 필요합니다. 주요 아키텍처 외에도 4.2.2절에서 설명한 LLM의 세부 구성도 주목할 가치가 있습니다.

    롱 컨텍스트. 

    트랜스포머 기반 언어 모델의 주요 단점 중 하나는 시간과 메모리 모두에서 이차적인 계산 비용이 수반되기 때문에 컨텍스트 길이가 제한된다는 것입니다. 한편, PDF 처리 및 스토리 작성과 같이 컨텍스트 윈도우가 긴 LLM 애플리케이션에 대한 수요가 증가하고 있습니다[217]. ChatGPT는 최근 컨텍스트 창 크기가 초기 크기인 4K 토큰보다 훨씬 긴 최대 16K 토큰의 업데이트된 변형을 출시했습니다. 또한 GPT-4는 컨텍스트 창이 32K 토큰인 변종으로 출시되었습니다[46]. 다음으로 LLM의 긴 컨텍스트 모델링을 지원하는 두 가지 중요한 요소에 대해 설명합니다.

    • 추정. 실제 애플리케이션에서 LLM은 훈련 말뭉치의 최대 길이를 초과하는 긴 입력 텍스트를 처리해야 할 수 있습니다. 긴 텍스트를 인코딩하는 LLM의 기능을 종종 외삽 기능이라고 합니다[197]. RoPE[196] 및 T5 바이어스[73]와 같은 여러 위치 임베딩 방법이 특정 외삽 기능을 가지고 있는 것으로 경험적으로 검증되었습니다[197]. 특히 ALiBi를 탑재한 언어 모델[197]은 훈련용 모델보다 10배 더 긴 시퀀스에서도 비교적 안정적인 난해도를 유지하는 것으로 나타났습니다. 회전 행렬의 설계를 개선하여 RoPE의 외삽 능력을 향상시키기 위한 xPos [209]와 같은 노력도 있습니다.
    • 효율성. 주의 모듈의 이차적 계산 비용을 줄이기 위해 여러 연구에서 메모리 소비를 거의 선형적으로 확장할 수 있는 매우 효율적인 주의 계산 방법을 설계하고 있으며, 그 예로 희소 주의 또는 선형 주의가 있습니다 [212, 218-221]. 알고리즘 개선 외에도 또 다른 중요한 작업인 플래시어텐션[215]은 시스템 수준의 관점에서 효율성을 개선합니다(즉, GPU 메모리 IO 효율성). 동일한 컴퓨팅 예산으로 더 긴 컨텍스트 윈도우로 LLM을 훈련할 수 있습니다. 또한 일부 연구에서는 언어 모델링을 위해 트랜스포머가 아닌 새로운 아키텍처를 고안하는 것을 목표로 하는데, 여기에는 매개변수화된 상태 공간 모델(예: S4 [222], GSS [223], H3 [224])과 RWKV [225]와 같은 재귀성 메커니즘을 통합하는 스택형 선형 주의 모듈도 포함됩니다.

    4.3 모델 훈련

    이 부분에서는 LLM을 학습시키기 위한 중요한 설정, 기법 또는 요령을 검토합니다.

    4.3.1 최적화 설정

    LLM의 파라미터 최적화를 위해 배치 훈련, 학습 속도, 최적화 도구 및 훈련 안정성을 위해 일반적으로 사용되는 설정을 소개합니다.

    배치 훈련. 언어 모델 사전 학습의 경우, 기존 작업에서는 일반적으로 학습 안정성과 처리량을 개선하기 위해 배치 크기를 큰 숫자(예: 2,048개 예제 또는 4백만 개의 토큰)로 설정합니다. GPT-3 및 PaLM과 같은 LLM의 경우, 훈련 중에 배치 크기를 동적으로 증가시켜 궁극적으로 백만 개 규모에 도달하는 새로운 전략을 도입했습니다. 특히 GPT-3의 배치 크기는 32K 토큰에서 320만 토큰으로 점차 증가하고 있습니다. 경험적 결과에 따르면 배치 크기의 동적 스케줄이 LLM의 훈련 과정을 효과적으로 안정화할 수 있다는 것이 입증되었습니다[56].

    학습 속도

    기존 LLM은 일반적으로 사전 훈련 중에 워밍업 및 감쇠 전략과 유사한 학습 속도 일정을 채택합니다. 구체적으로, 훈련 단계의 초기 0.1%~0.5%에서는 선형 워밍업 스케줄을 사용하여 학습 속도를 약 5 × 10-5에서 1 × 10-4 범위의 최대 값(예: GPT-3의 경우 6 × 10-5)까지 점진적으로 높입니다. 그런 다음 후속 단계에서 코사인 감쇠 전략을 채택하여 학습 손실이 수렴할 때까지 학습 속도를 최대 값의 약 10%까지 점진적으로 낮춥니다.

    옵티마이저

    아담 옵티마이저[226] 및 아담W 옵티마이저[227]는 일차 경사 기반 최적화를 위한 저차 모멘트의 적응적 추정치를 기반으로 하는 LLM(예: GPT3) 훈련에 널리 활용되고 있습니다. 일반적으로 하이퍼 파라미터는 다음과 같이 설정됩니다: β1 = 0.9, β2 = 0.95, ϵ = 10-8. 한편, Adafactor 옵티마이저[228]는 훈련 중 GPU 메모리를 보존하기 위해 특별히 설계된 Adam 옵티마이저의 변형인 LLM(예: PaLM 및 T5)을 훈련하는 데에도 활용되었습니다. Adafactor 옵티마이저의 하이퍼 파라미터는 다음과 같이 설정됩니다: β1 = 0.9 및 β2 = 1.0 - k -0.8로 설정되며, 여기서 k는 훈련 단계 수를 나타냅니다.

    훈련 안정화

    LLM을 사전 훈련하는 동안 종종 훈련 불안정성 문제가 발생하여 모델이 붕괴될 수 있습니다. 이 문제를 해결하기 위해 가중치 감쇠와 기울기 클리핑이 널리 활용되어 왔으며, 기존 연구[55, 69, 81, 83, 97]에서는 일반적으로 기울기 클리핑의 임계값을 1.0으로, 가중치 감쇠율을 0.1로 설정했습니다. 그러나 LLM을 확장하면 훈련 손실이 급증하여 불안정한 훈련으로 이어질 가능성이 높아집니다. 이 문제를 완화하기 위해 PaLM [56]과 OPT [81]는 스파이크가 발생하기 전의 이전 체크포인트에서 훈련 프로세스를 다시 시작하고 문제를 일으켰을 수 있는 데이터를 건너뛰는 간단한 전략을 사용합니다. 또한 GLM [83]은 임베딩 레이어의 비정상적인 기울기가 일반적으로 스파이크를 유발한다는 사실을 발견하고 이를 완화하기 위해 임베딩 레이어 기울기를 축소할 것을 제안합니다. 

    4.3.2 확장 가능한 훈련 기법

    모델과 데이터 크기가 증가함에 따라 제한된 컴퓨팅 리소스에서 LLM을 효율적으로 훈련하는 것이 어려워지고 있습니다. 특히 훈련 처리량을 늘리고 더 큰 모델을 GPU 메모리에 로드하는 두 가지 주요 기술 문제를 해결해야 합니다. 이 부분에서는 위의 두 가지 과제를 해결하기 위해 기존 연구에서 널리 사용되는 몇 가지 접근 방식, 즉 3D 병렬 처리 [66, 229, 230], ZeRO [231], 혼합 정밀 훈련 [232]을 검토하고 이를 훈련에 활용하는 방법에 대한 일반적인 제안도 제공합니다.

    3D 병렬 처리

    3D 병렬화는 실제로 데이터 병렬화, 파이프라인 병렬화[229, 230], 텐서 병렬화[66]21 등 일반적으로 사용되는 세 가지 병렬 훈련 기법을 조합한 것입니다. 이제 세 가지 병렬 훈련 기법을 소개합니다. 

    • 데이터 병렬 처리. 데이터 병렬화는 훈련 처리량을 개선하기 위한 가장 근본적인 접근 방식 중 하나입니다. 이 기법은 모델 파라미터와 최적화 상태를 여러 GPU에 복제하고 전체 훈련 코퍼스를 이러한 GPU에 분산시킵니다. 이렇게 하면 각 GPU는 할당된 데이터만 처리하면 되고, 순방향 및 역방향 전파를 수행하여 그라디언트를 얻게 됩니다. 다른 GPU에서 계산된 기울기를 추가로 집계하여 모든 GPU에서 모델을 업데이트하기 위한 전체 배치의 기울기를 얻습니다. 이러한 방식으로 기울기 계산이 서로 다른 GPU에서 독립적으로 수행되므로 데이터 병렬 처리 메커니즘은 확장성이 뛰어나 GPU 수를 늘려 훈련 처리량을 개선하는 방식을 사용할 수 있습니다. 또한 이 기법은 구현이 간단하며, 현재 널리 사용되는 대부분의 딥 러닝 라이브러리(예: 텐서플로우, 파이토치 등)에서 이미 데이터 병렬화를 구현하고 있습니다.
    • 파이프라인 병렬 처리. 파이프라인 병렬 처리는 LLM의 여러 계층을 여러 개의 GPU로 분산하는 것을 목표로 합니다. 특히 트랜스포머 모델의 경우 파이프라인 병렬 처리는 계산된 숨겨진 상태 또는 그라데이션을 GPU 간에 전송하는 비용을 줄이기 위해 연속된 레이어를 동일한 GPU에 로드합니다. 그러나 순진한 구현21. 모델 병렬화는 텐서 병렬화와 일부 작업에서 파이프라인 병렬화를 포함하는 보다 광범위한 용어입니다[66]. 파이프라인 병렬화를 사용하면 각 GPU가 이전 GPU가 계산을 완료할 때까지 기다려야 하므로 GPU 사용률이 낮아져 불필요한 버블 오버헤드 비용이 발생할 수 있습니다[229]. 파이프라인 병렬 처리에서 이러한 거품을 줄이기 위해 GPipe [229]와 PipeDream [230]은 여러 데이터 배치를 패딩하고 비동기 그라데이션 업데이트를 통해 파이프라인 효율성을 개선하는 기술을 제안합니다.
    • 텐서 병렬 처리. 텐서 병렬 처리 역시 멀티 GPU 로딩을 위해 LLM을 분해하는 것을 목표로 하는 일반적으로 사용되는 기법입니다. 파이프라인 병렬 처리와 달리 텐서 병렬 처리는 LLM의 텐서(매개변수 행렬)를 분해하는 데 중점을 둡니다. LLM에서 행렬 곱셈 연산 Y = XA의 경우, 매개변수 행렬 A는 열별로 A1과 A2라는 두 개의 행렬로 분할할 수 있으며, 이는 Y = [XA1, XA2]로 표현할 수 있습니다. 행렬 A1과 A2를 서로 다른 GPU에 배치하면 행렬 곱셈 연산이 두 개의 GPU에서 병렬로 호출되고, GPU 간 통신을 통해 두 GPU의 출력을 합산하여 최종 결과를 얻을 수 있습니다. 현재 텐서 병렬화는 Megatron-LM[66]과 같은 여러 오픈 소스 라이브러리에서 지원되고 있으며, 고차원 텐서까지 확장할 수 있습니다. 또한 Colossal-AI는 고차원 텐서[233-235]에 대해 텐서 병렬화를 구현했으며, 특히 시퀀스 데이터에 대해 시퀀스 병렬화[236]를 제안하여 트랜스포머 모델의 주의 연산을 더욱 세분화할 수 있습니다.

    ZeRO

    DeepSpeed[65] 라이브러리가 제안한 ZeRO[231] 기술은 데이터 병렬 처리에서 메모리 중복성 문제에 초점을 맞추고 있습니다. 앞서 언급했듯이 데이터 병렬 처리를 위해서는 각 GPU가 모델 파라미터, 모델 그라데이션, 옵티마이저 파라미터를 포함한 LLM의 동일한 복사본을 저장해야 합니다. 반면, 위의 모든 데이터를 각 GPU에 보유할 필요는 없으므로 메모리 중복 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 ZeRO 기술은 각 GPU에 데이터의 일부만 유지하고 나머지 데이터는 필요할 때 다른 GPU에서 검색할 수 있도록 하는 것을 목표로 합니다. 구체적으로 ZeRO는 데이터의 세 부분을 저장하는 방식에 따라 옵티마이저 상태 분할, 그라데이션 분할, 파라미터 분할의 세 가지 솔루션을 제공합니다. 경험적 결과에 따르면 처음 두 가지 솔루션은 통신 오버헤드가 증가하지 않으며, 세 번째 솔루션은 통신 오버헤드가 약 50% 증가하지만 GPU 수에 비례하여 메모리를 절약할 수 있는 것으로 나타났습니다. PyTorch는 FSDP라는 ZeRO와 유사한 기술을 구현했습니다 [237]. 

    혼합 정밀 훈련

    이전 PLM(예: BERT [23])에서는 사전 훈련에 32비트 부동 소수점 숫자(FP32라고도 함)가 주로 사용되었습니다. 최근에는 초대형 언어 모델을 사전 학습하기 위해 일부 연구[232]에서 메모리 사용량과 통신 오버헤드를 줄여주는 16비트 부동 소수점 숫자(FP16)를 활용하기 시작했습니다. 또한, 널리 사용되는 NVIDIA GPU(예: A100)는 FP16 연산 유닛 수가 FP32의 두 배에 달하기 때문에 FP16의 연산 효율을 더욱 향상시킬 수 있습니다. 그러나 기존 연구에 따르면 FP16은 계산 정확도 손실로 이어질 수 있으며[59, 69], 이는 최종 모델 성능에 영향을 미칩니다. 이러한 문제를 완화하기 위해 뇌 부동 소수점(BF16)이라는 대안이 훈련에 사용되었는데, 이는 FP16보다 더 많은 지수 비트를 할당하고 더 적은 유의 비트를 할당합니다. 사전 훈련의 경우, BF16은 일반적으로 표현 정확도에서 FP16보다 더 나은 성능을 보입니다[69].

    전반적인 훈련 제안

    실제로 위의 훈련 기법, 특히 3D 병렬화는 훈련 처리량과 대규모 모델 로딩을 개선하기 위해 함께 사용되는 경우가 많습니다. 예를 들어, 연구자들은 8방향 데이터 병렬 처리, 4방향 텐서 병렬 처리, 12방향 파이프라인 병렬 처리를 통합하여 384개의 A100 GPU에서 BLOOM[69]을 훈련할 수 있게 되었습니다. 현재 DeepSpeed [65], Colossal-AI [149], Alpa [238]와 같은 오픈 소스 라이브러리는 세 가지 병렬 훈련 방법을 잘 지원할 수 있습니다. 메모리 중복을 줄이기 위해 이미 DeepSpeed, PyTorch, Megatron-LM에 통합된 ZeRO, FSDP, 활성화 재계산 기법[68, 239]을 LLM 훈련에 사용할 수도 있습니다. 또한 BF16과 같은 혼합 정밀도 훈련 기법을 활용하여 훈련 효율을 개선하고 GPU 메모리 사용량을 줄일 수 있지만, 하드웨어(예: A100 GPU)에 필요한 지원이 필요합니다. 대규모 모델 학습은 시간이 많이 소요되는 과정이기 때문에 모델 성능을 예측하고 이상 문제를 조기에 발견하는 것이 유용합니다. 이를 위해 최근 GPT-4 [46]는 딥러닝 스택에 구축된 예측 가능한 스케일링이라는 새로운 메커니즘을 도입하여 훨씬 작은 모델로 대규모 모델의 성능을 예측할 수 있게 되었으며, 이는 LLM 개발에 매우 유용할 수 있습니다. 실제로는 주류 딥 러닝 프레임워크의 지원 학습 기법을 더욱 활용할 수 있습니다. 예를 들어 파이토치는 데이터 병렬 훈련 알고리즘인 FSDP[237](즉, 완전 샤드 데이터 병렬)를 지원하여 원하는 경우 훈련 계산을 CPU에 부분적으로 오프로드할 수 있습니다.

    5. LLM의 적응

    사전 교육 후 LLM은 다양한 작업을 해결하기 위한 일반적인 능력을 습득할 수 있습니다. 그러나 점점 더 많은 연구에서 특정 목표에 따라 LLM의 능력을 추가로 조정할 수 있다는 사실이 밝혀지고 있습니다. 이 섹션에서는 사전 학습된 LLM을 조정하는 두 가지 주요 접근 방식, 즉 명령어 튜닝과 정렬 튜닝에 대해 소개합니다. 전자의 접근 방식은 주로 LLM의 능력을 향상(또는 잠금 해제)하는 것을 목표로 하며, 후자의 접근 방식은 LLM의 행동을 인간의 가치 또는 선호도에 맞추는 것을 목표로 합니다. 또한 리소스가 제한된 환경에서 모델 적응을 위한 효율적인 튜닝 및 정량화에 대해서도 논의할 것입니다. 다음에서는 네 가지 부분을 자세히 소개합니다.

    5.1 명령어 튜닝

    본질적으로 인스트럭션 튜닝은 자연어 형태의 형식화된 인스턴스 모음에 대해 사전 학습된 LLM을 미세 조정하는 접근 방식이며[62], 이는 감독 미세 조정[61] 및 다중 작업 프롬프트 훈련[28]과 밀접하게 연관되어 있습니다. 명령어 튜닝을 수행하기 위해서는 먼저 명령어 형식의 인스턴스를 수집하거나 구성해야 합니다. 그런 다음 이러한 형식의 인스턴스를 사용하여 지도 학습 방식(예: 시퀀스 간 손실 훈련)으로 LLM을 미세 조정합니다. 인스트럭션 튜닝 후, LLM은 다국어 환경[84]에서도 보이지 않는 작업[28, 62, 64]에 일반화할 수 있는 뛰어난 능력을 보여줄 수 있습니다. 최근 조사[248]에서는 명령어 튜닝에 대한 연구를 체계적으로 개괄하고 있습니다. 이에 비해 우리는 주로 명령어 튜닝이 LLM에 미치는 영향에 초점을 맞추고 인스턴스 수집 및 튜닝에 대한 자세한 지침이나 전략을 제공합니다. 또한, 기존 LLM에서 널리 적용되고 있는 InstructGPT [61], GPT-4 [46] 등과 같이 사용자의 실제 요구를 만족시키기 위한 명령어 튜닝의 활용에 대해서도 논의합니다. 

    5.1.1 형식화된 인스턴스 구성

    일반적으로 명령어 형식의 인스턴스는 작업 설명(명령어라고 함), 선택적 입력, 해당 출력 및 소수의 데모(선택 사항)로 구성된다. 기존 연구에서는 중요한 공개 리소스로서 자연어 형식의 라벨링된 데이터를 다수 공개하고 있습니다(표 6의 사용 가능한 리소스 목록 참조). 다음으로 형식화된 인스턴스를 구축하는 세 가지 주요 방법을 소개한 다음(그림 8의 그림 참조), 인스턴스 구축을 위한 몇 가지 핵심 요소에 대해 논의합니다.

    작업 데이터세트 포맷 지정

    인스트럭션 튜닝이 제안되기 전, 여러 초기 연구[242, 249, 250]에서는 다양한 작업(예: 텍스트 요약, 텍스트 분류, 번역)에서 인스턴스를 수집하여 감독된 다중 작업 훈련 데이터셋을 만들었습니다. 인스트럭션 튜닝 인스턴스의 주요 소스인 이러한 멀티태스크 훈련 데이터셋을 자연어 작업 설명으로 포맷하는 것이 편리합니다. 특히 최근의 연구[28, 61, 62, 79]에서는 레이블이 지정된 데이터 세트에 사람이 작성한 작업 설명으로 보강하여, 작업 목표를 설명함으로써 LLM이 작업을 이해하도록 지시합니다. 예를 들어, 그림 8(a)에서는 질문-답변 작업의 각 예제에 대해 "이 질문에 답하세요"라는 작업 설명이 추가되어 있습니다. 명령어 튜닝 후, LLM은 과제 설명을 따라 보이지 않는 다른 과제로도 잘 일반화할 수 있습니다 [28, 62, 64]. 특히, 명령어가 LLM의 작업 일반화 능력에 결정적인 요소인 것으로 나타났습니다[62]. 작업 설명이 제거된 라벨링된 데이터 세트에서 모델을 미세 조정하면 모델 성능이 급격히 떨어집니다. 명령어 튜닝을 위한 레이블이 지정된 인스턴스를 더 잘 생성하기 위해 다양한 데이터 세트에 대한 작업 설명을 효과적으로 생성, 공유 및 검증할 수 있는 크라우드 소싱 플랫폼인 PromptSource [241]가 제안되었습니다. 훈련 인스턴스를 풍부하게 하기 위해 몇몇 연구[28, 242, 251]에서는 명령 튜닝을 위해 특별히 설계된 작업 설명으로 기존 인스턴스의 입력-출력 쌍을 반전시키려고 시도하기도 합니다. 예를 들어, 질문과 답변 쌍이 주어지면 질문 조건부 답변을 예측하여 새로운 인스턴스를 생성할 수 있습니다(예: "다음 답변을 기반으로 질문을 생성하세요:").

    일일 채팅 데이터 포맷. 

    많은 훈련 인스턴스가 명령어로 형식화되어 있지만, 주로 공개 NLP 데이터 세트에서 제공되어 명령어의 다양성이 부족하거나 실제 사람의 요구와 일치하지 않습니다[61]. 이 문제를 극복하기 위해 InstructGPT[61]는 실제 사용자가 OpenAI API에 제출한 쿼리를 작업 설명으로 사용할 것을 제안합니다. 사용자 쿼리는 자연어로 표현되며, 이는 특히 LLM의 명령 추종 능력을 이끌어내는 데 적합합니다. 또한 작업의 다양성을 풍부하게 하기 위해 인간 라벨러에게 개방형 생성, 개방형 질의응답, 브레인스토밍, 채팅 등 실제 작업에 대한 지침을 작성하도록 요청합니다. 그런 다음 다른 라벨러 그룹이 이러한 지침에 직접 답하도록 합니다. 마지막으로 하나의 명령어(즉, 수집된 사용자 쿼리)와 예상 출력(즉, 사람이 작성한 답변)을 훈련 인스턴스로 쌍을 이룹니다. 또한, InstructGPT는 정렬 튜닝을 위해 자연어로 형식화된 이러한 실제 작업을 사용합니다(5.2절에서 설명). 또한 GPT-4[46]는 잠재적으로 위험성이 높은 지시를 설계하고 안전 문제에 대한 감독 미세 조정을 통해 모델이 이러한 지시를 거부하도록 안내했습니다. 최근 연구자들은 사용자의 채팅 요청을 입력 데이터로 수집하고 이러한 요청에 대한 응답을 출력 데이터로 ChatGPT 또는 GPT-4를 사용하기도 합니다. 이러한 데이터 세트의 대표적인 컬렉션은 ShareGPT의 대화 데이터입니다. 

    합성 데이터 포맷하기

    사람의 주석 달기나 수동 수집의 부담을 줄이기 위해, 다양한 작업 설명과 인스턴스를 합성하기 위해 기존 인스턴스를 LLM에 공급하여 인스턴스를 구성하는 몇 가지 반자동화된 접근법[125]이 제안되었습니다. 그림 8(c)에서 볼 수 있듯이, 셀프 인스트럭트 방식은 초기 작업 풀로 약 100개의 인스턴스만 필요합니다. 그런 다음 풀에서 무작위로 몇 개의 인스턴스를 데모로 선택하고 LLM에 새로운 명령어와 해당 입출력 쌍을 생성하도록 요청합니다. 품질 및 다양성 필터링이 끝나면 새로 생성된 인스턴스가 작업 풀에 추가됩니다. 따라서 합성 방법은 LLM을 위한 대규모 명령어 데이터를 생성하는 효과적이고 경제적인 방법입니다.

    인스턴스 구성의 핵심 요소. 

    인스트럭션 인스턴스의 품질은 모델의 성능에 중요한 영향을 미칩니다. 여기에서는 인스턴스 구성에 필수적인 몇 가지 요소에 대해 설명합니다.

    • 명령어 확장. 작업의 수를 확장하면 LLM의 일반화 능력을 크게 향상시킬 수 있다는 것이 널리 알려져 있습니다 [28, 62, 79]. 태스크 수가 증가함에 따라 모델 성능은 처음에는 지속적인 성장 패턴을 보이다가 특정 수준에 도달하면 이득이 무시할 수 있게 됩니다[64, 79]. 이는 일정 수의 대표 태스크가 비교적 충분한 지식을 제공할 수 있고, 더 많은 태스크를 추가해도 추가적인 이득을 얻지 못하기 때문이라는 추측이 타당합니다[64]. 또한 과제 설명의 길이, 구조, 창의성 등 여러 측면에서 과제 설명의 다양성을 높이는 것이 유리하다[28]. 과제당 인스턴스 수는 일반적으로 적은 수의 인스턴스가 모델의 일반화 성능을 포화시킬 수 있다는 것이 밝혀졌습니다 [62, 64]. 반면, 일부 작업의 인스턴스 수를 수백 개로 크게 늘리면 잠재적으로 과적합 문제가 발생하여 모델 성능이 저하될 수 있습니다[79, 252]. 
    • 포맷 디자인. 자연어 형식의 설계도 중요한 요소로서 LLM의 일반화 성능에 큰 영향을 미칩니다 [79]. 일반적으로 기존 데이터 세트의 입출력 쌍에 작업 설명과 선택적 데모를 추가할 수 있는데, 여기서 작업 설명은 LLM이 작업을 이해하는 데 가장 핵심적인 부분입니다[79]. 또한 적절한 수의 예시를 데모로 사용하여 상당한 개선을 이끌어낼 수 있으며[64], 명령어 엔지니어링에 대한 모델 민감도도 완화할 수 있습니다[62, 64]. 그러나 다른 구성 요소(예: 피해야 할 사항, 이유 및 제안)를 명령어에 통합하면 LLM의 성능에 무시할 수 있거나 심지어 부정적인 영향을 미칠 수 있습니다[79, 240]. 최근 LLM의 단계별 추론 능력을 이끌어내기 위해 일부 연구[64]에서는 산술 추론과 같은 일부 추론 데이터 세트에 대해 생각의 연쇄(CoT) 예제를 포함할 것을 제안합니다. CoT 예제와 비 CoT 예제를 모두 사용하여 LLM을 미세 조정하면 멀티홉 추론 능력(예: 상식적인 질문 답변 및 산술 추론)이 필요한 추론 작업뿐만 아니라 이러한 추론 방식이 필요하지 않은 추론 작업(예: 감성 분석 및 추출적 질문 답변)을 포함하여 다양한 추론 작업에서 좋은 성능을 얻을 수 있다는 것이 입증되었습니다 [64, 85].

    요약하면, 성능이 좋은 InstructGPT [61]와 알파카 [124]는 Flan 계열 LLM [62, 64]보다 더 적은 수의 명령어(또는 인스턴스)를 활용하기 때문에 인스턴스 수보다 명령어의 다양성과 품질이 더 중요한 것으로 보입니다[253]. 또한, 데이터 세트별 작업을 사용하는 것보다 사람이 필요로 하는 작업을 구성하도록 라벨러를 초대하는 것이 더 유용합니다. 그러나 사람이 필요로 하는 인스턴스에 주석을 달기 위한 일반적인 지침이 여전히 부족하기 때문에 작업 구성이 다소 휴리스틱하게 이루어집니다. 사람의 노력을 줄이기 위해 기존의 형식화된 데이터셋을 재사용하거나(표 6), 기존 LLM을 사용하여 자동으로 지침을 구성할 수 있습니다[125]. 5.1.4절에서 다양한 구성 방법의 효과를 보여주기 위해 예비 실험을 수행합니다.

    5.1.2 인스트럭션 튜닝 전략

    사전 훈련과 달리 인스트럭션 튜닝은 적당한 수의 인스턴스만 훈련에 사용되므로 더 효율적인 경우가 많습니다. 인스트럭션 튜닝은 지도 학습 프로세스로 간주될 수 있기 때문에 훈련 목표(예: 시퀀스 간 손실) 및 최적화 구성(예: 더 작은 배치 크기 및 학습 속도)과 같은 여러 측면에서 사전 훈련과 다르며[64], 실제로는 특별한 주의가 필요합니다. 이러한 최적화 구성 외에도 명령어 튜닝을 위해 고려해야 할 두 가지 중요한 측면이 있습니다: 

    데이터 배포의 균형. 

    인스트럭션 튜닝에는 여러 가지 작업이 혼합되어 있으므로 미세 튜닝 중에 여러 작업의 비율을 균형 있게 조정하는 것이 중요합니다. 널리 사용되는 방법은 예제 비례 혼합 전략[73], 즉 모든 데이터 세트를 결합하고 혼합된 데이터 세트에서 각 인스턴스를 균등하게 샘플링하는 것입니다. 또한, 최근 연구 결과에 따르면 고품질 컬렉션(예: FLAN [62] 및 P3 [241])의 샘플링 비율을 높이면 일반적으로 성능 개선으로 이어질 수 있습니다 [64, 85]. 또한, 명령어 튜닝 중에 데이터 세트가 포함할 수 있는 최대 예제 수를 제어하기 위해 최대 상한을 설정하는 것이 일반적입니다[73]. 이는 더 큰 데이터 세트가 전체 분포를 압도하는 것을 방지하기 위해 설정됩니다[73, 85]. 실제로 최대 상한은 일반적으로 데이터 세트에 따라 수천 또는 수만 개로 설정됩니다[62, 64]. 

    인스트럭션 튜닝과 사전 훈련의 결합. 

    튜닝 프로세스를 보다 효과적이고 안정적으로 만들기 위해 OPT-IML [85]은 모델 튜닝을 위한 정규화라고 할 수 있는 명령어 튜닝 중에 사전 훈련 데이터를 통합합니다. 또한, 별도의 2단계 프로세스(사전 훈련 후 명령어 튜닝)를 사용하는 대신, 일부 연구에서는 멀티태스크 학습을 사용하여 사전 훈련 데이터(즉, 일반 텍스트)와 명령어 튜닝 데이터(즉, 형식화된 데이터 세트)를 혼합하여 모델을 처음부터 훈련하려고 시도합니다[73]. 특히 GLM-130B[83]와 Galactica[35]는 명령어 형식의 데이터셋을 사전 훈련 코퍼스의 일부로 통합하여 LLM을 사전 훈련함으로써 잠재적으로 사전 훈련과 명령어 튜닝의 장점을 동시에 달성할 수 있습니다.

    5.1.3 인스트럭션 튜닝의 효과

    이 부분에서는 크게 세 가지 측면에서 인스트럭션 튜닝이 LLM에 미치는 영향에 대해 설명합니다.

    성능 향상

    인스트럭션 튜닝은 적당한 수의 인스턴스에서 튜닝되었음에도 불구하고 LLM의 능력을 향상시키거나 잠금 해제하는 중요한 방법이 되었습니다[64]. 최근 연구에서는 다양한 규모(77M에서 540B까지)의 언어 모델을 실험하여 서로 다른 규모의 모델이 모두 인스트럭션 튜닝의 이점을 누릴 수 있으며[64, 251], 매개변수 규모가 증가함에 따라 성능이 향상됨을 보여주었습니다[84]. 또한, 인스트럭션 튜닝이 적용된 작은 모델은 미세 튜닝 없이도 큰 모델보다 더 나은 성능을 발휘할 수 있습니다[28, 64]. 모델 규모 외에도 인스트럭션 튜닝은 다양한 모델 아키텍처, 사전 학습 목표 및 모델 적응 방법에서 일관된 개선을 보여줍니다[64]. 실제로 인스트럭션 튜닝은 기존 언어 모델[64](소형 PLM 포함)의 기능을 향상시키는 일반적인 접근 방식을 제공합니다. 또한 LLM에 필요한 명령어 데이터의 양이 사전 학습 데이터보다 훨씬 적기 때문에 사전 학습보다 비용이 훨씬 적게 듭니다.

    작업 일반화

    명령어 튜닝은 모델이 작업 완수를 위한 자연어 명령어를 이해하도록 장려합니다. 이를 통해 LLM은 인간의 지시를 따라[31] 보이지 않는 작업에서도 시연 없이 특정 작업을 수행할 수 있는 능력(종종 비상 능력으로 간주됨)을 갖게 됩니다[64]. 많은 연구에서 보이는 작업과 보이지 않는 작업 모두에서 우수한 성과를 달성하기 위한 인스트럭션 튜닝의 효과를 확인했습니다[85, 251]. 또한 명령어 튜닝은 LLM의 몇 가지 약점(예: 특정 작업을 수행하지 않고 반복 생성 또는 입력 보완)을 완화하는 데 유용한 것으로 나타났으며[61, 64], 이는 LLM의 실제 작업 해결 능력 향상으로 이어집니다. 또한 명령어 튜닝으로 훈련된 LLM은 여러 언어에 걸쳐 관련 작업에 일반화할 수 있습니다. 예를 들어, BLOOMZ-P3 [84]는 영어 전용 태스크 컬렉션 P3 [241]를 사용하여 BLOOM [69]을 기반으로 미세 조정되었습니다. 흥미롭게도 BLOOMZ-P3는 다국어 문장 완성 과제에서 BLOOM에 비해 50% 이상의 향상을 달성할 수 있으며, 이는 인스트럭션 튜닝이 LLM이 영어 전용 데이터셋에서 일반적인 과제 기술을 습득하고 이러한 기술을 다른 언어로 이전하는 데 도움이 될 수 있음을 보여줍니다[84]. 또한 영어 전용 명령어를 사용하면 다국어 작업에서 만족스러운 결과를 얻을 수 있으며[84], 이는 특정 언어에 대한 명령어 엔지니어링의 노력을 줄이는 데 도움이 된다는 사실이 밝혀졌습니다. 

    도메인 전문화

    기존 LLM은 생성 및 추론과 같은 전통적인 자연어 처리 작업과 일상적인 질문에서 뛰어난 역량을 보여 왔습니다. 하지만 의학, 법률, 금융과 같은 특정 작업을 수행하기에는 여전히 도메인 지식이 부족할 수 있습니다(다양한 애플리케이션에서의 LLM에 대한 자세한 내용은 섹션 9 참조). 교육 튜닝은 기존의 일반 LLM을 도메인별 전문가로 적응시키기 위한 효과적인 접근 방식입니다. 예를 들어, 연구자들은 의료 데이터 세트를 사용하여 전문 임상의에 필적하는 성능 수준을 달성하는 의료 지식 어시스턴트인 Med-PaLM[254]을 만들기 위해 Flan-PaLM[64]을 미세 조정할 것을 제안하고 있습니다. 또한 최근 연구[255]에서는 FLAN-T5를 미세 조정하여 자연어 지침으로 이커머스 추천 시스템을 지원함으로써 다양한 추천 작업에서 강력한 성능을 보여줍니다. BenTsao [256]와 같이 LLaMA [57]를 기반으로 인스트럭션 튜닝된 오픈 소스 의료 모델도 여러 개 있습니다. 또한 연구자들은 법률 [257], 금융 [258], 산술 계산 [259]에 대한 인스트럭션 튜닝을 연구하고 있습니다.

    5.1.4 명령어 튜닝을 위한 경험적 분석

    명령어 세트가 다른 LLM을 미세 조정하면 다운스트림 작업에서 다양한 성능을 가진 모델 변형이 발생하는 경향이 있습니다. 이 섹션에서는 다양한 유형의 명령어(예: 7B LLaMA)를 미세 조정하는 데 있어 다양한 유형의 명령어의 효과를 살펴보고 몇 가지 명령어 개선 전략의 유용성에 대해 살펴봅니다.

    명령어 데이터 세트

    5.1.1절의 논의에 따르면, 우리는 주로 다음과 같이 세 가지 일반적인 종류의 인스트럭션을 고려합니다:

    • 작업별 지침. 첫 번째 유형의 명령어의 경우, 가장 일반적으로 사용되는 멀티태스크 명령어 데이터셋인 FLAN-T5[64]를 채택하는데, 이 데이터셋은 이전 작업에서 가져온 4개의 데이터 혼합을 결합하여 1,836개의 작업과 1,500만 개 이상의 명령어를 포함하고 있습니다.
    • 일일 채팅 명령어. 이러한 유형의 명령은 사용자가 일상 생활에 대해 질문하는 대화로, 실제 시나리오와 더 밀접하게 관련되어 있습니다. 저희는 6만 3천 개의 실제 사용자 명령어로 구성된 ShareGPT 명령어 세트를 채택했습니다. 이는 비쿠나의 핵심 명령어로 사용되었습니다.
    • 합성 명령어. 기존 명령어를 재사용하는 것 외에도 LLM을 사용하여 대규모 명령어를 자동으로 합성할 수도 있습니다. 우리는 널리 사용되는 합성 명령어 데이터 세트인 Self-Instruct-52K [125]를 채택하고 있으며, 이 데이터 세트는 약 8만 2천 개의 인스턴스 입력 및 출력과 짝을 이루는 52K 명령어로 구성되어 있습니다. 이렇게 생성된 명령어는 사람이 작성한 시드 작업(예: 문법 검사, 브레인스토밍)과 유사한 데이터 분포를 갖습니다. 원본 FLAN-T5 데이터 세트는 매우 크기 때문에(예: 1,500만 개 이상), 비슷한 규모의 다른 명령어 데이터 세트(예: ShareGPT 및 Self-Instruct-52K)와 공정하게 비교하기 위해 8만 개의 명령어를 무작위로 샘플링했습니다. 실험에서는 각 개별 명령어 세트에 대해 테스트하여 각 명령어 자체의 효과를 살펴보고 모델 성능에 대한 조합 효과도 조사합니다. 

    개선 전략

    인간 사용자의 실제 명령어는 LLM을 미세 조정하는 데 더 적합하지만 대규모로 수집하기는 어렵습니다. 사람이 생성한 명령어의 대안으로 대부분의 기존 연구에서는 주로 LLM이 생성한 합성 명령어를 채택하고 있습니다. 그러나 합성 명령어에는 주제의 다양성이 부족하고 명령어의 난이도가 고르지 않거나 너무 쉽거나 어렵다는 등의 잠재적인 문제점이 있습니다. 따라서 합성 명령어의 품질을 개선할 필요가 있습니다. 기존 작업에서 널리 사용되는 4가지 주요 개선 전략을 다음과 같이 요약합니다:

    • 명령어 복잡성 강화. 기존 연구[260]에서 논의된 바와 같이, 명령어의 복잡성을 강화하면 더 많은 작업 요구를 포함하거나 더 많은 추론 단계를 필요로 하는 등 복잡한 명령어를 따르는 LLM의 모델 용량을 향상시킬 수 있습니다. 이 전략을 검증하기 위해 우리는 제약 조건을 추가하고, 추론 단계를 늘리고, 입력을 복잡하게 하는 등 복잡성 수준을 점진적으로 높이는 방식으로 WizardLM [260]을 따릅니다. 우리는 셀프 인스트럭트52K 데이터세트[260]를 기반으로 위의 개선 접근 방식을 통해 생성된 복잡성 강화 명령어 데이터세트로 공개적으로 출시된 WizardLM-70K 명령어를 활용합니다. 
    • 토픽 다양성 증가. 복잡성 외에도 명령어 데이터셋의 토픽 다양성을 개선하면 실제 세계의 다양한 작업에서 LLM의 다양한 능력을 이끌어내는 데 도움이 될 수 있습니다[261]. 그러나 다양한 명령어를 생성하기 위한 자가 인스트럭션 프로세스를 직접 제어하기는 어렵습니다. YuLan-Chat [262]에 따라, 우리는 ChatGPT를 사용하여 Self-Instruct-52K 데이터 세트의 명령어를 재작성하여 특정 프롬프트를 통해 293개의 토픽으로 조정합니다. 마지막으로 다양성이 증가된 데이터셋으로 70만 개의 명령어를 얻습니다. 
    • 명령어 수 확장하기. 위의 측면 외에도 명령어 수는 모델 성능에 영향을 줄 수 있는 중요한 요소입니다. 특히 더 많은 명령어를 사용하면 작업 지식을 확장하고 LLM의 명령어 추종 능력을 향상시킬 수 있습니다 [64]. 이 전략을 살펴보기 위해 MOSS 프로젝트에서 공개된 합성 명령어 세트에서 새로운 명령어를 샘플링하는데, 이 명령어 역시 동일한 자가 인스트럭트 방법을 사용하여 합성됩니다[125]. 이를 Self-Instruct52K 데이터 세트와 혼합하여 22만 개의 명령어가 포함된 더 큰 데이터 세트를 구성합니다. 
    • 명령어 난이도 균형 맞추기. 합성 명령어에 너무 쉽거나 어려운 명령어가 포함되면 학습이 불안정해지거나 LLM에 과도하게 적합해질 수 있습니다. 이러한 잠재적 효과를 살펴보기 위해 유니티는 LLM의 난해성 점수를 활용하여 명령어의 난이도를 추정하고 너무 쉽거나 어려운 명령어를 제거합니다. 공정한 비교를 위해 동일한 규모의 명령어를 생성하기 위해 대규모 명령어 데이터 세트에서 22만 개의 명령어에 대한 난해도를 계산하는 LLaMA-7B 모델을 채택한 다음, 난해도 점수가 중간 정도인 7만 개의 명령어를 난이도 균형 데이터 세트로 유지합니다.

    실험 설정

    명령어 데이터의 효과에 대한 실험을 수행하기 위해 명령어 튜닝에 널리 사용되는 LLM 백본인 LLaMA-7B를 튜닝하기 위해 이 새로운 명령어 데이터 세트를 활용합니다. 실험에는 YuLan-Chat[262]의 코드를 사용하고, 8개의 A800-80G GPU로 구성된 서버에서 모델을 훈련합니다. 모든 하이퍼파라미터 설정은 스탠포드 알파카와 동일하게 유지합니다. 미세 조정된 모델의 명령어 추종 능력을 더 잘 평가하기 위해 두 가지 설정, 즉 채팅 설정과 QA 설정을 고려합니다. 채팅 설정은 주로 일상적인 채팅에서 발생하는 사용자 명령과 쿼리를 활용하고, QA 설정은 주로 기존 NLP 데이터 세트의 질문 답변 예제를 활용합니다. 채팅 설정에 대한 평가는 알파카팜 평가 세트[263]를 기반으로 수행됩니다. 전체 쌍별 비교를 사용하는 대신, 셀프 인스트럭트-52K에서 미세 조정된 LLaMA7B 모델을 참조 기준선으로 선택한 다음 다른 모든 미세 조정된 모델을 이 모델과 비교합니다. 지침을 생성하기 위한 다양한 전략의 유용성을 검토하는 데 중점을 두기 때문에, Self-Instruct-52K에서 미세 조정된 모델이 좋은 참고 자료가 될 수 있습니다. 알파카팜[263]에 따라, 각 비교에 대해 ChatGPT를 사용하여 매번 비교한 두 모델 중 어떤 응답이 사용자 쿼리에 가장 적합한지 자동으로 주석을 달고, 승률(%)을 평가 지표로 보고합니다. QA 설정의 경우, 두 가지 벤치마크인 MMLU [264]와 BBH3k(YuLan-Chat에서 발표한 BBH 벤치마크 [265]의 하위 집합)를 선택하고, 휴리스틱 규칙을 사용하여 이러한 LLM의 답변을 파싱하여 기본 설정에 따라 정확도를 평가합니다.

    명령어 튜닝과 평가 모두에 대해 다음과 같은 프롬프트를 채택합니다: "다음은 인간과 AI 어시스턴트 간의 대화입니다. AI 어시스턴트는 사용자의 질문에 대해 유용하고 상세하며 정중한 답변을 제공합니다. \n [|Human|]:{입력}\n[|AI|]:". 결과를 재현하기 위해 링크에서 코드와 데이터를 공개합니다.

    결과 및 분석

    7B LLaMA를 기반으로 다양한 명령어 데이터세트를 사용한 실험 결과는 표 8에 나와 있습니다. 다음으로 각 결과를 자세히 요약하고 분석합니다.

    • 작업 형식의 명령어는 QA 설정에 더 적합하지만 채팅 설정에는 유용하지 않을 수 있습니다. FLAN-T5를 사용한 명령어 튜닝의 성능과 ShareGPT 및 Self-Instruct-52K의 성능을 비교한 결과, QA 벤치마크에서는 FLAN-T5가 지속적으로 더 나은 성능을 달성하는 반면 채팅 설정에서는 ShareGPT보다 성능이 떨어지는 것을 관찰할 수 있었습니다. 그 이유는 FLAN-T5가 번역 및 독해와 같은 기존 NLP 작업의 지침과 예제를 혼합하여 구성되었기 때문입니다. 그 결과, FLAN-T5로 미세 조정된 LLaMA는 QA 작업에서는 더 나은 성능을 보이지만 사용자 쿼리에서는 성능이 떨어집니다. 이와는 대조적으로 ShareGPT는 실제 사람과 ChatGPT의 대화로 구성되어 있어 일상 생활에서 사용자 지시를 따르도록 LLaMA를 더 잘 유도할 수 있지만 QA 작업을 수행하기에는 적합하지 않을 수 있습니다. 
    • 다양한 종류의 인스트럭션을 혼합하는 것은 LLM의 종합적인 능력을 향상시키는 데 매우 유용합니다. 미세 조정을 위해 세 가지 종류의 인스트럭션을 혼합한 결과, 파생된 LLaMA 변형(FLAN-T5, ShareGPT 및 Self-Instruct-52K 사용)이 두 작업 설정 모두에서 우수한 성능을 발휘하는 것을 확인할 수 있었습니다. MMLU에서는 43.69 대 38.58(FLAN-T5)과 같이 개별 명령어 세트를 사용하는 것보다 큰 차이로 성능이 뛰어납니다. 이는 여러 소스의 명령어 데이터세트를 혼합하면 명령어 수를 확장하고 다양성을 증가시켜 명령어 튜닝 LLM의 성능을 개선하는 데 도움이 된다는 것을 보여줍니다.
    • 명령어의 복잡성과 다양성을 높이면 모델 성능이 향상됩니다. 셀프 인스트럭트-52K 데이터 세트의 복잡성과 다양성을 각각 증가시킴으로써 LLaMA의 채팅 및 QA 성능을 지속적으로 개선할 수 있습니다(예: MMLU에서 37.52에서 39.73으로). 이는 두 가지 전략이 모두 LLM의 명령어 추종 능력을 향상시키는 데 유용하다는 것을 보여줍니다. 또한 복잡성을 개선하면 QA 작업에서 더 큰 성능 향상을 가져온다는 것을 알 수 있습니다. 그 이유는 QA 과제가 대부분 LLM을 평가하기 위한 어려운 문제들로 구성되어 있어, 미세 조정 단계에서 복잡한 명령어를 학습한 LLM이 더 잘 풀 수 있기 때문입니다.
    • 단순히 명령어 개수를 늘리는 것은 그다지 유용하지 않을 수 있으며, 난이도의 균형을 맞추는 것이 항상 도움이 되는 것은 아닙니다. 표 8의 결과에서 볼 수 있듯이, 난이도 균형을 맞추고 미세 조정 명령어 수를 늘리는 것은 실험에 큰 도움이 되지 않습니다. 특히 명령어 수를 늘리는 경우, BBH3k에서는 29.81에서 26.63으로 감소하는 등 오히려 성능에 악영향을 미쳤습니다. 이는 품질 관리 없이 단순히 합성 명령어 수를 확장하는 것이 성능 향상에 효과적이지 않을 수 있음을 보여줍니다. 또한 중간 난이도의 명령어로 미세 조정하면 채팅 설정에서는 성능이 좋은 반면 QA 설정에서는 성능이 약간 저하됩니다. 가능한 이유는 난해도 점수가 높은 복잡하고 어려운 지침을 필터링하여 복잡한 질문에 대한 모델 성능을 저하시킬 수 있기 때문입니다.

    5.2 얼라인먼트 튜닝

    이 파트에서는 먼저 얼라인먼트의 정의와 기준을 통해 얼라인먼트의 배경을 살펴본 다음, LLM 얼라인먼트를 위한 휴먼 피드백 데이터 수집에 초점을 맞추고 마지막으로 얼라인먼트 튜닝을 위한 휴먼 피드백 강화 학습(RLHF)의 핵심 기법에 대해 설명합니다. 

    5.2.1 얼라인먼트의 배경 및 기준

    배경. 

    LLM은 다양한 자연어 처리 작업에서 놀라운 성능을 보여 왔습니다[55, 56, 62, 81]. 그러나 이러한 모델은 때때로 허위 정보 조작, 부정확한 목표 추구, 유해하고 오해의 소지가 있으며 편향된 표현 생성 등 의도하지 않은 동작을 보일 수 있습니다[61, 266]. 언어 모델링의 경우, 인간의 가치나 선호도를 고려하지 않은 채 단어 예측을 통해 모델 파라미터를 사전 학습하는 것이 목표입니다. 이러한 예기치 않은 동작을 방지하기 위해 LLM이 인간의 기대에 따라 행동하도록 하는 휴먼 얼라인먼트가 제안되었습니다 [61, 267]. 그러나 기존의 사전 훈련 및 적응 튜닝(예: 인스트럭션 튜닝)과 달리 이러한 정렬은 매우 다른 기준(예: 도움, 정직성, 무해성)을 고려해야 합니다. 관련 문헌에서 정렬은 LLM의 일반적인 능력에 어느 정도 해를 끼칠 수 있으며, 이를 정렬 세금이라고 합니다[268].

    정렬 기준. 

    최근 LLM의 행동을 규제하기 위한 다양한 기준 개발에 대한 관심이 높아지고 있습니다. 여기서는 기존 문헌에서 널리 채택되고 있는 세 가지 대표적인 정렬 기준(도움, 정직, 무해)을 예로 들어 논의하고자 합니다 [61, 268]. 이외에도 행동, 의도, 인센티브, 내적 측면[266] 등 다양한 관점에서 LLM을 위한 다른 정렬 기준이 있으며, 이는 위의 세 가지 기준과 본질적으로 유사하거나 적어도 유사한 정렬 기법을 사용합니다. 정직성을 정확성으로 대체하는 등 특정 필요에 따라 세 가지 기준을 수정하는 것도 가능합니다[100]. 다음은 세 가지 대표적인 정렬 기준에 대해 간략하게 설명합니다:

    • 유용성. 도움이 되려면 LLM은 가능한 한 간결하고 효율적인 방식으로 사용자의 업무 해결이나 질문에 대한 답변을 지원하려는 분명한 시도를 보여야 합니다. 더 높은 수준에서는 추가 설명이 필요한 경우 적절한 질문을 통해 추가적인 관련 정보를 이끌어낼 수 있는 능력을 입증하고 적절한 수준의 민감성, 지각력, 신중함을 보여야 합니다[268]. 사용자의 의도를 정확하게 정의하고 측정하기 어렵기 때문에 도움이 되는 행동의 정렬을 실현하는 것은 LLM에게 어려운 과제입니다[266]. 
    • 정직성. 기본적으로 정직하게 정렬된 LLM은 정보를 조작하는 대신 사용자에게 정확한 콘텐츠를 제공해야 합니다. 또한, 어떤 형태의 속임수나 잘못된 정보 전달을 피하기 위해 LLM이 출력에 적절한 수준의 불확실성을 전달하는 것이 중요합니다. 이를 위해서는 모델이 자신의 능력과 지식 수준(예: "미지의 지식")에 대해 알아야 합니다. 268]의 논의에 따르면 정직성은 유용성 및 무해성에 비해 더 객관적인 기준이므로, 정직성 정렬은 잠재적으로 인간의 노력에 덜 의존하여 개발될 수 있습니다.
    • 무해성. 무해하기 위해서는 모델에서 생성되는 언어가 모욕적이거나 차별적이지 않아야 합니다. 또한 악의적인 목적으로 요청을 유도하려는 은밀한 시도를 탐지할 수 있어야 합니다. 이상적으로는 모델이 위험한 행동(예: 범죄 저지르기)을 하도록 유도받았을 때 정중하게 거절해야 합니다. 그럼에도 불구하고 어떤 행동이 유해한 것으로 간주되는지, 그리고 어느 정도까지 유해한지는 개인이나 사회[268]에 따라 크게 달라지며, 이는 누가 LLM을 사용하는지, 제기된 질문의 유형, LLM이 사용되는 상황(예: 시간)에 따라 달라집니다.

    이러한 기준은 매우 주관적이며 인간의 인지를 기반으로 개발되었습니다. 따라서 이를 LLM의 최적화 목표로 직접 공식화하기는 어렵습니다. 기존 작업에서는 LLM을 조정할 때 이러한 기준을 충족하는 여러 가지 방법이 있습니다. 유망한 기법으로는 레드팀[269]이 있는데, 이는 수동 또는 자동화된 수단을 사용하여 적대적인 방식으로 LLM을 조사하여 유해한 출력을 생성한 다음 이러한 출력을 방지하기 위해 LLM을 업데이트하는 것을 포함합니다.

    5.2.2 사람 피드백 수집하기

    사전 훈련 단계에서 LLM은 대규모 말뭉치에 대한 언어 모델링 목표를 사용하여 훈련됩니다. 그러나 이 단계에서는 사람의 주관적이고 정성적인 평가(이 조사에서는 휴먼 피드백이라고 함)를 고려할 수 없습니다. 고품질의 휴먼 피드백은 인간의 선호도와 가치에 맞게 LLM을 조정하는 데 매우 중요합니다. 이 부분에서는 피드백 데이터 수집을 위해 휴먼 라벨러 팀을 선정하는 방법에 대해 설명합니다.

    휴먼 라벨러 선정

    기존 연구에서 휴먼 피드백 데이터를 생성하는 주된 방법은 휴먼 어노테이션입니다[61, 100, 267]. 이는 적절한 휴먼 라벨러를 선정하는 것이 얼마나 중요한 역할을 하는지를 강조합니다. 고품질의 피드백을 제공하기 위해 휴먼 라벨러는 자격을 갖춘 교육 수준과 뛰어난 영어 실력을 갖춰야 합니다. 예를 들어, Sparrow [100]는 휴먼 라벨러가 최소 학부 수준의 교육 자격을 취득한 영국에 거주하는 영어 원어민이어야 한다고 규정하고 있습니다. 그럼에도 불구하고 여러 연구[267]에 따르면 연구자와 휴먼 라벨러의 의도 사이에 여전히 불일치가 존재하며, 이로 인해 휴먼 피드백의 품질이 낮아지고 LLM이 예상치 못한 결과물을 생성할 수 있습니다. 이 문제를 해결하기 위해 InstructGPT[61]는 인간 라벨러와 연구자 간의 일치도를 평가하여 라벨러를 필터링하는 스크리닝 프로세스를 추가로 수행합니다. 구체적으로, 연구자는 먼저 소량의 데이터에 라벨을 붙인 다음 자신과 인간 라벨러 간의 일치도를 측정합니다. 가장 높은 일치도를 보인 라벨러를 선별하여 후속 주석 작업을 진행합니다. 다른 연구[270]에서는 인간 피드백의 높은 품질을 보장하기 위해 '슈퍼 레이터'를 사용하기도 합니다. 연구자들은 휴먼 라벨러의 성능을 평가하여 높은 일치율 등 우수한 성과를 보인 휴먼 라벨러 그룹을 슈퍼 레이터로 선정합니다. 슈퍼 레이터는 후속 연구에서 연구자들과 협업할 수 있는 우선권이 주어집니다. 인간 라벨러가 LLM의 출력물에 주석을 달 때, 자세한 지침을 명시하고 인간 라벨러에게 즉각적인 가이드를 제공하면 라벨러의 주석을 더 잘 조절할 수 있습니다.

    사람의 피드백 수집. 

    기존 작업에서는 주로 세 가지 접근 방식을 통해 인간 라벨러로부터 피드백 및 선호도 데이터를 수집했습니다.

    • 랭킹 기반 접근 방식. 초기 연구[267]에서 휴먼 라벨러는 보다 세분화된 정렬 기준을 고려하지 않고 모델에서 생성된 결과물을 거친 방식으로 평가(즉, 최고만을 선택)하는 경우가 많습니다. 그럼에도 불구하고 라벨러마다 최상의 후보 결과물 선택에 대해 다양한 의견을 가질 수 있으며, 이 방법은 선택되지 않은 샘플을 무시하기 때문에 부정확하거나 불완전한 인적 피드백을 초래할 수 있습니다. 이 문제를 해결하기 위해 후속 연구[100]에서는 후보 산출물을 비교하여 선호도 순위를 도출하는 Elo 등급 시스템을 도입했습니다. 출력 순위는 모델이 특정 출력을 다른 출력보다 선호하도록 안내하는 훈련 신호 역할을 하여 더 신뢰할 수 있고 안전한 출력을 유도합니다. 
    • 질문 기반 접근 방식. 또한, 인간 라벨러는 연구자들이 설계한 특정 질문에 답함으로써 보다 상세한 피드백을 제공할 수 있으며[72], 정렬 기준과 LLM에 대한 추가 제약 조건을 다룰 수 있습니다. 특히 WebGPT[72]에서는 모델이 검색된 문서에서 관련 정보를 필터링하고 활용할 수 있도록 지원하기 위해 휴먼 라벨러가 검색된 문서가 주어진 입력에 대한 답변에 유용한지 여부에 대한 여러 옵션이 있는 질문에 답하도록 요구합니다. 
    • 규칙 기반 접근 방식. 많은 연구에서 규칙 기반 방법을 개발하여 보다 상세한 휴먼 피드백을 제공합니다. 대표적인 사례로 Sparrow[100]는 라벨러가 가장 좋다고 생각하는 응답을 선택할 뿐만 아니라 일련의 규칙을 사용하여 모델에서 생성된 응답이 도움이 되고 정확하며 무해하다는 정렬 기준을 충족하는지 테스트합니다. 이러한 방식으로 (1) 모델 생성 결과의 품질을 쌍으로 비교하여 응답 선호도 피드백을 얻고, (2) 인간 라벨러의 평가를 수집하여 규칙 위반 피드백(즉, 생성된 결과물이 규칙을 어느 정도 위반했는지를 나타내는 점수)을 얻는 등 두 가지 종류의 인간 피드백 데이터를 얻을 수 있습니다. 또한 GPT-4[46]는 규칙 기반 보상 모델로 제로 샷 분류기 세트(GPT-4 자체에 기반)를 활용하여 모델에서 생성된 출력이 사람이 작성한 규칙 집합을 위반하는지 여부를 자동으로 결정할 수 있습니다. 

    여기서는 ChatGPT와 같은 최근의 강력한 LLM에서 널리 사용되고 있는 잘 알려진 기술인 인간 피드백을 통한 강화 학습(RLHF)에 초점을 맞춥니다. 아래에서 설명하는 것처럼 5.2.1절에 소개된 정렬 기준은 사용자의 쿼리에 대한 LLM의 응답에 대한 사람의 피드백을 통해 학습함으로써 충족할 수 있습니다.

    5.2.3 인간 피드백을 통한 강화 학습

    LLM을 인간의 가치에 맞추기 위해, 수집된 인간 피드백 데이터로 LLM을 미세 조정하기 위해 인간 피드백으로부터의 강화 학습(RLHF)[70, 267]이 제안되었으며, 이는 조정 기준(예: 유용성, 정직성, 무해성)을 개선하는 데 유용합니다. RLHF는 강화 학습(RL) 알고리즘(예: 근거리 정책 최적화(PPO)[111])을 사용하여 보상 모델을 학습함으로써 사람의 피드백에 맞게 LLM을 조정합니다. 이러한 접근 방식은 잘 조정된 LLM을 개발하기 위한 훈련 루프에 인간을 통합하며, 그 예는 InstructGPT [61]에서 볼 수 있습니다. 

    RLHF 시스템. 

    RLHF 시스템은 크게 세 가지 주요 구성 요소, 즉 정렬할 사전 학습된 LM, 사람의 피드백을 통해 학습하는 보상 모델, LM을 학습하는 RL 알고리즘으로 이루어져 있습니다. 특히, 사전 학습된 LM은 일반적으로 기존의 사전 학습된 LM 파라미터로 초기화되는 생성 모델입니다. 예를 들어, OpenAI는 최초의 인기 RLHF 모델인 InstructGPT[61]에 175B GPT-3을 사용하고, DeepMind는 GopherCite 모델[270]에 2,800억 개의 파라미터 모델인 Gopher[59]를 사용합니다. 또한 보상 모델(RM)은 LM에 의해 생성된 텍스트에 대한 인간의 선호도를 반영하는 (학습된) 안내 신호를 제공하며, 일반적으로 스칼라 값의 형태로 제공됩니다. 보상 모델은 미세 조정된 LM 또는 사람의 선호도 데이터를 사용하여 새로 학습된 LM의 두 가지 형태를 취할 수 있습니다. 기존 연구에서는 일반적으로 정렬된 LM과 다른 파라미터 스케일을 가진 보상 모델을 사용합니다[61, 270]. 예를 들어, OpenAI는 6B GPT-3을, DeepMind는 7B Gopher를 각각 보상 모델로 사용합니다. 마지막으로 보상 모델의 신호를 사용하여 사전 학습된 LM을 최적화하기 위해 대규모 모델 튜닝을 위한 특정 RL 알고리즘을 설계합니다. 특히, 근거리 정책 최적화(PPO)[111]는 기존 연구에서 정렬을 위해 널리 사용되는 RL 알고리즘입니다[61, 100, 270].

    RLHF의 주요 단계. 

    그림 9는 아래에서 소개하는 RLHF [61]의 전체 3단계 프로세스를 보여줍니다.

    • 지도 미세 조정. LM이 처음에 원하는 동작을 수행하도록 하려면 일반적으로 LM을 미세 조정하기 위해 입력 프롬프트(명령어)와 원하는 출력을 포함하는 감독 데이터 세트를 수집해야 합니다. 이러한 프롬프트와 출력은 작업의 다양성을 보장하면서 특정 작업에 대해 사람이 라벨러가 작성할 수 있습니다. 예를 들어, InstructGPT[61]는 휴먼 라벨러에게 공개 QA, 브레인스토밍, 채팅, 재작성 등 여러 생성 작업에 대한 프롬프트(예: "내 경력에 대한 열정을 되찾는 방법에 대한 5가지 아이디어 나열")와 원하는 출력을 작성하도록 요청합니다. 특정 설정이나 시나리오에서는 첫 번째 단계가 선택 사항이라는 점에 유의하세요.
    • 보상 모델 훈련. 두 번째 단계는 사람의 피드백 데이터를 사용하여 RM을 훈련하는 것입니다. 구체적으로는 LM을 사용하여 감독된 데이터 세트 또는 사람이 생성한 프롬프트에서 샘플링된 프롬프트를 입력으로 사용하여 특정 수의 출력 텍스트를 생성합니다. 그런 다음 인간 라벨러에게 이러한 쌍에 대한 선호도를 주석으로 달도록 요청합니다. 주석 프로세스는 다양한 형태로 수행될 수 있으며, 일반적인 접근 방식은 생성된 후보 텍스트에 순위를 매겨 주석을 달면 주석자 간의 불일치를 줄일 수 있습니다. 그런 다음 RM을 학습시켜 사람이 선호하는 결과물을 예측합니다. InstructGPT에서는 라벨러가 모델에서 생성된 결과물의 순위를 최고부터 최하위까지 매기고, RM(즉, 6B GPT-3)이 순위를 예측하도록 학습됩니다.
    • RL 미세 조정. 이 단계에서는 LM을 정렬(즉, 미세 조정)하는 작업이 RL 문제로 공식화됩니다. 이 설정에서 사전 학습된 LM은 프롬프트를 입력으로 받아 출력 텍스트를 반환하는 정책으로 작동하며, 그 행동 공간은 어휘, 상태는 현재 생성된 토큰 시퀀스, 보상은 RM이 제공합니다. 초기(튜닝 전) LM에서 크게 벗어나지 않도록 하기 위해 일반적으로 보상 함수에 페널티 조건을 통합합니다. 예를 들어, InstructGPT는 PPO 알고리즘을 사용하여 RM에 대해 LM을 최적화합니다. 각 입력 프롬프트에 대해 InstructGPT는 현재 LM에서 생성된 결과와 초기 LM 사이의 KL 차이를 페널티로 계산합니다. 두 번째 단계와 마지막 단계를 여러 차례 반복하여 LLM을 더 잘 정렬할 수 있다는 점에 유의하세요. RL 알고리즘의 불안정성으로 인해 최근 연구[271]에서는 더 높은 보상을 받는 최고 순위의 샘플을 재사용하여 RL 튜닝을 다른 감독 미세 조정으로 대체합니다.

    5.3 매개변수 효율적 모델 조정

    지금까지 특정 목표에 따라 LLM을 조정하기 위한 인스트럭션 튜닝과 정렬 튜닝의 접근 방식에 대해 설명했습니다. LLM은 방대한 양의 모델 파라미터로 구성되므로 전체 파라미터 튜닝을 수행하려면 비용이 많이 듭니다. 이 섹션에서는 LLM에서 효율적인 튜닝을 수행하는 방법에 대해 설명합니다. 먼저 Transformer 언어 모델에 대한 몇 가지 대표적인 파라미터 효율적 미세 조정 방법을 검토한 다음, 파라미터 효율적 미세 조정 LLM에 대한 기존 연구를 요약합니다.

    5.3.1 파라미터 효율적 미세 조정 방법

    기존 문헌에서 파라미터 효율적 미세 조정[127, 272, 273]은 가능한 한 좋은 성능을 유지하면서 학습 가능한 파라미터의 수를 줄이는 것을 목표로 하는 중요한 주제였습니다. 여기에서는 어댑터 튜닝, 접두사 튜닝, 프롬프트 튜닝, LoRA 등 Transformer 언어 모델에 대한 네 가지 파라미터 효율적 미세 튜닝 방법을 간략하게 살펴봅니다. 이 네 가지 방법의 그림은 그림 12에 나와 있습니다.

    어댑터 튜닝

    어댑터 튜닝은 작은 신경망 모듈(어댑터라고 함)을 트랜스포머 모델에 통합하는 것입니다[274]. 어댑터 모듈을 구현하기 위해 먼저 원래 특징 벡터를 더 작은 차원으로 압축한 다음 비선형 변환을 거쳐 원래 차원으로 복구하는 병목 아키텍처가 [274, 275]에서 제안되었습니다. 어댑터 모듈은 각 트랜스포머 레이어에 통합되며, 일반적으로 트랜스포머 레이어의 두 핵심 부분(즉, 주의 레이어와 피드포워드 레이어) 각각 뒤에 직렬 삽입을 사용합니다. 또는 병렬 어댑터[276]를 트랜스포머 레이어에 사용할 수도 있는데, 이 경우 두 개의 어댑터 모듈을 주의 레이어 및 피드 포워드 레이어와 병렬로 배치합니다. 미세 조정 중에 어댑터 모듈은 특정 작업 목표에 따라 최적화되며 이 과정에서 원래 언어 모델의 매개 변수는 고정됩니다. 이러한 방식으로 미세 조정 중에 학습 가능한 파라미터의 수를 효과적으로 줄일 수 있습니다.

    접두사 튜닝

    접두사 튜닝[272]은 학습 가능한 연속 벡터 집합인 접두사 시퀀스를 언어 모델의 각 Transformer 레이어에 추가합니다. 이러한 접두사 벡터는 작업별로 다르며 가상 토큰 임베딩으로 간주할 수 있습니다. 접두사 벡터를 최적화하기 위해 접두사를 직접 최적화하는 대신 더 작은 행렬을 접두사의 파라미터 행렬에 매핑하는 MLP 함수를 학습하는 재파라미터화 트릭[272]이 제안되었습니다. 이 기법은 안정적인 학습에 유용하다는 것이 입증되었습니다. 최적화 후에는 매핑 함수는 폐기되고, 도출된 접두사 벡터만 유지되어 작업별 성능을 향상시킬 수 있습니다. 접두사 매개변수만 학습되기 때문에 매개변수 효율이 높은 모델 최적화가 가능합니다. 접두사 튜닝과 유사하게, ptuning v2 [277]는 자연어 이해를 위해 특별히 계층별 프롬프트 벡터를 Transformer 아키텍처에 통합합니다.

    이해, 공유 프롬프트를 공동으로 최적화하기 위해 멀티태스크 학습을 활용합니다. 이는 자연어 이해 작업에서 다양한 매개변수 척도의 모델 성능을 개선하는 데 유용한 것으로 나타났습니다.

    프롬프트 튜닝

    접두사 튜닝과는 달리 프롬프트 튜닝[273, 278]은 주로 입력 레이어에 학습 가능한 프롬프트 벡터를 통합하는 데 중점을 둡니다. 이산 프롬프트 방법[280, 281]을 기반으로 소프트 프롬프트 토큰 그룹(자유 형식[278] 또는 접두사 형식[273])을 포함하여 입력 텍스트를 증강한 다음 프롬프트 증강 입력을 사용하여 특정 다운스트림 작업을 해결합니다. 구현 시 작업별 프롬프트 임베딩은 입력 텍스트 임베딩과 결합되며, 이후 언어 모델에 공급됩니다. P-튜닝[278]은 자연어 이해와 생성을 위한 아키텍처에 적용할 수 있는 컨텍스트, 프롬프트 및 대상 토큰을 결합하는 자유 형식을 제안했습니다. 이들은 양방향 LSTM을 통해 소프트 프롬프트 토큰의 표현을 추가로 학습합니다. 프롬프트 튜닝이라는 또 다른 대표적인 접근 방식[273]은 입력에 접두사 프롬프트를 직접 추가합니다. 훈련 중에는 작업별 감독에 따라 프롬프트 임베딩만 학습됩니다. 이 방법은 입력 계층에 훈련 가능한 매개 변수의 수가 적기 때문에 다음과 같은 것으로 나타났습니다. 기본 언어 모델의 모델 용량에 따라 성능이 크게 좌우됩니다[273].

    낮은 순위 적응(LoRA)

    LoRA[127]는 각 고밀도 계층에서 업데이트 행렬을 근사화하기 위해 낮은 순위 제약 조건을 부과하여 다운스트림 작업에 적응하기 위한 훈련 가능한 파라미터를 줄입니다. 파라미터 행렬 W를 최적화하는 경우를 생각해 보겠습니다. 업데이트 프로세스는 일반적인 형태로 다음과 같이 작성할 수 있습니다: W ← W + ∆W. LoRA의 기본 아이디어는 원래 행렬 W ∈ R m×n을 동결하면서 매개변수 업데이트 ∆W를 낮은 순위 분해 행렬, 즉 ∆W = A - B⊤로 근사화하는 것입니다. 여기서 A ∈ R m×k 및 B ∈ R n×k는 작업 적응을 위한 학습 가능한 매개변수이고 k ≪ min(m, n)은 축소된 순위입니다. LoRA의 가장 큰 장점은 메모리와 스토리지 사용량(예: VRAM)을 크게 절약할 수 있다는 점입니다. 또한, 다양한 다운스트림 작업에 적응하기 위해 여러 작업별 저순위 분해 행렬을 유지하면서 하나의 큰 모델 사본만 유지할 수 있습니다. 또한 중요도 점수 기반 할당[282] 및 검색 없는 최적 순위 선택[283]과 같이 보다 원칙적인 접근 방식으로 순위를 설정하는 방법에 대해서도 여러 연구에서 논의되었습니다.

    위의 방법 외에도 Transformer 언어 모델의 효율적인 튜닝에 대한 광범위한 연구가 있습니다. 그러나 효율적인 튜닝에 대한 보다 포괄적인 논의는 이 글의 범위를 벗어나며, 이 주제에 대한 관련 논문 [276, 284]에서 찾아볼 수 있습니다. 

    5.3.2 LLM의 효율적인 파라미터 미세 조정

    LLM이 부상하면서 다운스트림 작업에서 보다 가벼운 적응 방식을 개발하기 위해 효율적인 튜닝에 대한 연구 관심이 높아지고 있습니다.

    특히 LoRA[127]는 파라미터 효율적 미세 조정을 위해 오픈소스 LLM(예: LLaMA, BLOOM)에 널리 적용되고 있습니다. 이러한 연구 시도 중 LLaMA와 그 변형은 파라미터 효율적 튜닝을 위해 많은 주목을 받았습니다. 예를 들어, AlpacaLoRA[126]는 알파카[124]의 경량 튜닝 버전으로 LoRA를 사용하여 훈련되었습니다(52,000명의 사람이 명령을 따르는 데모가 있는 미세 튜닝된 7B LLaMA 모델). 다양한 언어 또는 모델 크기에 따라 알파카-LoRA에 대한 광범위한 탐색이 있으며, 컬렉션 페이지에서 확인할 수 있습니다. 최근 연구인 LLaMAAdapter[285]에서는 학습 가능한 프롬프트 벡터를 각 트랜스포머 레이어에 삽입하는데, 초기화되지 않은 주의력을 통해 적합하지 않은 프롬프트 벡터의 영향을 완화하여 학습을 개선하는 방법이 제안되었습니다. 또한 이 접근 방식을 시각적 질문 답변과 같은 다중 모달 환경으로 확장합니다.

    또한 언어 모델에 대한 다양한 튜닝 방법의 효과를 조사하기 위한 실증적 연구[275]가 수행되었습니다. 이 연구에서는 직렬 어댑터 튜닝[274], 병렬 어댑터 튜닝[276, 286], LoRA[127] 등 네 가지 효율적인 튜닝 방법을 GPT-J(6B), BLOOM(7.1B), LLaMA(7B) 등 세 가지 오픈 소스 LLM에서 비교하여 평가했습니다. 6개의 수학 추론 데이터 세트에 대한 실험 결과에 따르면, 이러한 효율적인 튜닝 방법은 어려운 작업에서는 참조 기준인 GPT-3.5보다 성능이 낮지만, 간단한 작업에서는 비슷한 성능을 발휘하는 것으로 나타났습니다. 전반적으로 LoRA는 훨씬 적은 수의 학습 가능한 파라미터를 사용하여 이러한 비교 방법 중에서 상대적으로 우수한 성능을 보입니다.

    중요한 리소스로서 PEFT 라이브러리[287](매개변수 효율적 미세 조정을 의미)가 GitHub에 공개되었습니다. 여기에는 LoRA [127]/AdaLoRA [282], 접두사 튜닝 [272, 277], P-Tuning [278], 프롬프트 튜닝 [273] 등 널리 사용되는 여러 가지 효율적인 튜닝 방법이 포함되어 있습니다. 또한 GPT-2 및 LLaMA와 같은 여러 언어 모델을 지원하며, 대표적인 비전 트랜스포머 모델(예: ViT 및 스윈 트랜스포머)도 다룹니다.

    5.3.1절에서 설명한 것처럼 기존 문헌에는 효율적인 튜닝 방법이 많이 제안되어 있습니다. 그러나 이러한 접근법의 대부분은 LLM이 아닌 사전 학습된 소규모 언어 모델에서 테스트되었습니다. 아직까지 다양한 설정이나 작업에서 대규모 언어 모델에 대한 다양한 효율적인 튜닝 방법의 효과에 대한 철저한 조사가 부족합니다.

    5.4 메모리 효율적인 모델 적응

    모델 파라미터의 수가 매우 많기 때문에 LLM은 추론에 상당한 메모리 공간을 차지하므로 실제 애플리케이션에 배포하는 데 많은 비용이 듭니다. 이 섹션에서는 널리 사용되는 모델 압축 접근 방식(즉, 모델 양자화)을 통해 LLM의 메모리 사용량을 줄이는 방법을 설명하여 리소스가 제한된 환경에서 대용량 LLM을 사용할 수 있고 추론 지연 시간도 줄일 수 있습니다.

    5.4.1 양자화의 배경

    이 부분에서는 신경망을 위한 양자화 기법에 대한 일반적인 소개를 제공합니다. 

    신경망 압축에서 양자화는 종종 부동 소수점에서 정수로 매핑하는 과정[288], 특히 8비트 정수 양자화(즉, INT8 양자화)를 의미합니다. 신경망 모델의 경우 일반적으로 양자화해야 할 데이터에는 가중치(모델 파라미터)와 활성화(숨겨진 활성화)라는 두 가지 종류가 있는데, 원래는 부동소수점 숫자로 표현됩니다. 모델 양자화의 핵심 개념을 설명하기 위해 간단하지만 널리 사용되는 양자화 함수인 xq = R(x/S)-Z를 소개합니다. 이 함수는 부동 소수점 숫자 x를 양자화된 값 xq로 변환하는 함수입니다. 이 함수에서 S와 Z는 각각 스케일링 계수(클리핑 범위를 결정하는 두 개의 파라미터 α와 β 포함)와 영점 계수(대칭 또는 비대칭 양자화 결정)를 나타내며, R(-)는 스케일링된 부동 소수점 값을 근사 정수로 매핑하는 반올림 연산을 나타냅니다. 

    역과정으로 양자화 제거는 양자화된 값에서 원래 값을 복구합니다: x˜ = S - (xq + Z). 양자화 오류는 원래 값 x와 복구된 값 x˜ 사이의 수치 차이로 계산됩니다. 범위 매개변수 α와 β는 양자화 성능에 큰 영향을 미치며, 실제 데이터 분포에 따라 정적(오프라인) 또는 동적(런타임) 방식으로 보정해야 하는 경우가 많습니다.

    자세한 내용은 신경망의 양자화 방법에 대한 훌륭한 설문 조사 [288]를 참조하시기 바랍니다.

    5.4.2 LLM의 양자화 방법

    일반적으로 모델 양자화 접근 방식은 크게 두 가지로, 양자화 인식 훈련(QAT)(추가적인 전체 모델 재훈련 필요)과 훈련 후 양자화(PTQ)(모델 재훈련 필요 없음)가 있습니다. 소규모 언어 모델과 비교할 때 LLM의 양자화 방법을 설계하거나 선택할 때는 두 가지 주요 차이점을 고려해야 합니다. 첫째, LLM은 엄청난 수의 파라미터로 구성되므로 QAT 방식보다 훨씬 낮은 계산 비용으로 인해 PTQ 방식이 더 선호됩니다. 둘째, LLM은 매우 다른 활성화 패턴(즉, 큰 이상값 특징)을 나타내며, 특히 숨겨진 활성화와 같은 LLM을 정량화하기가 더 어려워집니다. 다음에서는 LLM을 위한 몇 가지 대표적인 PTQ 방법을 간략히 살펴보겠습니다.

    훈련 후 정량화(PTQ). 

    먼저 LLM을 위한 PTQ 방법을 소개합니다.

    • 혼합 정밀도 분해. 289]에서 관찰된 바와 같이, 모델 크기가 67억 개 이상의 파라미터에 도달하면 숨겨진 활성화에서 극단적으로 큰 값(이상값의 출현이라고 함)이 발생합니다. 흥미롭게도 이러한 이상값은 주로 트랜스포머 레이어의 일부 특정 특징 차원에 분포되어 있습니다. 이 발견을 바탕으로 [289]에서는 이상값이 있는 특징 차원과 나머지 차원을 행렬 곱셈으로 분리하는 LLM.int8()이라는 벡터 방식의 양자화 접근 방식이 제안되었습니다. 그런 다음 두 부분에 대한 계산을 각각 16비트 부동 소수점과 8비트 정수로 수행하여 이러한 이상값을 높은 정밀도로 복구합니다.
    • 세분화된 양자화. 트랜스포머 모델의 경우 가중치와 활성화는 일반적으로 텐서 형태로 표현됩니다. 간단한 접근 방식은 전체 텐서(즉, 텐서별 양자화)에 대해 거친 양자화 매개변수를 사용하는 것입니다[290]. 그러나 이는 일반적으로 부정확한 재구성 결과를 초래합니다. 따라서 양자화 오류를 줄이기 위해 세분화된 방법이 제안됩니다. 제로퀀트[291]는 활성화를 압축하기 위해 동적 보정과 함께 토큰 현명한 양자화 접근 방식을 채택합니다. 반면 가중치(양자화하기 쉬운)의 경우 그룹별 양자화 방식을 사용합니다. 실제로 모델 정량화에는 일반적으로 128[291, 292]의 그룹 크기가 사용됩니다.
    • 양자화 난이도 균형 맞추기. 가중치가 활성화보다 정량화하기 쉽다는 점을 고려하여 SmoothQuant [290]는 활성화에서 가중치로 난이도를 마이그레이션할 것을 제안합니다. 특히 선형 레이어에서 가중치와 활성화 간의 난이도 균형을 맞추기 위해 스케일링 변환을 통합합니다: Y = (Xdiag(s)-1) - (diag(s)W). 수학적으로 동등한 변환을 도입함으로써 이 공식은 스케일링 계수 s를 통해 양자화 난이도를 제어합니다. s를 설정하기 위해 마이그레이션 강도 매개변수 α를 통합하여 난이도의 균형을 맞추며, 각 항목 sj = max(xj)α/ max(wj)(1-α)는 마이그레이션 강도에 따라 결정됩니다.
    • 층별 양자화. 이 접근 방식은 층별 재구성 손실을 최소화하는 최적의 양자화 가중치를 찾습니다: arg minWc ∥ WX-WX c ∥2 2. 이 목표를 효율적으로 최적화하기 위해 GPTQ[293]는 모든 행에 대한 가중치의 양자화 순서를 고정하여 원래의 최적 뇌 양자화(OBQ)[294] 방법을 개선합니다. 또한 특별히 설계된 방법(예: 지연 일괄 업데이트 및 콜레스키 재구성)을 통해 GPTQ는 3비트 또는 4비트 정밀도로 매우 큰 모델(예: 175B OPT)을 정량화할 수 있습니다. 최근에는 AWQ[292]가 가중치에 대한 활성화 인식 스케일링을 통합하여 최적화 형태를 더욱 단순화했는데, 이는 SmoothQuant[290]의 아이디어와 유사합니다: 이상치 활성화에 해당하는 가중치는 정밀하게 정량화하는 것이 더 중요합니다. 이 방법은 재구성 손실을 직접 최적화하지 않고 대신 간단한 하이퍼 파라미터 검색을 수행하여 보정 데이터의 손실을 최소화합니다. 위의 방법에서 이러한 전략은 양자화 성능을 향상시키는 데 공동으로 사용될 수 있습니다. 고효율 구현을 위해 양자화 방법은 하드웨어 또는 시스템 수준의 지원(예: 효율적인 GPU 커널 또는 하드웨어 친화적인 그룹 파티션)에 의존하기도 합니다.

    기타 양자화 방법. 

    위에서는 주로 PTQ 방법에 중점을 두었으며, 다음으로 LLM을 정량화하기 위한 효율적인 미세 조정 방법 또는 QAT 방법을 탐색하는 두 가지 최근 연구를 소개합니다.

    • 효율적인 미세 조정으로 양자화 향상. 학습 후 양자화의 경우, 직접 저비트 양자화(예: INT4 양자화)는 종종 큰 성능 저하를 초래합니다. 이러한 문제를 극복하기 위해 QLoRA[295]는 양자화된 모델에 소형 조정 가능 어댑터(16비트 정밀도)를 추가로 통합하여 효율적이고 고정밀도의 모델 미세 조정을 달성합니다. 이는 LoRA(섹션 5.3.1 참조)와 양자화 방법의 장점을 결합한 것입니다. 실험 결과에 따르면 4비트 양자화 모델은 QLoRA를 통해 전체 16비트 미세 조정 성능을 달성할 수 있습니다.
    • LLM을 위한 양자화 인식 훈련(QAT). 최근 연구[296]에서는 가중치, 활성화 및 키값 캐시를 압축하기 위해 데이터 없는 증류 방법을 적용하여 QAT 방법의 효과를 살펴봅니다. LLaMA를 기반으로 광범위한 실험을 수행하여 가중치와 키값 캐시 모두에서 4비트 양자화에서 유망한 결과를 보였지만 4비트 활성화 양자화에서는 아직 더 많은 탐색이 필요한 것으로 나타났습니다.

    5.4.3 경험적 분석 및 결과

    정량화는 현재 배포 시 LLM의 메모리 사용량과 지연 시간을 줄이기 위한 일반적인 기술이 되었습니다. 특히, 높은 정확도를 유지하면서 LLM의 여러 부분(예: 가중치 또는 활성화)을 정량화하기 위해 어떤 수준의 정밀도(예: INT8 또는 INT4)를 적용할 수 있는지 이해하는 것이 중요합니다.

    최근에는 훈련 후 정량화 방법에 대한 여러 요인(예: 모델 크기 및 민감도)의 영향에 대해 매우 포괄적인 평가[297]가 수행되었습니다. 또 다른 연구[298]에서는 추론 성능에서 k비트 양자화의 스케일링 법칙을 조사합니다. 또한 이전 연구(예: LLM.int8() [299], GPTQ [293], QLoRA [295], GLM [83])에서도 다양한 설정에서 양자화 방법의 성능을 광범위하게 조사했습니다. 다음은 이러한 연구에서 얻은 몇 가지 중요한 결과를 요약한 것으로, 양자화 방법의 기술적 세부 사항을 자세히 다루고 싶지 않은 분들에게 유용할 것입니다.

    • INT8 가중치 정량화는 종종 LLM에서 매우 우수한 결과를 얻을 수 있는 반면, 정밀도가 낮은 가중치 정량화의 성능은 특정 방법에 따라 달라집니다 [290, 292, 293, 297]. 대부분의 경우 INT8 가중 양자화를 효과적으로 적용하면 성능 저하 없이 메모리 풋프린트를 줄일 수 있습니다. 반면, INT4(또는 INT3) 가중치 정량화의 경우 기존 방법들은 성능 저하를 줄이기 위해 레이어별 방법[291, 293], 활성화 인식 스케일링[292], 하위 순위 어댑터 튜닝[295] 등 특정 전략에 의존하고 있습니다. 흥미롭게도 LLM은 작은 크기의 언어 모델보다 낮은 비트 가중치 양자화에 덜 민감한 것으로 보입니다[297]. 실제로 동일한 메모리 비용으로 양자화 정밀도가 높은 작은 언어 모델보다는 양자화 정밀도가 낮은 큰 언어 모델을 사용하는 것이 좋습니다. 예를 들어, 4비트 60GB LLM은 8비트 30GB LLM보다 성능이 더 좋은 것으로 입증되었습니다[298].
    • 활성화는 가중치보다 정량화하기가 더 어렵습니다[289, 290, 297]. 크기가 6.7B 이상인 Transformer 언어 모델에서는 큰 이상값이 발생하는 것으로 밝혀졌습니다[289]. 이 문제는 LLM을 정량화하는 데 있어 가장 근본적인 어려움 중 하나였습니다. 이 문제를 극복하기 위해 혼합 정밀도 분해[289], 세분화된 정량화[289, 300], 난이도 마이그레이션[290] 등 다양한 방법을 적용하여 이상값의 영향을 완화할 수 있습니다. 큰 이상값은 주로 LLM의 활성화에 존재하기 때문에 작은 언어 모델은 활성화 양자화에 더 잘 견딥니다[297]. 실제로, 여러 가지 방법으로 만족스러운 결과를 얻을 수 있지만 고품질의 INT8 활성화 양자화는 여전히 어려운 작업입니다. 또한, 저정밀 활성화 양자화는 QAT 방법에서도 아직 성공적으로 탐구되지 않았습니다[296].
    • 효율적인 미세 조정 강화 양자화는 양자화된 LLM의 성능을 향상시킬 수 있는 좋은 옵션입니다[127, 295]. 양자화에서 효율적인 파인 튜닝 방법의 이점은 두 가지가 있습니다. 첫째, 고정밀 어댑터를 업데이트하여 피팅 용량을 증가시킴으로써 저비트 양자화[297]로 인한 성능 저하를 직접적으로 보상할 수 있습니다. 둘째, 소형 어댑터만 튜닝하여 명령어 튜닝이나 채팅 지향 튜닝과 같은 경량화 방식[295]으로 LLM의 작업별 또는 목표별 미세 튜닝을 유연하게 지원할 수 있습니다. 전반적으로 이 방법은 효과와 트레이닝 비용 간의 균형을 잘 맞출 수 있어 양자화된 LLM의 성능을 향상시킬 수 있는 유망한 접근 방식입니다.

    5.4.4 오픈 소스 라이브러리 및 양자화된 LLM

    이 부분에서는 사용 가능한 오픈 소스 양자화 라이브러리와 양자화된 LLM에 대해 간략하게 소개합니다. 

    양자화 라이브러리. 

    다음으로 LLM을 위한 세 가지 주요 양자화 라이브러리를 소개합니다:

    • 비트샌드바이트는 LLM.int8() [289] 및 8비트 옵티마이저 [301] 논문에 소개된 방법을 기반으로 개발되었습니다. 주로 8비트 행렬 곱셈과 8비트 옵티마이저에 대한 지원을 제공하는 LLM용 INT8 양자화에 중점을 둡니다.
    • GPTQ-for-LLaMA는 LLaMA 모델을 양자화하기 위해 특별히 개발되었습니다. GPTQ 알고리즘을 기반으로 다양한 크기의 LLaMA 모델을 4비트 양자화할 수 있습니다[293]. 또한 프로젝트 웹 사이트에서 메모리와 성능(PPL) 모두에서 비트샌드바이트와 비교를 제공합니다. 
    • AutoGPTQ는 GPTQ 알고리즘[293]을 기반으로 개발된 양자화 패키지로, LLM을 위한 INT4 양자화를 지원합니다. 라이브러리에는 여러 양자화 모델이 포함되어 있으며, HuggingFace PEFT 라이브러리와 통합하여 LoRA를 지원합니다.
    • llama.cpp를 사용하면 MacBook 장치에서 양자화된 LLaMA 모델을 실행할 수 있습니다. 효율적인 C/C++ 구현으로 개발된 INT4, INT5 및 INT8 양자화를 지원합니다. 또한 알파카, 비쿠나 등 다양한 LLaMA 기반 모델도 지원합니다. 

    양자화된 LLM. 

    양자화된 언어 모델은 원래 모델에 비해 메모리 사용량이 더 적고 추론 속도가 더 빠릅니다[83, 289, 302]. 최근에는 BLOOM, GPT-J, ChatGLM 등 공개적으로 사용 가능한 여러 언어 모델의 양자화된 모델 사본이 허깅페이스에 출시되었습니다. 특히 GPTQ[293]는 생성 언어 모델을 양자화하는 데 널리 사용되어 LLaMA와 OPT를 위한 다양한 양자화 변형으로 이어졌습니다. 또한, Vicuna 및 WizardLM과 같은 명령어 튜닝 모델을 양자화하는 데에도 적용되었습니다. 양자화된 LLM의 수가 많기 때문에 이러한 모델의 해당 링크를 직접 통합하지는 않습니다. 독자들은 허깅페이스에서 검색을 통해 쉽게 찾을 수 있습니다.

    6. 활용

    사전 훈련 또는 적응 튜닝 후, LLM을 사용하기 위한 주요 접근 방식은 다양한 과제를 해결하기 위한 적절한 프롬프트 전략을 설계하는 것입니다. 일반적인 프롬프트 방법은 자연어 텍스트의 형태로 작업 설명 및/또는 데모를 공식화하는 비맥락 학습[50, 55]입니다. 또한, 일련의 중간 추론 단계를 프롬프트에 포함시켜 맥락 내 학습을 향상시키기 위해 연쇄적 사고 프롬프트[33]를 사용할 수 있습니다. 또한 복잡한 작업을 해결하기 위해 먼저 작은 하위 작업으로 분류한 다음 이러한 하위 작업을 하나씩 해결하기 위한 실행 계획을 생성하는 계획 [303]이 제안되었습니다. 다음에서는 세 가지 기법에 대해 자세히 설명하겠습니다.

    6.1 상황 내 학습

    특수한 프롬프트 형태로서 상황 내 학습(ICL)은 GPT-3[55]과 함께 처음 제안되었으며, 이는 LLM을 활용하는 대표적인 접근 방식이 되었습니다.

    6.1.1 프롬프트 형식

    [55]에서 설명한 바와 같이 ICL은 작업 설명 및/또는 몇 가지 작업 예제로 구성된 형식화된 자연어 프롬프트를 데모로 사용합니다. 그림 11은 ICL의 예시를 보여줍니다. 먼저, 작업 설명부터 시작하여 작업 데이터 세트에서 몇 가지 예제를 데모로 선택합니다. 그런 다음 특정 순서로 결합하여 특별히 설계된 템플릿으로 자연어 프롬프트를 구성합니다. 마지막으로, 테스트 인스턴스가 데모에 추가되어 LLM이 출력을 생성하기 위한 입력으로 사용됩니다. 작업 데모를 기반으로 LLM은 명시적인 그라데이션 업데이트 없이도 새로운 작업을 인식하고 수행할 수 있습니다.

    공식적으로 Dk = {f(x1, y1), .. . , f(xk, yk)}는 k개의 예제가 있는 데모 집합을 나타내며, 여기서 f(xk, yk)는 k번째 작업 예제를 자연어 프롬프트로 변환하는 프롬프트 함수입니다. 작업 설명 I, 데모 Dk, 새로운 입력 쿼리 xk+1이 주어졌을 때 LLM에서 생성된 출력 yˆk+1의 예측은 다음과 같이 공식화할 수 있습니다:

    수식 6

    여기서 실제 답인 yk+1은 LLM이 예측할 수 있도록 공백으로 남겨둡니다. ICL의 성능은 데모에 크게 의존하기 때문에 프롬프트에서 데모를 적절하게 설계하는 것이 중요합니다. 방정식 (6)의 구성 프로세스에 따라 프롬프트에서 데모를 구성하는 예제를 선택하는 방법, 각 예제를 함수 f(-)를 사용하여 프롬프트에 포맷하는 방법, 데모를 합리적인 순서로 배열하는 방법 등 크게 세 가지 측면에 초점을 맞춰 데모를 포맷합니다.

    ICL에 대한 포괄적인 검토는 설문조사 논문[50]에 제시되어 있으며, 이 주제에 대한 보다 일반적이고 자세한 논의는 해당 논문을 참조하시기 바랍니다. 이 설문조사와 비교하여, 저희는 특별히 두 가지 주요 측면, 즉 데모 설계와 ICL의 기본 메커니즘에서 ICL을 LLM에 적용하는 것에 대한 논의에 초점을 맞추고자 합니다. 또한 ICL은 자연어를 사용하여 태스크 또는 인스턴스의 형식을 지정한다는 점에서 명령어 튜닝(5.1절에서 논의)과 밀접한 관련이 있습니다. 그러나 인스트럭션 튜닝은 적응을 위해 LLM을 미세 조정해야 하는 반면, ICL은 활용을 위해 LLM에 프롬프트만 표시합니다. 또한, 명령어 튜닝은 특히 제로 샷 설정(작업 설명만 사용)에서 대상 작업을 수행하는 LLM의 ICL 기능을 향상시킬 수 있습니다[64].

    6.1.2 실증 설계

    여러 연구에 따르면 ICL의 효과는 데모 설계에 의해 크게 영향을 받는 것으로 나타났습니다 [304-306] 6.1.1절의 논의에 이어, 여기서는 데모 선택, 형식, 순서 등 크게 세 가지 측면에서 ICL의 데모 설계에 대해 소개합니다. 

    데모 선택

    ICL의 성능은 데모 예제에 따라 큰 편차를 보이는 경향이 있으므로[307], LLM의 ICL 기능을 효과적으로 활용할 수 있는 예제의 하위 집합을 선택하는 것이 중요합니다. 데모 예제 선택에는 휴리스틱 접근법과 LLM 기반 접근법이라는 두 가지 주요 접근법이 있습니다:

    • 휴리스틱 접근 방식. 단순성과 저렴한 비용으로 인해 기존 연구에서는 데모를 선택하기 위해 휴리스틱 방법을 널리 채택하고 있습니다. 몇몇 연구에서는 질의와 의미적으로 연관성이 있는 예시를 선택하기 위해 k-NN 기반 검색기를 사용합니다[307, 308]. 그러나 이러한 방식은 예시 집합 전체를 평가하지 않고 각 예시에 대해 개별적으로 선택을 수행합니다. 이 문제를 해결하기 위해 특정 작업에 대해 가장 대표적인 예제 집합을 선택하는 다양성 기반 선택 전략이 제안되었습니다 [309, 310]. 또한 [311]에서는 데모를 선택할 때 관련성과 다양성을 모두 고려합니다.
    • LLM 기반 접근법. 또 다른 작업 라인에서는 LLM을 활용하여 데모를 선택합니다. 예를 들어, 예시를 추가한 후의 성능 향상에 따라 각 예시의 정보성을 직접 측정하기 위해 LLM을 활용할 수 있습니다[312]. 또한 EPR [313]은 먼저 비지도 방식(예: BM25)으로 유사한 예제를 불러온 다음 밀도 검색기(LLM으로 레이블이 지정된 긍정 및 부정 예제로 훈련된)를 사용하여 순위를 매기는 2단계 검색 접근 방식을 제안하고 있습니다. 다른 접근 방식으로, 데모 선택 작업을 RL 문제로 공식화할 수 있으며, 여기서 LLM은 정책 모델 학습을 위한 피드백을 제공하는 보상 함수 역할을 합니다[314]. LLM은 텍스트 주석에 대해 우수한 성능을 발휘하기 때문에[315], 최근 일부 연구에서는 사람의 개입 없이 LLM 자체를 데모 생성기로 사용하기도 합니다[316]. 

    요약하자면, [317]에서 논의한 바와 같이 ICL에서 선택한 데모 예제는 위의 두 가지 선택 접근 방식에 대해 풀어야 할 작업에 대한 충분한 정보를 포함해야 하며 테스트 쿼리와 관련성이 있어야 합니다.

    데모 형식

    작업 예제를 선택한 후 다음 단계는 이를 통합하여 LLM용 자연어 프롬프트에 포맷하는 것입니다. 간단한 방법은 해당 입력-출력 쌍으로 사전 정의된 템플릿을 인스턴스화하는 것입니다[36]. 보다 유익한 템플릿을 구성하기 위해 최근 연구에서는 작업 설명을 추가하거나[64], 연쇄 사고 프롬프트를 통해 LLM의 추론 능력을 향상시키는 것을 고려합니다[33]. 예를 들어, [240]에서 저자는 사람이 작성한 작업 설명이 포함된 대규모 데이터 세트를 수집합니다. 이 데이터세트로 튜닝한 후, 보이는 작업에 대한 성능을 향상시킬 수 있으며, 보이지 않는 작업에도 어느 정도 LLM을 일반화할 수 있습니다. 주석 비용을 줄이기 위해 [125]에서는 사람이 작성한 작업 설명으로 구성된 시드 세트를 사용하여 LLM이 새로운 작업에 대한 작업 설명을 생성하도록 안내하는 반자동화된 접근 방식이 제안되었습니다. 다양한 태스크에 대한 데모 형식에 일일이 주석을 다는 것은 비용이 많이 들기 때문에 고품질의 데모 형식을 자동으로 생성하는 방법도 연구되고 있습니다. 대표적인 두 가지 방법으로 Auto-CoT [318]는 중간 추론 단계를 생성하기 위해 "단계별로 생각해 봅시다"라는 제로샷 프롬프트와 함께 LLM을 활용하고, 최소한의 프롬프트 [303]는 먼저 LLM에 질의하여 문제 분해를 수행한 후 이전에 해결한 문제에 대한 중간 답을 기반으로 하위 문제를 순차적으로 풀기 위해 LLM을 활용합니다.

    데모 순서

    LLM은 때때로 최근 편향, 즉 데모의 마지막에 가까운 답을 반복하는 경향이 있는 것으로 나타났습니다[306]. 따라서 데모(즉, 작업 예제)를 합리적인 순서로 배열하는 것이 중요합니다. 초기 연구에서는 좋은 순서를 빠르게 찾을 수 있는 몇 가지 휴리스틱 방법을 제안합니다. 예를 들어, 임베딩 공간에서 쿼리와의 유사성에 따라 데모를 직접 구성할 수 있습니다[307]: 유사성이 높을수록 끝에 가까울수록 좋습니다. 또한 글로벌 및 로컬 엔트로피 메트릭을 사용하여 서로 다른 데모 순서에 점수를 매길 수 있습니다[305]. 더 많은 작업 정보를 통합하기 위해 최근 일부 연구에서는 정보 이론에서 영감을 받아 작업 레이블을 압축하고 전송하는 데 필요한 코드 길이를 최소화할 것을 제안합니다[319]. 그러나 이러한 방법은 특정 데모 주문의 성능을 평가하기 위한 유효성 검사 집합으로 레이블이 지정된 추가 데이터가 필요합니다. 이러한 필요성을 없애기 위해 [305]의 저자들은 LLM 자체에서 유효성 검사 데이터를 샘플링할 것을 제안합니다.

    6.1.3 기본 메커니즘

    사전 학습을 거친 후, LLM은 업데이트하지 않아도 흥미로운 ICL 능력을 발휘할 수 있습니다. 여기에서는 LLM의 ICL 능력에 대한 두 가지 핵심 질문, 즉 "사전 훈련이 ICL 능력에 어떤 영향을 미치는가" 및 "추론 중에 LLM이 ICL을 수행하는 방법"에 대해 설명합니다. 

    사전 훈련이 ICL에 어떤 영향을 미치나요? 

    ICL은 GPT-3에서 처음 제안되었으며[55], 모델 크기가 클수록 ICL 능력이 더 중요해진다는 것이 밝혀졌습니다. 또한 일부 연구에 따르면 소규모 PLM도 훈련 과정에서 입력에 추가 작업 예제를 포함하는 특수 설계된 훈련 작업에 대한 지속적인 사전 훈련[320] 또는 미세 조정[321]을 통해 강력한 ICL 능력을 발휘할 수 있다고 합니다. 이는 훈련 과제의 설계가 LLM의 ICL 능력에 중요한 영향 요인이라는 것을 시사합니다. 훈련 과제 외에도 최근 연구에서는 ICL과 사전 훈련 코퍼스의 관계에 대해서도 조사했습니다[317, 322]. 예를 들어, ICL은 이론적으로 장거리 일관성을 보이는 문서에 대한 사전 학습의 산물로 설명할 수 있습니다[317]. 또한, 또 다른 연구[322]에서는 매개변수와 데이터를 확장할 때 다음 단어에 기반한 LLM이

    예측은 언어 데이터에 존재하는 구성 구조(예: 단어와 구가 결합되어 문장과 같은 더 큰 언어 단위를 형성하는 방식)를 학습함으로써 ICL의 능력을 발휘할 수 있다고 합니다.

    LLM은 어떻게 ICL을 수행하나요? 

    추론 단계에서는 명시적인 학습이나 업데이트가 필요하지 않기 때문에 연구자들은 주어진 데모를 기반으로 ICL 기능이 어떻게 작동하는지 분석하는 데 중점을 둡니다. 323]의 논의에 따르면, LLM이 데모를 활용하는 방법에는 작업 인식과 작업 학습이라는 두 가지 주요 방법이 있습니다. 

    • 작업 인식. 첫 번째 방법은 LLM이 데모에서 과제를 인식하고 사전 학습을 통해 얻은 사전 지식을 활용하여 새로운 테스트 과제를 해결하는 것입니다. ICL의 학습 가능성을 평가하기 위해 대략 정답(PAC) 프레임워크[324]가 제안되었습니다. 이 프레임워크는 사전 학습 데이터에 과제를 나타내는 잠재 변수가 존재한다고 가정하며, LLM은 데모에서 이 변수를 포착하여 ICL에서 과제를 인식할 수 있는 것으로 나타났습니다. 또한 ICL을 과제 인식으로 해석하는 것은 여러 실증 연구를 통해 뒷받침됩니다[304, 325]. 예를 들어, 데모의 입력 또는 레이블을 입력 또는 레이블 공간에서 샘플링된 무작위 입력 또는 레이블로 대체해도 LLM의 성능에 심각한 타격을 주지 않는 것으로 관찰되었으며, 이는 LLM이 데모에서 학습하는 대신 주로 데모에서 목표 작업을 인식한다는 것을 나타냅니다 [304, 323]. 마찬가지로, LLM은 프롬프트 템플릿이 관련성이 없거나 오해의 소지가 있는 경우에도 적절한 성능을 발휘할 수 있습니다[325].
    • 작업 학습. 두 번째 방법으로, LLM은 사전 훈련 단계에서 볼 수 없었던 새로운 작업을 데모를 통해서만 학습합니다. 특히 과제 학습은 주로 경사 하강의 관점에서 분석되며 암묵적 미세 조정으로 간주됩니다 [60, 326]. 그런 다음 ICL은 다음과 같이 설명할 수 있습니다. 순방향 계산을 통해 LLM은 데모와 관련하여 메타 경사도를 생성하고 주의 메커니즘을 통해 암묵적으로 경사도 하강을 수행합니다. 실험에 따르면 LLM의 특정 주의 헤드는 작업에 구애받지 않는 원자 연산(예: 복사 및 접두사 매칭)을 수행할 수 있으며, 이는 ICL 능력과 밀접한 관련이 있습니다[327]. 또한 일부 연구에서는 ICL을 알고리즘 학습 과정으로 추상화하기도 합니다[328]. 예를 들어, [328]의 저자들은 LLM이 기본적으로 사전 학습 중에 매개변수를 통해 암시적 모델을 인코딩한다는 사실을 발견했습니다. ICL에서 제공하는 예제를 통해 LLM은 경사 하강과 같은 학습 알고리즘을 구현하거나 폐쇄형 해를 직접 계산하여 순방향 계산 중에 이러한 모델을 업데이트할 수 있습니다. 이러한 설명 프레임워크 하에서 LLM은 간단한 선형 함수는 물론 의사 결정 트리와 같은 일부 복잡한 함수까지도 ICL을 사용하여 효과적으로 학습할 수 있다는 것이 입증되었습니다 [328].

    최근 연구[323]에서 논의된 바와 같이, LLM은 ICL에서 작업 인식과 작업 학습의 능력을 모두 나타내지만, 두 가지 능력은 서로 다른 모델 규모를 가지고 있는 것으로 보입니다. 실험 [323]에서 볼 수 있듯이 작업 인식 능력은 더 쉽게 얻을 수 있으며, 매개변수가 350만 개에 불과한 작은 LM도 이 능력을 발휘할 수 있는 반면, 작업 학습은 최소 66억 개 이상의 매개변수를 가진 LLM에서만 나타날 수 있습니다. 또 다른 연구[329]에서도 특별히 설계된 실험을 통해 이러한 결과를 뒷받침합니다. 연구진은 실험에서 의미적으로 서로 관련이 없는 레이블이 뒤집힌 과제를 설정했는데, 이는 ICL을 수행할 때 과제 학습을 필요로 합니다. 그 결과, 소규모 LM은 레이블을 무시하고 주로 사전 지식에 의존하여 과제를 수행하는 경향이 있는 반면, LLM은 사전 지식을 뛰어넘어 시연을 통해 새로운 지식을 습득할 수 있는 능력이 있어 더 나은 결과를 얻을 수 있는 것으로 나타났습니다. 또한, 과제 학습 능력을 향상시키기 위해 메타-인-컨텍스트 학습[330]은 프롬프트에 하나의 과제 대신 여러 개의 관련 과제를 포함하는 것을 제안합니다. 또한 심볼 튜닝[331]은 의미적으로 관련이 없는 레이블(예: 감정 분석의 경우 긍정/부정 대신 푸/바)이 있는 데모에서 LLM을 미세 조정하여 LLM이 사전 지식에 의존하지 않고 데모를 통해 과제를 학습하도록 합니다.

    6.2 생각의 연쇄 프롬프트

    연쇄적 사고(CoT)[33]는 산술적 추론[332], 상식적 추론[333], 상징적 추론[33]과 같은 복잡한 추론 작업에서 LLM의 성능을 높이기 위한 개선된 프롬프트 전략입니다. ICL에서처럼 단순히 입력-출력 쌍으로 프롬프트를 구성하는 대신, CoT는 최종 출력으로 이어질 수 있는 중간 추론 단계를 프롬프트에 통합합니다. 아래에서는 ICL과 함께 CoT의 사용법을 자세히 설명하고 CoT 프롬프트가 언제, 왜 작동하는지에 대해 설명합니다. 

    6.2.1 CoT를 사용한 맥락 내 학습

    일반적으로 CoT는 아래에 소개된 것처럼 두 가지 주요 설정, 즉 소수 샷 및 제로 샷 설정에서 ICL과 함께 사용할 수 있습니다.

    소수 샷 CoT

    Few-shot CoT는 ICL의 특수한 경우로, 각 데모 ⟨입력, 출력⟩을 CoT 추론 단계를 통합하여 ⟨입력, CoT, 출력⟩으로 보강하는 것입니다. 이 전략을 적용하기 위해 적절한 CoT 프롬프트를 설계하는 방법과 생성된 CoT를 활용하여 최종 답을 도출하는 방법이라는 두 가지 핵심 이슈에 대해 논의합니다.

    • CoT 프롬프트 설계. LLM의 복잡한 추론 능력을 효과적으로 이끌어내기 위해서는 적절한 CoT 프롬프트를 설계하는 것이 중요합니다. 직접적인 접근 방법으로, 다양한 CoT(즉, 각 문제에 대해 여러 추론 경로)를 사용하면 효과적으로 성능을 향상시킬 수 있습니다 [334]. 또 다른 직관적인 아이디어는 더 복잡한 추론 경로를 가진 프롬프트가 LLM의 추론 능력을 이끌어낼 가능성이 높다는 것입니다[335], 이는 정답 생성의 정확도를 높일 수 있습니다. 그러나 이러한 모든 접근 방식은 주석이 달린 CoT 데이터 세트에 의존하기 때문에 실제로 사용하기에는 한계가 있습니다. 이러한 한계를 극복하기 위해 Auto-CoT [318]는 제로샷-CoT [336](다음 부분 "제로샷 CoT"에서 자세히 설명)를 활용하여 LLM에 특별히 프롬프트하여 CoT 추론 경로를 생성함으로써 수동 작업을 제거할 것을 제안합니다. 성능을 향상시키기 위해 Auto-CoT는 훈련 세트의 질문을 여러 클러스터로 나눈 다음 각 클러스터의 중심에 가장 가까운 질문을 선택하는데, 이는 훈련 세트의 질문을 잘 대표할 것으로 예상됩니다. 소수 샷 CoT는 ICL의 특수한 프롬프트 사례로 간주될 수 있지만, 대부분의 작업에서 데모의 순서를 바꾸어도 성능 차이가 2% 미만에 불과할 정도로 데모의 순서는 ICL의 표준 프롬프트에 비해 상대적으로 영향이 적은 것으로 보입니다 [33].
    • 향상된 CoT 전략. CoT 프롬프트는 문맥 정보를 풍부하게 하는 것 외에도 주어진 질문에 대한 답을 유추할 수 있는 더 많은 옵션을 제공합니다. 기존 연구는 주로 여러 추론 경로를 생성하는 데 초점을 맞추고 도출된 답변들 사이에서 합의점을 찾으려고 합니다[337, 338]. 예를 들어, CoT와 최종 답변을 생성할 때 새로운 디코딩 전략으로 자기 일관성[337]이 제안되고 있습니다. 먼저 여러 추론 경로를 생성한 다음 모든 답변에 대해 앙상블을 취합니다(예: 이러한 경로 중 투표를 통해 가장 일관된 답변을 선택). 자기 일관성은 CoT 추론의 성능을 큰 폭으로 향상시키며, CoT 프롬프트가 일반적으로 표준 프롬프트보다 좋지 않은 일부 작업(예: 비공개 질문 답변 및 자연어 추론)을 개선할 수도 있습니다. 또한 [338]의 저자들은 자기 일관성 전략을 보다 일반적인 앙상블 프레임워크(프롬프트에 대한 앙상블로 확장)로 확장하여 다양한 추론 경로가 CoT 추론의 성능 개선의 핵심임을 발견했습니다. 위의 방법은 추가 교육 없이도 CoT 프롬프트에 쉽게 통합하여 성능을 향상시킬 수 있습니다. 반면, 다른 연구에서는 생성된 추론 경로의 신뢰도를 측정하기 위해 채점 모델을 훈련하거나[334], 자체적으로 생성된 추론 경로에 대해 LLM을 지속적으로 훈련하여[339] 성능을 향상시킵니다.

    제로 샷 CoT

    제로 샷 CoT는 소수 샷 CoT와 달리 프롬프트에 사람이 주석을 단 작업 데모를 포함하지 않습니다. 대신 추론 단계를 직접 생성한 다음 생성된 CoT를 사용하여 답을 도출합니다. 제로샷 CoT는 [336]에서 처음 제안되었는데, LLM이 먼저 "단계별로 생각해 봅시다"라는 프롬프트를 통해 추론 단계를 생성한 다음 "따라서 답은 다음과 같습니다"라는 프롬프트를 통해 최종 답을 도출하는 방식입니다. 연구진은 이러한 전략이 모델 규모가 일정 규모를 초과하면 성능이 크게 향상되지만, 소규모 모델에서는 효과적이지 않고, 출현 능력에 상당한 패턴을 보인다는 것을 발견했습니다. 더 많은 작업에서 CoT 능력을 발휘하기 위해 Flan-T5와 Flan-PaLM[64]은 CoT 주석에 대한 명령어 튜닝을 추가로 수행하여 보이지 않는 작업에 대한 제로 샷 성능을 향상시켰습니다.

    6.2.2 CoT에 대한 추가 논의

    이 부분에서는 CoT와 관련된 두 가지 근본적인 질문, 즉 "CoT는 언제 LLM에서 작동하는가", "LLM은 왜 CoT 추론을 수행할 수 있는가"에 대한 논의를 제시합니다.

    CoT는 언제 LLM에 효과가 있을까요? 

    CoT는 새로운 능력이기 때문에[31], 충분히 큰 모델(일반적으로 10억 개 이상의 파라미터를 포함[33])에만 긍정적인 영향을 미치고 작은 모델에는 영향을 미치지 않습니다. 또한 CoT는 표준 프롬프트에 중간 추론 단계를 추가하기 때문에 산술 추론, 상식 추론, 상징 추론 등 단계적 추론[33]이 필요한 과제에 주로 효과적입니다. 반면, 복잡한 추론에 의존하지 않는 다른 작업의 경우, CoT는 표준 프롬프트 [338]보다 성능이 떨어질 수 있습니다(예: GLUE [193]의 MNLI-m/mm, SST-2 및 QQP). 흥미롭게도, 표준 프롬프트가 좋지 않은 결과를 산출할 때만 CoT 프롬프트가 가져오는 성능 이득이 중요할 수 있는 것으로 보입니다 [33].

    LLM이 CoT 추론을 수행할 수 있는 이유는 무엇인가요? 

    두 번째 질문으로 다음 두 가지 측면에서 CoT의 기본 메커니즘에 대해 논의합니다. 

    • CoT 능력의 원천. CoT 능력의 원천과 관련하여, 코드에 대해 훈련된 모델이 강력한 추론 능력을 보이기 때문에 코드에 대한 훈련에 기인할 수 있다는 가설이 널리 퍼져 있습니다 [47, 340]. 직관적으로 코드 데이터는 알고리즘 로직과 프로그래밍 흐름이 잘 정리되어 있어 LLM의 추론 성능을 향상시키는 데 유용할 수 있습니다. 그러나 이 가설은 아직 공개적으로 보고된 제거 실험(코드에 대한 훈련 유무에 관계없이)에 대한 증거가 부족합니다. 또한, 비코트 데이터에 대한 인스트럭션 튜닝이 홀드아웃 코트 벤치마크에서 성능을 향상시키지 못한다는 것이 경험적으로 입증되었기 때문에 인스트럭션 튜닝은 코트 능력을 얻기 위한 핵심 이유가 아닌 것으로 보입니다[64].
    • 프롬프트 구성 요소의 효과. CoT 프롬프트와 표준 프롬프트의 가장 큰 차이점은 최종 답에 앞서 추론 경로가 통합되어 있다는 점입니다. 따라서 일부 연구자들은 추론 경로에서 다양한 구성 요소의 효과를 조사합니다. 특히 최근의 한 연구에서는 CoT 프롬프트에서 기호(예: 산술 추론의 숫자), 패턴(예: 산술 추론의 방정식), 텍스트(예: 기호나 패턴이 아닌 나머지 토큰) 등 세 가지 주요 구성 요소를 확인했습니다[341]. 후자의 두 부분(즉, 패턴과 텍스트)은 모델 성능에 필수적이며, 둘 중 하나를 제거하면 성능이 크게 저하되는 것으로 나타났습니다. 그러나 기호와 패턴의 정확성은 중요하지 않은 것으로 보입니다. 또한 텍스트와 패턴 사이에는 공생 관계가 존재합니다. 텍스트는 LLM이 유용한 패턴을 생성하는 데 도움이 되고, 패턴은 LLM이 작업을 이해하고 이를 해결하는 데 도움이 되는 텍스트를 생성하는 데 도움이 됩니다[341]. 

    요약하자면, CoT 프롬프트는 LLM의 추론 능력을 이끌어내기 위한 일반적이면서도 유연한 접근 방식을 제공합니다. 이 기술을 확장하여 다중 모드[342] 및 다국어 작업을 해결하려는 예비 시도도 있습니다[343].

    6.3 복잡한 과제 해결을 위한 계획

    ICL과 CoT를 사용한 프롬프트는 개념적으로 단순하지만 다양한 과제를 해결하기 위한 일반적인 접근 방식입니다. 그러나 이 접근 방식은 수학적 추론[344] 및 다중 홉 질문 답변[345]과 같은 복잡한 작업에는 어려움을 겪습니다. 개선된 접근법으로 복잡한 작업을 더 작은 하위 작업으로 나누고 작업을 수행하기 위한 행동 계획을 생성하는 프롬프트 기반 계획이 제안되었습니다.

    6.3.1 전체 프레임워크

    이 부분에서는 먼저 복잡한 과제를 해결하기 위한 LLM의 일반적인 계획 패러다임을 공식화합니다.

    이 패러다임에는 일반적으로 태스크 플래너, 계획 실행자, 환경의 세 가지 구성 요소가 있습니다. 구체적으로, LLM이 담당하는 태스크 플래너는 목표 태스크를 해결하기 위한 전체 계획을 생성하는 것을 목표로 합니다. 계획은 자연어 형태의 액션 시퀀스[303] 또는 프로그래밍 언어로 작성된 실행 프로그램[346] 등 다양한 형태로 존재할 수 있습니다. 그런 다음 계획 실행자는 계획의 작업을 실행할 책임이 있습니다. 텍스트 작업의 경우 LLM과 같은 모델로 구현하거나[347], 구현된 작업의 경우 로봇과 같은 객체로 구현할 수 있습니다[348]. 또한 환경은 계획 실행자가 작업을 수행하는 위치를 의미하며, 특정 작업에 따라 다르게 설정할 수 있습니다(예: LLM 자체[349] 또는 Minecraft와 같은 외부 가상 세계[350]). 그리고 작업의 실행 결과에 대한 피드백을 자연어[351] 또는 다른 궁극적 신호[352]의 형태로 작업 계획자에게 제공합니다.

    복잡한 작업을 해결하기 위해 작업 계획자는 먼저 작업 목표를 명확히 이해하고 LLM의 추론에 기반한 합리적인 계획을 생성해야 합니다(6.3.2절 참조). 그런 다음 계획 실행자는 환경 내에서 계획에 따라 행동하고 환경은 작업 계획자에게 피드백을 생성합니다(6.3.3절 참조). 태스크 플래너는 환경으로부터 얻은 피드백을 추가적으로 반영하여 초기 계획을 수정하고 위의 과정을 반복적으로 수행하여 태스크 솔루션으로서 더 나은 결과를 얻을 수 있습니다(6.3.4절 참조). 

    다음은 계획 기반 작업 해결의 세 가지 핵심 단계를 소개합니다.

    6.3.2 계획 생성

    계획 생성은 LLM에 프롬프트하여 작업 시퀀스를 직접 생성하는 데 중점을 둡니다. 생성된 계획의 형식에 따라 기존 작업은 텍스트 기반 접근 방식과 코드 기반 접근 방식의 두 가지 그룹으로 나눌 수 있습니다. 

    텍스트 기반 접근 방식

    자연어 형태로 계획을 생성하는 것은 LLM에게 간단합니다. 이 접근 방식에서는 계획 실행자가 복잡한 작업을 수행하고 해결할 수 있도록 일련의 작업을 생성하라는 메시지가 LLM에 표시됩니다. 예를 들어 Plan-and-Solve [347]는 "계획을 수립하라"와 같은 명시적인 지침을 추가하여 제로 샷 방식으로 계획을 수립하도록 LLM에 직접 프롬프트를 표시하며, Selfplanning [353]과 DECOMP [354]는 프롬프트에 데모를 추가하여 ICL을 통해 계획을 수립하도록 LLM을 안내합니다. 이러한 방식에 이어 일부 작업에서는 계획 시 추가 도구 또는 모델을 통합하는 것을 고려하기도 합니다. 예를 들어, ToolFormer[71]는 먼저 사전 학습 말뭉치에 LLM을 사용하여 잠재적인 API 호출을 주석 처리한 다음, 그 위에 LLM을 미세 조정하여 LLM이 API를 호출하는 시기와 방법을 학습하고 생성 중에 API가 반환한 결과를 통합할 수 있도록 합니다. HuggingGPT [355]는 HuggingFace에서 사용할 수 있는 모델을 소개하고 LLM을 컨트롤러로 간주하여 설명에 따라 적합한 모델을 선택하고 그 결과를 최종 솔루션으로 집계합니다.

    코드 기반 접근 방식

    텍스트 기반 접근 방식은 직관적으로 보이지만 계획의 충실한 실행을 보장할 수 없기 때문에 계획이 건전하더라도 실패로 이어질 수 있습니다. 이 문제를 해결하기 위해 Python 또는 PDDL과 같은 프로그래밍 언어로 실행 가능한 코드 형태로 보다 검증 가능한 계획을 생성하는 코드 기반 접근 방식이 제안되었습니다. 이러한 방식으로 LLM은 먼저 프로그램을 생성한 다음 결정론적 솔버를 사용하여 프로그램을 실행합니다. 예를 들어, Faithful CoT [356]와 PAL [346]은 추론 작업을 두 단계로 분해하여 첫 번째 단계에서 LLM이 쿼리에 조건부 계획을 생성하고, 두 번째 단계에서 결정론적 솔버가 계획을 실행하여 최종 답을 도출합니다. 또한 코드 기반 접근 방식도 비슷한 방식으로 구현된 에이전트에 적용할 수 있습니다. 예를 들어, PROGPROMPT [348]와 LLM+P [357]는 먼저 LLM을 활용하여 파이썬 함수 또는 PDDL 파일 형태의 계획을 생성한 다음 가상 에이전트 또는 고전적 플래너를 활용하여 코드 기반 계획에 따라 문제를 해결합니다.

    6.3.3 피드백 수집

    생성된 계획을 실행한 후 환경은 LLM 기반 작업 계획자에게 피드백 신호를 생성하며, 이를 통해 초기 계획을 개선하여 더 나은 결과를 얻을 수 있습니다. 기존 작업에서 환경은 일반적으로 LLM 기반 태스크 플래너와의 관계에 따라 내부(즉, LLM 자체)와 외부(예: 툴 또는 가상 세계) 피드백의 두 가지 피드백 소스를 제공합니다.

    내부 피드백

    LLM 자체를 피드백 제공자로 활용할 수 있습니다. 한 가지 간단한 방법은 프롬프트를 통해 생성된 계획의 품질을 직접 평가하는 것입니다. 예를 들어, RAP [358]는 각 후보 계획이 작업 성공으로 이어질 수 있는 가능성을 평가하고, Tree of Thoughts [349]는 계획 간 비교를 통해 투표할 것을 제안합니다. 또한 LLM은 계획 실행자의 중간 결과를 기반으로 피드백을 제공할 수 있습니다. 예를 들어, Reflexion [351]은 LLM을 활용하여 희박한 결과 신호(예: 성공 또는 실패)를 구체적인 텍스트 기반 피드백(예: "사용자가 쿼리에서 언급한 공포 영화 대신 코미디를 추천해야 합니다")으로 변환하고 이 피드백을 향후 계획을 위해 장기 기억에 저장합니다.

    외부 피드백

    LLM 외에도 외부 객체도 피드백 신호를 제공할 수 있습니다. 예를 들어, 코드 인터프리터와 같은 도구는 프로그래밍 작업에 널리 사용되어 실시간 오류 메시지를 제공하고[351], 안정적 확산[359]과 같은 모델은 멀티모달 작업에 사용되어 시각적 인식을 제공하며[352], Minecraft와 같은 가상 세계는 몰입형 경험을 제공할 수 있습니다[350]. 또한 시뮬레이션 환경에서 다중 에이전트 협업을 탐구하는 연구[360]에서는 각 에이전트가 환경과의 상호 작용뿐만 아니라 다른 에이전트와의 커뮤니케이션을 통해 피드백을 받기도 합니다.

    6.3.4 계획 구체화

    작업 계획자는 환경의 피드백에 액세스하여 현재 계획을 개선하고 '계획-실행-개선' 루프를 반복적으로 수행하여 더 나은 결과를 얻을 수 있습니다. 이 부분에서는 기존 작업의 세 가지 주요 개선 접근 방식을 요약합니다. 

    추론

    환경의 피드백 데이터는 관련 없는 정보를 포함하거나 언어가 아닌 형태를 취하는 등 LLM이 계획 개선에 직접 활용하기에 적합하지 않을 수 있습니다. 이를 해결하기 위해 일부 작업에서는 피드백에서 중요한 정보를 추출하기 위해 명시적 추론 프로세스를 추가합니다[361, 362]. 예를 들어, React [361]는 데모를 통해 LLM에 피드백에 대한 추론 추적을 생성하라는 메시지를 표시합니다. 이는 관찰된 피드백을 자동으로 추론하여 다양한 사용자 요청을 해결하기 위한 초기 계획을 수정할 수 있는 AutoGPT와 같은 자율 에이전트 프로젝트에서 널리 사용되어 왔습니다. 하지만 이러한 접근 방식은 일반적으로 추론과 계획의 순서가 고정되어 있습니다. 더 나은 성능을 위해 두 프로세스 간의 유연한 전환을 지원하기 위해 ChatCoT[362]는 도구 증강 추론 프로세스를 LLM 기반 작업 플래너와 도구 기반 환경 간의 멀티턴 대화로 통합합니다.

    백트래킹

    초기 방법은 주로 기존 계획을 유지하면서 앞으로의 행동을 계획하는 것을 고려하기 때문에 단기적인 평가에 기반한 로컬 최적 계획으로 이어질 가능성이 높습니다. 이를 해결하기 위해 Tree of Thoughts [349]는 폭 우선 검색, 깊이 우선 검색과 같은 검색 알고리즘을 통해 백트래킹을 수행하여 글로벌 계획을 수립할 수 있도록 합니다. 초기 계획의 마지막 상태까지 역추적하여 다음 미탐색 행동을 선택함으로써 계획을 단계적으로 개선합니다. 또한 일부 연구[352, 363]에서는 피드백 신호를 활용하여 전체 계획을 수정하기도 합니다. 예를 들어, DEPS [363]는 피드백 신호에 따라 더 나은 계획을 선택하고, TIP [352]는 LLM 기반 계획자가 초기 계획의 각 단계를 수정하라는 프롬프트에 피드백 신호를 추가합니다.

    암기

    장기적인 작업을 처리하기 위해 장기 기억을 통해 계획을 개선하는 데 도움이되는 핵심 접근 방식이되었습니다. 예를 들어, 리플렉션[351]은 자기 성찰의 피드백을 메모리에 저장하므로 이전 피드백을 검색하여 계획을 개선할 수 있습니다. 또한, 스킬 라이브러리 메커니즘 [350, 364]은 성공적인 계획을 라이브러리에 저장하여 새로운 작업에 대한 복잡한 계획으로 재사용 및 합성 할 수 있도록 제안되었습니다. 장기 기억 메커니즘을 구현하기 위해 벡터 데이터베이스(예: 밀버스[365])와 같은 도구를 사용하여 계획이나 피드백을 고차원 벡터로 인코딩하여 대규모로 효율적으로 저장하고 검색할 수 있습니다.

    7. 역량 평가

    LLM의 효과와 우수성을 검토하기 위해 경험적 능력 평가 및 분석을 수행하기 위한 과제와 벤치마크가 많이 제안되었습니다. 이 섹션에서는 먼저 언어 생성 및 이해에 대한 LLM의 세 가지 기본 능력 평가 유형을 소개하고, 보다 복잡한 설정 또는 목표를 가진 LLM의 몇 가지 고급 능력 평가를 제시하며, 마지막으로 기존의 벤치마크와 실증 분석에 대해 논의합니다.

    7.1 기본 능력 평가

    이 부분에서는 주로 언어 생성, 지식 활용, 복합 추론 등 세 가지 기본 유형의 LLM에 대한 능력 평가에 초점을 맞춥니다. 모든 관련 과제를 다 다루려는 것이 아니라, LLM에 대해 가장 널리 논의되거나 연구된 과제에만 초점을 맞추고자 합니다. 이제 이러한 작업을 자세히 소개합니다.

    7.1.1 언어 생성

    언어 생성에 대한 기존 작업은 작업 정의에 따라 크게 언어 모델링, 조건부 텍스트 생성, 코드 합성 작업으로 분류할 수 있습니다. 코드 합성은 일반적인 NLP 작업은 아니지만, 자연어 텍스트와 유사한 생성 접근 방식으로 코드 데이터에 대해 학습된 여러 LLM을 통해 직접 해결할 수 있기 때문에 논의를 위해 포함시켰습니다.

    언어 모델링

    언어 모델링은 LLM의 가장 기본적인 능력으로 이전 토큰을 기반으로 다음 토큰을 예측하는 것을 목표로 하며[15], 주로 기본적인 언어 이해 및 생성 능력에 중점을 두고 있습니다. 이러한 능력을 평가하기 위해 기존 연구에서 사용하는 대표적인 언어 모델링 데이터셋으로는 Penn Treebank [366], WikiText-103 [367], Pile [142] 등이 있으며, 제로 샷 설정에서 모델 성능을 평가하기 위해 난해성 메트릭이 일반적으로 사용됩니다. 경험적 연구[55, 83]에 따르면 LLM은 이러한 평가 데이터 세트에 대해 이전의 최신 방법보다 상당한 성능 향상을 가져옵니다. 텍스트의 장거리 종속성 모델링 능력을 더 잘 테스트하기 위해 문맥 단락을 기반으로 문장의 마지막 단어를 예측하는 LLM이 요구되는 LAMBADA 데이터 세트[183]가 도입되었습니다. 그런 다음 예측된 마지막 단어의 정확도와 난해도를 사용하여 LLM을 평가합니다. 기존 연구에서 볼 수 있듯이 언어 모델링 작업의 성능은 일반적으로 스케일링 법칙[30]을 따르는데, 이는 언어 모델을 스케일링하면 정확도가 향상되고 난해성이 감소한다는 것을 의미합니다.

    조건부 텍스트 생성

    언어 생성에서 중요한 주제인 조건부 텍스트 생성[48]은 일반적으로 기계 번역[433], 텍스트 요약[376], 질문 답변[386] 등 주어진 조건에 따라 특정 작업 요구를 충족하는 텍스트를 생성하는 데 중점을 둡니다. 생성된 텍스트의 품질을 측정하기 위해 일반적으로 자동 메트릭(예: 정확도, BLEU [434] 및 ROUGE [435])과 사람의 평가가 성능을 평가하는 데 사용되어 왔습니다. 강력한 언어 생성 기능으로 인해 LLM은 기존 데이터 세트와 벤치마크에서 놀라운 성능을 달성했습니다. 예를 들어, GPT-4는 언어적 거리가 상당히 먼 언어의 번역 작업에서도 상용 번역 제품과 비슷한 성능을 보였습니다[436]. 뉴스 요약 작업(예: CNN/DM 및 XSUM)에서도 LLM은 인간 프리랜서 작가와 비슷한 성능을 보여줍니다[437]. 모델 능력에 대한 급속한 발전에도 불구하고 조건부 텍스트 생성 작업에서 LLM의 성능을 충실히 평가하기 위한 기존 자동 메트릭의 타당성에 대한 우려가 증가하고 있습니다[437-439]. 자동 메트릭의 대안으로 최근 연구에서는 생성된 콘텐츠의 품질을 검사하기 위해 생성 평가자로 LLM을 통합할 것을 제안하기도 합니다[120, 440, 441]. 또한 연구자들은 구조화된 데이터 생성[442] 및 긴 텍스트 생성[46, 443, 444]과 같이 LLM을 위한 보다 까다로운 언어 생성 작업도 탐구하고 있습니다.

    코드 합성

    기존의 LLM은 고품질의 자연어 텍스트를 생성하는 것 외에도 특정 조건을 만족하는 형식 언어, 특히 컴퓨터 프로그램(즉, 코드)을 생성하는 데에도 강력한 능력을 보이는데, 이를 코드 합성이라고 합니다 [445]. 자연어 생성과 달리 생성된 코드는 해당 컴파일러나 인터프리터로 직접 실행하여 확인할 수 있기 때문에, 기존 연구에서는 주로 테스트 케이스에 대한 합격률, 즉 pass@k를 계산하여 LLM에서 생성된 코드의 품질을 평가합니다. 최근에는 기능적 정확성에 초점을 맞춘 여러 코드 벤치마크가 제안되어 LLM의 코드 합성 능력을 평가하고 있는데, APPS [380], HumanEval [89], MBPP [164] 등이 있습니다. 일반적으로 다양한 프로그래밍 문제로 구성되며, 정확성 검사를 위한 텍스트 명세와 테스트 케이스가 포함되어 있습니다. 이러한 능력을 향상시키기 위해서는 코드 데이터에 대한 LLM을 미세 조정(또는 사전 학습)하는 것이 핵심이며, 이를 통해 LLM을 코드 합성 작업에 효과적으로 적용할 수 있습니다[77]. 또한 기존 연구에서는 프로그래머의 버그 수정 및 코드 계획 프로세스를 모방한 것으로 볼 수 있는 여러 후보 솔루션 샘플링[164] 및 계획 유도 디코딩[446] 등 코드를 생성하기 위한 새로운 전략을 제안했습니다. 놀랍게도 LLM은 최근 프로그래밍 경진대회 플랫폼 Codeforces에서 사용자 중 상위 28%의 순위를 차지하며 인간과 경쟁할 수 있는 성능을 보여주었습니다[98]. 또한 파이썬, 자바스크립트, 자바 등 다양한 언어를 지원할 수 있는 IDE(예: Visual Studio 및 JetBrains IDE)를 코딩하는 데 도움을 주는 GitHub Copilot이 출시되었습니다. 미국 컴퓨터 학회지 커뮤니케이션즈(Communications of the ACM)의 "프로그래밍의 종말"[447]이라는 제목의 관점 기사에서는 컴퓨터 과학 분야에서 AI 프로그래밍의 영향에 대해 논의하면서 새로운 계산의 원자 단위로서 고도로 적응적인 LLM으로의 중요한 전환을 강조하고 있습니다.

    주요 이슈. 

    LLM은 인간과 유사한 텍스트를 생성하는 데 있어 뛰어난 성능을 달성했지만, 아래에서 설명하는 바와 같이 언어 생성에 있어 두 가지 주요 문제를 겪기 쉽습니다.

    • 신뢰할 수 없는 생성 평가. LLM의 언어 생성 능력이 발전함에 따라 기존 연구에 따르면 다양한 텍스트 생성 작업에서 LLM에서 생성된 텍스트가 참조 텍스트와 비슷한 품질에 도달한 것으로 나타났습니다. 그러나 기존 평가 벤치마크의 본질적인 약점으로 인해 사람의 평가와 자동 참조 기반 메트릭 간에 뚜렷한 불일치가 존재합니다 [437-439, 448]. 예를 들어, OpenDialKG [379]에서 ChatGPT는 BLEU 및 ROUGE-L 메트릭에서 미세 조정된 GPT-2보다 성능이 떨어지는 반면, 사람의 판단은 더 선호합니다 [448]. 또한 기존 연구에서는 사람의 평가조차도 충분히 강력하지 않을 수 있다고 주장합니다[437, 438, 449, 450]. 경우에 따라서는 인간 주석가들 사이에서 높은 수준의 합의를 달성하기 어렵고[438], 크라우드 워커와 전문가의 주석 품질 간에도 큰 격차가 존재합니다[449, 450]. 따라서 LLM 시대에 언어 생성 작업에 대한 신뢰할 수 있는 평가를 수행하는 방법은 기본적이면서도 도전적인 연구 주제가 되었습니다. 최근에는 생성된 텍스트의 평가 품질을 향상시키기 위해 LLM을 활용하자는 연구가 증가하고 있습니다. 특히 기존 메트릭의 평가 품질을 개선하는 데 LLM을 활용할 수 있습니다. 예를 들어, Para-Ref [451]는 LLM을 활용하여 기존 참조를 다양한 표현을 가진 의미적으로 동등한 참조로 의역함으로써 다양한 자동 지표를 보강합니다. 또한 LLM은 단일 예측을 평가하거나[440, 441, 452] 여러 후보를 비교하는 등 참조 없는 방식으로 텍스트 생성의 평가자로 널리 사용됩니다[120, 453-455]. 그럼에도 불구하고 LLM은 언어 생성 평가자로서 편향성(예: 순서 편향성 또는 사람이 작성한 텍스트보다 LLM이 생성한 텍스트에 대한 선호도)을 노출하여 사람의 평가와 비교할 때 차이를 보일 수 있습니다[441, 456, 457].
    • 전문화된 생성 성능 저하. LLM은 일관된 텍스트를 생성하기 위해 일반적인 언어 패턴을 학습했지만, 특수한 도메인이나 작업을 처리할 때는 생성 능력이 제한될 수 있습니다. 예를 들어, 일반 웹 기사에 대해 학습된 언어 모델은 의학 전문 용어와 방법이 많이 포함된 의료 보고서를 생성할 때 어려움을 겪을 수 있습니다. 직관적으로 모델 전문화를 위해서는 도메인 지식이 필수적입니다. 그러나 이러한 전문 지식을 LLM에 주입하는 것은 쉽지 않습니다. 최근 분석[47, 458]에서 논의된 바와 같이, LLM이 특정 영역에서 탁월한 능력을 발휘할 수 있도록 훈련을 받았을 때 다른 영역에서는 어려움을 겪을 수 있습니다. 이러한 문제는 신경망 훈련에서 치명적 망각[459, 460]과 관련이 있는데, 이는 새로운 지식과 오래된 지식을 통합할 때 발생하는 충돌 현상을 말합니다. 인간의 가치와 필요에 맞춰 학습하기 위해 '정렬 세금'[61](예: 상황 내 학습 능력의 잠재적 손실)을 지불해야 하는 LLM의 인간 정렬에서도 유사한 사례가 발생합니다. 또한 시퀀스 모델링 아키텍처의 한계로 인해 LLM은 구조화된 데이터를 이해하고 생성하는 데 여전히 어려움을 겪고 있습니다. 따라서 지식 기반 질문 답변 및 시맨틱 구문 분석과 같은 복잡한 정형 데이터 작업에서 작업별 모델에 비해 뒤처지는 경우가 많습니다[442, 461]. 따라서 LLM의 본래 능력을 최대한 유지하면서 다양한 작업 시나리오에 유연하게 적용할 수 있는 효과적인 모델 전문화 방법을 개발하는 것이 중요합니다.

    7.1.2 지식 활용

    지식 활용은 사실적 증거를 기반으로 지식 집약적인 작업(예: 상식적인 질문 답변 및 사실 완성)을 수행하는 지능형 시스템의 중요한 능력입니다. 구체적으로는 사전 학습 코퍼스의 풍부한 사실 지식을 적절히 활용하거나 필요한 경우 외부 데이터를 검색할 수 있어야 합니다. 특히 이 능력을 평가하는 데는 질문 답변(QA)과 지식 완성이 주로 활용되고 있습니다. 테스트 과제(질문 답변 또는 지식 완성)와 평가 설정(외부 리소스 활용 여부)에 따라 기존 지식 활용 과제를 폐쇄형 QA, 개방형 QA, 지식 완성의 세 가지 유형으로 분류합니다. 

    비공개 QA

    폐쇄형 QA 과제[462]는 사전 학습 말뭉치에서 학습자가 습득한 사실 지식을 테스트하는 과제로, 학습자는 외부 리소스를 사용하지 않고 주어진 문맥에 근거해서만 질문에 답해야 합니다. 이러한 능력을 평가하기 위해 정확도 메트릭이 널리 채택된 자연스러운 질문[383], 웹 질문[386], 퀴즈QA[387]를 비롯한 여러 데이터셋을 활용할 수 있습니다. 경험적 결과에 따르면 LLM은 이러한 환경에서 우수한 성능을 발휘할 수 있으며 심지어 최첨단 오픈 도메인 QA 시스템의 성능과도 일치하는 것으로 나타났습니다[56]. 또한 폐쇄형 QA 작업에서 LLM의 성능은 모델 크기와 데이터 크기 모두에서 스케일링 법칙 패턴을 보여줍니다. 즉, 매개변수와 학습 토큰을 확장하면 LLM의 용량이 증가하고 사전 학습 데이터에서 더 많은 지식을 학습(또는 암기)할 수 있습니다[56]. 또한, 유사한 매개변수 규모에서 평가된 작업과 관련된 사전 학습 데이터가 더 많은 LLM이 더 나은 성능을 달성할 수 있습니다[72]. 또한 폐쇄형 QA 설정은 LLM이 인코딩한 사실 지식의 정확성을 검증할 수 있는 테스트베드를 제공합니다. 그러나 기존 연구[55]에서 볼 수 있듯이, LLM은 사전 학습 데이터에 존재하는 경우에도 세분화된 지식에 의존하는 QA 작업에서 성능이 떨어질 수 있습니다.

    오픈북 QA

    폐쇄형 QA와 달리, 오픈북 QA 작업에서 LLM은 외부 지식 기반 또는 문서 컬렉션에서 유용한 증거를 추출한 다음 추출된 증거를 기반으로 질문에 답할 수 있습니다[463-466]. 일반적인 오픈북 QA 데이터세트(예: Natural Questions [383], OpenBookQA [395], SQuAD [398])는 폐쇄형 QA 데이터세트와 겹치는 부분이 있지만, Wikipedia와 같은 외부 데이터 소스를 통합합니다. 정확도와 F1 점수의 메트릭은 평가를 위한 오픈북 QA 작업에서 널리 사용됩니다. 외부 리소스에서 관련 지식을 선택하기 위해 LLM은 종종 텍스트 검색기(또는 검색 엔진)와 짝을 이루며, 이는 독립적으로 또는 LLM과 공동으로 훈련됩니다 [72, 463, 467]. 또한 이전 연구[468-470]에 따르면 리트리버는 추론 경로를 검증하고 수정하는 데 있어 LLM을 지원할 수 있다고 합니다. 평가에서 기존 연구는 주로 LLM이 추출된 지식을 활용하여 질문에 답하는 방법을 테스트하는 데 중점을 두며, 검색된 증거가 생성된 답변의 정확도를 크게 향상시킬 수 있으며 심지어 작은 LLM이 10배 큰 LLM을 능가할 수 있음을 보여줍니다[463, 467]. 또한 지식 정보의 최신성을 평가하기 위해 오픈북 QA 작업을 사용할 수도 있습니다. 사전 학습 또는 오래된 지식 리소스에서 검색하면 시간에 민감한 질문에 대해 LLM이 오답을 생성할 수 있습니다[463].

    지식 완성

    지식 완성 작업에서 LLM은 지식 단위(예: 지식 트리플)의 누락된 부분을 완성하거나 예측하는 데 활용할 수 있는 지식 기반[405]으로 어느 정도 간주될 수 있습니다. 이러한 작업은 LLM이 사전 학습 데이터에서 얼마나 많은 지식과 어떤 종류의 지식을 학습했는지 조사하고 평가할 수 있습니다. 기존의 지식 완성 작업은 크게 지식 그래프 완성 작업(예: FB15k237 [401], WN18RR [403])과 사실 완성 작업(예: WikiFact [400])으로 나눌 수 있는데, 각각 지식 그래프에서 삼겹줄을 완성하는 것과 특정 사실에 대한 불완전한 문장을 완성하는 것을 목표로 합니다. 경험적 연구에 따르면 기존 LLM은 특정 관계 유형과 관련된 지식 완성 과제를 수행하기 어렵다는 것이 밝혀졌습니다[340]. 위키팩트의 평가 결과에서 볼 수 있듯이, LLM은 사전 학습 데이터에서 자주 발생하는 몇 가지 관계(예: 통화 및 저자)에 대해서는 잘 수행하지만, 드문 관계(예: 발견자_또는_발명자 및 출생지_)에 대해서는 잘 수행하지 못합니다. 흥미롭게도, 동일한 평가 설정(예: 문맥 내 학습)에서 InstructGPT(즉, text-davinci-002)는 WikiFact의 모든 하위 집합에서 GPT-3보다 성능이 뛰어납니다.

    주요 이슈. 

    LLM은 지식 정보의 수집과 활용에 있어 중요한 진전을 이루었지만, 아래에서 설명하는 두 가지 주요 문제를 겪고 있습니다. 

    • 환각. 사실 텍스트를 생성할 때 어려운 문제는 환각 생성[448]으로, 생성된 정보가 기존 출처와 상충되거나(내재적 환각) 사용 가능한 출처로 확인할 수 없는 경우(외재적 환각)이며, 그림 13의 두 가지 예가 이를 보여줍니다. 환각은 기존 LLM에서 광범위하게 발생하며, 심지어 GPT-4와 같은 가장 우수한 LLM에서도 발생합니다 [46]. 또한 기존 연구에 따르면 LLM은 텍스트에서 환각된 내용을 인식하는 데 어려움을 겪으며[471], 심지어 강력한 ChatGPT도 마찬가지입니다. 언어 과제 외에도 최근 연구에 따르면 대규모 시각-언어 모델(LVLM)도 환각, 즉 동반된 이미지에 존재하지 않는 물체를 생성하는 데 어려움을 겪는 것으로 나타났습니다[472]. 본질적으로 LLM은 과제 해결에 지식을 "무의식적으로" 활용하는 것처럼 보이지만, 내부 또는 외부 지식의 사용을 정확하게 제어할 수 있는 능력이 여전히 부족합니다. 환각은 LLM을 오도하여 원치 않는 출력을 생성하고 대부분 성능을 저하시켜 실제 애플리케이션에 LLM을 배포할 때 잠재적인 위험을 초래할 수 있습니다. 이러한 문제를 완화하기 위해 고품질 데이터 또는 사람의 피드백을 사용하여 LLM을 튜닝하는 정렬 튜닝 전략(5.2절에서 설명)이 기존 연구에서 널리 활용되어 왔습니다[61]. 또한 신뢰할 수 있는 정보 소스를 제공하기 위해 외부 도구를 통합하면 환각 문제를 완화하는 데 도움이 될 수 있습니다[72, 469, 471]. 또 다른 연구 작업은 환각을 식별하기 위해 LLM의 불확실성 추정을 활용합니다 [473, 474]. 예를 들어, 환각된 사실이 서로 다른 샘플링된 출력에서 불일치를 보이는 경향이 있다는 점을 고려할 때, SelfCheckGPT [474]는 샘플링된 출력 내에서 정보 불일치를 측정하여 환각을 감지합니다. 환각 문제를 평가하기 위해 모델에 의해 모방된 인간의 거짓을 탐지하는 TruthfulQA [385]와 같은 일련의 환각 탐지 작업이 제안되었습니다. 최근에는 HaluEval[471]이 대규모 LLM으로 생성되고 사람이 주석을 단 환각 샘플을 생성하여 작업별 및 일반 시나리오에서 언어 모델이 환각을 인식하는 능력을 평가합니다.
    • 지식의 최신성. 또 다른 주요 과제로, 학습 데이터 이외의 최신 지식이 필요한 과제를 해결할 때 LLM은 어려움을 겪을 수 있습니다. 이 문제를 해결하기 위한 간단한 접근 방식은 새로운 데이터로 LLM을 정기적으로 업데이트하는 것입니다. 그러나 LLM을 미세 조정하는 데는 많은 비용이 소요되며, 점진적으로 LLM을 학습시킬 때 치명적인 망각 문제가 발생할 가능성이 높습니다. 따라서 새로운 지식을 기존 LLM에 통합하여 최신 상태로 만들 수 있는 효율적이고 효과적인 접근법을 개발할 필요가 있습니다. 기존 연구들은 LLM을 보완하기 위해 외부 지식 소스(예: 검색 엔진)를 활용하는 방법을 탐구해왔는데, 이는 LLM과 공동으로 최적화하거나[463] 플러그 앤 플레이 모듈로 사용할 수 있습니다[469]. 예를 들어, ChatGPT는 검색 플러그인을 활용하여 최신 정보 소스에 액세스합니다[475]. 추출된 관련 정보를 컨텍스트에 통합함으로써[476-478] LLM은 새로운 사실적 지식을 습득하고 관련 작업을 더 잘 수행할 수 있습니다. 그러나 이러한 접근 방식은 아직 피상적인 수준에 머물러 있는 것으로 보입니다. 또한 기존 연구에서는 내재적 지식을 업데이트하기 위해 언어 모델의 편집 매개변수를 탐색하기도 합니다[479-481]. 그럼에도 불구하고 이전 연구[482]에 따르면 몇몇 파라미터 편집 방법은 작은 언어 모델의 성능을 향상시킬 수 있지만 LLM에서는 성능이 좋지 않은 것으로 나타났습니다. 따라서 내재적 지식을 직접 수정하거나 특정 지식을 LLM에 주입하는 것은 여전히 어려운 일이며, 이는 여전히 미해결 연구 문제로 남아 있습니다[479, 480]. 

    7.1.3 복합 추론

    복합추론은 근거가 되는 증거나 논리를 이해하고 활용하여 결론을 도출하거나 의사결정을 내리는 능력을 말한다[51, 52]. 추론 과정에 관여하는 논리와 증거의 유형에 따라 기존의 평가 과제를 지식 추론, 상징 추론, 수학적 추론의 세 가지로 크게 구분하는 것을 고려합니다.

    지식 추론

    지식 추론은 주어진 질문에 답하기 위해 사실적 지식에 대한 논리적 관계와 증거에 의존하는 과제입니다. 기존 연구에서는 주로 특정 데이터 세트를 사용하여 해당 지식 유형의 추론 능력을 평가하는데, 예를 들어 상식 지식 추론의 경우 CSQA [333]/StrategyQA [408], 과학 지식 추론의 경우 ScienceQA [394] 등이 있습니다. 기존 연구[394]에서는 예측 결과의 정확성 외에도 자동 지표(예: BLEU) 또는 인적 평가를 통해 생성된 추론 프로세스의 품질을 평가했습니다. 일반적으로 이러한 작업은 주어진 질문에 대한 해답에 도달할 때까지 사실적 지식을 기반으로 단계별 추론을 수행해야 합니다. 단계별 추론 능력을 이끌어 내기 위해 LLM의 복합 추론 능력을 향상시키기 위해 생각의 사슬(CoT) 프롬프트 전략[33]이 제안되었습니다. 6.2절에서 설명한 것처럼 CoT는 수동으로 생성[33] 또는 자동으로 생성[483]할 수 있는 중간 추론 단계를 프롬프트에 포함시켜 LLM이 다단계 추론을 수행하도록 유도합니다. 이러한 방식은 LLM의 추론 성능을 크게 향상시켜 여러 복잡한 지식 추론 작업에서 새로운 최첨단 결과를 도출합니다[33, 56, 345]. 또한 지식 추론 작업을 코드 생성 작업으로 재구성한 후, 연구자들은 특히 코드에 대해 사전 학습된 LLM을 통해 LLM의 성능을 더욱 향상시킬 수 있다는 것을 발견했습니다[167]. 그러나 지식 추론 작업의 복잡성으로 인해 현재 LLM의 성능은 여전히 상식 추론과 같은 작업에서 인간의 결과보다 뒤떨어집니다 [33, 56, 484]. 일반적인 실수 유형으로, LLM은 부정확한 중간 단계를 생성하여 잘못된 최종 결과를 초래할 수 있습니다. 이 문제를 해결하기 위해 기존 연구에서는 전체 추론 체인의 정확도를 향상시키기 위한 특수 디코딩 또는 앙상블 전략을 제안했습니다 [334, 337]. 

    기호 추론.

    기호 추론 작업은 주로 특정 목표를 달성하기 위해 공식적인 규칙 설정에서 기호를 조작하는 데 중점을 두며[51], 이러한 연산과 규칙은 사전 학습 중에 LLM이 본 적이 없을 수 있습니다. 기존 연구[33, 303, 336]에서는 일반적으로 마지막 문자 연결 및 동전 뒤집기 과제에서 LLM을 평가하는데, 평가 예제는 문맥 내 예제와 동일한 추론 단계(도메인 내 테스트라고 함) 또는 더 많은 단계(도메인 외 테스트라고 함)를 필요로 합니다. 도메인 외부 테스트의 예로, LLM은 문맥상 두 단어가 포함된 예제만 볼 수 있지만, 이 테스트에서는 세 단어 이상의 마지막 글자를 연결해야 합니다. 일반적으로 생성된 심볼의 정확도는 이러한 작업에 대한 LLM의 성능을 평가하는 데 사용됩니다. 따라서 LLM은 복잡한 시나리오에서 기호 연산 간의 의미 관계와 그 구성을 이해해야 합니다. 그러나 도메인 외부 환경에서는 기호 연산과 규칙의 복잡한 구성(예: 문맥 예제에서 두 배의 연산 수)을 보지 못했기 때문에 LLM이 정확한 의미를 파악하기 어렵습니다. 이 문제를 해결하기 위해 기존 연구에서는 스크래치패드[421, 485] 및 튜터[486] 전략을 통합하여 LLM이 기호 연산을 더 잘 조작하여 더 길고 복잡한 추론 프로세스를 생성할 수 있도록 지원합니다. 또 다른 연구 작업은 기호 연산과 규칙을 표현하기 위해 형식적 프로그래밍 언어를 사용하는데, 이 경우 LLM은 코드를 생성하고 외부 인터프리터로 실행하여 추론 프로세스를 수행해야 합니다. 이러한 방식은 복잡한 추론 과정을 LLM과 인터프리터가 각각 코드 합성과 프로그램 실행으로 분해하여 추론 과정을 단순화하면서도 더 정확한 결과를 도출할 수 있습니다[346].

    수학적 추론

    수학적 추론 과제는 문제를 해결하거나 증명문을 생성하기 위해 수학적 지식, 논리, 계산을 종합적으로 활용해야 합니다. 기존의 수학적 추론 과제는 크게 수학 문제 해결과 자동화된 정리 증명으로 구분할 수 있습니다. 수학 문제 해결 과제의 경우 SVAMP [423], GSM8k [422], MATH [264] 데이터셋이 주로 평가에 사용되며, LLM은 수학 문제에 대한 답을 얻기 위해 정확한 구체적인 숫자나 방정식을 생성해야 합니다. 이러한 과제 역시 다단계 추론이 필요하기 때문에 LLM의 추론 성능을 향상시키기 위해 CoT 프롬프트 전략이 널리 채택되고 있습니다[33]. 또 다른 실용적인 전략으로, 대규모 수학 말뭉치에 대한 지속적인 사전 훈련을 통해 LLM의 수학적 추론 과제 수행 능력을 크게 향상시킬 수 있습니다 [35, 159, 487]. 또한, 서로 다른 언어의 수학 문제는 동일한 수학적 논리를 공유하기 때문에 연구자들은 LLM의 다국어 수학적 추론 능력을 평가하기 위해 다국어 수학 단어 문제 벤치마크[343]를 제안하기도 합니다. 또 다른 고난도 과제인 자동화된 정리 증명(ATP)[429, 431, 488]은 추론 모델이 추론 논리와 수학적 기술을 엄격하게 따라야 합니다. 이 작업에 대한 성능을 평가하기 위해 증명 성공률을 평가 지표로 사용하는 대표적인 ATP 데이터셋으로는 PISA [430]와 miniF2F [431]가 있습니다. 일반적인 접근 방식으로, ATP에 대한 기존 연구는 LLM을 활용하여 Lean, Metamath, Isabelle [489-491]과 같은 대화형 정리 증명기(ITP)를 사용하여 증명을 검색하는 것을 돕습니다. ATP 연구의 가장 큰 한계는 공식 언어로 된 관련 말뭉치가 부족하다는 점입니다. 이 문제를 해결하기 위해 여러 연구에서 LLM을 활용하여 비공식적인 진술을 새로운 데이터를 보강하기 위한 공식 증명으로 변환하거나[492], 증명의 검색 공간을 줄이기 위해 초안과 증명 스케치를 생성합니다[493].

    주요 이슈. 

    이러한 발전에도 불구하고 LLM은 복잡한 추론 작업을 해결하는 데 여전히 몇 가지 한계가 있습니다.

    • 추론 불일치. 향상된 추론 전략(예: CoT 프롬프트)을 통해 LLM은 지원 논리와 증거를 기반으로 단계별 추론을 수행함으로써 일부 복잡한 추론 과제를 해결할 수 있습니다. 이러한 효과에도 불구하고 추론 불일치 문제는 분해된 추론 과정에서 종종 발생합니다. 구체적으로, LLM은 잘못된 추론 경로를 따라 정답을 생성하거나, 올바른 추론 과정을 거친 후 오답을 생성하여[33, 356] 도출된 답과 추론 과정 간의 불일치를 초래할 수 있습니다. 이러한 문제를 해결하기 위해 기존 연구에서는 외부 도구나 모델을 통해 LLM의 전체 생성 과정을 안내하거나[334, 446, 494], 추론 과정과 최종 답변을 재확인하여 잠재적 오류를 수정하거나[495-497], 프로세스 기반 피드백을 통해 LLM을 미세 조정하는 방법[498, 499]이 제안되었습니다. 예를 들어, 생각의 나무(ToT)[494]는 다양한 추론 경로를 동시에 탐색하고 자체 평가함으로써 LLM이 의사 결정 프로세스에 참여할 수 있도록 지원합니다. 추론 프로세스를 개선하기 위해 셀프-리파인(Self-Refine)[495]은 자체 생성된 솔루션에 대한 LLM의 피드백을 유도하여 피드백을 기반으로 솔루션을 반복적으로 개선할 수 있도록 합니다. 또한 여러 연구에서 학습 중 프로세스 기반 감독을 통합하여 LLM의 추론 사슬의 일관성을 개선합니다[498, 499]. 최근의 접근 방식은 복잡한 추론 작업을 코드 생성 작업으로 재구성하고, 생성된 코드를 엄격하게 실행하여 추론 과정과 결과 간의 일관성을 보장하는 것이 유망한 해결책입니다. 또한, 유사한 입력을 가진 작업 간에 불일치가 존재할 수 있으며, 작업 설명의 작은 변경으로 인해 모델이 다른 결과를 생성할 수 있음이 밝혀졌습니다 [49, 423]. 이러한 문제를 완화하기 위해 자체 일관성[337]은 여러 추론 경로의 앙상블을 채택하여 LLM의 디코딩 프로세스를 향상시킵니다.
    • 수치 계산. 복잡한 추론 작업의 경우, LLM은 특히 큰 숫자를 사용한 산술과 같이 사전 학습 중에 거의 접하지 않는 기호에 대해 관련 수치 계산에 여전히 어려움을 겪습니다 [49, 486, 500]. 이 문제를 해결하기 위한 직접적인 방법은 합성 산술 문제에 대해 LLM을 튜닝하는 것입니다[259, 501]. 또한, 스크래치 패드 추적과 같이 훈련 및 추론 단계[259, 485, 502]에서 중간 계산 단계를 추적하여 수치 계산 성능을 개선하는 연구도 급증하고 있습니다. 또한 기존 연구[71]에서는 특히 산술 연산을 처리하기 위해 외부 도구(예: 계산기)를 통합하기도 했습니다. 최근에는 ChatGPT가 외부 도구를 사용할 수 있는 플러그인 메커니즘을 제공했습니다[475]. 이러한 방식으로 LLM은 도구를 올바르게 조작하는 방법을 배워야 합니다. 이를 위해 연구자들은 LLM을 튜닝하기 위한 도구(심지어 LLM 자체)를 사용하여 예제를 보강하거나[71, 503], 상황 내 학습을 위한 지침과 예제를 고안했습니다[346]. 외부 도구의 도움 외에도, 최근 연구에 따르면 숫자를 개별 토큰으로 토큰화하는 것(예: LLaMA 및 Galactica 토큰화기)이 LLM의 고유한 산술 능력을 향상시키는 데 유용한 접근 방식입니다[259, 500]. 한 가지 가능한 설명은 서브워드 토큰화 기법이 숫자를 토큰화할 때 일관되지 않은 시퀀스를 초래할 수 있다는 것입니다. 예를 들어, 서브워드 토큰화 기법을 사용하면 정수 7481은 7481로 토큰화되고 74815는 748 15로 토큰화될 수 있습니다(분할이 다른 동일한 숫자 하위 문자열)[259]. 이에 비해 숫자에 대한 숫자 기반 토큰화는 이러한 불일치를 피할 수 있으므로 LLM의 숫자 계산 능력을 향상시킬 수 있습니다.

    7.2 고급 능력 평가

    위의 기본 평가 과제 외에도 LLM은 평가 시 특별한 고려가 필요한 몇 가지 고급 능력을 발휘합니다. 이 부분에서는 인간 정렬, 외부 환경과의 상호작용, 도구 조작 등 몇 가지 대표적인 고급 능력과 그에 따른 평가 접근 방식에 대해 설명합니다. 다음에서는 이러한 고급 능력에 대해 자세히 설명합니다.

    7.2.1 휴먼 얼라인먼트

    실제 응용 분야에서 로보틱스가 폭넓게 활용되기 위해서는 로보틱스가 인간의 가치와 요구에 잘 부합할 수 있는 능력, 즉 휴먼 얼라인먼트가 필요합니다.

    이러한 능력을 평가하기 위해 기존 연구에서는 도움성, 정직성, 안전성과 같은 여러 가지 인간 적합성 기준을 고려합니다[46, 243, 268]. 도움성과 정직성의 경우, 적대적 질문 답변 과제(예: TruthfulQA [385])를 활용하여 텍스트에서 가능한 허위성을 탐지하는 LLM의 능력을 조사할 수 있습니다[46, 72]. 또한, CrowS-Pairs [504] 및 Winogender [505] 등 기존의 여러 벤치마크로도 무해성을 평가할 수 있습니다. 위의 데이터 세트를 사용한 자동 평가에도 불구하고, 사람이 직접 평가하는 것이 LLM의 인간 정렬 능력을 효과적으로 테스트하는 더 직접적인 방법입니다. OpenAI는 AI 위험과 관련된 분야의 많은 전문가를 초청하여 위험한 콘텐츠에 직면했을 때 GPT-4의 동작을 평가하고 개선합니다[46]. 또한, 인간 정렬의 다른 측면(예: 진실성)에 대해 여러 연구에서 특정 지침을 사용하고 주석 프로세스를 안내하는 주석 규칙을 고안할 것을 제안합니다[72]. 경험적 연구에 따르면 이러한 전략은 LLM의 휴먼 얼라인먼트 능력을 크게 향상시킬 수 있습니다[243]. 예를 들어, 전문가와의 상호작용을 통해 수집된 데이터에 대한 정렬 튜닝을 거친 후, 민감하거나 허용되지 않는 프롬프트를 처리할 때 GPT-4의 잘못된 동작률을 크게 줄일 수 있습니다. 또한 고품질의 사전 학습 데이터는 정렬에 필요한 노력을 줄일 수 있습니다[46]. 예를 들어, Galactica는 과학 말뭉치에서 편향된 내용이 적기 때문에 잠재적으로 더 무해할 수 있습니다 [35].

    7.2.2 외부 환경과의 상호작용

    표준 평가 작업 외에도 LLM은 외부 환경으로부터 피드백을 받고 행동 지시에 따라 행동 계획을 자연어로 생성하여 에이전트를 조작하는 등의 작업을 수행할 수 있습니다[525, 526]. 이러한 능력은 상세하고 매우 현실적인 행동 계획을 생성할 수 있는 LLM에서도 나타나는 반면, 더 작은 모델(예: GPT-2)은 더 짧거나 무의미한 계획을 생성하는 경향이 있습니다[525].

    이러한 능력을 테스트하기 위해 다음과 같이 몇 가지 구현된 AI 환경과 벤치마크를 평가에 사용할 수 있습니다. VirtualHome [507]은 청소, 요리와 같은 가사 작업을 위한 3D 시뮬레이터를 구축하여 에이전트가 LLM에 의해 생성된 자연어 작업을 실행할 수 있도록 합니다. ALFRED [509]는 구성 목표를 달성하기 위해 LLM이 필요한 더 까다로운 작업을 포함합니다. BEHAVIOR [508]는 시뮬레이션 환경에서의 일상적인 작업에 초점을 맞추고 있으며, 객체의 내부 상태 변경과 같은 복잡한 솔루션을 생성하기 위해 LLM을 필요로 합니다. 집안일과 같은 제한된 환경 외에도 마인크래프트나 인터넷과 같은 오픈월드 환경을 탐색하기 위한 LLM 기반 에이전트의 숙련도를 조사하는 일련의 연구 작업도 진행 중입니다[527, 528]. 보이저[528]는 LLM이 환경의 피드백을 기반으로 새로운 기술을 지속적으로 습득할 수 있는 자동 커리큘럼 모듈을 도입했습니다. GITM [527]은 작업 분해, 계획, 인터페이스 호출을 통해 LLM을 기반으로 마인크래프트의 다양한 과제를 해결하는 데 중점을 둡니다. 기존 연구는 생성된 실행 계획 또는 작업 완료를 기반으로 벤치마크에서 일반적인 지표(예: 생성된 실행 계획의 실행 가능성 및 정확성)를 채택하거나[525], 실제 실험을 직접 수행하여 성공률[529]을 측정하여 이러한 능력을 평가하고 있습니다. LLM은 외부 환경과 상호작용하며 정확한 실행 계획을 생성할 수 있는 것으로 나타났습니다[530]. 최근에는 코드와 유사한 프롬프트 설계[348], 실제 접지 제공[529] 등 LLM의 상호 작용 능력을 향상시키기 위한 몇 가지 개선 방법이 제안되었습니다.

    또한 최근 연구에서는 시뮬레이션 환경에서 LLM을 기반으로 한 다중 에이전트 협업을 탐구하고 있습니다[360, 531, 532]. 이러한 연구는 샌드박스 환경에서 관찰, 계획, 기억을 가진 여러 LLM 기반 에이전트를 인스턴스화하여 인간의 사회적 행동을 시뮬레이션합니다. 통제된 평가에서 제너레이티브 에이전트의 검색, 계획, 사고 능력은 인터뷰와 유사한 방식으로 인간에 의해 평가됩니다. 또한 시뮬레이션 환경 내에서 여러 에이전트에 대한 설명적 측정을 수행하여 새로운 사회적 행동을 조사합니다.

    7.2.3 도구 조작

    복잡한 문제를 해결할 때 LLM은 필요하다고 판단되면 외부 도구를 사용할 수 있습니다. 기존 작업에서는 사용 가능한 도구를 API 호출로 캡슐화하여 검색 엔진 [72], 계산기 [71], 컴파일러 [346] 등 다양한 외부 도구를 사용하여 몇 가지 특정 작업에서 LLM의 성능을 향상시켰습니다. 최근 OpenAI는 언어 모델링 이상의 광범위한 기능을 LLM에 탑재할 수 있는 ChatGPT[475]의 플러그인 사용을 지원했습니다. 예를 들어, 웹 브라우저 플러그인을 통해 ChatGPT는 새로운 정보에 액세스할 수 있습니다. 또한 써드파티 플러그인을 통합하는 것은 LLM을 기반으로 하는 애플리케이션 생태계를 활성화하는 데 특히 중요합니다.

    도구 조작 능력을 평가하기 위해 기존 연구에서는 주로 수학적 문제 해결(예: GSM8k [422] 및 SVAMP [423]) 또는 지식 질문 답변(예: TruthfulQA [385])과 같은 복잡한 추론 작업을 평가에 채택하고 있는데, 이는 도구의 성공적인 활용이 수치 계산과 같이 LLM이 수행하지 못하는 필수 기술을 향상시키는 데 매우 중요한 역할을 합니다. 이러한 방식으로 이러한 과제에서 평가된 성과는 도구 조작에 대한 LLM의 능력을 반영할 수 있습니다. 기존 연구에서는 LLM에게 도구를 활용하도록 가르치기 위해 맥락에서 도구를 사용하는 예시를 추가하여 LLM을 유도하거나[346], 도구 활용에 대한 시뮬레이션 데이터에 대해 LLM을 미세 조정합니다[71, 503]. 도구의 도움으로 LLM은 방정식 계산과 시기적절한 질문에 대한 답변 등 자신이 잘하지 못하는 문제를 처리할 수 있는 능력이 향상되는 것으로 밝혀졌습니다[71, 362]. 그러나 사용 가능한 도구의 수가 증가함에 따라 LLM의 제한된 컨텍스트 길이로 인해 광범위한 도구 API를 설명하고 시연하는 데 어려움을 겪을 수 있습니다. 이 문제를 해결하기 위해 기존 연구에서는 관련 도구의 사용법을 검색하거나 도구 정보를 임베딩 공간 내에 토큰으로 인코딩합니다[533-535].

    사람이 개발한 기존 도구 외에도 LLM은 특정 작업을 위한 자체 도구를 자율적으로 만들 수 있는 기능을 갖추고 있습니다[536]. 이를 통해 모델은 자체적으로 만든 도구를 독립적으로 탐색하고 조작할 수 있으므로 다양한 실제 작업을 해결하는 데 있어 자율 탐색의 잠재력을 확장할 수 있습니다. 

    요약. 위의 세 가지 능력은 인간의 가치와 선호도에 부합하고(인간 정렬), 실제 시나리오에서 적절하게 행동하며(외부 환경과의 상호 작용), 능력 범위를 확장하는(도구 조작) LLM의 실제 성능에 큰 가치를 지니고 있습니다. 위의 세 가지 고급 능력 외에도 LLM은 일부 작업(예: 데이터 주석 [315])이나 학습 메커니즘(예: 자기 개선 [537])과 특별히 관련된 다른 능력도 보여줄 수 있습니다. LLM을 더 잘 활용하고 개선하기 위해 이러한 새롭게 부상하는 능력을 발견, 측정 및 평가하는 것은 열린 방향이 될 것입니다.

    7.3 벤치마크 및 경험적 평가

    지금까지 LLM의 기본 능력과 고급 능력에 대해 살펴보고, 각 능력에 대한 평가 방식에 대해서도 소개했습니다. 다음에서는 기존의 평가 벤치마크를 소개하고, 각 능력별로 특별히 선정된 과제를 기반으로 한 실증적 평가 실험을 소개합니다.

    7.3.1 종합 평가 벤치마크

    최근 LLM의 평가를 위한 여러 종합적인 벤치마크[264, 265, 340]가 발표되었습니다. 이 부분에서는 널리 사용되는 몇 가지 벤치마크, 즉 MMLU, BIG-bench, HELM 및 일련의 인간 시험 벤치마크를 소개합니다. 

    • MMLU [264]는 수학과 컴퓨터 과학에서 인문학과 사회 과학에 이르기까지 광범위한 지식 영역을 포괄하는 다중 작업 지식 이해에 대한 대규모 평가를 위한 다목적 벤치마크입니다. 이러한 작업의 난이도는 기초부터 고급까지 다양합니다. 기존 연구에서 볼 수 있듯이, 모델 크기의 스케일링 법칙을 보여주는 이 벤치마크[35, 56, 57, 64]에서 LLM은 대부분 작은 모델보다 큰 폭으로 성능이 뛰어납니다. 최근에는 GPT-4가 MMLU에서 놀라운 기록(5샷 설정에서 86.4%)을 달성했는데, 이는 이전의 최신 모델보다 훨씬 뛰어난 수준입니다[46].
    • BIG-bench [265]는 다양한 측면에서 기존 LLM을 조사하기 위한 공동 벤치마크입니다. 언어학, 아동 발달, 수학, 상식적 추론, 생물학, 물리학, 사회적 편견, 소프트웨어 개발 등 광범위한 주제를 포괄하는 204개의 과제로 구성되어 있습니다. 모델 크기를 확장하면 LLM은 BIG-bench [56]에서 65%의 작업에서 몇 번의 샷 설정으로 인간의 평균 성능을 능가할 수도 있습니다. 전체 벤치마크의 높은 평가 비용을 고려하여, BIG-bench의 작지만 다양하고 까다로운 24개의 과제를 포함하는 경량 벤치마크인 BIG-bench-Lite가 제안되었습니다. 또한, LLM이 인간에 비해 열등한 성능을 보이는 고난이도 과제를 선별하여 현재 풀지 못하는 과제를 집중적으로 연구하기 위해 BIG-bench hard(BBH) 벤치마크[538]가 제안되었습니다. BBH의 난이도가 높아질수록 소형 모델은 대부분 랜덤에 가까운 성능을 달성합니다. 이에 비해 CoT 프롬프트는 단계별 추론을 수행하여 성능을 향상시키는 LLM의 능력을 이끌어낼 수 있으며, 심지어 BBH에서 인간의 평균 성능을 뛰어넘을 수도 있습니다. 
    • HELM [340]은 현재 16개 시나리오와 7개 범주의 메트릭으로 구성된 핵심 세트를 구현하는 포괄적인 벤치마크입니다. 이는 언어 모델에 대한 총체적인 평가를 수행하는 많은 선행 연구를 기반으로 구축되었습니다. HELM의 실험 결과에서 볼 수 있듯이, 명령어 튜닝은 정확성, 견고성, 공정성 측면에서 LLM의 성능을 지속적으로 향상시킬 수 있습니다. 또한 추론 작업의 경우 코드 말뭉치에 대해 사전 학습된 LLM이 더 우수한 성능을 보였습니다.
    • 인간 수준의 테스트 벤치마크는 AGIEval [539], MMCU [540], M3KE [541], C-Eval [542], Xiezhi [543] 등 인간 테스트용으로 고안된 질문으로 LLM의 종합적인 능력을 평가하는 것을 목표로 합니다. 이러한 벤치마크는 다양한 도메인, 난이도 및 언어를 포괄하여 LLM의 일반적인 기능을 종합적으로 평가합니다. 이러한 평가 벤치마크에서 공개적으로 사용 가능한 모델과 비교했을 때, API 서비스를 제공하는 모델(예: GPT-4, ChatGPT, Claude)은 공개적으로 사용 가능한 모델에 비해 우수한 성능을 보여줍니다. 평가에서 가장 우수한 성능을 보이는 모델인 GPT-4는 AGIEval [539]에서 인간의 평균 성능을 능가합니다. 그러나 이러한 까다로운 벤치마크에서는 여전히 인간의 최고 성능에 뒤쳐집니다. 따라서 특히 공개적으로 접근 가능한 모델의 경우 LLM의 전반적인 능력을 더욱 향상시킬 수 있는 여지가 충분합니다. 위의 벤치마크는 LLM을 평가하기 위한 다양한 주류 평가 작업과 실제 인간 시험 문제를 다룹니다. 또한 다국어 지식 활용을 위한 TyDiQA [544], 다국어 수학적 추론을 위한 MGSM [343] 등 LLM의 특정 능력을 평가하는 데 초점을 맞춘 여러 벤치마크가 있습니다. 평가를 수행하기 위해 특정 목표에 따라 적합한 벤치마크를 선택할 수 있습니다. 또한, 언어 모델 평가 하네스 [545] 및 OpenAI 평가 [46]와 같이 연구자가 기존 벤치마크에서 LLM을 평가하거나 맞춤형 평가를 위해 새로운 작업을 확장할 수 있는 여러 오픈 소스 평가 프레임워크도 있습니다. 그러나 이러한 벤치마크는 몇 가지 능력에만 초점을 맞추거나 여러 과제의 단순한 혼합을 고려하기 때문에 LLM의 기본 및 고급 능력에 대한 종합적인 테스트가 부족합니다. 

    7.3.2 경험적 능력 평가

    위의 평가 기준은 주로 LLM의 전반적인 능력을 평가하는 데 사용됩니다. 이 부분에서는 7.1절과 7.2절에서 논의한 능력에 대해 세분화된 평가를 수행합니다. 각 능력에 대해 대표적인 과제와 데이터 세트를 선정하여 평가 실험을 수행하여 LLM의 해당 성능을 살펴봅니다. 다음으로 먼저 평가를 위한 실험 설정을 소개합니다.

    평가 모델. 

    평가를 위해 오픈소스 모델부터 클로즈소스 API 접근 모델까지 대표적인 LLM을 다음과 같이 고려합니다:

    • 오픈 소스 모델. 기존 오픈소스 모델은 기본 모델과 명령어 튜닝 모델로 분류할 수 있습니다. 기본 모델은 언어 모델링 목표에 따라 대규모 범용 말뭉치에 대한 사전 학습만 이루어지며, 추가적인 감독을 통한 미세 조정은 이루어지지 않습니다. 이번 평가에서는 LLaMA(7B)[57], Pythia(7B 및 12B)[87], Falcon(7B)[554] 등 세 가지 대표적인 기본 모델을 선정했습니다. 명령어 튜닝 모델은 명령어(예: 작업 데이터 세트, 일일 채팅 또는 합성 명령어)를 사용하여 미세 조정된 모델입니다. 실험에서는 Vicuna (7B) [120], Alpaca (7B) [119], ChatGLM (6B) [83] 등 세 가지 대표적인 명령어 튜닝 모델을 선택했습니다. 
    • 비공개 소스 모델. 오픈소스 모델 외에도 API를 통해서만 접근할 수 있는 클로즈드 소스 모델도 개발자와 연구자 모두에게 많은 관심을 받고 있습니다. 여기서는 텍스트-davinci002/003(줄여서 Davinci002/003), ChatGPT, Claude 등 대표적인 클로즈드 소스 모델 4개를 선정했는데, 앞의 세 모델은 OpenAI에서, 마지막 모델은 Anthropic에서 개발했습니다. 작업 및 데이터 세트. 다음으로 7.1절과 7.2절에서 논의한 능력에 대한 평가 과제와 데이터 세트를 설정합니다. 우리는 주로 이러한 데이터 세트에서 LLM의 제로 샷 성능을 평가합니다. 제로 샷 방식으로 해결하기 어려운 복잡한 작업(예: 수학적 추론 및 도구 조작)의 경우 오픈 소스 모델의 컨텍스트 길이 제한을 고려하여 주로 3샷 성능을 보고합니다.
    • 언어 생성. 앞서 설명한 바와 같이 언어 생성의 경우 언어 모델링, 조건부 텍스트 생성, 코드 합성 등 세 가지 종류의 작업을 평가합니다. 특히 언어 모델링(언어 모델링), 기계 번역(기계 번역), 텍스트 요약(텍스트 요약), 코드 합성(코드 합성) 등 일반적으로 사용되는 네 가지 데이터셋, 즉 LAMBADA [183], WMT'22 [373], XSum [377], HumanEval [89]을 선정하여 평가에 사용합니다. WMT'22에서는 기계 번역에서 LLM의 평균 성능을 조사하기 위해 원래의 대규모 테스트 세트에서 각 언어 쌍에 대해 1000개의 예제를 선택하여 새로운 평가 세트를 구성합니다. 이러한 데이터 세트에서 LLM의 제로 샷 성능을 평가하고, LAMBADA의 경우 단어 예측 정확도를, WMT'22의 경우 BLEU-4를, XSum의 경우 ROUGE-L을, HumanEval의 경우 pass@10을 계산합니다. 
    • 지식 활용. 지식 활용 능력을 평가하기 위해 4개의 질문 답변 데이터 세트(예: TriviaQA [387], Natural Questions [383], Web Questions [386], ARC [384])와 사실 추출 데이터 세트인 WikiFact [400]를 선정했습니다. 또한 이러한 데이터 세트에 대한 LLM의 제로 샷 성능을 보고하고 ARC에 대한 정확도와 다른 데이터 세트에 대한 정확한 일치도를 계산합니다.
    • 복잡한 추론. 복잡한 추론의 경우, 지식 추론의 경우 OpenbookQA [395], HellaSwag [412], SocialIQA [411], 기호 추론의 경우 Colored Objects [265], Penguins in the Table [265], 수학적 추론의 경우 GSM8k [422], MATH [264]에서 비교 모델을 평가합니다. OpenbookQA, HellaSwag, SocialIQA는 정확도를, Colored Objects와 Penguins in the Table은 풀이율을, GSM8k와 MATH는 정확도를 계산합니다. 지식 추론 과제의 경우, 제로 샷 환경에서 모두 해결할 수 있는 QA 과제이므로 제로 샷 성능을 평가합니다. 복잡한 기호 추론 및 수학적 추론 작업의 경우, 우리는 3샷 인컨텍스트 예제를 활용하여 LLM을 더 잘 이끌어내어 작업을 수행합니다. 기존 연구[33, 346]에 따라 수학적 추론 과제를 더 잘 풀기 위해 생각의 연쇄 프롬프트 전략도 활용합니다.
    • 인간 정렬. 휴먼 얼라인먼트를 위해 우리는 LLM이 질문에 대한 답을 생성할 때 진실한지 측정하기 위해 TruthfulQA [385], LLM의 고정관념을 평가하기 위해 CrowS-Pairs [504] 및 WinoGender [505], LLM이 독성 언어를 생성하는 정도를 평가하기 위해 RealToxityPrompts [506], LLM의 환각을 인식하는 능력을 테스트하기 위해 HaluEval [471]을 선택했습니다. 실제 독성 프롬프트의 테스트 세트가 너무 많기 때문에 평가를 위해 무작위로 10000개의 예시를 샘플링했습니다. 제로 샷 성능을 보고하기 위해 LLaMA [57]를 따르고, TruthfulQA의 경우 주장을 참으로 식별하는 정확도, CrowS-Pairs의 경우 편향된 문장(높은 난해성)을 인식하는 정확도, WinoGender의 경우 핵심 참조 해결 정확도(그/그녀), RealToxityPrompts의 경우 독성 점수, HaluEval의 경우 환각을 인식하는 평균 정확도를 계산합니다. TruthfulQA의 경우, 기존 작업[57]을 따라 텍스트-davinci-003을 활용하여 사람을 대체하여 채점합니다. Crows-Pairs와 WinoGender의 경우, 당혹감 및 코어퍼런스 해상도 점수를 계산하기 위해 LLaMA[57]의 실험적 설정을 따릅니다. RealToxityPrompts의 경우, 독성 평가를 위해 Perspective-API를 활용합니다.
    • 환경과의 상호작용. 이 기능을 테스트하기 위해 가정 및 이커머스 환경과 같은 실제 시나리오를 시뮬레이션하는 ALFWorld [510] 및 WebShop [511]을 평가에 선택합니다. 웹샵과 ALFWorld에서 각각 LLM의 1샷 및 2샷 성능을 평가하는 ReAct [361]의 설정을 따르고, ALFWorld의 성공률과 웹샵의 평균 점수/성공률을 계산합니다. 또한 ReAct [361]를 따라 입력 프롬프트의 길이를 줄이고 줄 바꿈을 EOS 토큰으로 활용합니다.
    • 도구 조작. 도구 조작을 위해 검색 엔진과 모델 인터페이스를 포함한 두 가지 종류의 도구를 고려합니다. 따라서 두 가지 도구 조작 벤치마크, 즉 HotpotQA [409]와 Gorilla [518]를 채택합니다. HotpotQA는 LLM이 검색 엔진을 사용하여 웹에서 문서를 검색하도록 요구하고, Gorilla는 TorchHub, TensorHub, HuggingFace의 세 가지 허브에서 모델 API를 호출하도록 요구합니다. HotpotQA는 정확도를, Gorilla는 정확도를 계산합니다. HotpotQA의 경우, ReAct [361]을 따라 3샷 성능을 보고합니다. Gorilla의 경우, 논문 [518]에서 공개된 코드를 따라 제로 샷 성능을 평가합니다. 

    구현 세부 사항. 

    각 작업과 데이터 세트에 대해 기존 작업(예: TruthfulQA, HotPotQA, Gorilla, HaluEval)에서 제공하거나 경험적 경험에 따라 설계된 동일한 프롬프트 및 결과 구문 분석 방법을 사용하여 비교 대상 LLM을 평가합니다, TriviaQA, Natural Questions, Web Questions, ARC, WikiFact, GSM8k, MATH, C-Objects, Penguins, LAMBADA, WMT'22, XSum, HumanEval, CrowS-Pairs, WinoGender, RealToxityPrompt). 특히 클로즈드 소스 모델에 대한 모든 실험은 해당 모델의 공식 API 호출을 기반으로 하며, 오픈 소스 모델의 경우 공개적으로 사용 가능한 코드와 모델 파라미터를 활용하고 8개의 A800-80G GPU에서 추론을 수행합니다. TriviaQA, OpenbookQA, HellaSwag, SocialIQA의 경우, 테스트 세트가 공개되지 않았기 때문에 개발 세트에서 실험합니다. 다른 데이터 세트의 경우 테스트 세트에서 실험합니다. 실험을 재현하기 위해 실험 코드와 데이터도 https://github.com/RUCAIBox/LLMSurvey/tree/ main/Experiments에 공개적으로 공개합니다.

    7.3.3 결과 분석 및 발견 사항

    실험 결과를 표 11에 보고하고, 그 결과를 다음과 같이 분석합니다. 

    비공개 소스 모델 분석. 

    네 가지 비공개 소스 모델(즉, ChatGPT, Claude, Davinci003, Davinci002)에 대한 분석과 결과를 요약하면 다음과 같습니다.

    • 이 네 가지 비공개 소스 모델은 범용 작업 해결사로서 유망한 결과를 얻었으며, ChatGPT가 대부분 가장 우수한 성능을 보였습니다. ChatGPT, Claude, Davinci003, Davinci002는 복잡한 작업(예: GSM8k)을 포함한 대부분의 작업에서 우수한 성능을 보이며 범용 작업 솔버로서 큰 잠재력을 보여주었습니다. 그 중 ChatGPT는 평가 과제에서 더 우수한 모델 능력을 보여 10개의 과제에서 최고 점수를 획득했습니다. 일부 평가 과제에서는 특히 복잡한 과제에서 ChatGPT와 다른 비공개 소스 모델 간의 성능 격차가 매우 컸습니다(예: GSM8k의 경우 76.50(ChatGPT) 대 49.73(Davinci002), HumanEval의 경우 79.88(ChatGPT) 대 51.22(Claude)와 같이).
    • 환경과의 상호작용 및 도구 조작 작업에서는 ChatGPT와 Davinci003이 더 나은 성능을 보였습니다. 두 가지 평가 작업에서 두 가지 OpenAI 모델인 ChatGPT와 Davinci003이 다른 모델보다 큰 차이로 더 나은 성능을 보였습니다(예: ALFW에서 38.81(ChatGPT) 대 0.00(Claude), HotpotQA에서 24.6(ChatGPT) 대 3.8(Claude)). 가능한 이유는 이 두 OpenAI 모델이 이러한 고급 기능에 특별히 최적화되어 있기 때문일 수 있습니다(예: OpenAI 모델은 ChatGPT에서 플러그인 사용을 지원합니다).
    • 모든 비교 모델은 매우 어려운 추론 작업에서는 성능이 좋지 않습니다. MATH와 HotpotQA에서는 모든 모델(ChatGPT 포함)의 성능이 좋지 않습니다. 이 두 가지 작업은 각각 복잡한 수학적 지식을 정확하게 이해하고 문서 전반에 걸쳐 멀티홉 추론을 수행해야 하는 매우 어려운 문제입니다. 또한 이 모델들은 기계 번역 작업(WMT)에서도 상대적으로 약한 성능을 보입니다. 한 가지 가능한 이유는 WMT에는 이러한 LLM의 사전 학습 데이터에서 잘 다루지 않는 부차적인 언어로 된 평가 예제가 많이 포함되어 있기 때문입니다. 

    오픈 소스 모델 분석. 

    다음은 6개의 오픈 소스 모델(예: Vicuna, Alpaca, ChatGLM, LLaMA, Pythia, Falcon)에 대한 분석 및 결과를 다음과 같이 계속 보여줍니다:

    • 인스트럭션 튜닝 모델이 대부분 기본 모델보다 성능이 더 우수합니다. 비교한 모든 오픈 소스 방법 중에서 명령어 튜닝 모델(예: Vicuna, Alpaca, ChatGLM)이 명령어 튜닝이 되지 않은 모델(예: LLaMA, Pythia, Falcon)보다 대부분 더 나은 성능을 보였습니다. 이는 인스트럭션 튜닝이 일반적으로 다양한 작업을 해결하는 데 있어 LLM의 소수 샷 또는 제로 샷 능력을 향상시킬 수 있음을 나타냅니다. 그러나 명령어 튜닝 후 Vicuna-7B와 Alpaca-7B는 언어 모델링 작업인 LAMBADA에서 성능 저하를 겪습니다. 그 이유는 인스트럭션 데이터가 주로 사람의 지시를 따르도록 하는 데 초점이 맞춰져 있어 일반적인 언어 생성 작업에는 유용하지 않기 때문일 수 있습니다. 
    • 이러한 소형 오픈 소스 모델은 수학적 추론, 환경과의 상호 작용 및 도구 조작 작업에서 성능이 좋지 않습니다. 수학적 추론, 환경과의 상호작용, 도구 조작 과제에서 평가된 모든 오픈 소스 모델은 인스트럭션이 조정된 모델을 포함하여 성능이 좋지 않았습니다. 한 가지 가능한 이유는 이러한 모델을 미세 조정하기 위한 명령어 데이터가 이러한 작업을 위해 특별히 설계되지 않았기 때문일 수 있습니다. 또한 이러한 비공개 소스 모델은 모델 크기가 작기 때문에 모델 용량이 제한적일 수 있습니다.
    • 최고 성능을 발휘하는 모델은 휴먼 얼라인먼트 작업에 따라 다릅니다. 다른 휴먼 얼라인먼트 작업의 경우 이러한 모델이 일관되지 않은 성능 순위를 달성하는 것을 볼 수 있습니다. 예를 들어, ChatGLM-6B는 비교 대상 오픈 소스 모델 중 TruthfulQA에서 가장 우수한 성능을 보인 반면, Falcon-7B는 CrowS-Pairs에서 가장 우수한 성능을 보였습니다. 이러한 작업은 인간 정렬의 다양한 측면을 평가하기 위한 특정 목적으로 설계되었으며, 이러한 모델은 동일한 모델의 변형(예: Pythia-7B 및 Pythia-12B)에 대해서도 다양한 작업에서 다양한 성능을 보이기 때문일 수 있습니다. 보다 자세한 결과를 밝히기 위해서는 인간 정렬 평가에 대한 더 많은 실험과 분석이 필요합니다.
    • 최근에 출시된 모델인 Falcon-7B는 특히 언어 생성 작업에서 괜찮은 성능을 발휘합니다. 언어 생성 작업의 경우, Falcon-7B는 대부분 다른 기본 모델보다 더 나은 성능을 보입니다(예: LAMABDA에서 10.00(Falcon-7B) 대 8.77(LLaMA-7B)). 다른 작업(예: 지식 활용 및 복잡한 추론)의 경우, Falcon-7B도 LLaMA-7B와 비슷한 성능을 달성할 수 있습니다. 웹 데이터에서 저품질 및 중복 콘텐츠를 필터링하기 위해 신중한 데이터 전처리 파이프라인을 채택했으며, 이는 주로 우수한 성능에 기여합니다. 오픈소스 언어 모델에 대한 이번 결과는 모델 크기에 국한된 결과라는 점에 유의하시기 바랍니다. 향후 더 큰 버전의 모델에 대한 결과를 포함시켜 이 부분을 지속적으로 업데이트할 예정이며, 더 많은 실험을 위한 컴퓨팅 리소스의 지원을 요청합니다.

    8. 프롬프트 설계의 실용적인 가이드북

    섹션 6에서 설명한 것처럼 프롬프트는 다양한 작업 해결을 위해 LLM을 활용하는 주요 접근 방식입니다. 프롬프트의 품질이 특정 작업에서 LLM의 성능에 큰 영향을 미치기 때문에 프롬프트 설계에 대해 실무적으로 논의하기 위해 특별 섹션을 마련했습니다. 이 섹션에서는 먼저 프롬프트의 주요 구성 요소를 소개하고 프롬프트 설계를 위한 몇 가지 원칙에 대해 논의합니다. 그런 다음 다양한 프롬프트를 사용하여 ChatGPT를 평가하여 몇 가지 대표적인 작업에 대한 결과를 보여줍니다. 좋은 프롬프트를 설계하기 위한 제안과 가이드라인을 제시하는 기존 논문[555, 556]과 웹사이트[557-559]가 여러 개 있다는 것을 알고 있습니다. 이에 본 논문에서는 프롬프트 생성에 유용한 핵심 요소(요소와 원리)에 대해 주로 논의하고, 초보자들이 참고할 수 있도록 인기 있는 과제에 대한 실험 결과와 분석을 제공하고자 합니다. 

    8.1 프롬프트 생성

    적절한 프롬프트를 만드는 과정을 프롬프트 엔지니어링이라고도 합니다[556, 560]. 잘 설계된 프롬프트는 특정 작업을 수행하기 위한 LLM의 능력을 이끌어내는 데 매우 유용합니다. 이 부분에서는 프롬프트의 핵심 요소를 간략하게 요약하고 프롬프트 설계의 몇 가지 기본 원칙에 대해 설명합니다.

    핵심 요소

    일반적으로 작업 설명, 입력 데이터, 컨텍스트 정보, 프롬프트 스타일 등 작업을 완료하기 위한 LLM의 능력을 이끌어내는 프롬프트의 기능을 나타내는 네 가지 핵심 요소가 있습니다. 논의를 직관적으로 이해할 수 있도록 표 14에 질문 답변, 메타 리뷰 생성 및 텍스트-SQL 변환에 대한 세 가지 프롬프트 예제도 제시합니다. 

    • 작업 설명. 작업 설명은 일반적으로 LLM이 따라야 하는 구체적인 지침입니다. 일반적으로 자연어로 작업 목표를 명확하게 설명해야 합니다. 특수한 입력 또는 출력 형식이 있는 작업의 경우 자세한 설명이 필요한 경우가 많으며, 키워드를 활용하여 특수 설정을 강조하면 작업 완료 시 LLM을 더 잘 안내할 수 있습니다.
    • 입력 데이터. 일반적인 경우, 입력 데이터(예: LLM이 응답할 인스턴스)를 자연어로 설명하는 것은 간단합니다. 지식 그래프나 표와 같은 특수한 입력 데이터의 경우, LLM이 읽을 수 있도록 적절하고 편리한 방법을 적용해야 합니다. 구조화된 데이터의 경우, 선형화는 단순성 때문에 원본 레코드(예: 지식 트리플)를 시퀀스로 변환하는 데 일반적으로 사용됩니다[442]. 또한 프로그래밍 언어(예: 실행 코드)를 사용하여 구조화된 데이터를 공식화하기도 하며, 외부 도구(예: 프로그램 실행기)를 사용하여 정확한 결과를 생성할 수 있습니다[561, 562].
    • 컨텍스트 정보. 작업 설명과 입력 데이터 외에도 특정 작업에는 컨텍스트 또는 배경 정보도 필수적입니다. 예를 들어, 검색된 문서는 오픈 도메인 질문 답변에 근거 자료로 매우 유용합니다. 따라서 이러한 정보를 적절한 프롬프트 패턴이나 표현 형식으로 포함해야 합니다. 또한 문맥 내 작업 예시는 작업 목표, 특수 출력 형식, 입력과 출력 간의 매핑 관계를 더 잘 묘사할 수 있는 복잡한 작업을 수행하기 위해 LLM을 유도하는 데도 유용합니다.
    • 프롬프트 스타일. LLM에 따라 특정 과제를 해결할 수 있는 능력을 이끌어내기 위해 적절한 프롬프트 스타일을 디자인하는 것이 중요합니다. 전반적으로 프롬프트는 명확한 질문이나 상세한 지침으로 표현하여 잘 이해하고 대답할 수 있도록 해야 합니다. 경우에 따라 접두사나 접미사를 추가하여 LLM을 더 잘 안내하는 것도 유용합니다. 예를 들어 "단계별로 생각해 봅시다"라는 접두사를 사용하면 LLM이 단계별 추론을 수행하도록 유도할 수 있으며, "귀하는 이 작업(또는 이 도메인)에 대한 전문가입니다"라는 접두사를 사용하면 특정 작업에서 LLM의 성능을 높일 수 있습니다. 또한 채팅 기반 LLM(예: ChatGPT)의 경우 길거나 복잡한 작업 프롬프트를 직접 제공하는 대신 하위 작업에 대한 여러 프롬프트로 분해한 다음 다중 턴 대화를 통해 LLM에 제공하는 것이 좋습니다[362]. 

    설계 원칙. 

    프롬프트의 핵심 요소를 바탕으로 다양한 과제를 해결하기 위한 보다 효과적인 프롬프트를 만드는 데 도움이 되는 몇 가지 중요한 설계 원칙을 정리해 보았습니다.

    • 작업 목표를 명확하게 표현하기. 과제 설명이 모호하거나 불명확하면 부정확하거나 부적절한 응답을 유도할 가능성이 높습니다. 이는 이러한 모델을 활용할 때 명확하고 모호하지 않은 지시가 필요함을 강조합니다[61]. 명확하고 상세한 설명에는 작업 목표, 입력/출력 데이터(예: "긴 문서가 주어졌으니 간결한 요약을 생성해 주세요."), 응답 제약 조건(예: "요약의 길이는 50자를 초과할 수 없습니다.") 등 작업을 설명하기 위한 다양한 요소가 포함되어야 합니다. 명확하게 정의된 작업 설명을 제공함으로써 LLM은 대상 작업을 보다 효과적으로 이해하고 원하는 결과물을 생성할 수 있습니다.
    • 쉽고 상세한 하위 작업으로 분해. 복잡한 과제를 해결하기 위해서는 어려운 과제를 더 쉽고 세부적인 여러 하위 과제로 분해하여 LLM이 단계별로 목표를 달성할 수 있도록 돕는 것이 중요하며, 이는 6.3장의 계획 기법과 밀접한 관련이 있습니다. 예를 들어, [555]의 제안에 따라 하위 작업을 여러 개의 번호가 매겨진 항목의 형태로 명시적으로 나열할 수 있습니다(예: "다음 작업을 수행하여 일관된 내러티브를 엮어 보세요: 1. ...; 2. ...; 3. ..."). 목표 작업을 하위 작업으로 분해함으로써 LLM은 더 쉬운 하위 작업을 해결하는 데 집중하고 최종적으로 복잡한 작업에 대해 더 정확한 결과를 얻을 수 있습니다. 
    • 몇 장면 데모 제공. 6.1절에서 설명한 것처럼, LLM은 프롬프트에 원하는 입출력 쌍의 적은 수의 작업 예제, 즉 몇 샷 데모가 포함되어 있는 상황 내 학습을 통해 복잡한 작업을 해결하는 데 이점을 얻을 수 있습니다. 몇 샷 데모는 LLM이 파라미터 튜닝 없이 입력과 출력 간의 의미 매핑을 학습하는 데 도움이 될 수 있습니다. 실제로는 대상 작업에 대해 몇 개의 고품질 데모를 생성하는 것이 최종 작업 성능에 큰 도움이 될 것입니다. 
    • 모델 친화적인 형식 활용. LLM은 특수하게 구성된 데이터 세트에 대해 사전 학습되기 때문에, LLM이 명령어를 더 잘 이해할 수 있는 몇 가지 프롬프트 형식이 있습니다. 예를 들어, OpenAI 문서에서 제안하는 것처럼 ### 또는 """를 중지 기호로 사용하여 명령어와 컨텍스트를 구분할 수 있으며, 이는 LLM이 더 잘 이해할 수 있습니다. 일반적인 가이드라인으로, 대부분의 기존 LLM은 영어로 작업을 더 잘 수행하므로 기계 번역을 기반으로 어려운 작업을 해결할 때는 영어 지침을 사용하는 것이 유용합니다.

    유용한 팁

    설계 원칙 외에도 기존 작업 또는 경험적 경험을 바탕으로 유용한 프롬프트 팁 모음을 표 13에 제시합니다. 이러한 팁은 일반적인 방식으로 제안된 것이므로 해당 작업에 가장 적합한 프롬프트임을 의미하지는 않습니다. 이 부분은 더 많은 가이드라인이나 팁으로 지속적으로 업데이트될 예정입니다. 독자들이 이 프롬프트 팁 모음에 기여해 주실 것을 환영합니다. 프롬프트 팁에 기여하는 자세한 절차는 링크에서 확인할 수 있습니다.

    8.2 결과 및 분석

    위의 하위 섹션에서는 프롬프트를 디자인하기 위한 일반적인 원칙에 대해 설명했습니다. 이 부분에서는 여러 가지 일반적인 과제를 해결하기 위한 프롬프트의 구체적인 예를 제시합니다. 특히 이러한 과제 프롬프트는 대부분 기존 논문에서 발췌한 것으로, 실험에서는 해당 과제에 대해 ChatGPT 기반의 프롬프트를 사용하여 실험을 진행하였습니다. 

    실험 설정

    실험을 위해 언어 생성, 지식 활용, 복합 추론, 구조 데이터 생성, 정보 검색을 아우르는 다양한 과제를 선정했습니다. 각 작업에 대해 8.1절에 소개된 일반 지침을 따르는 프롬프트를 수동으로 작성합니다. 테스트된 프롬프트는 주로 독자가 다양한 작업을 해결하기 위한 효과적인 프롬프트를 작성하는 방법을 이해하는 데 도움을 주기 위한 것이므로 이러한 작업에 최적이 아닐 수도 있습니다. 또한 대부분의 작업에 대해 단순화된 프롬프트를 비교용으로 추가했습니다. 섹션 7.3.2의 실험 설정에 따라 복잡한 추론 과제(컬러 오브젝트 및 GSM8k)에서 ChatGPT의 3샷 성능과 다른 과제에서의 제로샷 성능을 살펴봅니다. 

    결과 분석

    실험 결과는 표 12에 정리되어 있으며, 기존 논문의 감독된 성능도 참고 자료로 포함되어 있습니다.

    • 신중하게 설계된 프롬프트는 ChatGPT의 제로 샷 또는 소수 샷 성능을 향상시킬 수 있습니다. 동일한 작업에 서로 다른 프롬프트를 사용한 결과를 비교해보면, 신중하게 설계된 프롬프트를 사용하면 단순한 프롬프트보다 더 나은 성능을 얻을 수 있음을 알 수 있습니다. 신중하게 설계된 프롬프트에서는 보다 명확하게 표현된 작업 설명을 제공하거나(예: WMT 및 WikiFact), 모델 친화적인 형식(예: GSM8k 및 OBQA)을 사용합니다. 예를 들어 WikiFact 작업의 경우, 더 자세한 작업 설명이 포함된 프롬프트는 29.25에서 31.21로 성능이 향상됩니다. 
    • 더 복잡한 작업은 ChatGPT의 세심한 프롬프트 엔지니어링을 통해 더 많은 이점을 얻을 수 있습니다. WikiFact 및 컬러 오브젝트 작업에서 설계된 프롬프트는 ChatGPT의 성능을 크게 향상시켰습니다. 즉, WikiFact의 경우 23.61에서 28.47로, 컬러 오브젝트의 경우 53.20에서 66.75로 향상되었습니다. 이는 일반적으로 특정 출력 형식이 있거나 배경 지식이 필요한 복잡한 작업에서 LLM이 잘 수행하기 위해서는 프롬프트 엔지니어링이 필요하다는 것을 나타냅니다. 예제 프롬프트는 보다 자세한 작업 설명(예: 출력 형식 및 작업 목표)을 제공하므로 ChatGPT가 복잡한 작업 요구 사항을 더 잘 이해하는 데 도움이 될 수 있습니다.
    • 수학적 추론 작업의 경우 프로그래밍 언어의 형식에 따라 특정 프롬프트를 설계하는 것이 더 효과적입니다. GSM8k의 경우, 설계된 프롬프트는 코드 형식의 짧은 데모를 사용하여 이 수학적 추론 작업을 코드 생성 작업으로 변환하여 수학 문제 해결을 위한 ChatGPT의 강력한 코드 합성 기능을 활용할 수 있습니다. 또한 외부 프로그램 실행기의 도움으로 산술 연산에 LLM을 사용하는 대신 더 정확한 결과를 얻을 수 있습니다. GSM8k에서 78.47에서 79.30으로 성능이 향상되어 수학적 추론 작업에서 프로그래밍 언어가 유용하다는 것을 알 수 있습니다.
    • 지식 활용 및 복잡한 추론 작업에서 적절한 프롬프트가 있는 ChatGPT는 감독 기준선 방법과 비슷한 성능을 달성하거나 심지어 더 나은 성능을 발휘합니다. 지식 활용 및 복잡한 추론 작업에서 적절한 제로 샷 또는 소수 샷 프롬프트가 있는 ChatGPT는 감독 방법과 비슷한 성능을 달성하거나 심지어 더 나은 성능을 발휘할 수 있습니다(예: 31.21(ChatGPT) 대 34.20(감독 기준선), WikiFact에서). 그럼에도 불구하고 일부 특정 작업(예: ARC 및 WikiFact)에서는 여전히 ChatGPT가 감독 기준 모델보다 성능이 떨어지는데, 이는 이러한 감독 모델이 작업별 데이터로 특별히 최적화되었기 때문입니다. 
    • 적절한 프롬프트 엔지니어링을 통해 LLM은 일부 비전통적인 NLP 작업을 처리할 수 있습니다. 특정 프롬프트의 도움으로 ChatGPT는 일반 추천 및 대화 추천과 같은 비 전통적인 NLP 작업도 수행할 수 있습니다. 중요한 점은 이러한 작업을 자연어로 잘 표현하거나 설명할 수 있다는 것입니다. 그러나 특정 도메인 지식과 작업 적응이 필요한 이러한 작업에 LLM이 직접적으로 적합하지 않기 때문에 ChatGPT의 성능은 이러한 작업에서 참조된 성능과는 아직 거리가 멀다[255, 563].

    9. 응용 분야

    LLM은 다양한 소스 코퍼스로 사전 학습되기 때문에 대규모 사전 학습 데이터에서 풍부한 지식을 확보할 수 있어 도메인 전문가 또는 특정 분야의 전문가로 활동할 수 있는 잠재력을 가지고 있습니다. 이 섹션에서는 의료, 교육, 법률, 금융, 과학 연구 등 대표적인 몇 가지 도메인에 대한 LLM의 최근 적용 현황을 간략하게 살펴봅니다. 

    헬스케어 

    인간의 삶과 밀접한 관련이 있는 중요한 응용 분야입니다. ChatGPT가 등장한 이래로 많은 연구들이 의료 영역에 ChatGPT 또는 다른 LLM을 적용했습니다. LLM은 생물학 정보 추출[565], 의료 자문 상담[566], 정신 건강 분석[567], 보고서 간소화[568] 등 다양한 헬스케어 작업을 처리할 수 있는 것으로 나타났습니다. 주요 기술적 접근 방식으로서 연구자들은 일반적으로 LLM이 다양한 의료 작업을 수행하도록 안내하는 특정 프롬프트 또는 지침을 설계합니다. 의료 영역에서 LLM의 힘을 더욱 활용하기 위해 연구자들은 의료 관련 LLM을 개발할 것을 제안합니다. 특히, 미국 의사 면허 시험(USMLE)에서 전문가 수준의 성과를 달성하고 소비자의 의학적 질문에 답할 때 의사로부터 더 많은 지지를 받는 Med-PaLM 모델[254, 569]이 있습니다. 그러나 LLM은 의학 용어를 잘못 해석하거나 의료 지침과 일치하지 않는 조언을 제시하는 등 잘못된 의료 정보[568, 570]를 조작할 수 있습니다. 또한 환자의 건강 정보[565]를 LLM을 지원하는 상용 서버에 업로드하는 것은 개인정보 보호 문제를 야기할 수 있습니다.

    교육 분야 

    역시 LLM이 잠재적으로 큰 영향력을 발휘할 수 있는 중요한 응용 분야입니다. 기존 연구에 따르면 LLM은 다양한 수학 과목(예: 물리학, 컴퓨터 과학)의 객관식 및 주관식 문제 모두에서 표준화된 시험[46]에서 학생 수준의 성과를 달성할 수 있는 것으로 나타났습니다. 또한, 경험적 연구에 따르면 LLM은 교육용 쓰기 또는 읽기 보조 도구로 사용될 수 있습니다[571, 572]. 최근 연구[572]에 따르면 ChatGPT는 여러 분야에 걸쳐 논리적으로 일관된 답변을 생성할 수 있으며, 깊이와 넓이의 균형을 맞출 수 있다고 합니다. 또 다른 정량적 분석[571]에 따르면 ChatGPT를 활용하는 학생(LLM의 결과를 자신의 답안으로 유지하거나 개선)은 컴퓨터 보안 분야의 일부 과목에서 평균 학생보다 더 나은 성적을 거둔 것으로 나타났습니다. 최근 여러 관점 논문[573, 574]에서도 교사와 학생의 협업, 개인 맞춤형 학습, 평가 자동화 등 교실 수업에서 LLM의 다양한 적용 시나리오를 모색하고 있습니다. 그러나 교육에 LLM을 적용하면 표절, 인공지능이 생성한 콘텐츠의 잠재적 편향성, LLM에 대한 과도한 의존, 비영어권 개인에 대한 불평등한 접근 등 여러 가지 실질적인 문제가 발생할 수 있습니다[575].

    법률 

    전문적인 도메인 지식을 기반으로 하는 전문 영역입니다. 최근 법률 문서 분석[576], 법적 판단 예측[577], 법률 문서 작성[578] 등 다양한 법률 업무를 해결하기 위해 LLM을 적용한 연구들이 다수 진행되었습니다. 최근 연구[579]에 따르면 LLM은 법률 해석과 추론에 강력한 능력을 발휘하는 것으로 나타났습니다. 또한 최신 GPT-4 모델은 모의 변호사 시험에서 인간 응시자와 비교하여 상위 10%의 점수를 획득했습니다[46]. 법률 영역에서 LLM의 성능을 더욱 향상시키기 위해 특별히 설계된 법률 프롬프트 엔지니어링을 사용하여 긴 법률 문서 이해와 복잡한 법률 추론에서 고급 성능을 발휘합니다[580, 581]. 그간의 발전을 요약하면, LLM은 법률 전문가에게 유용한 조력자 역할을 할 수 있습니다. 이러한 발전에도 불구하고 법률 분야에서 LLM을 사용함에 따라 저작권 문제[582], 개인정보 유출[583], 편견과 차별[584] 등의 법적 문제에 대한 우려가 제기되고 있습니다.

    금융 

    LLM의 활용 전망이 유망한 중요한 분야입니다. 숫자 클레임 감지 [585], 금융 정서 분석 [586], 금융 명명 법인 인식 [587], 금융 추론 [588] 등 다양한 금융 관련 업무에 LLM이 활용되고 있습니다. 범용 LLM이 재무 업무에서 보여준 경쟁력 있는 제로 샷 성능에도 불구하고, 여전히 백만 개 규모의 파라미터를 포함하는 도메인별 PLM에 비해 성능이 떨어집니다[585]. LLM의 확장 효과를 활용하기 위해 연구자들은 대규모 금융 코퍼라를 수집하여 지속적으로 LLM을 사전 학습합니다(예: BloombergGPT [258], XuanYuan 2.0 [589], FinGPT [590]). 블룸버그GPT는 범용 작업에서 경쟁력 있는 성능을 유지하면서 다양한 금융 작업에서 괄목할 만한 성능을 입증했습니다 [258]. 그럼에도 불구하고 금융 분야에서 LLM을 적용할 때 잠재적인 위험을 고려하는 것은 필수적입니다. LLM에 의한 부정확하거나 유해한 콘텐츠의 생성은 금융 시장에 중대한 악영향을 미칠 수 있기 때문입니다[258]. 따라서 금융 분야에서의 LLM 사용에 대한 보다 엄격한 검토와 모니터링이 필요합니다. 

    과학 연구 

    LLM이 개발 진전에 힘을 실어줄 수 있는 또 다른 유망한 분야입니다. 선행 연구에 따르면 지식 집약적인 과학 작업(예: PubMedQA [591], BioASQ [592]), 특히 과학 관련 말뭉치에 대해 사전 학습된 LLM(예: Galactica [35], Minerva [159])을 처리하는 데 있어 LLM이 효과적이라는 것이 입증된 바 있습니다. 뛰어난 일반적 능력과 폭넓은 과학 지식을 고려할 때, LLM은 과학 연구 파이프라인의 다양한 단계에서 유용한 보조자로서 상당한 잠재력을 가지고 있습니다[593]. 첫째, 문헌 조사 단계에서 LLM은 특정 연구 분야의 진행 상황에 대한 포괄적인 개요를 작성하는 데 도움을 줄 수 있습니다. 특정 연구 분야의 진행 상황 [594, 595]. 둘째, 연구 아이디어 생성 단계에서 LLM은 흥미로운 과학적 가설을 생성할 수 있는 능력을 보여줍니다[596]. 셋째, 데이터 분석 단계에서는 데이터 탐색, 시각화, 분석적 결론 도출 등 데이터 특성을 분석하는 자동화된 접근 방식을 수행하기 위해 LLM을 사용할 수 있습니다[597, 598]. 넷째, 논문 작성 단계에서 연구자는 과학적 글쓰기에 있어서도 LLM의 도움을 받을 수 있는데[599, 600], 이 때 LLM은 기존 내용을 요약하고 글을 다듬는 등 다양한 방법을 통해 과학적 글쓰기에 유용한 지원을 제공할 수 있습니다[601]. 또한 LLM은 오류 감지, 체크리스트 검증, 후보 순위 지정과 같은 작업을 포함하는 자동화된 논문 검토 프로세스를 지원할 수 있습니다[602]. 이러한 발전에도 불구하고 LLM의 역량을 개선할 여지가 많습니다. 의 역량을 개선할 여지가 많으며, 생성된 과학 콘텐츠의 품질을 높이고 유해한 환각을 줄이기 위해 도움이 되고 신뢰할 수 있는 과학 조력자 역할을 할 수 있어야 합니다. 

    요약

    앞서 언급한 연구 외에도 여러 다른 영역에서도 LLM의 활용이 논의되고 있습니다. 예를 들어, 심리학 영역에서는 자기 인식, 마음 이론(ToM), 정서적 컴퓨팅과 같은 LLM의 인간과 유사한 특성을 연구한 최근 연구가 있습니다[603, 604]. 특히 두 가지 고전적인 거짓 믿음 과제에 대해 수행된 ToM에 대한 경험적 평가에 따르면 GPT-3.5 시리즈의 모델이 ToM 과제에서 9세 아동과 비슷한 성능을 보였기 때문에 [603] LLM이 ToM과 유사한 능력을 가질 수 있다고 추측하고 있습니다. 또한 코드 제안[605], 코드 요약[606], 자동화된 프로그램 복구[607] 등 소프트웨어 개발 영역에 LLM을 적용하는 연구도 진행 중입니다. 요약하자면, 실제 작업에서 LLM을 통해 인간을 보조하는 것은 중요한 연구 분야가 되었습니다. 그러나 여기에는 도전 과제도 있습니다. LLM으로 생성된 콘텐츠의 정확성을 보장하고, 편향성을 해결하며, 사용자 개인정보 및 데이터 보안을 유지하는 것은 LLM을 실제 시나리오에 적용할 때 중요한 고려 사항입니다.

    10. 결론 및 향후 방향

    이번 조사에서는 대규모 언어 모델(LLM)의 최근 진행 상황을 살펴보고, LLM의 이해와 활용을 위한 주요 개념, 연구 결과, 기법 등을 소개했습니다. 기존 문헌에서 충분히 다뤄진 초기 사전 학습 언어 모델(예: BERT, GPT2)의 내용은 제외하고 대형 모델(즉, 10B 이상의 크기)에 초점을 맞췄습니다. 특히 이번 설문조사에서는 사전 학습, 적응 튜닝, 활용, 평가 등 LLM의 네 가지 중요한 측면에 대해 논의했습니다. 각 측면별로 LLM의 성공에 핵심이 되는 기술 또는 결과를 강조합니다. 또한 LLM을 개발하는 데 사용할 수 있는 리소스를 요약하고 LLM을 재현하기 위한 중요한 구현 지침에 대해서도 논의합니다. 이 설문조사는 LLM에 관한 가장 최근의 문헌을 다루고 있으며 연구자와 엔지니어 모두에게 이 주제에 대한 좋은 참고 자료를 제공합니다. 다음에서는 이번 설문조사에서 논의된 내용을 요약하고, LLM의 과제와 향후 방향에 대해 다음과 같은 측면에서 소개합니다.

    이론과 원리

    LLM의 기본 작동 메커니즘을 이해하기 위해 가장 큰 미스터리 중 하나는 초대형 심층 신경망을 통해 정보가 어떻게 분산, 구성, 활용되는지입니다. LLM의 능력의 토대를 이루는 기본 원리나 요소를 밝히는 것이 중요합니다. 특히 스케일링은 LLM의 용량을 증가시키는 데 중요한 역할을 하는 것으로 보입니다[31, 55, 59]. 언어 모델의 매개변수 규모가 임계 크기(예: 10B)로 증가하면 예상치 못한 방식(갑작스러운 성능 도약)으로 일부 신흥 능력이 발생하는 것으로 나타났습니다[31, 33]. 일반적으로 상황 내 학습, 명령어 추종, 단계별 추론이 여기에 포함됩니다. 이러한 새로운 능력은 매혹적이면서도 당혹스러운데, 언제 어떻게 LLM이 이러한 능력을 얻게 되는지는 아직 명확하지 않습니다. 최근의 연구들은 출현 능력의 효과와 그러한 능력에 기여하는 요인을 조사하기 위해 광범위한 실험을 수행하거나[307, 608, 609], 기존의 이론적 틀을 사용하여 특정 능력을 설명하기도 합니다[60, 317]. 통찰력 있는 기술 게시물에서도 이 주제에 대해 특별히 논의하고 있으며[47], GPT 시리즈 모델을 대상으로 삼고 있습니다. 그러나 보다 공식적인 이론과 원리 LLM의 능력이나 행동을 이해, 특성화, 설명하기 위한 보다 공식적인 이론과 원리는 아직 부족합니다. 출현 능력은 자연의 위상 전이와 유사하기 때문에[31, 58], 학제 간 이론이나 원리(예: LLM을 일종의 복잡계로 간주할 수 있는지 여부)를 통해 LLM의 동작을 설명하고 이해하는 데 유용할 수 있습니다. 이러한 근본적인 질문은 연구 커뮤니티에서 탐구할 가치가 있으며, 이는 차세대 LLM을 개발하는 데 중요합니다.

    모델 아키텍처

    확장성과 효율성 때문에 멀티헤드 셀프어텐션 레이어를 쌓아 올린 트랜스포머는 사실상 LLM 구축을 위한 아키텍처로 자리 잡았습니다. 이 아키텍처의 성능을 개선하기 위해 신경망 구성 및 확장 가능한 병렬 훈련과 같은 다양한 전략이 제안되었습니다(4.2.2절의 논의 참조). 모델 용량(예: 다중 턴 대화 능력)을 향상시키기 위해 기존 LLM은 일반적으로 긴 컨텍스트 창을 유지합니다(예: GPT-4-32k는 32,768 토큰이라는 매우 큰 컨텍스트 길이를 가짐). 따라서 현실적으로 고려해야 할 사항은 표준 자기 주의 메커니즘에서 발생하는 시간 복잡성(원래는 이차적 비용)을 줄이는 것입니다. 예를 들어, GPT3 [55]에서 스파스 어텐션이 사용된 것처럼, LLM을 구축할 때 보다 효율적인 트랜스포머 변형의 효과를 조사하는 것이 중요합니다. 게다가 치명적인 망각은 신경망의 오랜 과제였으며, 이는 LLM에도 부정적인 영향을 미칩니다. 새로운 데이터로 LLM을 조정할 때 원래 학습된 지식이 손상될 가능성이 있으며, 예를 들어 특정 작업에 따라 LLM을 미세 조정하면 LLM의 일반적인 능력에 영향을 미칠 수 있습니다. LLM을 인간의 가치와 정렬할 때도 비슷한 경우가 발생합니다(정렬세라고 함 [61, 268]). 따라서 데이터 업데이트와 작업 전문화를 효과적으로 지원할 수 있는 보다 유연한 메커니즘이나 모듈로 기존 아키텍처를 확장하는 것을 고려할 필요가 있습니다.

    모델 훈련

    실제로는 막대한 연산 소비와 데이터 품질 및 훈련 트릭에 대한 민감성 때문에 성능이 우수한 LLM을 사전 훈련하는 것은 매우 어렵습니다[69, 83]. 따라서 모델 효과, 효율성 최적화, 학습 안정성 등의 요소를 고려하여 LLM을 최적화하기 위한 보다 체계적이고 경제적인 사전 학습 접근법을 개발하는 것이 특히 중요해졌습니다. 훈련 중 비정상적인 문제를 조기에 감지하기 위해 더 많은 모델 검사 또는 성능 진단 방법(예: GPT-4의 예측 가능한 스케일링[46])이 개발되어야 합니다. 또한 컴퓨팅 클러스터의 리소스를 더 잘 구성하고 활용하기 위해 하드웨어 지원이나 리소스 스케줄에 대한 보다 유연한 메커니즘이 필요합니다. LLM을 처음부터 사전 훈련하는 것은 비용이 매우 많이 들기 때문에 공개적으로 사용 가능한 모델 체크포인트(예: LLaMA [57] 및 FlanT5 [64])를 기반으로 LLM을 지속적으로 사전 훈련하거나 미세 조정할 수 있는 적절한 메커니즘을 설계하는 것이 중요합니다. 이를 위해서는 치명적인 망각과 작업 전문화 등 여러 가지 기술적 문제를 해결해야 합니다. 그러나 현재까지도 재현을 위한 완전한 전처리 및 훈련 로그(예: 사전 훈련 데이터를 준비하는 스크립트)가 있는 LLM에 대한 오픈 소스 모델 체크포인트는 아직 부족합니다. 오픈소스 모델에서 더 많은 기술적 세부 사항을 보고하는 것이 LLM 연구에 큰 도움이 될 것으로 생각합니다. 또한, 모델 능력을 효과적으로 이끌어낼 수 있는 개선 튜닝 전략을 더 많이 개발하는 것도 중요합니다.

    모델 활용

    실제 애플리케이션에서는 미세 조정에 많은 비용이 들기 때문에 프롬프트가 LLM을 사용하는 주요한 접근 방식이 되었습니다. 작업 설명과 데모 예제를 프롬프트에 결합하여 상황에 맞는 학습(프롬프트의 특수한 형태)을 통해 LLM은 새로운 작업을 잘 수행할 수 있으며, 경우에 따라서는 전체 데이터로 미세 조정된 모델보다 더 나은 성능을 발휘할 수도 있습니다. 또한 복잡한 추론 능력을 향상시키기 위해 프롬프트에 중간 추론 단계를 포함하는 생각의 사슬(CoT) 전략을 예로 들 수 있는 고급 프롬프트 기법이 제안되었습니다. 그러나 기존의 프롬프트 접근 방식에는 다음과 같은 몇 가지 단점이 여전히 존재합니다. 첫째, 프롬프트 설계에 상당한 사람의 노력이 필요하다는 점입니다. 다양한 작업을 해결하기 위한 효과적인 프롬프트를 자동으로 생성하는 것이 매우 유용할 것입니다. 둘째, 일부 복잡한 작업(예: 형식적 증명 및 숫자 계산 등)에는 자연어로 잘 표현되지 않거나 예시로 설명하기 어려운 특정 지식이나 논리 규칙이 필요합니다. 따라서 프롬프트에 대한 보다 유익하고 유연한 작업 형식화 방법을 개발하는 것이 중요합니다. 셋째, 기존의 프롬프트 전략은 주로 단일 턴 수행에 초점을 맞추고 있습니다. 복잡한 작업을 해결하기 위한 대화형 프롬프트 메커니즘(예: 자연어 대화)을 개발하는 것이 유용하며, 이는 ChatGPT를 통해 매우 유용하다는 것이 입증되었습니다. 

    안전 및 정렬

    LLM은 그 능력에도 불구하고 소규모 언어 모델과 유사한 안전 문제를 안고 있습니다. 예를 들어, LLM은 그럴듯해 보이지만 사실과 다를 수 있는 텍스트인 환각[448]을 생성하는 경향을 보입니다. 더 심각한 문제는 악성 시스템에 유해하거나 편향적이거나 독성이 있는 텍스트를 생성하라는 의도적인 지시에 의해 LLM이 유도되어 오용의 잠재적 위험을 초래할 수 있다는 것입니다[55, 61]. LLM의 안전 문제(예: 개인정보 보호, 과의존, 허위 정보, 영향력 행사)에 대한 자세한 논의는 GPT3/4 기술 보고서[46, 55]를 참조하시기 바랍니다. 이러한 문제를 피하기 위한 주요 접근법으로, 잘 정렬된 LLM을 개발하기 위해 훈련 루프에 인간을 통합하여 인간 피드백을 통한 강화 학습(RLHF)[61, 100]이 널리 사용되어 왔습니다. 모델 안전성을 개선하기 위해서는 GPT-4 [46]에서 볼 수 있듯이 RLHF 중에 안전 관련 프롬프트를 포함하는 것도 중요합니다. 그러나 RLHF는 전문 라벨 제작자의 고품질 인적 피드백 데이터에 크게 의존하기 때문에 실제로 제대로 구현하기가 어렵습니다. 따라서 인간 라벨러의 수고를 줄이기 위해 RLHF 프레임워크를 개선하고, 라벨링 작업을 보조하기 위해 LLM을 활용하는 등 데이터 품질이 보장된 보다 효율적인 주석 접근 방식을 모색할 필요가 있습니다. 최근에는 수집된 적대적 프롬프트를 활용하여 LLM을 개선(즉, 적대적 프롬프트의 공격을 피하는 것)하는 레드 팀링[115, 269]이 LLM의 모델 안전성을 향상시키기 위해 채택되고 있습니다. 또한, 채팅을 통해 사람의 피드백을 얻고 이를 자기 개선에 직접 활용할 수 있는 적절한 학습 메커니즘을 구축하는 것도 의미가 있습니다.

    애플리케이션 및 에코시스템

    LLM은 다양한 작업을 해결하는 데 강력한 역량을 보여 주었기 때문에 광범위한 실제 애플리케이션(예: 작업별 자연어 지시에 따라)에 적용될 수 있습니다. 괄목할 만한 진전으로, ChatGPT는 인간이 정보에 접근하는 방식을 잠재적으로 변화시킬 수 있으며, 이는 뉴 빙의 출시에서 구현되었습니다. 가까운 미래에 LLM은 검색 엔진과 추천 시스템을 포함한 정보 검색 기술에 큰 영향을 미칠 것으로 예상할 수 있습니다. 또한 LLM의 기술 업그레이드를 통해 지능형 정보 비서의 개발과 활용이 크게 촉진될 것입니다. 더 넓은 범위에서 보면, 이러한 기술 혁신의 물결은 인간의 삶과 밀접한 관련이 있는 LLM 기반 애플리케이션(예: ChatGPT의 플러그인 지원)의 생태계로 이어질 것입니다. 마지막으로, LLM의 부상은 인공 일반 지능(AGI)의 탐구를 조명합니다. 그 어느 때보다 더 스마트한 지능형 시스템(다중 모달리티 신호 포함)을 개발할 수 있을 것으로 기대됩니다. 그러나 이러한 개발 과정에서 인공지능의 안전, 즉 인공지능이 인류를 위한 선으로 이어지도록 하는 것이 주요 관심사 중 하나가 되어야 합니다. 나쁘지 않아야 합니다[40].

    CODA

    이렇게 긴 설문조사를 작성하고 적시에 내용을 업데이트하는 것은 쉬운 일이 아닙니다. 먼저 독자 여러분과 저희 팀원들의 성원에 진심으로 감사드립니다. 저희는 이 설문조사를 위해 매우 열심히 노력했으며, 이 설문조사가 LLM을 위한 포괄적이고 시의적절한 참고 자료가 되기를 바랍니다. 설문조사 작성. 이번 설문조사는 연구팀이 개최한 토론 회의에서 기획되었으며, 대규모 언어 모델의 최근 발전 상황을 가독성 높은 보고서로 정리하여 팀원들이 쉽게 읽을 수 있도록 하는 것을 목표로 했습니다. 2023년 3월 13일에 첫 번째 초안이 완성되었으며, 팀원들은 비교적 객관적이고 포괄적인 방식으로 LLM에 대한 관련 연구를 포함하기 위해 최선을 다했습니다. 이후 여러 차례에 걸쳐 문체와 내용을 광범위하게 수정했습니다. 지면의 한계로 인해 [그림 2]와 [표 1]에는 선별 기준을 설정하여 기존 LLM의 일부만 수록할 수 있었습니다. 그러나 우리는 좀 더 모델 선택에 대한 보다 완화된 기준을 설정했으며(https://github.com/RUCAIBox/LLMSurvey), 이 기준은 정기적으로 유지될 예정입니다. 2023년 3월 31일에 초기 버전을, 2023년 6월 29일에 주요 개정판을 출시할 예정입니다. 

    조언을 구합니다. 트위터의 모든 노력에도 불구하고 이 설문조사는 아직 완벽하지 않습니다. 중요한 참고 자료나 주제를 놓칠 수 있으며, 엄격하지 않은 표현이나 논의가 있을 수도 있습니다. 저희는 이 설문조사를 지속적으로 업데이트하고 최대한 품질을 개선해 나갈 것입니다. 설문조사 작성은 우리 스스로가 LLM을 위한 학습 과정이기도 합니다. 이 설문조사를 개선하기 위한 건설적인 제안이 있는 독자는 설문조사의 GitHub 페이지에 의견을 남기거나 작성자에게 직접 이메일을 보내주시기 바랍니다. 접수된 의견이나 제안에 따라 향후 버전에서 수정할 예정이며, 설문조사에 건설적인 제안을 제공한 독자에게는 감사의 뜻을 전합니다.

    https://arxiv.org/abs/2303.18223

Designed by Tistory.