Quiet Attention과 Base Attention의 버그

“어텐션 공식에서 버그를 발견했습니다. GPT 및 LLaMA를 포함한 모든 Transformer 모델이 영향을 받습니다.” 오늘은 LLM에 지대하게 영향을 주는 Attention 버그에 대해서 알아보도록 하겠습니다. 또한, 이를 해결하기 위한 Quiet Attention도 함께 알아보겠습니다.

개요

어제 에반 밀러(Evan Miller)라는 통계공학자의 말이 AI 분야에 큰 파장을 일으켰다.

밀러 트윗

우린 아래와 같이 attention 공식을 알고 있습니다.

어텐션 공식1

2017년 트랜스포머가 나온 이후로 이 공식이 널리 쓰이게 되었는데, 지금 에반 밀러가 이 공식이 틀렸다는 걸 발견했습니다. 버그가 있다고 이야기하고 있습니다.

Evan Miller의 이 블로그 게시물은 현재 인기 있는 AI 모델이 주요 위치에서 어떻게 잘못되어 모든 Transformer 모델을 압축 및 배포하기 어렵게 만드는지 설명합니다.

요약하면 Evan Miller는 기존의 softmax 기능을 혁신적으로 조정한 Softmax_1이라고도 하는 새로운 기능인 Quiet Attention을 도입했습니다.

어텐션 공식2

일부 누리꾼들은 블로그를 “버전을 읽기에는 너무 길다”고 요약했다. 블로거가 추천하는주의 메커니즘사용된 softmax 공식의 분모에 1을 더합니다(최종 출력 softmax가 아님). 어텐션 유닛의 소프트맥스는 키 /문의확률로 일치합니다. 이러한 확률은 키-값 조회의 연속 값 버전을 지원합니다(우리는가중치조회 1/0 출력이 아니라 높은가중치= 원하는 키-값 조회).

분모에 1을 추가하면 주의 단위가 실제 사용에서 변경됩니다.가중치확률 벡터, 대신 사용가중치. 동기 부여는 네트워크가 높은 수준을 제공하는 방법을 배울 수 있다는 것입니다.가중치, 조정된 softmax가 확률 벡터에 매우 가깝도록 합니다. All Low를 제공하는 새로운 옵션도 있습니다.가중치(그들은 모두 낮은 출력을 제공합니다가중치), 이는 아무것도 신뢰하지 않도록 선택할 수 있음을 의미합니다.

요약이미지

일부 사람들은 “이것이 Microsoft RetNet이 트랜스포머보다 성능이 좋은 이유”라고 추측하기도 했습니다.

resnet에 대한 설명

일부 네티즌들은 이 연구가 LLM의 개선을 촉진할 수 있으며, 이는가중치더 작은 모델이 더 큰 모델과 비교할 수 있도록 압축합니다.

attention os off by one

Miller는 다음과 같이 말했습니다: Softmax_1 함수는 아래와 같이 기존의 softmax 함수처럼 사용할 수 있습니다.

import torchfrom softmax_one.softmax_one import softmax_onex = torch.randn(5)y = softmax_one(x, dim=0)

이러한 수정을 바탕으로 Miller는 실험도 수행했으며 그 결과는 다음과 같습니다.

훈련장면

다음으로 Miller가 발견한 실수를 살펴보겠습니다.

어떤 문제가 있는걸까?

Evan Miller는수량화하다이 버그는 논문에서 발견되었습니다. 현재 메모리와 스토리지는 제약 조건이 되었습니다.인공 지능발달에 중요한 요소. 사람들은 모델을 압축하고 크게 실행하려고 노력했습니다.언어 모델(LLM).

컴퓨터에서 정보는 이진 데이터 스트림으로 저장됩니다. 데이터 스트림이 매우 예측 가능하다면(예: 항상 유한한 범위 내에 포함됨) 상대적으로 적은 비트로 데이터 스트림을 저장할 수 있습니다. 반대로 일련의 숫자가 예측할 수 없고 일생에 한 번 있는 거대한 숫자일 수 있는 경우 인코딩하고 저장하기 위해 더 많은 이진수가 필요합니다. Transformer 모델에는 일부 이상값이 포함되어 있습니다.가중치.

지난 6월 Qualcomm AI Research에서 발표한 논문 “Quantizable Transformers: Removal Outliers by Helping Attention Heads Do Nothing”에서 연구팀은 이러한 이상값의 존재를 다음과 같이 추적했습니다.주의 메커니즘소프트맥스 함수.

Quantizable transformers
Qualcomm 문서주소: https://arxiv.org/abs/2306.12929

이것은 놀랍게 들리지만 Evan Miller는 그것이 사실이라고 생각했고 또한 softmax 기능에서 버그를 발견했습니다.

