13 Dec 2024
|
Docs
Snappy
스내피
Docs 시리즈는 공식 Docs를 통해 기술을 올바르게 이해하는 시리즈 입니다.
아직 Docs 시리즈는 형식이나 구성이 완전하진 않습니다. 글의 시인성이 좀 떨어지는 것 같아 구성을 바꿀수도 있을 것 같습니다.
피드백이나 의견 있으시면 언제든지 연락주세요.
Snappy
Snappy(스내피)는 Google이 개발한 고성능 데이터 압축 알고리즘 및 라이브러리입니다.
요약
- 스내피의 목적은 "적당히 압축하되 속도가 빠르고 리소스 부담이 없는 압축방법"
- 실시간 데이터 처리, 로그 저장, 스트리밍 데이터 분석 등에서 널리 활용됨
- 속도가 빠른 이유는 해시테이블을 사용하기 때문
- 메모리를 많이 사용하지 않는 이유는 윈도우마다 해시테이블을 초기화하기 때문에
주요 특징
- 빠른 속도 (링크)
- 압축, 해제 속도 : 250MB/s, 500MB/s 이상
- 다른 알고리즘(LZO, LZF, QuickLZ 등) 대비 빠른 속도를 가짐
- 적당한 압축률 (vs. zlib)
- 일반 텍스트 : 1.5~1.7배 (zlib: 2.6~2.8배)
- HTML : 2~4배 (zlib: 3~7배)
- 낮은 CPU, 메모리 사용
- 해시테이블을 이용한 압축으로, 복잡한 연산을 필요로 하지 않음
- 윈도우 단위로 해시테이블을 초기화하여 너무 큰 메모리 사용 방지
- 안정성
- 몇 년 동안 Google의 프로덕션 환경에서 페타바이트 규모의 데이터를 안정적으로 압축 및 해제하였음
- 압축 해제시 손상되거나 악의적인 입력 데이터에 대해서도 충돌하지 않도록 설계되었음
- 오픈 소스
- BSD 유형의 라이선스를 따르는 무료 오픈 소스 소프트웨어
알고리즘
LZ77 알고리즘
스내피의 알고리즘은 LZ77 알고리즘에 기반을 두고 있습니다.
LZ77 알고리즘을 간단히 설명하자면, "앞에서 나온 내용을 재활용해서 쓰자" 입니다.
자세한 동작 원리는 아래와 같습니다.
- 인코딩의 시작 지점을 입력 데이터의 시작에 위치합니다
- 버퍼 사이즈만큼의 데이터를 읽습니다.
- 윈도우와 버퍼를 비교하여 가장 긴 일치하는 문자열을 찾습니다.
- 가장 긴 일치하는 문자열의 거리와 길이 (없을 경우 0), 그리고 다음 문자를 기록합니다.
- 길이+1만큼 인코딩 시작지점을 이동합니다.
- 데이터가 아직 남았다면 2번으로 이동합니다.
여기에서 윈도우와 버퍼의 개념이 등장합니다.
- 윈도우(window)
- 이전에 처리된 데이터의 일부를 저장하는 영역으로, 반복 패턴을 찾기 위해 검색되는 데이터의 범위
- LZ77 알고리즘에서는 슬라이딩 윈도우 방식을 택함
- 버퍼(buffer)
- 현재 처리중인 데이터의 일부를 저장하는 영역으로, 윈도우에 매칭될 영역
아래 예시를 보면 쉽게 이해할 수 있을거라 생각합니다.
(이미지 출처 : 링크)
위 방식은 매우 효율적인 방식이지만, 매칭되는 문자열을 매번 찾아야 한다는 단점이 있습니다. 윈도우가 크면 클수록 매칭되는 문자열을 만날 확률이 높아지지만, 반대로 매칭하기 위한 시간은 늘어납니다.
Snappy 알고리즘
스내피 알고리즘은 LZ77 알고리즘에서 몇가지 개선사항이 있습니다.
첫번째로, 매칭되는 문자열을 찾을 때 해싱 테이블을 이용합니다.
버퍼에 있는 문자열을 해싱한 뒤, 해싱테이블에 저장하여 다음 문자열을 찾을 때 해당 정보를 이용합니다. 이렇게 함으로써 매칭 시간을 단축시켜 압축 시간을 줄일 수 있습니다.
두번째로, 스내피 알고리즘에서 윈도우는 해싱 테이블을 유지할 데이터 단위입니다.
LZ77에서는 가까운 이전 데이터를 봤기 때문에 이전 데이터를 슬라이딩하면서 움직였지만, 이제는 해싱 테이블을 사용하기 때문에 앞의 데이터를 볼 필요가 없습니다.
스내피 알고리즘에서는 윈도우 내에서만 해싱테이블을 유지하고, 다음 윈도우로 이동하면서 해싱 테이블을 초기화합니다. 이렇게 함으로써 해싱 테이블이 너무 커지는 것을 방지하고 불필요한 메모리 사용을 방지합니다.
아래 파이썬 코드는 스내피 압축 알고리즘이 어떻게 동작하는지 간단하게 설명합니다. 실제 스내피는 좀 더 복잡한 동작이 있지만, 아래 예시로 충분할 거라 생각됩니다.
# 간단한 해시 테이블 매칭 구현
def find_matches(data, window_size=32):
hash_table = {}
compressed = []
i = 0
while i < len(data) - 4: # 최소 4바이트 블록
# 현재 슬라이스
current_slice = data[i:i+4]
# 해시 계산 (간단히 해시 함수 사용)
hash_key = hash(current_slice) % window_size
# 해시 테이블에서 매칭 검색
if hash_key in hash_table and hash_table[hash_key] != i:
# 거리와 길이를 기록
distance = i - hash_table[hash_key]
compressed.append((distance, len(current_slice)))
i += len(current_slice)
else:
# 새로 추가
compressed.append((0, current_slice))
i += 1
# 해시 테이블 업데이트
hash_table[hash_key] = i
return compressed
# 데이터 압축
data = "abcabcabcdabcdabcde"
compressed_data = find_matches(data)
print("Compressed Data:", compressed_data)
아래 테이블은 위 예시가 어떻게 동작하는지 보여줍니다.

