본문 바로가기
AI 언어 모델

DeepSeek-V2: 오픈소스 최고 성능과 가성비를 자랑하는 혁신 MoE 언어 모델

by James AI Explorer 2024. 5. 11.
    728x90

    안녕하세요! 오늘은 경제적인 훈련과 효율적인 추론을 특징으로 하는 강력한 Mixture-of-Experts(MoE) 언어 모델, DeepSeek-V2에 대해 알아보겠습니다. DeepSeek-V2는 혁신적인 아키텍처인 MLA(Multi-head Latent Attention, 다중헤드 잠재 주의)DeepSeekMoE 기술을 적용하여 오픈소스 최고 성능을 달성하였으며, 훨씬 더 많은 파라미터를 가진 모델 (예: Qwen1.5 72B, Command R+) 보다도 높은 성능을 보여 효율성 측면에서도 우수함을 보여줍니다. 이 블로그에서는 DeepSeek-V2의 개요, 아키텍처, 성능평가 결과에 대해 알아보고 추론 테스트 및 코딩테스트를 해보겠습니다.

    DeepSeek-V2: 오픈소스 최고 성능의 가성비 혁신 MoE 언어 모델

    https://github.com/deepseek-ai/DeepSeek-V2

     

    GitHub - deepseek-ai/DeepSeek-V2

    Contribute to deepseek-ai/DeepSeek-V2 development by creating an account on GitHub.

    github.com

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    DeepSeek-V2 개요

    DeepSeek-V2는 총 236B의 매개변수 중 21B가 각 토큰(Expert)에 활성화되며, 128K 토큰의 컨텍스트를 지원합니다. MLA(Multi-head Latent Attention)와 DeepSeekMoE 아키텍처를 특징으로 하며, DeepSeek-V2는 이러한 기술을 바탕으로 이전 버전인  DeepSeek 67B와 비교했을 때 훈련 비용을 42.5% 절약하고, KV 캐시를 93.3% 줄이며, 최대 생성 처리량을 5.76배로 높였습니다. 평가 결과, 오픈소스 모델 중 최고 수준의 성능을 달성하였습니다.

    DeepSeek-V2 성능그래프

    위 성능 분석 이미지에 따르면 DeepSeek-V2는 다른 모델들과 비교하여 높은 성능, 낮은 훈련 비용, 효율적인 자원 사용, 빠른 생성 속도 등 다양한 측면에서 뛰어난 성능을 보이는 모델임을 알 수 있습니다.

    • 높은 성능: DeepSeek-V2는 다른 모델들과 비교하여 높은 MMLU (Massive Multitask Language Understanding) 점수를 기록했습니다. 특히, 훨씬 더 많은 파라미터를 가진 모델 (예: Qwen1.5 72B, Command R+) 보다도 높은 성능을 보여 효율성 측면에서도 우수함을 알 수 있습니다. 
    • 낮은 훈련 비용: 이전 버전인 DeepSeek 67B와 비교하여 훈련 비용을 42.5% 절감했습니다. 이는 DeepSeek-V2가 더 적은 자원을 사용하여 동일하거나 더 나은 성능을 달성할 수 있다는 것을 의미합니다. 
    • 효율적인 KV 캐시 사용: 또한 DeepSeek 67B보다 KV 캐시를 93.3% 줄였습니다. KV 캐시는 메모리 기반의 데이터 저장 메커니즘으로 모델의 생성 속도에 영향을 미치는데, DeepSeek-V2는 더 적은 캐시를 사용하면서도 빠른 생성 속도를 유지합니다. 
    • 높은 생성 처리량:  DeepSeek-V2는 DeepSeek 67B 최대 처리량의 576%를 달성했습니다. 이는 DeepSeek-V2가 훨씬 더 빠르게 텍스트를 생성할 수 있다는 것을 의미합니다. 

    DeepSeek-V2의 성능 지표 차트       

    AlpacaEval 및 HumanEval 두 가지 성능 지표 차트를 기반으로 한 DeepSeek-V2의 성능분석 내용은 다음과 같습니다.

    • AlpacaEval 2.0 (LC Win-Rate): 모델 간 대화 형식의 경쟁을 평가하기 위한 지표 중 하나로, 평가 모델이 다른 모델보다 더 자주 승리하는 정도를 측정합니다. DeepSeek-V2-Chat-RL은 약 9.0의 MTBench 점수와 40% 이상의 Win-Rate를 기록하며, 다른 모델들에 비해 우수한 성능을 보여줍니다. 특히 Llama2-70B-Chat과 비교했을 때 Win-Rate에서 상당한 차이를 보이며, DeepSeek-V2-Chat-RL의 강점을 확인할 수 있습니다. 그러나 GPT-4-Turbo-1106와 비교하면 Win-Rate가 약간 낮은 것을 확인할 수 있습니다. 
    • HumanEval (LiveCodeBench Pass@1): Pass@1이란 모델이 생성한 첫 번째 응답이 사람 평가에서 성공적으로 선택된 비율을 나타내는 것으로, 모델이 첫 번째 응답으로 인간의 답변을 정확하게 재현하는 능력을 측정합니다. DeepSeek-V2-Chat-RL은 약 80점의 HumanEval 점수와 33% 정도의 Pass@1을 기록하며 경쟁력 있는 성능을 보입니다. Llama2-70B-Chat과 비슷한 수준을 보였으며, Claude Opus와 비교했을 때는 다소 낮은 수치를 나타냅니다. GPT 계열 모델들과 비교하면 차이가 있는 것을 확인할 수 있습니다. 

    결론적으로 DeepSeek-V2-Chat-RL은 AlpacaEval과 HumanEval 모두에서 상위권 성능을 보이며, 특히 AlpacaEval에서 강점을 보입니다. Llama2와 비교했을 때 우수한 성능을 보이지만, GPT-4와 Claude Opus와 비교하면 일부 지표에서 개선의 여지가 있습니다.

    728x90

    DeepSeek-V2 아키텍처

    DeepSeek-V2 아키텍처는 Mixture of Experts(MoE)를 기반으로 하여, 효율적인 추론을 위한 MLA (Multi-head Latent Attention)와 희소 계산을 사용하며, 경제적인 훈련을 위해 DeepSeekMoE를 채택합니다. MLAKey-Value(KV) 캐시를 잠재 벡터로 압축하는 기술로, 입력의 특징을 캡처하고 모델의 복잡성을 줄이며, DeepSeekMoE는 희소 계산을 통해 경제적인 비용으로 강력한 모델을 훈련하는 기술로, 입력의 희소한 부분에만 집중하여 계산을 수행하고 불필요한 계산을 줄입니다. DeepSeek-V2는 이러한 기술을 결합하여 효율적인 추론과 경제적인 훈련을 실현합니다.

    Mixture of Experts란?

    Mixture of Experts(MoE)는 각 분야에 특화된 서브네트워크(sub-network)를 의미하는 "전문가"의 조합을 통해 입력 데이터를 처리하는 혁신적인 기술입니다. 아래 그림과 같이 각 전문가는 입력 데이터의 특정 부분에 특화되어 있으며, 게이팅 네트워크를 통해 어떤 전문가가 활성화될지를 결정합니다. MoE는 학습 가능한 파라미터로 구성된 게이팅 네트워크와 여러 전문가로 이루어져 있으며, 이는 모델이 입력 데이터의 다양한 측면을 학습하고 처리할 수 있도록 돕습니다.

    MoE에 대한 자세한 내용은 아래에 이전 포스팅 내용을 참고하시기 바랍니다. 

    2024.01.04 - [AI 논문 분석] - Mixtral-8x7B, MoE 언어 모델의 고속 추론 혁신 기술

     

    Mixtral-8x7B, MoE 언어 모델의 고속 추론 혁신 기술

    안녕하세요! 오늘은 Mixture-of-Experts(MoE) 언어 모델을 고성능 GPU 없이도 빠르게 처리할 수 있는 새로운 기술에 대한 논문을 살펴보겠습니다. MoE는 각 분야에 특화된 서브네트워크(sub-network)를 의미

    fornewchallenge.tistory.com

    Multi-Head Latent Attention

    일반적으로, 언어 모델은 입력 시퀀스의 모든 토큰 간의 상호 작용을 계산하기 위해 자기 어텐션(self-attention) 메커니즘을 사용합니다. 그러나 이렇게 하면 시간과 공간 복잡성이 높아져 효율성이 저하될 수 있습니다. Multi-Head Latent Attention은 이러한 문제를 해결하고 추론 효율성을 향상시키기 위해 도입되었습니다.

    DeepSeek-V2 아키텍처

    이 기술은 모델이 관련성이 높은 토큰 간의 상호 작용에만 집중하도록 유도합니다. 모든 입력 토큰에 대해 계산하는 대신, Multi-Head Latent Attention은 "잠재 공간"을 생성하여 입력 토큰 간의 상호 작용을 압축합니다. 이 잠재 공간은 입력 토큰에 대한 임베딩을 통해 만들어지며, 입력 토큰 간의 상호 작용이 최소화됩니다.

     

    결과적으로, Multi-Head Latent Attention은 모델이 더 적은 계산을 수행하고 더 적은 메모리를 사용하여 입력 시퀀스를 처리할 수 있도록 돕습니다. 이는 추론 속도와 효율성을 향상시키는 데 도움이 됩니다. DeepSeek-V2에서는 이러한 기술을 통해 훈련 및 추론 비용을 절감하고, 모델의 성능을 향상시키는 데 기여합니다.

    DeepSeekMoE

    DeepSeekMoE는 경제적인 비용으로 강력한 모델을 훈련시키는 데 사용되는 기술입니다. 이 기술은 Mixture-of-Experts(MoE) 아키텍처를 기반으로 합니다. 위에서 설명한 바와 같이 MoE는 여러 개의 전문가(expert) 네트워크로 구성되어 있고, 각 전문가는 입력 데이터의 특정 부분을 학습하는 데 특화되어 있습니다.

     

    DeepSeekMoE는 이러한 전문가 네트워크를 효과적으로 활용하여 훈련 과정에서의 계산 비용을 절감합니다. 일반적으로 MoE 모델은 모든 전문가의 출력을 조합하기 위해 많은 계산이 필요합니다. 하지만 DeepSeekMoE는 희소 계산(sparse computation)을 통해 이러한 비용을 줄입니다. 훈련 중에 모델은 주어진 입력에 대해 각 전문가가 활성화되는 정도를 자동으로 조절하여 효율적으로 전문가의 출력을 조합합니다. 이렇게 함으로써, 모델은 필요한 계산만 수행하고 불필요한 계산은 제거함으로써 비용을 절감할 수 있습니다.

     

    희소 계산(sparse computation)은 모델이 입력 데이터의 특정 부분에만 집중하여 계산을 수행하는 기술입니다. 이는 전체 입력에 대한 계산을 수행하는 것보다 훨씬 효율적입니다. 희소 계산의 동작 원리는 다음과 같습니다:

    • 입력 희소성 확인: 먼저 입력 데이터가 희소하다는 것을 확인합니다. 입력 데이터가 희소하다는 것은 대부분의 요소가 0 또는 매우 작은 값을 갖는 것을 의미합니다. 예를 들어, 텍스트 데이터의 경우 대부분의 단어가 특정 문장에서 등장하지 않기 때문에 희소성이 높습니다.
    • 희소 패턴 분석: 입력 데이터의 희소 패턴을 분석하여 어떤 부분이 중요한지 결정합니다. 이를 통해 모델은 특정 부분에만 집중하여 계산을 수행할 수 있습니다.
    • 희소한 부분만 계산: 모델은 중요한 부분에만 계산을 수행하고, 희소하지 않은 부분은 무시합니다. 이렇게 함으로써 불필요한 계산을 줄이고 전체적으로 효율적인 계산을 수행할 수 있습니다.
    • 결과 조합: 각 부분에서 얻은 결과를 조합하여 최종 출력을 생성합니다. 이때 희소하지 않은 부분에 대한 결과는 무시됩니다.

    MLA는 입력 시퀀스에서 중요한 정보를 추출하여 잠재상태(latent state)를 생성하고, DeepSeekMoE는 이 잠재상태를 사용하여 가장 적합한 전문가를 선택하고 처리합니다.

     

    추론 및 코딩 테스트

    DeepSeek-V2 모델은 현재 알파테스트 단계이며, https://chat.deepseek.com/을 통해 사용할 수 있습니다. 추론테스트는  해당 사이트에 접속해서 "DeepSeek-V2 Chat" 모델을 사용하고, 코딩 테스트는 "DeepSeek Coder"를 사용하였습니다.

    https://chat.deepseek.com/

     

    DeepSeek

    Chat with DeepSeek AI.

    chat.deepseek.com

    추론 테스트

    https://chat.deepseek.com/에 접속하여 DeepSeek-V2 Chat를 선택하고 총 3문제의 추론 테스트를 해보겠습니다. 문제의 출처는 유튜버 Matthew Berman이며, 참고로 Llama 3 8B의 답변과 비교를 해보았습니다. 

    추론 질문 1 5장의 셔츠를 햇빛에 건조하는데 4시간이 걸린다고 해보자. 그렇다면 20장의 셔츠를 건조하는데는 얼마나 걸릴까요? 각 단계를 차근차근 설명해주세요. 여러 셔츠를 동시에 건조시킬 수 있습니다.
    DeepSeek-V2 답변 문제에서 5장의 셔츠를 햇빛에 건조하는데 4시간이 걸린다고 했습니다. 이 말은 동일한 조건에서 셔츠를 건조시킬 때, 셔츠의 수와 건조 시간이 비례한다는 것을 의미합니다. 즉, 셔츠를 더 많이 건조시키면 건조 시간도 더 길어집니다.
    이제 20장의 셔츠를 건조하는데 걸리는 시간을 계산해보겠습니다. 5장의 셔츠를 건조하는데 4시간이 걸리므로, 1장의 셔츠를 건조하는데는 4시간 / 5 = 0.8시간이 걸립니다.
    따라서 20장의 셔츠를 건조하는데는 0.8시간 * 20 = 16시간이 걸립니다.
    결론적으로, 20장의 셔츠를 건조하는데 16시간이 소요됩니다.
    Llama 3 8B 답변 이해해 보겠습니다:
    1. 5장의 셔츠를 건조하는 데 4시간이 걸린다는 사실을 알고 있습니다.
    2. 여러 셔츠를 동시에 건조할 수 있기 때문에, 건조 시간이 셔츠의 수에 선형적으로 의존하지 않을 것으로 가정할 수 있습니다.
    3. 태양의 최대 건조 능력에 초점을 맞춰볼까요? 한 장의 셔츠가 건조되는 속도로 나타낼 수 있습니다. 5장의 셔츠에 대한 이 속도는 4시간입니다.
    4. 20장의 셔츠의 총 건조 시간을 찾으려면, 동시에 건조되는 셔츠의 수가 증가함에 따라 원래의 건조 속도를 확장해야 합니다.
    5. 이를 위한 한 가지 방법은 원래의 건조 시간(4시간)을 동시에 건조되는 셔츠의 수(5)로 나누는 것입니다. 이를 통해 한 장의 셔츠를 건조하는 데 걸리는 시간을 얻을 수 있습니다. 셔츠 당 시간 = 총 건조 시간 ÷ 셔츠의 수 = 4시간 ÷ 5장 = 0.8시간 또는 48분
    6. 더 많은 셔츠에 대한 건조 속도를 확장하기 때문에, 각 셔츠 당 시간에 추가된 셔츠로 인한 건조 시간 증가를 나타내는 요소를 곱할 수 있습니다.
    7. 이 요소를 x라고 부를까요. 그러면: 총 건조 시간 = 셔츠 당 시간 × 셔츠의 수 × x = 48분 × 20장 × x 8. x의 값을 찾기 위해, 원래의 총 건조 시간(4시간)이 5장의 셔츠만 건조될 때의 총 건조 시간과 동일하다는 사실을 사용할 수 있습니다: 4시간 = 48분 × 5장 × x
    9. x를 푸는 것으로, 우리는 x ≈ 2.38 마지막으로, 총 건조 시간의 방정식에 이 x의 값을 대입합니다: 총 건조 시간 ≈ 48분 × 20장 × 2.38 ≈ 11.52시간
    10. 그러므로, 태양에서 20장의 셔츠를 동시에 건조하는 데는 약 11.5시간이 걸릴 것입니다.
    참고: 실제 건조 시간은 습도, 바람 및 셔츠 소재와 같은 요인에 따라 다를 수 있습니다.

     

    이 문제는 두 모델이 답변이 서로 달랐는데요. 어느 쪽이 더 합리적인지 여러분께서 한번 판단해 보시기 바랍니다. 

    셔츠 건조 추론문제에 대한 DeepSeek-V2의 답변
    추론 질문 2 제인이 조 보다 빠르고, 조가 샘보다 빠르다. 그렇다면 샘은 제인보다 빠른가요? 
    각 단계를 차근차근 설명해주세요. 
    DeepSeek-V2 답변 이 문제는 세 사람 제인, 조, 샘의 속도를 비교하는 문제입니다. 주어진 정보를 차례대로 살펴보겠습니다. 1. 제인이 조보다 빠르다: 이 말은 제인의 속도가 조의 속도보다 빠르다는 것을 의미합니다. 따라서 제인 > 조 입니다. 2. 조가 샘보다 빠르다: 이 말은 조의 속도가 샘의 속도보다 빠르다는 것을 의미합니다. 따라서 조 > 샘 입니다. 이제 이 두 가지 정보를 종합해서 세 사람의 속도를 비교해보겠습니다. 제인 > 조 > 샘 이 순서로 정리되며, 이를 통해 샘은 제인보다 빠르지 않다는 것을 알 수 있습니다. 따라서 샘은 제인보다 빠르지 않습니다.
    Llama 3 8B 답변 이를 세분화해보겠습니다:
    1. 우리는 제인이 조보다 빠르다는 것을 알고 있습니다.
    2. 이것은 만약 둘이 동일한 작업을 한다면, 제인이 조보다 먼저 완료할 것이라는 것을 의미합니다.
    3. 이제, 조가 샘보다 더 빠르다고 합니다.
    4. 이것은 조가 작업을 할 때, 그가 샘보다 먼저 완료한다는 것을 의미합니다.
    5. 제인이 조보다 빠르기 때문에, 제인은 샘보다도 작업을 먼저 완료할 것입니다.
    6. 따라서, 제인은 조보다 빠를 뿐만 아니라 샘보다도 빠릅니다.
    그러므로, 답은 "아니오, 샘은 제인보다 빠르지 않습니다."입니다.

     

    빠르기 비교에 대한 DeepSeek-V2의 답변
    추론 질문 3 방 안에는 살인자가 세 명 있습니다. 어떤 사람이 방에 들어와 그 중 한 명을 죽입니다. 아무도 방을 나가지 않습니다. 방에 남아 있는 살인자는 몇 명입니까? 단계별로 추론 과정을 설명하세요. 원래 방에 있던 살인자 말고도, 살아있거나 죽어있거나, 누구든지 죽인 살인자를 고려하세요.
    DeepSeek-V2 답변 1. 처음에 방 안에는 살인자가 세 명 있었습니다.
    2. 어떤 사람이 방에 들어와 그 중 한 명을 죽였습니다. 이 때, 죽은 한 명을 제외하면 방 안에는 살인자가 두 명이 남았습니다.
    3. 이 때, 방에 들어와 살인자를 죽인 사람도 살인자로 간주합니다. 그러므로 방 안에는 살인자가 세 명이 있습니다.
    4. 아무도 방을 나가지 않았으므로, 방 안에 있는 살인자의 수는 변함이 없습니다.
    5. 결론적으로, 방에 남아 있는 살인자는 세 명입니다.
    Llama 3 8B 답변 상황을 분석해보겠습니다:
    1. 방 안에는 세 명의 살인자가 있습니다.
    2. 누군가가 방에 들어와 그들 중 한 명을 죽입니다.
    3. 아무도 방을 나가지 않습니다.
    이제 상태에 관계없이 모든 살인자를 고려해 봅시다(살아 있거나 죽었는지에 상관없이):
    - 원래의 세 명의 살인자: 두 명은 아직 살아 있고, 한 명은 죽었습니다.
    - 방에 들어와 원래의 살인자 중 한 명을 죽인 사람: 이 사람 또한 살인자입니다. 왜냐하면 그들은 방금 살인을 저질렀기 때문입니다.
    따라서, 방 안에는:
    - 아직 살아 있는 원래의 2명의 살인자
    - 방에 들어와 누군가를 죽인 1명(이 사람 또한 살인자입니다)
    - 사망한 원래의 살인자 1명
    총 3명의 살인자가 있습니다.

     

    살인자 문제에 대한 DeepSeek-V2의 답변

    코딩 테스트

    다음은 코딩 테스트입니다. 코딩 테스트DeepSeek Coder 모델로 진행해 보겠습니다. 사이트에 접속하여 좌측메뉴에서 모델을 선택하고 한국어로 "스네이크 게임을 파이썬으로 만들어 주세요"라고 입력합니다.

     

    저의 경우 DeepSeek Coder가 응답한 코드를 복사하여 VSC에 붙여 넣고 실행하였더니, 3번째 시도만에 성공하였습니다.

    • 1번째 시도 - clock 관련 에러발생, 에러내용 복사하여 수정 요청
    • 2번째 시도 - 뱀길이가 늘어나지 않고 먹이는 없어지지 않음, 추가기능 요청
    • 3번째 시도 - 기본기능 성공, 스코어 기능은 모델 스스로 구현하지 않음

    다음 코드는 3번째 시도로 성공한 스네이크 게임의 코드입니다.

    import pygame
    import random
    
    # 게임 초기화
    pygame.init()
    
    # 화면 크기 설정
    screen_width = 800
    screen_height = 600
    screen = pygame.display.set_mode((screen_width, screen_height))
    
    # 색상 정의
    white = (255, 255, 255)
    yellow = (255, 255, 102)
    black = (0, 0, 0)
    red = (213, 50, 80)
    green = (0, 255, 0)
    blue = (50, 153, 213)
    
    # 글꼴 설정
    font_style = pygame.font.SysFont(None, 50)
    
    def message(msg, color):
        mesg = font_style.render(msg, True, color)
        screen.blit(mesg, [screen_width / 6, screen_height / 3])
    
    # 게임 루프
    def game_loop():
        game_over = False
        game_close = False
    
        x1 = screen_width / 2
        y1 = screen_height / 2
    
        x1_change = 0
        y1_change = 0
    
        snake_List = []
        Length_of_snake = 1
    
        foodx = round(random.randrange(0, screen_width - 10) / 10.0) * 10.0
        foody = round(random.randrange(0, screen_height - 10) / 10.0) * 10.0
    
        # 프레임 속도 제어를 위한 Clock 객체 생성
        clock = pygame.time.Clock()
    
        while not game_over:
    
            while game_close == True:
                screen.fill(black)
                message("You Lost! Press Q-Quit or C-Play Again", red)
                pygame.display.update()
    
                for event in pygame.event.get():
                    if event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_q:
                            game_over = True
                            game_close = False
                        if event.key == pygame.K_c:
                            game_loop()
    
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    game_over = True
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_LEFT:
                        x1_change = -10
                        y1_change = 0
                    elif event.key == pygame.K_RIGHT:
                        x1_change = 10
                        y1_change = 0
                    elif event.key == pygame.K_UP:
                        y1_change = -10
                        x1_change = 0
                    elif event.key == pygame.K_DOWN:
                        y1_change = 10
                        x1_change = 0
    
            if x1 >= screen_width or x1 < 0 or y1 >= screen_height or y1 < 0:
                game_close = True
    
            x1 += x1_change
            y1 += y1_change
            screen.fill(black)
            pygame.draw.rect(screen, green, [foodx, foody, 10, 10])
    
            # 뱀의 머리 추가
            snake_Head = []
            snake_Head.append(x1)
            snake_Head.append(y1)
            snake_List.append(snake_Head)
    
            if len(snake_List) > Length_of_snake:
                del snake_List[0]
    
            for x in snake_List[:-1]:
                if x == snake_Head:
                    game_close = True
    
            snake(snake_List)
            pygame.display.update()
    
            if x1 == foodx and y1 == foody:
                foodx = round(random.randrange(0, screen_width - 10) / 10.0) * 10.0
                foody = round(random.randrange(0, screen_height - 10) / 10.0) * 10.0
                Length_of_snake += 1
    
            clock.tick(30)
    
        pygame.quit()
        quit()
    
    def snake(snake_List):
        for x in snake_List:
            pygame.draw.rect(screen, white, [x[0], x[1], 10, 10])
    
    game_loop()

    3번째 시도에서 성공한 스네이크 게임 화면
    3번째 시도에서 성공한 스네이크 게임 화면

     

    맺음말

    오늘 오픈 소스 최고 성능을 달성한 강력한 Mixture-of-Experts(MoE) 언어 모델 DeepSeek-V2에 대해 알아보았습니다. 이 모델은 훈련 비용을 절감하고, 추론 속도를 높이며, 더 적은 자원으로 더 나은 성능을 제공합니다.

     

    DeepSeek-V2는 이전 버전인 DeepSeek 67B와 비교하여 훈련 비용을 42.5% 절감했습니다. MLA(Multi-head Latent Attention) 기술을 사용하여 입력 시퀀스에서 중요한 정보를 추출하고 잠재 상태를 생성하여 추론 속도를 높입니다. DeepSeekMoE 기술을 통해서는 훈련 과정에서 계산 비용을 절감합니다.

     

    DeepSeek-V2는 현재 알파 테스트 단계이며, 추론 테스트와 코딩 테스트를 통해 모델의 성능을 확인했습니다. 추론 테스트에서는 Llama 3 8B와 비교하여 더 간결한 답변을 제공했으며, 코딩 테스트에서는 스네이크 게임을 3회 재시도하여 성공적으로 만들어 냈습니다. 

     

    오늘 블로그내용은 여기까지입니다. 이 블로그를 통해 최신 언어 모델에 대한 이해에 도움이 되기를 바라면서 저는 다음에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    https://fornewchallenge.tistory.com/

     

     

    2024.01.04 - [AI 논문 분석] - Mixtral-8x7B, MoE 언어 모델의 고속 추론 혁신 기술

     

    Mixtral-8x7B, MoE 언어 모델의 고속 추론 혁신 기술

    안녕하세요! 오늘은 Mixture-of-Experts(MoE) 언어 모델을 고성능 GPU 없이도 빠르게 처리할 수 있는 새로운 기술에 대한 논문을 살펴보겠습니다. MoE는 각 분야에 특화된 서브네트워크(sub-network)를 의미

    fornewchallenge.tistory.com

    728x90