Evan Miller가 softmax 함수가주의 메커니즘Aspect는 이에 적합한 도구가 아닙니다.

Softmax로 인한 문제

소프트맥스가 적합하지 않은 이유주의 메커니즘에서 파생되어야 합니다.주의 메커니즘시작하기 위해 수행할 수 있는 작업

일반적으로 수치오류는 프로그램의 오류로 발생하는 경우가 많은데 프로그램에 오류가 없을 경우에는 복잡한 수학공식을 고치는 것부터 시작해야 하므로 시간이 많이 소요됩니다.

Evan Miller는 단서를 얻기 전에 약 50개의 arXiV 논문을 읽었습니다. Miller는 입력 문자열의 단어를 나타내는 부동 소수점 벡터로 이해할 수 있는 “입력 임베딩”으로 시작합니다.

예를 들어 Meta에서 최근 도입한 LLaMA 2 모델은 일반적으로 30,000~50,000개의 항목(항목)을 포함하는 어휘의 단일 단어를 나타내기 위해 반정밀도 부동 소수점으로 표현되는 길이 3204의 임베딩 벡터를 사용합니다. 단어의 임베딩 벡터가 6KB 이상의 저장 공간을 차지한다는 의미입니다. 기술의 발전과 함께 “입력 임베딩”의 길이가 점차 증가하고 있으며, 차지하는 저장 공간도 증가하고 있습니다.

스토리지 사용량에 매우 민감한 C 프로그래머라면 이 숫자를 받아들이지 못할 수도 있는데 2바이트로 저장할 수 있는 것을 왜 6KB로 사용할까요? 2바이트에 따라 계산하면 어휘 크기가 2^16=65384보다 작으면 항목을 나타내는 데 16비트만 필요합니다.

그러나 실제로 Transformer는 다음과 같이 작동합니다. 입력 벡터를 동일한 크기의 출력 벡터로 변환하고 최종 6KB 출력 벡터를 사용하여 다음 토큰을 예측합니다. 작동 시 Transformer 워크플로의 각 계층은 원래 단어 벡터에 정보를 추가합니다. 그 중 잔류 연결도 사용됩니다.주의 메커니즘둘 다 원본 2바이트 정보에 보충 자료를 추가하여 LLM이 더 긴 컨텍스트를 분석할 수 있도록 합니다.

Transformer의 마지막 단계는 이 출력 벡터에 직사각형 행렬을 곱하고 어휘 길이의 결과 벡터를 softmax 함수로 압축하여 이러한 인덱싱된 출력을 다음 토큰의 확률로 처리하는 것입니다. 이것은 합리적이지만 이러한 출력 확률이 올바른지 확신할 수 없기 때문에 사실이 아닙니다. 대신 모든 Transformer 구현과 그 파생물은 샘플링 메커니즘을 사용하여 softmax가 과도하게 표현될 가능성이 낮다는 사실을 숨깁니다.

다음으로 Miller는 softmax의 개발 역사를 소개했습니다. 소프트맥스는 에너지 준위를 기반으로 상태 분포를 예측하는 방법으로 통계에 처음 등장했으며 그 형태는 다음과 같다.

어텐션 공식3

경제학자들은 나중에 그것을 다음과 같이 수정했습니다.

어텐션 공식4

이 수정으로 softmax는 여러 물류 기능을 갖습니다. Miller는 softmax 기능에 대한 광범위한 연구를 통해 softmax가 부적절하게 사용되는 위치를 식별할 수 있었습니다.

Softmax는 널리 사용되며 물리학에서는 매우 효과적이며 경제학에서는 그다지 정확하지 않을 수 있습니다.기계 학습이산 선택이 포함되는 한 항상 작동하는 것 같습니다.

어텐션 공식5

Miller는 추가로 softmax의 핵심은 일부 항목을 유지하지 않으려면 softmax를 수정해야 하며 그렇지 않으면 결과가 왜곡될 것이라고 말했습니다.

예를 들어, LLM의 맥락에서 왜곡은 비의미적 토큰(쉼표 등)의 과도한 가중치로 인해 발생합니다.가중치압축하기 어려운 특이치가 되어 연구를 더 어렵게 만듭니다. Qualcomm의 AI 연구원들도 이 현상을 발견했는데, LLM에서 비정상 활성화의 97% 이상이 공백과 구두점에서 발생했습니다.

다음으로 Miller는 문제가 있는 위치를 찾기 위해 softmax를 사용하는 방법을 소개했습니다.

어텐션 공식6

위 공식을 분해하면 디코더 전용 모델에서 𝑄, 𝐾 및 𝑉은 동일한 입력 시퀀스에서 파생됩니다. 즉, 프로젝션 방법이 다릅니다. 그러나 각 레이어에서 모두 동일한 주석 임베딩 벡터로 시작합니다.

