신경망으로 압축한 텍스트(Neurally Compressed Text)로 LLM 학습에 대한 연구 (Feat. Google DeepMind)

:pytorch:PyTorchKR:kr:

  • LLM이 반드시 사람이 읽을 수 있는 언어로만 학습을 해야 할까요? Context Window의 크기를 늘리기 어렵다면, 텍스트를 다양한 방식으로 압축해서 사용하면 어떨까요? 학습 및 서빙 효율성을 개선하고 더 긴 문맥(context)을 활용할 수 있는 방법 중 하나인 Training LLMs over Neurally Compressed Text 연구를 소개합니다.


신경망으로 압축한 텍스트(Neurally Compressed Text)로 LLM 학습에 대한 연구: Training LLMs over Neurally Compressed Text

소개

이 논문은 신경망으로 압축하는 방법으로 압축된 텍스트를 가지고 LLM이 학습할 수 있는지 여부를 연구한 결과입니다. 기존의 BPE(Byte Pairing Encoding)와 같은 표준 서브워드 토큰화(standard subword tokenizing) 기법들에 비해 훨씬 더 높은 압축률을 달성할 수 있는 신경망 압축 기법을 사용하여 압축된 텍스트로 작업하는 방법을 제안하고 있습니다. 이 방식은 효율성의 이점을 살리면서도 LLM의 학습 가능성과 성능을 유지하는 것을 목표로 합니다. 저자들은 다양한 압축 기술을 탐색하고 압축된 텍스트를 LLM 학습에 적합하게 만드는 속성을 분석합니다.

LLM을 위한 텍스트 입력을 토큰화하는 가장 일반적인 방법은 바이트 쌍 인코딩(BPE) 또는 유니그램과 같은 서브워드 토큰화 방법을 사용하는 것으로, 일반적으로 원시 텍스트에 대해 약 4배의 압축률을 달성합니다. 서브워드 토큰화는 압축과 학습 가능성 사이의 좋은 균형을 제공하지만, 학습 가능성을 해치지 않으면서 훨씬 더 높은 압축률(예: 12배)을 달성할 수 있는 방법을 탐색하면 LLM의 효율성을 더욱 향상시킬 수 있습니다.

이렇게 압축된 텍스트로 LLM을 학습하는 것은 강력한 압축 방법이 입력에서 대부분의 중복 및 예측 가능한 정보를 제거할 수 있기 때문에 쉽지 않습니다. 따라서, 압축 모델이 실패한 고급 구조와 패턴을 발견할 수 있어야 합니다. 하지만 압축 텍스트로의 효율적인 LLM 학습을 가능하게 함으로써 학습 및 추론 과정에서 상당한 효율성을 제공할 수 있어, 시도해볼만한 방법입니다.

표준 서브워드 토큰화 기법(Standard Sub Word Tokenizing)

표준 서브워드 토크나이징 기법은 텍스트 데이터를 더 작은 단위로 분해하여 언어 모델의 입력으로 사용하는 방법입니다. 이러한 방법은 특히 언어 모델링, 기계 번역, 텍스트 분류 등 자연어 처리(Natural Language Processing, NLP) 분야에서 널리 사용됩니다. 서브워드 토큰화의 핵심 목표는 어휘 사전의 크기를 줄이면서도 텍스트의 의미를 최대한 보존하는 것입니다. 여기서는 대표적인 표준 서브워드 토크나이징 기법인 바이트 쌍 인코딩(Byte Pair Encoding, BPE)과 Unigram 모델에 대해 설명합니다.

바이트 쌍 인코딩(Byte Pair Encoding, BPE): BPE는 데이터 압축 알고리즘에서 유래한 기법으로, 가장 빈번하게 등장하는 바이트 쌍(또는 문자 쌍)을 하나의 새로운 심볼로 대체하여 데이터를 압축합니다. 자연어 처리 분야(NLP)에서 BPE는 다음과 같은 방식으로 작동합니다:

  1. 어휘 사전 초기화: 모든 고유 문자(또는 바이트)를 어휘 사전에 추가합니다.
  2. 빈번한 쌍 결합: 훈련 데이터셋 전체에서 가장 빈번하게 등장하는 인접 문자 쌍을 찾아 이를 새로운 심볼로 합칩니다. 이 심볼도 어휘 사전에 추가합니다.
  3. 반복: 사전이 지정된 크기에 도달할 때까지 또는 더 이상 새로운 심볼을 추가할 수 없을 때까지 이 과정을 반복합니다.

BPE는 언어의 구조적 특성을 반영하여 자주 등장하는 단어나 단어의 일부를 하나의 토큰으로 인코딩하므로, 자연어의 다양성을 효과적으로 모델링할 수 있습니다.