23 Oct 2024
|
Daily Paper
하루에 한 논문을 30분 안에 간단하게 살펴본 결과를 기록하는 포스트입니다.
논문을 살펴볼 때 ChatGPT의 도움을 적극적으로 받으며, 따라서 포스트에 잘못된 내용이나 오류가 있을 수 있습니다.
피드백이나 의견 있으시면 언제든지 연락주세요.
3줄 요약
- LLM은 다양한 문제를 훌륭하게 해결하지만, 자신의 답변에서 오류를 스스로 인식하고 수정하는 능력은 상대적으로 약함
- 학습 과정을 2단계(답변 생성 -> 답변 수정)으로 나누어서 학습하게 하여 자기수정(self-correct) 능력을 크게 향상
- 인간의 사고과정을 점점 따라가고 있는 듯한 느낌
논문 정보
- 논문 제목: Training Language Models to Self-Correct via Reinforcement Learning
- 저자: Aviral Kumar, Vincent Zhuang, Rishabh Agarwal, Yi Su, John D Co-Reyes, Avi Singh, Kate Baumli, Shariq Iqbal, Colton Bishop, Rebecca Roelofs, Lei M Zhang, Kay McKinney, Disha Shrivastava, Cosmin Paduraru, George Tucker, Doina Precup, Feryal Behbahani, Aleksandra Faust
- 소속: Google DeepMind, Equal Contribution, Randomly ordered via coin flip, Jointly supervised.
- 원문 링크: arXiv 링크
배경
- LLM은 다양한 문제를 훌륭하게 해결하지만, 그 과정에서 발생하는 오류를 스스로 인식하고 수정하는 능력은 상대적으로 약한 상태
- 수학적 추론, 코딩, 논리적 문제 해결과 같은 영역에서 매우 중요
- 기존에는 아래와 같은 시도들이 있었으나, 효과적이지 않았음
- 프롬프트 엔지니어링 : 의미있는 변화가 없었음
- 파인 튜닝 : 입력을 처리하는 별도 모델이 필요하거나, 수정 과정을 감독하는 teacher 모델이 필요
문제
- Distribution Shift (분포 불일치)
- 훈련 데이터와 실제 문제 해결 중 발생하는 오류의 차이로 인해 성능이 저하
- Behavior Collapse (행동 붕괴)
- 학습이 첫 번째 시도의 최적 응답을 생성하는 데 집중되고 두 번째 시도에서는 피상적인 수정 또는 수정이 전혀 이루어지지 않는 경우
SCoRe
- Self-Correction via Reinforcement Learning
- 대규모 언어 모델(LLM)이 외부 감독 없이 스스로 오류를 수정할 수 있도록 강화 학습(RL)을 사용한 새로운 접근법
학습 단계