어텐션 공식7

𝑄𝐾^𝑇 항은 서로 다른 위치에 있는 토큰 벡터 간의 상관 관계를 찾는 데 사용되며 기본적으로 각 열과 행이 토큰 위치에 해당하는 상관 행렬(내적은 스케일링됨)을 구성합니다 . 그런 다음 이 정사각 행렬의 각 행에 대해 소프트맥스 연산을 수행하고 결과 확률을 𝑉 행렬의 값 벡터에 대한 혼합 함수로 사용합니다. 확률 혼합 𝑉이 입력 벡터에 추가되고 합산 결과가 다음으로 전달됩니다.신경망추가 처리를 위해.

Multi-head Attention은 레이어당 병렬로 위의 프로세스를 여러 번 수행합니다. 기본적으로 이 접근법은 전체 벡터의 정보를 사용하여 출력 벡터의 (중첩되지 않은) 세그먼트에 주석을 추가하는 각 헤드로 임베딩 벡터를 분할합니다. 이것은 원래 Transformer 용지의 연결 작업입니다.

softmax를 사용할 때의 문제는 출력 벡터에 추가할 정보가 없더라도 각 어텐션 헤드에 주석을 달도록 강제한다는 것입니다.

해결방안은 무엇일까?

Softmax_1 및 QuietAttention

여기에서 Softmax Super-Mod가 LLM 해킹 채널에 불을 붙이는 것을 볼 수 있습니다.

좀 실망스럽죠? Miller가 하는 일은 분모에 1을 더하는 것뿐입니다. 이렇게 하면 원하는 경우 벡터가 전체적으로 0이 될 수 있습니다. 그렇지 않으면 값이 약간 축소되고 축소된 값은 주의 후에 발생하는 정규화 중에 보상됩니다.

어텐션 공식8

주요 차이점은 𝑥의 항목이 0보다 훨씬 작고 모델이 주석을 모두 피하려고 할 때 음수 값 제한입니다. 원래 softmax의 제한 동작은 다음과 같습니다.

어텐션 공식9

새롭게 개선된 softmax_1과 비교.

어텐션 공식10

Vanilla softmax는 항상 동일한 합계를 출시합니다.가중치;softmax_1은 거의 동일하게 보이지만 음수 사분면에 “탈출 해치”가 있습니다. 여기서 핵심 문제는 본질적으로 숫자가 아닌 수학적 문제입니다. 추가 정밀도는 softmax를 저장하지 않으며 모든 Transformer가 어려움을 겪습니다.

softmax_1에 대한 다른 사항도 관찰할 수 있습니다.유도체가 양수이므로 항상 0이 아닌 기울기가 있고 그 합은 0과 1 사이이므로 출력이 손을 떼지 않습니다. 함수는 다음 속성을 유지합니다.

어텐션 공11

즉, 출력 벡터의 상대 값은 변경되지 않습니다.

원래 Miller는 이 함수를 ghostmax라고 부르려고 했습니다.

어텐션 공식12

softmax_1이 표면적으로는 지루해 보이지만 Miller는 이상값 피드백 루프를 해결할 것이라고 99.44% 확신합니다.수량화하다캐스케이드 연구의 대상이 되십시오. 그가 옳다는 것을 증명하기 위해 몇 가지 실험을 하고 싶다면 그에게 연락할 수 있다고 밀러는 말했다. 그는 논문을 쓸 것입니다.

개선된 메커니즘은 QuietAttention이라고 할 수 있으며, 주의 헤드가 “침묵” 상태를 유지하도록 합니다.

Quiet Attention

Miller는 테스트를 곧 통합할 수 있다고 생각합니다. 각 입력 컨텍스트 앞에 0으로 구성된 벡터를 추가하고신경망바이어스(위치 인코딩 포함)를 추가하지 않으면 0은 여러 패스에서 변경되지 않고 각 후속 softmax 분모에 단일성을 추가합니다. 그렇게 하면 그래디언트 코드를 다루는 정신을 잃지 않습니다. Miller는 이것이 고정 임베딩과 특수 접두사 토큰을 사용하는 LLaMA 모델로 수행될 수 있다고 주장합니다.

여전히 모델을 재교육해야 하므로 아직 Raspberry Pi(RPi)에서 이 작업을 시도하지 마십시오. 하지만 밀러는 알고 싶어가중치첨도 및 활성화 무한대표준몇 번의 실행 후 모습입니다. Qualcomm AI Research 팀의 논문이든 LLM 해커 채널에서 Biblatex를 계산한 사람이든 간에 이것이 영향력 있는 연구가 될 것이라고 믿지만 처음 발견했습니다.

답글 남기기