Pictures
Yuan+2.0-M32는 Yuan-2.0+2B와 유사한 인프라로, 32명의 전문가가 포함된 전문 하이브리드 아키텍처를 사용합니다. 이 전문가 중 2명이 활동하고 있습니다. 기존 라우팅 네트워크를 사용한 모델과 비교하여 보다 효율적으로 전문가를 선정하기 위해 32명의 전문가가 포함된 전문가 하이브리드 아키텍처를 제안 및 채택하였다. Yuan+2.0-M32는 2000B 토큰을 사용하여 처음부터 훈련되었으며 훈련 소비량은 동일한 매개변수 크기의 조밀한 앙상블 모델의 9.25%에 불과합니다. 전문가를 더 잘 선택하기 위해 빠르게 감지하여 더 나은 전문가 선택을 가능하게 하는 Attention Router가 도입되었습니다.
Yuan 2.0-M32는 총 400억 개의 매개변수 중 37억 개의 활성 매개변수만을 사용하고 토큰당 7.4GFlop의 순방향 계산을 사용하여 코딩, 수학 및 여러 전문 분야에서 경쟁력 있는 역량을 입증했습니다. 이 두 가지 지표는 모두 1/1입니다. Llama3-70B 중 19개. Yuan 2.0-M32는 MATH 및 ARC-Challenge 벤치마크에서 Llama3-70B를 능가했으며 정확도는 각각 55.89%와 95.8%에 달했습니다. Yuan 2.0-M32의 모델과 소스 코드는 GitHub: https://github.com/IEIT-Yuan/Yuan2.0-M32에 있습니다.
각 토큰에 대한 계산량이 고정된 경우, 전문가 혼합(MoE) 구조를 사용하는 모델은 다음과 같습니다. 전문가 수를 늘려 쉽게 구성할 수 있으며, 밀집된 세트 모델보다 규모가 커져 정확도가 높아집니다. 실제로 제한된 컴퓨팅 리소스로 모델을 교육할 때 MoE는 모델, 데이터 세트 크기 및 제한된 컴퓨팅 성능과 관련된 비용을 줄이는 탁월한 옵션으로 간주됩니다.
MoE(Mixture of Experts)의 개념은 1991년으로 거슬러 올라갑니다. 총 손실은 독립적인 판단을 내릴 수 있는 능력을 가진 각 전문가의 가중 손실을 합산한 것입니다. 희박하게 게이트된 MoE의 개념은 원래 Shazeer et al.(2017)이 번역 모델에서 제안했습니다. 이 라우팅 전략을 사용하면 질문을 제기할 때 모든 전문가가 동시에 호출되는 대신 소수의 전문가만 활성화됩니다. 이러한 희소성을 통해 모델은 계산 효율성의 손실을 최소화하면서 누적된 LSTM 레이어 간에 최대 1000배까지 확장할 수 있습니다. 잡음 조정 가능한 Top-K 게이팅 라우팅은 네트워크의 소프트맥스 기능에 조정 가능한 잡음을 도입하고 K 값을 유지하여 전문가 활용의 균형을 유지합니다. 최근 몇 년 동안 모델 규모가 지속적으로 확장됨에 따라 컴퓨팅 리소스를 효율적으로 할당하는 데 라우팅 전략이 더 많은 주목을 받았습니다.
전문 라우팅 네트워크는 MoE 구조의 핵심입니다. 각 전문가에게 토큰을 할당할 확률을 계산하여 계산에 참여할 후보 전문가를 선택하는 구조입니다. 현재 가장 널리 사용되는 MoE 구조에서는 토큰과 각 전문가의 특징 벡터 간의 내적을 수행하고 가장 큰 내적을 가진 전문가를 승자로 선택하는 고전적인 라우팅 알고리즘이 일반적으로 채택됩니다. 이 선택에서는 전문가의 특징 벡터가 독립적이며 전문가 간의 상관 관계가 무시됩니다. 그러나 MoE 구조는 일반적으로 한 번에 두 명 이상의 전문가를 선택하며, 서로 다른 전문가의 특성 간에 상관관계가 있을 수 있습니다. 따라서 이 경우 선택된 특징 벡터는 계산에 참여한 각 전문가 간의 내적에 대한 중첩 및 충돌이 있을 수 있으며, 이는 결과의 정확성에 영향을 미칠 수 있습니다. 그러나 MoE 구조는 일반적으로 한 번에 두 명 이상의 전문가를 선택하며 서로 다른 전문가의 기능 간에 상관 관계가 있을 수 있습니다. 따라서 이 경우 기존 라우팅 알고리즘에서 선택한 기능 벡터가 중복되고 충돌하여 계산에 영향을 줄 수 있습니다. 정확성. 이 문제를 해결하기 위해 MoE 구조는 독립적인 전문가 특징 벡터를 채택하는 경우가 많습니다. 즉, 각 전문가는 완전히 독립적인 것으로 취급되고 전문가 간의 상관 관계는 무시됩니다. 그러나 이 접근 방식은 몇 가지 문제를 일으킬 수 있습니다. 따라서 전문가를 선정할 때 환경부 구조는 일반적으로 한 명 이상의 전문가를 선정하며, 서로 다른 전문가의 특성 간에 상관관계가 있을 수 있습니다. 이 경우 선택된 특징 벡터는 계산에 참여한 각 전문가 간의 내적에 대해 중복 및 충돌이 있을 수 있으며, 이는 결과의 정확성에 영향을 미칩니다. 따라서 MoE 구조는 최고의 전문가를 선정하기 위해 보다 정확한 라우팅 알고리즘이 필요하며 선정을 고려해야 합니다.
위안 2.0 기반- 2B 모델 구조인 Yuan 2.0은 로컬 필터링 기반 주의(LFA)를 도입하여 입력 토큰의 로컬 종속성을 고려하여 모델의 정확도를 향상시킵니다. Yuan 2.0-M32에서는 각 계층의 조밀한 FFN(피드포워드 네트워크)이 MoE 구성 요소로 대체됩니다.
그림 1은 종이 모델에 적용된 MoE 레이어의 아키텍처를 보여줍니다. 4개의 FFN(실제로는 32명의 전문가가 있음)을 예로 들면, 각 MoE 계층은 전문가로서 독립적인 FFN으로 구성됩니다. 전문가 경로 네트워크는 관련 전문가에게 입력 토큰을 할당하므로 클래식 경로 네트워크는 각 전문가에 대한 특징 벡터를 설정합니다. 그리고 입력 토큰과 각 전문가 특징 벡터의 내적을 계산하여 토큰과 각 전문가 간의 유사성을 구합니다. 유사성이 가장 높은 전문가가 출력을 계산하는 데 사용됩니다. 가장 강한 유사성을 가진 전문가가 활성화 대상으로 선택되고 후속 계산에 참여합니다.
그림 2(b)는 이 연구에서 제안한 Attention 라우터의 아키텍처를 보여줍니다. 이 새로운 라우팅 네트워크는 Attention 메커니즘을 채택하여 전문가 간의 상관 관계를 통합합니다. 전문가 간의 상관관계를 나타내는 계수행렬을 구성하여 최종 확률값 계산에 적용한다.
표 1: 다양한 라우팅 구조 비교
표 1에는 다양한 라우터의 정확도 결과가 나열되어 있습니다. 이 논문의 모델은 훈련 가능한 전문가 8명을 대상으로 주의 라우터를 테스트했습니다. 클래식 라우터 모델에는 유사한 매개변수 규모를 보장하기 위해 훈련 가능한 전문가 8명이 있으며 라우팅 구조는 Mixtral 8*7B에 적용된 것과 동일합니다. 즉, 하나의 선형 레이어에 Softmax가 있습니다. 공유 전문가 라우터는 공유 전문가 격리 전략과 클래식 라우팅 아키텍처를 채택합니다. 일반 지식을 포착하는 고정 전문가 2명이 있고, 선택 전문가 14명 중 처음 2명이 전문 전문가입니다.
MoE의 출력은 고정 전문가와 라우터가 선택한 전문가의 조합입니다. 세 가지 모델 모두 훈련에 30Btoken을 사용하고 테스트에 또 다른 10Btoken을 사용합니다. 클래식 라우터와 공유 전문가 라우터 간의 결과를 고려하면, 이 논문에서는 후자가 훈련 시간을 7.35% 증가시키면서 정확히 동일한 테스트 손실을 달성한 것으로 나타났습니다. 공유 전문가의 계산 효율성은 상대적으로 낮으며 기존 MOE 전략보다 더 나은 훈련 정확도로 이어지지 않습니다. 따라서 논문의 모델에서 논문은 공유된 전문가 없이 고전적인 라우팅 전략을 채택합니다. 기존 라우팅 네트워크와 비교하여 라우터의 주의력 상실 테스트는 3.8% 증가했습니다.
이 논문에서는 전문가 수를 늘리고 각 전문가의 매개변수 크기를 고정하여 모델의 확장성을 테스트합니다. 훈련 전문가의 수를 늘리면 실제 활성화된 모델 매개변수가 아닌 모델 용량만 변경됩니다. 모든 모델은 500억 개의 토큰으로 훈련되었으며 추가로 100억 개의 토큰으로 테스트되었습니다. 논문에서는 활성화된 전문가를 2로 설정하고 세 모델의 훈련 하이퍼파라미터는 동일합니다. 전문가 스케일링 효과는 500억 개의 토큰을 훈련한 후의 테스트 손실로 측정됩니다(표 2). 훈련 가능한 전문가가 8명인 모델과 비교하여 전문가가 16명인 모델은 2% 손실 감소를 보였고, 전문가가 32명인 모델은 3.6% 손실 감소를 보였습니다. 논문은 정확성을 고려해 위안 2.0-M32 전문가 32명을 선정했다.
표 2: 확장된 실험 결과
2.2.2 모델 훈련
Yuan 2.0-M32는 데이터 병렬성과 파이프라인 병렬성의 조합을 통해 훈련되지만 텐서 병렬성이나 최적화 병렬성을 사용하지 않습니다. 그림 3은 손실 곡선을 보여주며 최종 훈련 손실은 1.22입니다.
미세 조정 과정에서 논문은 시퀀스 길이를 16384로 확장했습니다. CodeLLama(Roziere et al., 2023)의 작업에 따라 이 논문은 시퀀스 길이가 증가함에 따라 어텐션 점수의 감쇠를 방지하기 위해 회전 위치 임베딩(RoPE)의 기본 주파수 값을 재설정합니다. 단순히 기본 값을 1000에서 매우 큰 값(예: 1000000)으로 늘리는 대신 이 논문에서는 NTK 인식(bloc97, 2023)을 사용하여 새로운 기본 값을 계산합니다.
이 논문에서는 사전 훈련된 Yuan 2.0-M32 모델의 성능을 NTK 지각 스타일의 새로운 베이스와 최대 16K 시퀀스 길이의 바늘 검색 작업에서 다른 베이스와 비교합니다. 이 논문에서는 NTK 지각 스타일에 대한 새로운 기본 값인 40890이 더 나은 성능을 발휘한다는 사실을 발견했습니다. 따라서 미세 조정 시에는 40890이 적용됩니다.
Yuan 2.0-M32는 2000B 토큰이 포함된 이중 언어 데이터 세트를 사용하여 처음부터 사전 학습되었습니다. 사전 훈련된 원시 데이터에는 3400B개 이상의 토큰이 포함되어 있으며, 각 범주의 가중치는 데이터 품질과 수량에 따라 조정됩니다.
포괄적인 사전 훈련 코퍼스는 다음으로 구성됩니다.
웹 크롤링 데이터, Wikipedia, 학술 논문, 서적, 코드, 수학 및 공식, 도메인별 전문 지식을 다루는 44개의 하위 데이터 세트. 그 중 일부는 오픈 소스 데이터 세트이고 나머지는 Yuan 2.0에서 생성되었습니다.
일부 일반적인 웹 크롤러 데이터, 중국 도서, 대화 및 중국 뉴스 데이터는 Yuan 1.0(Wu et al., 2021)에서 상속됩니다. Yuan 2.0의 사전 학습 데이터도 대부분 재사용되었습니다.
각 데이터세트의 구성 및 소스에 대한 세부정보는 다음과 같습니다.
웹(25.2%): 웹사이트 크롤러 데이터는 오픈소스 데이터세트에서 얻었으며, 퍼블릭 크롤러는 논문의 이전 작업(위안 1.0) 데이터에서 처리했습니다. 모은. 웹 컨텍스트에서 고품질 콘텐츠를 추출하기 위한 대량 데이터 필터링 시스템(MDFS)에 대한 자세한 내용은 Yuan 1.0을 참조하세요.
백과사전(1.2%), 논문(0.84%), 도서(6.49%) 및 번역(1.1%): 데이터는 Yuan 1.0 및 Yuan 2.0 데이터세트에서 상속됩니다.
코드(47.5%): Yuan 2.0에 비해 코드 데이터 세트가 크게 확장되었습니다. 이 논문에서는 Stack v2(Lozhkov et al., 2024)의 코드를 사용합니다. Stack v2의 주석은 중국어로 번역됩니다. 코드 합성 데이터는 Yuan 2.0과 유사한 접근 방식을 통해 생성되었습니다.
Math (6.36%): Yuan 2.0의 모든 수학 데이터가 재사용되었습니다. 이러한 데이터는 주로 Proof-pile vl(Azerbayev, 2022) 및 v2(Paster et al., 2023), AMPS(Hendrycks et al., 2021), MathPile(Wang, Xia 및 Liu, 2023)을 포함한 오픈 소스 데이터 세트에서 가져옵니다. ) 및 StackMathQA(장, 2024). 네 가지 산술 연산을 용이하게 하기 위해 Python을 사용하여 수치 계산을 위한 합성 데이터 세트를 만들었습니다.
특정 도메인(1.93%): 다양한 배경 지식이 포함된 데이터 세트입니다.
미세 조정 데이터 세트는 Yuan 2.0에 적용된 데이터 세트를 기반으로 확장되었습니다.
코드 명령 데이터 세트. 중국어 지침이 포함된 모든 프로그래밍 데이터와 영어 설명이 포함된 일부 프로그래밍 데이터는 LLM(대형 언어 모델)에 의해 생성됩니다. 코드 명령 데이터의 약 30%는 영어로 되어 있고 나머지는 중국어로 되어 있습니다. 합성 데이터는 프롬프트 생성 및 데이터 정리 전략에서 중국어 주석이 포함된 Python 코드를 모방합니다.
Magicoder-Evol-Instruct-110K 및 CodeFeedback-Filtered-Instruction에서 수집한 영어 주석이 포함된 Python 코드입니다. 데이터 세트에서 언어 태그(예: "python")가 포함된 명령 데이터를 추출합니다.
영어 주석이 포함된 C/C++/Go/Java/SQL/Shell 등 다른 언어의 코드는 오픈 소스 데이터 세트에서 가져온 것이며 Python 코드와 유사한 방식으로 처리됩니다. 청소 전략은 Yuan 2.0의 방법과 유사합니다. 샌드박스는 생성된 코드에서 컴파일 가능하고 실행 가능한 라인을 추출하고 최소한 하나의 단위 테스트를 통과한 라인을 유지하도록 설계되었습니다.
수학 명령어 데이터 세트. 수학 명령어 데이터 세트는 모두 Yuan 2.0의 미세 조정 데이터 세트에서 상속되었습니다. 프로그래밍 방법을 통해 수학적 문제를 해결하는 모델의 능력을 향상시키기 위해 논문에서는 Thoughts(PoT)를 통해 촉발된 수학적 데이터를 구성했습니다. PoT는 수학적 문제를 Python에서 계산을 수행하는 코드 생성 작업으로 변환합니다.
안전 지침 데이터 세트. Yuan 2.0 채팅 데이터 세트 외에도 이 백서는 오픈 소스 안전 조정 데이터 세트를 기반으로 이중 언어 안전 조정 데이터 세트를 구축합니다. 이 논문은 공개 데이터 세트에서만 질문을 추출하고, 질문의 다양성을 높이고, 대규모 언어 모델을 사용하여 중국어 및 영어 답변을 재생성합니다.
Yuan 2.0-M32의 경우 Yuan 2.0에 적용된 토크나이저에서 영어 및 중국어 토크나이저를 상속받았습니다.
본 논문에서는 HumanEval에서 Yuan 2.0-M32의 코드 생성 능력, GSM8K 및 MATH에서 수학적 문제 해결 능력, ARC에서 과학적 지식과 추론 능력을 평가합니다. MMLU를 종합 벤치마크로 평가했습니다.
코드 생성 기능은 HumanEval 벤치마크를 사용하여 평가됩니다. 평가 방법 및 팁은 Meta 2.0에서 언급된 것과 유사합니다.
표 3: HumanEval 패스 @1
에서 Yuan 2.0-M32와 다른 모델 간의 비교해당 모델은 이후 기능이 완성될 것으로 예상됩니다. 생성된 함수는 단위 테스트를 통해 평가됩니다. 표 3은 제로샷 학습에서 Yuan 2.0-M32의 결과를 보여주고 이를 다른 모델과 비교합니다. Yuan 2.0-M32의 결과는 DeepseekV2 및 Llama3-70B에 이어 두 번째이며, 활성 매개변수와 계산 소비량이 다른 모델보다 훨씬 낮음에도 불구하고 다른 모델을 훨씬 능가합니다.
DeepseekV2와 비교하여 이 논문의 모델은 활성 매개변수의 1/4 미만을 사용하고 토큰당 계산의 5분의 1 미만을 필요로 하며 90% 이상의 정확도 수준을 달성합니다. Llama3-70B와 비교하면 모델 매개변수와 계산량 사이의 격차가 훨씬 더 크지만, 논문은 여전히 수준의 91%에 도달할 수 있습니다. Yuan 2.0-M32는 탄탄한 프로그래밍 능력을 보여 4개의 질문 중 3개를 통과했습니다. Yuan 2.0-M32는 작은 샘플 학습에 탁월하여 14번의 시도에서 HumanEval의 정확도를 78.0으로 높였습니다.
Yuan 2.0-M32의 수학 기능은 GSM8K 및 MATH 벤치마크를 통해 평가되었습니다. GSM8K에 대한 프롬프트 및 테스트 전략은 Yuan 2.0에 적용된 것과 유사하지만 유일한 차이점은 이 논문이 8번의 시도를 사용한다는 점입니다(표 4).
표 4: Yuan 2.0-M32와 GSM8K 및 MATH의 다른 모델 비교
MATH는 12,500개의 까다로운 수학 경쟁 질문과 답변 질문이 포함된 데이터세트입니다. 이 데이터 세트의 각 질문에는 모델이 답변 파생 및 설명을 생성하도록 안내하는 완전한 단계별 솔루션이 있습니다. 질문에 대한 답은 숫자 값이거나 수학 표현식(예: y=2x+5, x-+2x-1, 2a+b 등)일 수 있습니다. Yuan 2.0-M32는 CoT(Chain of Thinking) 방식을 사용하여 4번의 시도를 통해 최종 답변을 생성합니다. 분석에서 답변이 추출되어 통일된 형식으로 변환됩니다.
수치 결과의 경우 모든 형식의 수학적으로 동등한 출력이 허용됩니다. 예를 들어 분수 1/2, 12, 0.5, 0.50은 모두 0.5로 변환되어 동일한 결과로 처리됩니다. 수학적 표현의 경우 탭과 공백 기호를 제거하고 리듬이나 음표에 대한 정규식을 통합합니다. 55 '5'는 모두 같은 답으로 받아들여집니다. 처리 후 최종 결과는 표준답안과 비교하여 EM(Exact Match) 점수를 이용하여 평가됩니다.
표 4의 결과에서 볼 수 있듯이 Yuan 2.0-M32는 MATH 벤치마크에서 가장 높은 점수를 받았습니다. Mixtral-8x7B와 비교할 때 후자의 활성 매개변수는 Yuan 2.0-M32의 3.48배이지만 Yuan의 점수는 거의 두 배입니다. GSM8K에서 Yuan 2.0-M32의 점수도 Llama 3-70B에 매우 가깝고 다른 모델보다 우수합니다.
대규모 다중 작업 언어 이해(MMLU)는 기본 언어 작업부터 고급 논리적 추론 작업에 이르기까지 STEM, 인문학, 사회 과학 등 57개 분야를 다룹니다. MMLU의 모든 질문은 영어로 된 객관식 QA 질문입니다. 모델은 올바른 옵션이나 해당 분석을 생성할 것으로 예상됩니다.
위안 2.0-M32의 입력 데이터 구성은 부록 B에 나와 있습니다. 이전 텍스트가 모델로 전송되고 정답 또는 옵션 라벨과 관련된 모든 답변은 올바른 것으로 간주됩니다.
최종 정확도는 MC1로 측정됩니다(표 5). MMLU의 결과는 다양한 분야에서 종이 모델의 기능을 보여줍니다. Yuan 2.0-M32는 성능면에서 Mixtral-8x7B, Phi-3-mini 및 Llama 3-8B를 능가합니다.
표 5: Yuan 2.0-M32와 MMLU의 다른 모델 비교
AI2 Inference Challenge(ARC) 벤치마크는 3의 데이터를 포함하는 다중 선택 QA 데이터 세트입니다. 9~9학년 과학 시험 문제입니다. Easy와 Challenge의 두 부분으로 나누어져 있으며, 후자에는 추가 추론이 필요한 더 복잡한 부분이 포함되어 있습니다. 이 논문은 과제 섹션에서 논문의 모델을 테스트합니다.
표 6: Yuan 2.0-M32와 ARC-Challenge의 다른 모델 비교
질문과 옵션은 로 직접 연결되고 구분됩니다. 이전 텍스트는 모델로 전송되며, 모델은 라벨이나 해당 답변을 생성할 것으로 예상됩니다. 생성된 답변은 실제 답변과 비교되며 MC1 타겟을 이용하여 결과가 계산됩니다.
표 6은 Yuan 2.0-M32가 복잡한 과학적 문제를 해결하는 데 탁월하다는 것을 보여주는 ARC-C의 결과를 보여줍니다. 이는 이 벤치마크에서 Llama3-70B보다 성능이 뛰어납니다.
Pictures
표 7: Yuan 2.0-M32와 다른 모델 간의 품질 및 크기 비교. 평균 정확도는 GSM-8K, Math, Humaneval, MMLU 및 ARC-C의 점수를 기준으로 평균화되었습니다
이 논문에서는 3개의 MoE 모델(Mixtral family, Deepseek)과 6개의 Dense 모델(Qwen(Bai et al., 2023), Llama family 및 Phi-3 family(Abdin et al., 2024)을 사용하여 논문의 성능을 비교합니다. )) 다양한 영역에서 Yuan 2.0-M32의 성능을 평가합니다. 표 7은 Yuan 2.0-M32와 다른 모델 간의 정확도와 계산 노력을 비교한 것입니다. Yuan 2.0-M32는 3.7B 활성 매개변수와 토큰당 22.2GFlop만을 사용하여 미세 조정되었으며, 이는 표에 나열된 다른 모델과 비슷하거나 심지어 능가하는 결과를 얻는 데 가장 경제적입니다. 표 7은 추론 과정에서 종이 모델의 뛰어난 계산 효율성과 성능을 암시합니다. Yuan 2.0-M32의 평균 정확도는 79.15로 Llama3-70B와 비슷합니다. 토큰당 평균 정확도/GFlops 값은 10.69로 Llama3-70B의 18.9배입니다.
논문 제목: Yuan 2.0-M32: Mixture of Experts with Attention Router
논문 링크: https://www.php.cn/link/cc7d159d6ff3ea6f39b9419877dfc81f
위 내용은 LLM | Yuan 2.0-M32: 주의 라우팅 기능을 갖춘 전문가 혼합 모델의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!