1단계: 단계별로 상관관계를 최소화하는 초기화 과정을 학습
- 기존 모델의 응답에서 너무 많이 동떨어지지 않으면서 2단계에서 잘 고칠 수 있는 답변을 생성하는 단계
- 비효율적이게 보일 수 있지만, 행동 붕괴(behavior collapse)가 발생하지 않도록 하기 위해서 꼭 필요함
- KL-발산(KL-divergence)을 이용하여 조정
2단계: 보상 형성을 적용한 다단계 강화 학습
- 1단계의 결과에서부터 시작하여 1단계와 2단계를 모두 최적화 함
- 강화학습의 보상에 단순히 정답과 가까운 정도 만을 보상으로 제공하는 것이 아니라, 1단계의 답변을 수정한 정도를 추가함
- 잘못된 1단계 답변을 제대로 고치면 양(+)의 보상
- 올바른 1단계 답변을 틀리게 고치면 음(-)의 보상
기타
- 필요시 위 단계를 반복하면서 Multi-Trun 학습
- 답변을 실시간으로 생성하며 온라인(online) 학습
특징
- 단순한 단일 모델 아키텍처
- 단일 모델이 자체적으로 오답 데이터를 생성하고 해당 문제를 오류를 인식하고 수정할 수 있도록 훈련
- 다양한 오답 데이터셋을 자체 생성하면서 분포 불일치 문제 해결
- 두 단계로 분리하여 학습흐며 행동 붕괴 방지
- 단순히 정답을 학습하는 것이 아닌 오류를 인식하고 수정하는 능력을 학습
성과
- 수학 및 코딩 문제에서 우수한 성능
- MATH 문제에서 15.6%, HumanEval 코딩 문제에서 9.1%의 자기 수정 성능 향상을 기록
Abstract
대규모 언어 모델(LLM)의 자기 수정(self-correction) 능력은 매우 바람직한 특성이지만, 현대의 LLM에서는 이러한 능력이 대체로 효과적이지 않다는 것이 반복적으로 밝혀졌습니다. 현재 자기 수정 능력을 훈련하는 방법들은 여러 모델을 사용하거나, 더 진보된 모델, 또는 추가적인 감독 형태에 의존하고 있습니다. 이러한 단점을 해결하기 위해, 우리는 오직 자체 생성 데이터만을 사용하여 LLM의 자기 수정 능력을 크게 향상시키는 다단계 온라인 강화 학습(RL) 접근법인 SCoRe를 개발했습니다. SCoRe를 구축하기 위해, 우리는 오프라인 모델이 생성한 수정 경로를 사용한 변형된 지도 학습 방식(SFT)이 자기 수정 행동을 주입하기에 충분하지 않다는 것을 먼저 보여줍니다. 특히, SFT 방식은 데이터 수집 정책이 만든 실수와 모델 자체의 응답 간의 분포 불일치로 인해 제대로 작동하지 않거나, 학습이 특정 수정 행동 모드에만 치우쳐 테스트 문제에서 자기 수정이 효과적이지 못한 경우가 발생합니다. SCoRe는 모델이 생성한 자체 수정 경로에서 학습하여 이러한 문제를 해결하고, 테스트 시에 효과적인 자기 수정 행동을 학습하도록 적절한 규제를 적용합니다. 이 규제 과정에는 행동 붕괴를 방지하기 위한 기본 모델에 대한 다단계 RL 초기화가 포함되며, 자기 수정을 증폭시키기 위한 보상 추가가 이어집니다. 우리는 Gemini 1.0 Pro 및 1.5 Flash 모델을 사용하여, SCoRe가 수학(MATH) 및 코딩(HumanEval) 문제에서 각각 15.6%와 9.1%의 성능 향상을 기록하며, 최첨단 자기 수정 성능을 달성했음을 확인했습니다.
목차 및 요약
1. 서론 (Introduction)
- 대규모 언어 모델(LLM)의 자기 수정 능력은 현재 매우 제한적이며, 이를 개선하기 위해 기존 방법들은 여러 모델이나 외부 감독에 의존했습니다.
- 본 논문은 이러한 문제를 해결하기 위해 강화 학습 기반의 SCoRe 접근법을 제안합니다.
- 자기 수정 및 강화 학습 관련 기존 연구들을 분석하고, LLM의 자기 수정 문제와 해결 방안을 다룬 다양한 접근법을 검토합니다.
- 특히, 강화 학습과 지도 학습의 차별점을 설명합니다.
3. 예비 지식 및 문제 설정 (Preliminaries and Problem Setup)
- 모델이 스스로 오류를 수정하는 과정의 구조와 문제 설정을 설명합니다. 특히, 다단계 강화 학습에서의 모델 학습 절차를 정의합니다.
4. 지도 학습 기반 접근법의 한계 (SFT on Self-Generated Data is Insufficient for Self-Correction)
- 지도 학습(SFT)을 기반으로 한 기존 자기 수정 접근법이 효과적이지 않은 이유를 분석합니다.
- 분포 불일치와 행동 붕괴 문제를 설명하고 그 한계를 보여줍니다.
5. SCoRe: 다단계 강화 학습을 통한 자기 수정 (SCoRe: Self-Correction via Multi-Turn Reinforcement Learning)
- 본 논문의 핵심인 SCoRe 접근법을 제안하며, 두 단계로 나누어 자기 수정 능력을 학습시키는 과정을 설명합니다.
- 첫 번째 단계는 초기화를, 두 번째 단계는 다단계 RL을 사용한 자기 수정 능력의 향상을 다룹니다.
6. 실험 및 결과 (Experiments)
- MATH 및 HumanEval 데이터셋을 활용한 SCoRe의 성능을 실험하고, 기존 모델과 비교하여 자기 수정 능력이 크게 향상된 결과를 제시합니다.
7. 결론 (Conclusion)
- SCoRe는 외부 감독 없이도 LLM의 자기 수정 성능을 크게 향상시키는 강화 학습 접근법입니다.
- 향후 연구에서는 더욱 복잡한 문제로 확장할 가능성을 제안합니다.
기타
22 Oct 2024
|
Daily Paper
하루에 한 논문을 30분 안에 간단하게 살펴본 결과를 기록하는 포스트입니다.
논문을 살펴볼 때 ChatGPT의 도움을 적극적으로 받으며, 따라서 포스트에 잘못된 내용이나 오류가 있을 수 있습니다.
피드백이나 의견 있으시면 언제든지 연락주세요.
3줄 요약
- 두 Softmax Attention 맵을 계산한 후, 이를 서로 차감하여 최종 Attention Score를 계산하는 Diffrential Attention Mechanism을 제시
- 노이즈 제거, 긴 문맥 처리 능력 강화, 헐루시네이션 완화, In-context 학습 성능 향상, 모델 크기 효율성 등의 여러 면에서 기존 트랜스포머 모델에 비해 뛰어난 성능을 보임
- 조금의 변화로 큰 결과! (A slight change for huge results!)
논문 정보
- 논문 제목: Differential Transformer
- 저자: Tianzhu Ye, Li Dong, Yuqing Xia, Yutao Sun, Yi Zhu, Gao Huang, Furu Wei
- 소속: Microsoft Research, Tsinghua University
- 원문 링크: arXiv 링크
Attention Mechanism
- 트랜스포머 모델의 핵심 구성요소
- 입력 시퀀스의 각 요소가 다른 요소들과의 관계(유사성)를 학습하는 방법
- 기본 개념
- Query(Q): 현재 처리 중인 토큰을 기준으로, 다른 토큰들과 얼마나 관련이 있는지를 묻는 질문.
- Key(K): 모든 토큰의 특징을 나타내며, Query와의 관련성을 평가하는 기준.
- Value(V): 각 토큰의 정보로, 실제로 사용할 데이터.
- 작동 과정
- Query와 Key 간의 유사성 계산:
- Query와 모든 Key 벡터 간의 내적(dot product)을 계산하여 관련성을 측정합니다. 이 값이 클수록 두 토큰 간의 유사성이 높습니다.
- Softmax 함수 적용:
- 유사성 점수에 Softmax 함수를 적용해 확률 값으로 변환하고, 이 값들이 어텐션 스코어가 됩니다.
- 이 스코어는 각 토큰이 다른 토큰에 얼마나 집중해야 하는지를 나타냅니다.
- Value 벡터의 가중합:
- 각 토큰의 Value 벡터에 해당 어텐션 스코어를 곱하여, 중요한 정보에 더 높은 가중치를 부여한 가중합을 계산합니다.
- 이 가중합이 최종 출력으로, 현재 토큰이 문맥 내 다른 토큰들과 상호작용한 결과를 반영합니다.
- 종류
- 이 논문에 관련있는 종류만 설명함
- Softmax 어텐션
- 쿼리(Query)와 키(Key) 벡터 간의 내적(dot product)을 계산해 Softmax 함수를 적용함
- Scaled Dot-Product Attention
- Softmax 어텐션을 기반으로 한 변형
- 쿼리(Query)와 키(Key) 벡터의 내적을 계산한 후, 이를 벡터 차원의 제곱근으로 스케일링(scaling)하여 안정적인 학습
- Softmax를 적용하여 가중치를 계산한 후, 값(Value) 벡터에 가중합을 적용
- Multi Head Attention
- 여러개의 헤드가 독립적으로 어텐션 계산을 수행
- 모델이 다양한 관계나 패턴을 학습할 수 있으며, 여러 헤드에서 계산된 어텐션 값들은 결합되어 최종 출력
Differential Attention Mechanism