Unigram 언어 모델 토큰화: Unigram 토큰화는 다소 다른 접근 방식을 사용합니다. 이 모델은 가능한 모든 서브워드 토큰의 확률 분포를 학습하고, 주어진 시퀀스를 가장 높은 확률로 구성할 수 있는 토큰 시퀀스를 선택하는 방식으로 작동합니다. 과정은 다음과 같습니다:

  1. 대규모 서브워드 후보군 생성: 가능한 모든 서브워드 조합으로 후보군을 생성합니다.
  2. 확률 모델 학습: 각 서브워드가 데이터에 등장할 확률을 계산합니다.
  3. 최적화: 데이터를 가장 잘 설명하는 서브워드 집합을 선택하기 위해 확률 모델을 최적화합니다. 이 과정에서 사용되지 않는 서브워드는 제거됩니다.

Unigram 모델은 맥락을 고려하지 않고 각 서브워드의 등장 확률만을 기반으로 토큰화를 수행하기 때문에, 각각의 토큰이 독립적으로 선택됩니다. 이러한 방식은 특히 어휘 사전의 크기를 유연하게 조절할 수 있어 다양한 언어와 도메인에 적용할 수 있는 장점이 있습니다.


표준 서브워드 토크나이징 기법은 모델이 희귀 단어나 신조어를 처리하는 능력을 향상시키고, 어휘 사전의 크기를 효율적으로 관리하며, 학습 데이터의 다양성을 보다 잘 포착할 수 있도록 도와줍니다.

손실 및 무손실 압축 방식

압축(Compression)은 데이터를 효율적으로 저장하고 전송하는 데 필수적인 기법입니다. 압축은 크게 손실이 있는 압축(lossy compression)과 손실이 없는 압축(lossless comrpession)의 2가지 유형으로 나눌 수 있습니다.

손실이 있는 압축 (Lossy Compression): 손실 압축 방식은 원본 데이터에서 일부 정보를 제거하여 압축률을 높입니다. 이 방식은 주로 멀티미디어 파일(예: 이미지, 비디오, 오디오)에 사용되며, 적절한 수준에서는 인간의 감지 능력을 넘어서는 정보를 제거함으로써 파일 크기를 줄입니다.

  • JPEG (Joint Photographic Experts Group): 이미지를 압축할 때 사용되는 대표적인 손실 압축 방식입니다. JPEG는 이미지에서 사람 눈이 덜 민감한 정보를 줄여 크기를 줄입니다.
  • MPEG (Moving Picture Experts Group): 비디오와 오디오 파일을 압축하는 데 사용되는 표준입니다. MPEG는 프레임 간 차이(예: 움직임)를 이용하여 데이터를 압축합니다.
  • MP3 (MPEG-1 Audio Layer III): 오디오 파일을 압축하는 데 널리 사용되는 포맷입니다. MP3는 인간의 청각이 잘 감지하지 못하는 소리의 세부 정보를 제거하여 파일 크기를 줄입니다.

손실이 없는 압축 (Lossless Compression): 손실 없는 압축 방식은 원본 데이터를 정확하게 복구할 수 있도록 데이터를 압축합니다. 이 방식은 주로 텍스트 문서, 소스 코드, 실행 파일 등 정확한 데이터 복구가 중요한 경우에 사용됩니다.

  • 실행-길이 인코딩 (Run-Length Encoding, RLE): 같은 값이 연속으로 나타나는 것을 하나의 값과 그 길이로 압축하는 방식입니다. 예를 들어, "AAAABBBCCDAA"는 "4A3B2C1D2A"로 압축됩니다. 이 방식은 연속된 데이터가 많을 때 효과적입니다.
  • 허프만 코딩 (Huffman Coding): 데이터에 등장하는 각 기호의 빈도수를 기반으로 가변 길이 코드를 할당하는 방식입니다. 빈도수가 높은 기호에는 짧은 코드를, 낮은 기호에는 긴 코드를 할당하여 압축합니다.
  • Lempel-Ziv-Welch (LZW): 사전 기반 압축 방식으로, 데이터 스트림에서 발견되는 패턴을 사전에 저장하고, 이후 동일한 패턴이 나타날 때 참조를 통해 압축합니다. GIF 이미지 포맷에 사용됩니다.
  • 산술 코딩(Arithmetic coding): 산술 코딩(Arithmetic Coding)은 손실 없는 데이터 압축 기법 중 하나로, 데이터의 확률 정보를 사용하여 효율적으로 압축합니다. 이 방법은 특정 데이터 시퀀스에 대한 확률 모델을 기반으로, 전체 시퀀스를 하나의 실수로 표현하는 방식을 취합니다. 산술 코딩은 허프만 코딩(Huffman Coding)과 같은 다른 압축 방식보다 더 높은 압축률을 달성할 수 있으며, 특히 데이터에 확률적인 특성이 잘 반영될 때 그 효과가 뛰어납니다.


압축 방식을 선택할 때는 압축률, 압축/해제 속도, 원본 데이터의 복원 필요성 등 여러 요소를 고려해야 합니다. 손실 없는 압축은 원본 데이터의 완전한 복원이 중요한 경우에 적합하고, 손실 압축은 멀티미디어 데이터의 효율적인 저장과 전송이 중요한 경우에 주로 사용됩니다.

## 주요 아이디어 및 구현 방식

연구자들은 크게 2가지 주요 아이디어를 제시하고 있습니다. 첫 번째는 텍스트 압축을 위해 언어 모델(첫번째 모델, M1)을 도입하는 것이고, 두번째는 압축된 텍스트를 사용하여 LLM(두번째 모델, M2)을 학습하는 것입니다. 또한, 이를 위해 새로운 압축 기법인 Equal-Info Windows를 제안합니다.

구현 개요

1.M1 모델 학습: 먼저, 텍스트 데이터셋에서 각 바이트(또는 문자)에 대한 출현 확률을 학습하는 바이트 레벨의 작은 언어 모델(M1)을 학습합니다. 이 모델은 입력 텍스트의 바이트에 대해 다음 바이트가 무엇이 될지에 대한 확률 분포를 제공하는 작은 자기-회귀(AR, Auto-regressive) 언어모델(LM, Language Model)로, 일종의 '압축기(Compressor)'로 활용됩니다.

  1. 텍스트의 신경압축: 위에서 학습한 M1 모델이 제공하는 확률 분포를 바탕으로, 텍스트 데이터를 신경-압축(Neurally Compression)하는 과정을 거칩니다. 이때 위에서 설명한 산술 코딩(AC, Arithmetic coding)과 같은 무손실 압축 알고리즘을 사용하여 데이터를 더 작은 크기의 비트스트림(bit stream)으로 변환합니다. 이 과정에는 'Equal-Info Windows' 기법을 적용하여 텍스트를 동일한 정보량을 가진 여러 개의 블록으로 나누고, 각 블록을 독립적으로 압축한다는 것이 중요합니다.

  2. M2 모델 학습: 앞 단계에서 변환한 비트스트림을 일정 크기의 조각(chunk)으로 나눈 뒤, 이를 토큰처럼 사용하여 더 큰 규모의 언어 모델(M2)을 학습합니다. 결과적으로 대규모 언어 모델(M2)은 앞의 M1 모델로부터 압축된 텍스트로부터 언어의 구조와 의미를 학습하게 됩니다.

EIW(Euqal-Info Windows) 기법


위 그림에서 설명하는 "Equal-Info Windows(EIW)"는 텍스트를 일련의 N비트 윈도우로 인코딩하는 방식을 나타냅니다. 각 후속 윈도우를 결정하기 위해, 남은 텍스트가 산술 코딩을 통해 바이트 단위로 인코딩되며, 이때 목표 비트 임계값(여기서는 16비트)을 초과하지 않을 때까지 더 이상의 바이트를 추가할 수 없습니다. 이 과정에서 M1 모델과 AC(산술 코딩) 알고리즘은 각 단계마다 리셋되므로, 윈도우 간에 정보가 지속되지 않습니다.

위 구현에 사용한 Equal-Info Windows(EIW) 기법은 신경-압축 텍스트를 학습하는데 사용되는 기법으로, 압축 과정에서 동일한 양의 정보를 포함하도록 텍스트를 여러 개의 구간으로 나누는 방식입니다. EIW 방식은 텍스트를 더 효율적으로 압축하고, 학습된 언어 모델이 더 높은 성능을 달성할 수 있도록 돕습니다. EIW의 핵심 아이디어는 압축된 텍스트가 학습 과정에서 동등한 정보 가중치를 가지도록 만드는 데 있습니다.

먼저, EIW의 작동 원리를 크게 3단계로 나누어 살펴보겠습니다:

  1. 정보량 측정: 먼저, 원본 텍스트에서 각 문자(또는 바이트)의 출현 확률을 분석하여 정보량을 측정합니다. 이는 산술 코딩과 같은 압축 알고리즘을 사용하여 수행될 수 있으며, 각 문자에 대한 비트 수(정보량)를 결정하는 데 사용됩니다.

  2. 동일 정보량 구간화: 원본 텍스트를 처리하면서, 미리 정의된 정보량(예: 비트 수)에 도달할 때마다 텍스트를 구간으로 나눕니다. 이렇게 함으로써, 각 구간은 동일한 양의 정보를 포함하게 됩니다. 이 과정은 텍스트의 압축과정에서 동일한 정보 밀도를 유지하도록 돕습니다.

  3. 압축 및 학습 데이터 준비: 나누어진 각 구간을 독립적으로 압축한 후, 이를 학습 데이터로 사용할 수 있는 형태(예: 토큰)로 변환합니다. 이렇게 준비된 데이터는 언어 모델 학습에 사용됩니다.