- 두 개의 Softmax Attention 맵 사용
- 두 개의 독립적인 Softmax Attention 맵을 계산
- 차감(Difference)을 통해 노이즈 제거
- 두 Softmax Attention 맵을 계산한 후, 이를 서로 차감하여 최종 Attention Score를 계산
- 이 차감 과정을 통해 공통된(즉, 중요하지 않은) 정보에 할당된 주의 점수가 제거되고, 중요한 정보에 더 많은 집중
- 멀티 헤드 어텐션을 적용하여 병렬적으로 DIFF 어텐션 학습 실행
장점
- 긴 문맥 처리 능력 개선
- 기존 트랜스포머는 문맥이 길어지면 불필요한 정보에 주의를 기울일 확률이 높아지는데, DIFF Transformer는 노이즈를 효과적으로 제거하여, 긴 문맥에서도 중요한 정보에 집중
- 64K 문맥 길이에서도 성능이 저하되지 않음
- 할루시네이션(Hallucination) 완화
- DIFF Transformer는 중요한 정보에만 집중하고 불필요한 정보에 대한 주의를 억제함
- In-context 학습 성능 및 강인성 향상
- In-context 학습이란, 모델이 주어진 문맥에서 중요한 정보만 학습하여 추론할 수 있는 능력
- DIFF Transformer는 문맥의 순서가 변경되었을 때도 더 강인한 성능을 보이며, 순서 변환에 덜 민감하게 동작
- 모델 크기와 학습 데이터 효율성
- DIFF Transformer는 모델 크기나 학습 토큰 수가 적더라도 기존 트랜스포머와 유사한 성능을 유지
- 실험 결과, 기존 트랜스포머가 요구하는 매개변수의 약 65%만으로도 유사한 성능을 달성
Abstract
트랜스포머(Transformer)는 관련 없는 문맥에 과도한 주의를 할당하는 경향이 있습니다. 이 연구에서는 DIFF Transformer를 소개하며, 이는 중요한 문맥에 대한 주의를 증폭시키고 노이즈를 제거합니다. 구체적으로, 차별적 주의 메커니즘은 두 개의 별도 소프트맥스 주의 맵 간의 차이를 계산하여 주의 점수를 산출합니다. 이러한 차감 방식은 노이즈를 제거하고, 희소한 주의 패턴이 나타나도록 유도합니다. 언어 모델링 실험 결과, DIFF Transformer는 모델 크기를 확장하거나 학습 토큰을 증가시킨 다양한 설정에서 기존 트랜스포머를 능가했습니다. 특히, 긴 문맥 모델링, 주요 정보 검색, 헐루시네이션 완화, In-context 학습, 활성화 아웃라이어 감소와 같은 실제 응용 분야에서 두드러진 장점을 보여줍니다. DIFF Transformer는 관련 없는 문맥에 덜 주의를 기울이기 때문에 질문 응답과 텍스트 요약에서 헐루시네이션을 완화할 수 있습니다. In-context 학습에서 DIFF Transformer는 정확성을 높일 뿐 아니라, 순서 변환에 대한 강인성도 높습니다. 이러한 결과들은 DIFF Transformer가 대형 언어 모델을 발전시키는 매우 효과적이고 유망한 아키텍처임을 보여줍니다.
목차 및 요약
1. Introduction
- Transformer의 주의력 할당 문제와 이를 해결하기 위한 새로운 차별적 주의 메커니즘을 제안함.
- DIFF Transformer는 불필요한 문맥 노이즈를 제거하고, 중요한 정보에 집중할 수 있도록 설계되었음.
- DIFF Transformer는 기존 트랜스포머와 유사한 구조를 가지지만, 주의 메커니즘에서 차별적 계산을 적용함.
- 차별적 주의는 두 개의 소프트맥스 주의 맵 간의 차이를 계산하여 노이즈를 제거함.
2.1 Differential Attention
- 차별적 주의는 두 개의 쿼리와 키 벡터를 통해 주의 점수를 계산하고, 이 차이를 통해 노이즈를 제거함.
- 이 방식은 주의 메커니즘을 통해 불필요한 정보에 대한 주의를 줄이고, 중요한 정보에 집중할 수 있게 만듦.
2.2 Overall Architecture
- DIFF Transformer는 여러 층을 쌓아 구성되며, 각 층은 차별적 주의 모듈과 피드포워드 네트워크로 구성됨.
- RMSNorm과 SwiGLU와 같은 최신 기술을 결합하여 성능을 최적화함.
3. Experiments
- DIFF Transformer는 다양한 언어 모델링 과제에서 기존 트랜스포머보다 우수한 성능을 보임.
- 모델 크기, 학습 토큰 수, 문맥 길이를 확장할 때도 성능 개선을 확인함.
3.1 Language Modeling Evaluation
- DIFF Transformer는 대형 언어 모델에서 기존 트랜스포머보다 더 나은 언어 모델링 성능을 달성함.
- 특히, 긴 문맥에서 중요한 정보를 더 잘 추출하는 능력을 보여줌.
- DIFF Transformer는 더 적은 매개변수와 학습 토큰으로도 기존 트랜스포머와 유사한 성능을 냄.
- 파라미터 수와 학습 데이터 양을 줄이면서도 성능 저하 없이 확장 가능함.
3.3 Long-Context Evaluation
- DIFF Transformer는 긴 문맥에서 중요한 정보를 더 효과적으로 활용하며, 긴 문맥에서의 성능 저하를 줄임.
- 64K 길이의 문맥에서도 뛰어난 성능을 보임.
- DIFF Transformer는 복잡한 문맥에서 중요한 정보를 더 잘 검색하며, 주의 노이즈를 줄임.
- 다양한 문맥 길이에서도 우수한 성능을 유지함.
3.5 In-Context Learning
- DIFF Transformer는 in-context 학습에서 더 높은 정확도와 강인성을 보임.
- 순서 변화에도 성능이 덜 저하되며, 여러 샷 설정에서도 좋은 성능을 냄.
3.6 Contextual Hallucination Evaluation
- 질문 응답과 요약에서 DIFF Transformer는 기존 모델보다 헐루시네이션을 더 효과적으로 줄임.
- 모델이 문맥에서 정확한 정보를 추출하는 데 더 집중하도록 개선됨.
3.7 Activation Outliers Analysis
- DIFF Transformer는 모델 활성화 아웃라이어 문제를 줄이며, 더 효율적인 양자화를 가능하게 함.
- 활성화 값의 극단적인 변동을 줄여, 훈련 및 추론 중 더 안정적인 성능을 보장함.
3.8 Ablation Studies
- DIFF Transformer의 각 설계 요소에 대한 영향력을 평가한 결과, 차별적 주의 메커니즘이 성능에 크게 기여함.
- 다양한 초기화 전략에서도 성능이 일관되게 유지됨.
4. Conclusion
- DIFF Transformer는 트랜스포머의 한계를 극복하고, 중요한 정보에 더 잘 집중하도록 개선된 아키텍처임.
- 다양한 언어 모델링 과제에서 뛰어난 성능을 보이며, 대형 언어 모델 발전에 중요한 역할을 할 것으로 기대됨.
기타
저자의 소개글
트랜스포머는 관련 없는 문맥에 과도한 주의를 할당하는 경향이 있습니다. 이 연구에서는 중요한 문맥에 대한 주의를 증폭시키고 노이즈를 제거하는 Diff Transformer를 소개합니다. 구체적으로, 차별적 주의 메커니즘은 두 개의 별도 소프트맥스 주의 맵 간의 차이를 계산하여 주의 점수를 산출합니다. 이러한 차감 방식은 노이즈를 제거하고, 희소한 주의 패턴이 나타나도록 유도합니다. 언어 모델링에 대한 실험 결과, Diff Transformer는 모델 크기를 확장하거나 학습 토큰을 증가시키는 다양한 설정에서 기존 트랜스포머보다 더 우수한 성능을 보여주었습니다. 더욱 흥미로운 점은 Diff Transformer가 긴 문맥 모델링, 주요 정보 검색, 헐루시네이션 완화, in-context 학습, 활성화 아웃라이어 감소와 같은 실제 응용 분야에서 탁월한 이점을 제공한다는 것입니다. Diff Transformer는 관련 없는 문맥에 덜 영향을 받기 때문에 질문 응답 및 텍스트 요약에서 헐루시네이션을 완화할 수 있습니다. 또한, in-context 학습에서 Diff Transformer는 정확도를 높일 뿐만 아니라, 순서 변환에 대한 강인성도 향상시키며, 이는 오랜 시간 문제로 여겨졌던 강인성 문제를 해결하는 데 기여합니다. 이러한 결과는 Diff Transformer가 대형 언어 모델을 발전시키는 매우 효과적이고 유망한 아키텍처임을 보여줍니다.
다른 사람의 요약
m-ric의 요약 (원본 링크)

⚡️ 𝐌𝐨𝐬𝐭 𝐢𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭 𝐛𝐫𝐞𝐚𝐤𝐭𝐡𝐫𝐨𝐮𝐠𝐡 𝐭𝐡𝐢𝐬 𝐦𝐨𝐧𝐭𝐡: 𝐃𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐭𝐢𝐚𝐥 𝐓𝐫𝐚𝐧𝐬𝐟𝐨𝐫𝐦𝐞𝐫 𝐯𝐚𝐬𝐭𝐥𝐲 𝐢𝐦𝐩𝐫𝐨𝐯𝐞𝐬 𝐚𝐭𝐭𝐞𝐧𝐭𝐢𝐨𝐧 ⇒ 𝐛𝐞𝐭𝐭𝐞𝐫 𝐫𝐞𝐭𝐫𝐢𝐞𝐯𝐚𝐥 𝐚𝐧𝐝 𝐟𝐞𝐰𝐞𝐫 𝐡𝐚𝐥𝐥𝐮𝐜𝐢𝐧𝐚𝐭𝐢𝐨𝐧𝐬!
Thought that self-attention could not be improved anymore?
Microsoft researchers have dropped a novel “differential attention” mechanism that amplifies focus on relevant context while canceling out noise. It sounds like a free lunch, but it does really seem to vastly improve LLM performance!
𝗞𝗲𝘆 𝗶𝗻𝘀𝗶𝗴𝗵𝘁𝘀:
🧠 Differential attention computes the difference between two separate softmax attention maps, canceling out noise and promoting sparse attention patterns
🔥 DIFF Transformer outperforms standard Transformers while using 35-40% fewer parameters or training tokens
📏 Scales well to long contexts up to 64K tokens, leveraging increasing context length more effectively
🔎 Dramatically improves key information retrieval, enhancing in-context learning, and possibly reducing risk of hallucinations 🤯
🔢 Reduces activation outliers, potentially enabling lower-bit quantization without performance drop!
⚙️ Can be directly implemented using existing FlashAttention kernels
This new architecture could lead much more capable LLMs, with vastly improved strengths in long-context understanding and factual accuracy.
But they didn’t release weights on the Hub: let’s wait for the community to train the first open-weights DiffTransformer! 🚀
21 Oct 2024
|
Daily Paper
하루에 한 논문을 30분 안에 간단하게 살펴본 결과를 기록하는 포스트입니다.
논문을 살펴볼 때 ChatGPT의 도움을 적극적으로 받으며, 따라서 포스트에 잘못된 내용이나 오류가 있을 수 있습니다.
피드백이나 의견 있으시면 언제든지 연락주세요.
3줄 요약
- Meta에서 Movie Gen이라는 모델을 공개
- 사용자의 이미지를 기반으로 개인 맞춤형 비디오 생성, 텍스트 지시를 통한 비디오 수정, 비디오에 맞는 오디오 생성 등의 기능을 가지고 있음
- 너무 많은 내용을 다루고 있어서 트렌드를 파악하는 정도로만 살펴보았음. 나중에 기회가 되면 제대로 파악할 것
논문 정보
- 논문 제목: Movie Gen: A Cast of Media Foundation Models
- 저자: The Movie Gen team
- 소속: Meta
- 원문 링크: arXiv 링크
- 메타 블로그 포스트 : 링크
Movie Gen
- 텍스트로부터 고해상도 1080p 비디오와 동기화된 오디오를 생성할 수 있는 미디어 생성 기반 모델
- 주요 특징
- 텍스트-비디오 생성: 텍스트 입력에 따라 최대 16초 길이의 1080p HD 비디오를 생성.
- 비디오 개인화: 사용자의 이미지를 기반으로 개인 맞춤형 비디오 생성 가능.
- 정밀한 비디오 편집: 텍스트 지시를 통해 기존 비디오를 정밀하게 수정.
- 오디오 생성: 비디오와 일치하는 고품질 사운드 및 음악 생성.
- 대규모 파라미터 모델: 30억 개의 파라미터를 사용하는 대규모 트랜스포머 기반 모델.
Abstract
우리는 Movie Gen이라는, 서로 다른 화면 비율과 동기화된 오디오를 갖춘 고품질 1080p HD 비디오를 생성하는 미디어 기반 모델들의 모음을 소개합니다. 또한, 정교한 명령에 따른 비디오 편집과 사용자의 이미지를 기반으로 한 개인 맞춤형 비디오 생성과 같은 추가 기능도 제공합니다. 우리의 모델들은 텍스트-비디오 변환, 비디오 개인화, 비디오 편집, 비디오-오디오 생성, 텍스트-오디오 생성 등 여러 작업에서 새로운 최첨단 성능을 보여줍니다.
가장 큰 비디오 생성 모델은 30억 개의 매개변수를 가진 트랜스포머로, 최대 16초 길이의 16 프레임/초(FPS) 비디오를 생성할 수 있습니다. 우리는 아키텍처, 잠재 공간, 학습 목표 및 데이터 처리 방식, 평가 프로토콜, 병렬화 기법, 추론 최적화 등 여러 기술적 혁신과 단순화 과정을 통해 대규모 데이터와 모델 크기, 학습 컴퓨팅 자원을 효과적으로 확장하는 방법을 제시합니다. 이 논문을 통해 미디어 생성 모델 연구에 대한 진전을 가속화할 수 있기를 바랍니다.
목차 및 요약
- 너무 긴 논문이라 ChatGPT가 요약을 하지 못함
18 Oct 2024
|
Daily Paper
하루에 한 논문을 30분 안에 간단하게 살펴본 결과를 기록하는 포스트입니다.
논문을 살펴볼 때 ChatGPT의 도움을 적극적으로 받으며, 따라서 포스트에 잘못된 내용이나 오류가 있을 수 있습니다.
피드백이나 의견 있으시면 언제든지 연락주세요.
3줄 요약
- LLM의 한계(인코딩 과정에 부적합)에 대한 연구가 활발히 일어나고 있음
- Mixture-of-Experts (MoE) 모델의 라우팅 가중치(Routing Weights, RW)가 대형 언어 모델(LLM)에서 임베딩 작업에 활용될 수 있음을 제안
- RW와 숨겨진 상태(Hidden State, HS)를 결합한 새로운 임베딩 방식(MOEE)이 다양한 임베딩 작업에서 성능을 향상시킴을 실험적으로 입증
논문 정보
- 논문 제목: Your Mixture-of-Experts LLM is Secretly an Embedding Model for Free
- 저자: Ziyue Li, Tianyi Zhou
- 소속: Department of Computer Science, University of Maryland, College Park
- 원문 링크: arXiv 링크
- 프로젝트 페이지: GitHub 링크
배경
- LLM의 발전과 한계
- LLM은 자연어 처리(NLP) 분야에서 생성 작업 (텍스트 생성, 번역 등)에서 뛰어난 성과
- 그러나 LLM은 임베딩(embedding) 작업에서는 성능이 제한적
- 주로 디코더 전용 아키텍처(decoder-only architecture)를 기반
- LLM의 숨겨진 상태(hidden state, HS)는 주로 다음 토큰을 예측하는 데 집중되어 있어, 임베딩에 필요한 전체적인 입력 정보를 포착하는 데 한계
- finetuning이 없을 경우, 임베딩 작업에 적합하지 않다는 평가
- Mixture-of-Experts(MoE) 모델
- 입력 데이터에 따라 가장 적합한 전문가(expert) 네트워크를 선택해 효율적으로 작업을 처리하는 신경망 아키텍처
- 최근에는 자연어 처리와 컴퓨터 비전 등 다양한 분야에서 대형 언어 모델(LLM)과 결합
- 아래와 같이 일반적인 HS LLM 모델과 비교하여 MoE LLM 모델이 성능이 좋은 결과를 볼 수 있음

목적
- MoE LLM이 임베딩 작업에서 추가적인 미세 조정 없이도 고성능을 낼 수 있는지를 탐구
- LLM의 라우팅 가중치(Routing Weights, RW)가 숨겨진 상태(Hidden State, HS)와 어떻게 상호 보완적으로 작용할 수 있는지에 중점
- 이를 통해, LLM이 범용 모델로서 임베딩 작업에서도 활용될 수 있는지에 대한 의문을 해결하고자 함
MoE Routing Weights (RW) as Embedding
- MoE 모델의 핵심인 라우팅 가중치는 전문가(experts)들이 입력 데이터를 처리할 때, 각 전문가에게 할당되는 가중치를 결정하는 메커니즘
- 각 입력에 대해 라우터는 어떤 전문가가 어느 정도 기여할지를 결정하는 확률 분포(라우팅 가중치)를 생성
- 이 논문에서는 이 라우팅 가중치가 임베딩으로 사용될 수 있다고 제안
- RW는 각 층에서 입력에 대한 중요한 구조적 및 의미론적 정보를 포함하고 있음
- RW는 입력에 대한 고유한 처리 과정을 반영하여 기존의 LLM에서 HS만으로는 담기 어려운 정보를 캡처 가능
- RW는 HS보다 프롬프트에 덜 민감하고 더 높은 수준의 의미 정보를 포착하는 특성
Hidden State(HS) 와 Routing Weight(RW)
특성 |
Hidden State (HS) |
Routing Weight (RW) |
정의 |
신경망의 각 층에서 입력 데이터를 처리한 후 생성되는 중간 결과 |
MoE 모델에서 라우터가 입력을 처리하기 위해 전문가에게 할당하는 가중치 |
역할 |
입력 데이터의 문맥적 정보를 담고, 다음 토큰 예측에 사용됨 |
입력을 특정 전문가에게 분배하는 역할, 입력의 특성을 반영한 가중치 |
주로 사용하는 모델 |
GPT, LLaMA 등 일반적인 LLM에서 사용됨 |
Mixture-of-Experts (MoE) 모델에서 사용됨 |
포착하는 정보 |
입력 시퀀스의 문맥적 의미와 생성 결과에 초점 |
입력 데이터의 구조적, 의미론적 특성 반영, 중간 추론 과정 강조 |
결합 방식 |
주로 마지막 층의 최종 HS를 임베딩으로 사용 |
모든 층의 RW를 통합하여 전체적인 입력 특징을 반영 |
프롬프트에 대한 민감성 |
프롬프트에 민감하며, 다양한 프롬프트에 따라 결과가 달라짐 |
프롬프트에 덜 민감하고 더 안정적인 정보 제공 |
The Proposed MoE Embedding (MOEE)
- HS와 RW는 상호보완적이며 두 방식의 결합이 더 나은 성능을 낼 수 있다

- RW와 HS를 결합한 새로운 임베딩 방법인 MoE Embedding (MOEE)를 제안
- Concatenation-based Combination (MOEE (concat))
- RW와 HS를 단순히 결합(concatenation)하여 하나의 임베딩으로 만드는 방식
- 이 방법은 RW와 HS가 개별적으로 제공하는 정보를 결합하여 더 풍부한 표현을 생성 가능
- Weighted Sum Integration (MOEE (sum))
- RW와 HS 간의 유사도를 각각 계산한 후 이를 가중합(weighted sum)하여 최종 유사도를 계산하는 방식
- 이 방법은 두 임베딩이 서로 다른 정보를 담고 있다는 점을 활용하여 출력에 의존적인 정보(Hidden State)와 입력에 민감한 정보(Routing Weights)를 균형 있게 통합
- 보통 이 방법이 가장 나은 성능을 보임
Abstract
대형 언어 모델(LLM)은 생성 작업에서 뛰어난 성능을 보이지만, 디코더 전용 아키텍처는 추가적인 표현 미세 조정 없이는 임베딩 모델로서의 잠재력을 제한할 수 있습니다. 이는 이들이 범용 모델이라는 주장과 모순되는가요? 이 질문에 답하기 위해 Mixture-of-Experts(MoE) LLM을 면밀히 분석했습니다. 연구 결과, MoE LLM의 전문가 라우터가 추가적인 미세 조정 없이도 다양한 임베딩 작업에서 뛰어난 성능을 보이는 임베딩 모델로 활용될 수 있음을 확인했습니다.
추가 분석을 통해 MoE 라우팅 가중치(RW)가 LLM의 널리 사용되는 숨겨진 상태(HS)와 상호 보완적인 역할을 한다는 것을 발견했습니다. HS와 비교할 때, RW는 프롬프트 선택에 더 강인하며, 고수준의 의미론적 정보에 집중합니다. 이 분석을 바탕으로 RW와 HS를 결합한 MOEE를 제안하였으며, 이는 개별 사용보다 더 나은 성능을 보입니다. 특히, RW와 HS 유사도의 가중 합이 두 임베딩을 단순히 결합한 것보다 뛰어난 성능을 보여줍니다. 실험은 Massive Text Embedding Benchmark(MTEB)의 20개 데이터셋에 걸쳐 6가지 임베딩 작업을 수행했으며, MOEE는 추가 미세 조정 없이도 LLM 기반 임베딩 성능을 크게 향상시켰습니다.
목차 및 요약
1. Introduction
Mixture-of-Experts(MoE) 모델의 전문가 라우터가 임베딩 모델로 활용될 수 있음을 제시하며, HS와 RW가 상호 보완적인 역할을 한다고 주장합니다. 추가적인 미세 조정 없이도 높은 성능을 보여주는 MoE 임베딩(MOEE)을 제안합니다.
기존 임베딩 기법과 MoE 구조의 관련 연구들을 검토합니다. LLM 기반 훈련 기법과 비훈련 임베딩 방법들의 성과를 비교합니다.
3. Mixture-of-Experts Embedding (MOEE)
MoE 라우팅 가중치(RW)와 숨겨진 상태(HS)를 결합해 임베딩 성능을 개선하는 방법론을 제시합니다. RW는 입력에 대한 세밀한 정보를 제공하며, HS는 문맥을 반영한 임베딩을 제공합니다.
3.1 MoE Routing Weights (RW) as Embedding
MoE 모델의 라우팅 가중치가 임베딩 역할을 할 수 있음을 설명하고, 이를 통해 생성된 임베딩의 특성을 논의합니다.
3.2 Comparative & Complementary Analysis of RW & HS
RW와 HS가 입력 데이터에서 서로 다른 정보를 캡처하는 것을 실험을 통해 분석합니다. 두 임베딩의 상호 보완적인 특성을 강조합니다.
3.3 The Proposed MoE Embedding (MOEE)
RW와 HS를 결합한 새로운 임베딩 방법인 MOEE를 제안하며, 성능 향상을 위해 다양한 결합 방식을 실험합니다.
4. Experiments
Massive Text Embedding Benchmark(MTEB)에서 다양한 임베딩 작업을 통해 MOEE의 성능을 평가합니다. 실험 결과 MOEE는 HS와 RW보다 일관되게 높은 성능을 보여줍니다.
4.1 Evaluation Setup
실험에 사용된 MoE 모델들과 각 작업에 대한 평가 설정을 설명합니다.
4.2 Main Results
MTEB 작업에서 MOEE가 HS나 RW만을 사용한 경우보다 우수한 성능을 보였다는 결과를 제시합니다.
4.3 Ablation Study
각 모델에서 RW와 HS를 어떻게 결합했는지에 따른 성능 변화를 분석합니다.
4.4 Stability Comparison of RW and HS Using Different Prompts
다양한 프롬프트를 사용했을 때 RW와 HS의 안정성을 비교합니다. RW는 프롬프트에 덜 민감하여 더 안정적인 성능을 보입니다.
5. Conclusion
MoE의 라우팅 가중치가 HS와 상호 보완적인 역할을 하여 임베딩 성능을 향상시킨다는 결론을 내립니다. MOEE의 잠재력을 강조하며 향후 연구 방향을 제시합니다.
잘 모르는 부분이 많은 논문이라 최대한 정리하였지만 한계가 많이 느껴짐
추가로 공부해야 할 것