"Token vs. Bit 압축 비율"은 언어 모델의 입장에서 토큰화와 비트 수준 압축의 효율성을 비교하는 데 중요한 지표입니다. 대규모 어휘를 사용할 경우 각 토큰을 저장하기 위해 더 많은 비트가 필요하므로, 절대적인 압축 측면에서 비용이 발생합니다. 그러나 주어진 텍스트를 처리하는 데 사용되는 LLM의 계산량을 최소화하는 것이 목표일 때 중요한 것은 토큰 시퀀스의 길이입니다.

EIW의 주요 장점은 다음과 같습니다:

  • 효율적인 정보 처리: 각 구간이 동일한 양의 정보를 가지므로, 모델은 각 부분의 정보를 더 공평하게 처리할 수 있습니다. 이는 모델이 전체 텍스트에서 정보를 더 균등하게 학습하도록 돕습니다.

  • 성능 개선: 압축된 텍스트로부터 언어 모델을 학습할 때, EIW 방식은 모델이 더 효과적으로 정보를 학습하고, 따라서 더 높은 성능을 달성할 수 있도록 합니다. 특히, 장거리 의존성과 같은 복잡한 언어적 특성을 모델링하는 데 도움이 됩니다.

  • 압축 효율성: 동일한 정보량을 가진 구간으로 텍스트를 나누고 압축함으로써, 전체적인 압축 효율을 개선할 수 있습니다. 이는 특히 저장 공간이나 전송 대역폭이 제한적인 환경에서 유용합니다.

추론 시 동작

추론 중에는 M2가 압축된 토큰 시퀀스에 적용됩니다. 출력을 해석하기 위해 예측된 압축된 토큰은 먼저 해당하는 비트스트림으로 매핑됩니다. 그런 다음 비트스트림은 산술 코딩 알고리즘과 원래 M1 모델을 사용하여 최종 원시 텍스트 출력을 얻기 위해 압축을 해제합니다.

압축된 토큰 시퀀스를 예측하도록 M2를 학습함으로써, 모델은 M1이 쉽게 모델링할 수 있는 저수준 정보(철자, 단어 빈도 등)를 제거하고 M2가 압축하지 못한 고급 구조(의미론, 장거리 의존성)를 캡처할 수 있습니다. 이를 통해 M2는 토큰 당 더 많은 문맥 정보를 볼 수 있으며, 저수준 세부 사항을 다시 학습할 필요가 없습니다.

결과

실험 결과는 표준 트랜스포머(transformer) 언어 모델이 압축된 토큰을 정확하게 예측하는 데 어려움을 겪는다는 것을 보여줍니다. 그러나 제안된 Equal-Info Windows 방법은 압축된 텍스트 학습을 가능하게 합니다.

Equal-Info Windows 방법을 사용하는 최고의 설정은 16비트 창을 사용하며, 이는 전체 토큰 수준 압축률 5.3배를 달성합니다. 이는 표준 서브워드 토크나이저를 능가합니다. 비트당 바이트(표준 압축 평가 메트릭) 측면에서 동일한 컴퓨트 예산을 가진 경우 EIW 기반 모델이 바이트 수준 기준을 능가합니다.

그러나 EIW 모델은 여전히 전체적인 비트당 바이트에서 서브워드 토큰화를 능가하지 못합니다. 저자들은 서브워드 토큰화가 단어와 토큰 사이의 더 안정적이고 해석 가능한 매핑을 제공하기 때문에 이러한 가설을 세웁니다. 반면에 EIW 압축 토큰은 기본 텍스트와 일관된 매핑을 가지고 있지 않습니다.

전반적으로, 이 논문은 압축된 텍스트로 LLM 학습에 대한 흥미로운 새로운 패러다임을 제시하며, 기존 패러다임에 도전하고 학습 가능성과 효율성, 확장성 문제를 해결하기 위한 혁신적인 해결책을 제안합니다. 이 논문은 LLM 개발의 미래를 위한 가치 있는 통찰력을 제공하며, 압축과 모델 학습 가능성 사이의 균형을 찾는 것이 이 접근 방식을 실제로 유용하게 만드는 열쇠임을 강조합니다.

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: