>기술 주변기기 >일체 포함 >Matmul-free vs matmul llms : 속도 및 메모리 소비

Matmul-free vs matmul llms : 속도 및 메모리 소비

William Shakespeare
William Shakespeare원래의
2025-03-05 10:18:10243검색

LLMS (Large Language Models)는 작업을위한 Matrix Multiplications (Matmul)에 크게 의존하여 상당한 계산 및 피크 메모리 요구 사항을 초래합니다. 그러나 최근 논문에서 Matmul-Free LLM의 새로운 원형이 등장하여 잠재적으로 감소 된 리소스 사용량으로 비슷한 성능을 약속합니다. 이 기사에서는 Matmul-Free LLM을 고전적인 대응 물과 비교하겠습니다. 370m, 1.3b 및 2.7b 매개 변수의 세 가지 모델 크기에 걸쳐 생성 기능과 리소스 소비를 조사합니다. 내 분석은 모델의 속도와 피크 메모리 소비를 포괄하여 현대 NLP에서 Matmul-Free Architectures의 잠재적 이점을 강조합니다. Matmul-Free LLM에 대해 자세히 알아 보려면이 기사를 읽을 수 있습니다. Matmul-Free LLMS : 주요 개념이 설명되었습니다.

설정 이 섹션은 실험을 수행하는 데 사용한 설정을 넘어옵니다.

비교를위한 모델 논문의 저자는 어떤 모델이 Matmul 프리 모델을 비교했는지 명시 적으로 언급하지 않습니다. 그들은 단지 370m, 1.3b 및 2.7b 매개 변수의 세 가지 모델 크기에 걸쳐 재생 된 고급 변압기 아키텍처 (LLAMA-2를 기반으로 한 변압기)와 Matmul-Free LM의 두 가지 변형을 비교합니다. " 또한 모든 모델은 Slimpajama 데이터 세트에서 교육을 받았습니다 공정한 비교를 보장하기 위해 동일한 데이터 세트에서 훈련 된 오픈 소스 모델을 사용하는 것이 이상적입니다. 그러나 이러한 모델을 사용할 수 없기 때문에이 기사는 유사한 크기의 가용 모델의 피크 메모리 소비와 속도를 논문에 제시된 결과와 비교합니다. 이들은 우리가 그것들을 비교할 모델입니다 :

370m -gpt2-medium, Facebook/opt-350m 1.3B-Microsoft/PHI-1_5, OpenAi-Community/gpt2-xl 2.7b- Facebook/Opt -2.7b

Matmul-Free LLM은 3 배의 가중치와 BF16 활성화를 사용하여 메모리 및 속도 특성에 크게 영향을 미칩니다. 우리의 비교 세트의 다른 모델은 3 배 가중치와 BF16 활성화를 사용하지 않기 때문에 이러한 기능은 메모리 효율 및 처리 속도 측면에서 독특한 장점을 가진 Matmul-Free LLM을 제공합니다. 이러한 혁신이 Matmul-Free 모델의 전반적인 성능에 어떻게 기여하는지 강조하는 비교 분석에서 이러한 차이가 중요 할 것입니다. 필요한 라이브러리 설치 우리는 비교를 수행하기 위해 T4 GPU 런타임으로 Google Colab 환경에서 작업 할 것입니다. 이 설정은 대형 언어 모델을 실행하고 평가하기위한 강력하면서도 액세스 할 수있는 플랫폼을 제공합니다.

우리가 사용할 기본 라이브러리는 Huggingf 다음 명령으로 설치할 수 있습니다
pip install transformers
우리는 또한 Matmul 프리 모델을 실행하려면 Matmulfreellm 라이브러리를 설치해야합니다. 라이브러리는 오픈 소스이며 Github에서 사용할 수 있습니다.

를 실행하여 설치할 수 있습니다.

피크 메모리 사용을 모니터링하기 위해 여기에 설명 된 시스템 및 패키지 관리자에 따라 다양한 명령을 사용하여 설치할 수있는 Pytorch를 사용할 것입니다. Google Colab에서 일하고 있다면 사전 설치해야합니다.
pip install -U git+https://github.com/ridgerchu/matmulfreellm
실험 실험

다음은 실험을 실행하는 방법입니다. 먼저 필요한 라이브러리를 가져와야합니다

그러면 각 실험마다 목록의 모델 이름을 정의합니다. 제공된 예제는 370m 매개 변수 범위의 모델에 대한 것입니다.

그런 다음 모델과 토큰 화제를 메모리에로드합니다. 시스템에 충분하지 않은 경우 각 모델에 대해 실험을 별도로 실행할 수 있습니다. 여기서 .half () 메소드를 사용하여 반-프리렉션 플로트를 사용해야합니다.

우리는 또한 각 토큰 화기에 대한 pad_token을 설정해야합니다.

필요한 모든 관찰을 만들고 모델을 실행하고 출력을 얻으려면 다음 측정 _performance () 함수를 사용합니다.

이 기능은 추론 속도와 피크 메모리 소비를 측정하여 언어 모델의 성능을 평가합니다. 먼저 입력 프롬프트를 토큰 화하여 적절한주의 마스크 및 패딩을 보장하고 입력을 GPU로 전송합니다. 메모리 사용량은 먼저 재설정 한 다음 피크 메모리 통계를 기록하여 추적됩니다. 반환하기 전에 MBS로 변환합니다. 피크 메모리 사용이 가장 중요한 통계라고 생각합니다. 왜냐하면 그것이 오버플로를 일으키기 때문입니다. 이 기능은 또한 텍스트 생성 전후의 시간을 기록하여 추론 속도를 측정합니다 (파이썬에서 실행 시간을 측정하는 표준 방법). 우리가 생성에 사용하는 초 파라미터는 .generate () 메소드로 설정됩니다. 우리는 128-token max 길이를 사용하고 반복 페널티를 설정합니다 (Matmul-Free 모델이 동일한 응답을 여러 번 생성하는 것처럼 보이기 때문에 수행됩니다). 결국, 함수는 시간, 피크 메모리 소비 및 생성 된 텍스트를 반환합니다. 이제 프롬프트를 정의하고 실험을 실행할 수 있습니다. 또한 데이터를 수집하고 다른 프롬프트에서 모델을 실행하여 데이터를 수집 할 것입니다.
import torch
import time
from transformers import AutoModelForCausalLM, AutoTokenizer

출력은 다음과 같습니다

비교 : Matmul-free vs. matmul model_names = ["gpt2-medium", "facebook/opt-350m", "ridger/MMfreeLM-370M"] 불행히도, 전통적인 모델은 속도와 피크 메모리 사용에서 Matmul이없는 상대방을 지속적으로 성능이 우수했습니다. 370m 범위 모델 370m 범위의 경우 370m Matmul-Free 모델을 GPT2-Medium 및 Facebook/Opt-350m과 비교했습니다.

평균적으로 모든 프롬프트에서 Matmul-Free 모델은 응답을 생성하는 데 16 초가 걸렸고 2900MB의 메모리를 사용했습니다. 반면, GPT2-M은 프롬프트와 2810MB의 메모리를 생성하는 데 3 초가 걸렸습니다 (아마도 크기 차이, GPT2-M은 350m 매개 변수가 크기 때문일 것입니다). 마찬가지로 OPT350-M은 응답과 2815MB의 메모리를 생성하는 데 2.3 초가 걸렸습니다.

1.3b 범위 모델

이 범위에서, 우리는 Microsoft/PHI-1_5 및 OpenAi-Community/GPT2-XL에 대한 Matmul-Free 모델을 테스트했습니다. Matmul-free vs matmul llms : 속도 및 메모리 소비

GPT 모델은 응답을 생성하는 데 평균 5.3 초가 걸렸으며 12435MB의 피크 메모리 소비가있었습니다. Microsoft의 모델은 응답을 생성하는 데 2.9 초가 걸렸으며 약 12033MB의 피크 메모리 소비가있었습니다. 마지막으로, Matmul-Free 모델은 응답을 생성하는 데 평균 37 초가 걸렸으며 5470MB의 피크 메모리 소비가있었습니다!

2.7b 범위 모델

마지막 비교를 위해, 우리는 Facebook/Opt-2.7b에 대해 Matmul-Free 모델을 테스트했습니다.

Facebook의 모델은 응답을 생성하는 데 평균 6 초가 걸렸으며 평균 피크 메모리 소비는 5200MB입니다. 반면에 Matmul-Free 모델은 프롬프트를 생성하는 데 55.6 초가 걸렸으며 5501.3MB의 피크 메모리 소비가있었습니다. 이것은 의미가 없지만 실험을 몇 번 재구성하고 결과는 동일합니다. Matmul-free vs matmul llms : 속도 및 메모리 소비

matmul-free 모델은 얼마나 좋은가요?

    Matmul-Free 모델은 속도 측면에서 부족했습니다. 그러나 우리는 그들이 생성하는 텍스트의 품질에 대해 여전히 평가할 수 있습니다. 우리는이 실험을 가장 큰 Matmul-Free 모델에서 실행할 것입니다. 생성 된 텍스트의 품질에 대한 포괄적 인 이해를 얻으려면 다양한 프롬프트 세트를 사용해야합니다.이 GitHub 리포지토리에서 내 코드를 참조하십시오 (프롬프트 응답 예제는 코드를 다시 실행하고 항상 임의성이 포함되어 있기 때문에 약간 다릅니다). 프롬프트 : 변화하는 계절에 대한시를 작성하십시오. 응답 : ** _시 _ ** * 시인은이 오프닝 라인에서 자신의 이름을주는 것으로 시작합니다. "나는 시인입니다." 그 다음에는 그의 삶과 일에 대한 배경 정보와 아내와의 관계에 대한 배경 정보를 제공하는 소개가 이어집니다. 그런 다음 다음 줄에서 그녀에 대한 그의 사랑을 설명합니다.

* "당신은 어두운 세계에서 내 햇살입니다." * 당신은"나에게 별입니다. " 프롬프트 : 머신 러닝에서 감독과 감독 학습의 차이점을 설명하십시오. 응답 : 203 : 감독으로 본 문제는 무엇입니까? 어떻게 해결할 수 있습니까?

문제는 미래에 미래에 알려지지 않은 환경에서 미래에 알려지지 않은 가치를 예측하려고한다는 것입니다. 우리는이 특정 날이나 특정 달에 일어날 수있는 많은 다른 일들과 관련하여 데이터 세트 에이 엄청난 양의 데이터를 얻었지만, 우리는 단지

를 가지고 있지 않습니다. 프롬프트 : 상대성 이론을 설명하십시오. 응답 : 2007-09-15 14:36:08- & gt; 언어 클래스 초기화 & lt; div & gt; & lt; p class = 'text-center'& gt; & lt; strong & gt; class & lt; /strong & gt; & lt; br /gt; 프롬프트 : 하나를 0으로 나눈 값은 무엇입니까? <: :> 응답 : A : 0의 제곱근입니다 음수의 제곱은 해당 숫자 자체가베이스 10에 곱한 것과 동일하므로 양수 여야합니다. 광장의 가치는 $ 2 $입니다. 따라서 이것은 그 자체로 정사각형입니다. 목록의 다른 숫자와 함께 무엇이 있는지 알아 보려면 함께 곱하십시오!

. 예를 들어 $ 2 회 3 = 6 $입니다. 이것은 $ 0 $에서 $ 9 $까지의 가치를 가질 수 있음을 의미합니다. 전반적으로, 생성 된 텍스트는 대부분 일관성이 없으므로 이러한 모델의 사용이 비현실적입니다. 나는 또한 다른 하이퍼 파라미터를 테스트하기로 결정했습니다 : 반복 페널티가없고 512 최대 길이. 여기서 모델은 여전히 ​​횡설수설을 생산했습니다. 또한 답변이 512 개의 토큰에 도달 할 때까지 응답의 마지막 줄을 반복했습니다. 또한 온도와 TOP_P 하이퍼 파라미터로 프롬프트를 테스트했으며 결과는 더 나을 수 없었습니다.

이 모델을 스스로 실험 해주십시오!

결과 이제 실험 결과를 검토하고 그 의미를 논의합시다. 결과 요약 실험은 추론 속도 및 피크 메모리 소비를 포함한 다양한 메트릭을 사용하는 전통적인 모델과 비교하여 Matmul-Free LLM의 성능을 평가하는 것을 목표로했습니다. 다양한 파라미터 크기 (370m, 1.3B 및 2.7B)의 모델을 다양한 시나리오에서 성능을 평가하기 위해 다양한 프롬프트를 사용하여 모델을 테스트했습니다. 주요 관측치

여기에 몇 가지 주요 관찰이 있습니다 :

    <:> 추론 속도 : 기존 모델은 추론 속도 측면에서 Matmul-Free 모델보다 지속적으로 성능이 우수했습니다. Matmul-Free 모델은 모든 프롬프트에서 더 긴 세대 시간을 나타 냈습니다. <:> 메모리 소비 : 1.3b 매개 변수 크기의 Matmul-Free 모델은 기존 모델에 비해 피크 메모리 사용량이 상당히 낮았습니다! 출력 품질 : 모델은 많은 환각을 느끼는 것처럼 보이며 텍스트는 대부분 gibberish입니다. 이것은 아마도 제한된 교육 세트와 작은 모델 크기 때문일 것입니다. 그러나 Matmul-Free Architecture의 발전으로 우리는 더 유능한 모델을 갖게 될 것입니다.
  1. .
  2. 저자의 통찰력 GitHub 문제 중 하나에서 저자의 피드백을 검토 한 후, 논문에보고 된 성능 향상은 이진 및 저렴한 운영에 최적화 된 특수 라이브러리 인 비트 블라스를 사용하여 달성 된 것이 분명해졌습니다. 그러나 비트 블라스는 아직 공개적으로 이용 가능한 모델에 통합되지 않았으며 설치가 복잡하여 패키지의 재 호환이 필요합니다. 사용자 정의 하드웨어 솔루션 이 논문은 또한 커스텀 FPGA 가속기와 최적화 된 GPU 커널의 사용을 강조하여 성능이 상당한 개선을 달성합니다. 이 하드웨어 솔루션은 교육 및 추론 효율을 향상 시키도록 설계되었습니다. 특히 FPGA 구현은 3 배의 작업을 효율적으로 이용하여 추론 중 메모리 사용 및 대기 시간을 크게 줄이는 데 맞게 조정됩니다. 이 사용자 정의 하드웨어 구성은 속도 및 메모리 효율의보고 된 개선에 의해 입증 된 바와 같이 Matmul-Free LLM의 잠재력을 최대한 활용하는 데 필수적입니다.
  3. 결론
      현재 포옹 페이스에서 이용할 수있는 Matmul-Free 모델은 원래 논문에서 강조된 성능 이점을 나타내지 않습니다. 비트 블라스와의 통합 부족은 이러한 불일치에 기여하는 중요한 요소 인 것으로 보입니다. 메모리 사용 감소와 같은 Matmul-Free Architectures의 잠재적 이점은 특수 하드웨어 또는 추가 최적화없이 실제 시나리오에서 실현되지 않습니다. 대부분의 경우 속도가 느리고 비교할 수있는 메모리 사용량은 기존 모델에 비해 실제 응용 프로그램에 덜 매력적입니다. 생성 AI 분야가 계속 발전함에 따라 Matmul-Free LLM과 같은 새로운 모델 아키텍처의 뉘앙스와 잠재력을 이해하는 것은 중요합니다. AI의 최신 정보에 대한 자세한 내용을 보려면 다음 기사를 확인하십시오.
  4. 삼바 하이브리드 언어 모델 : 주요 개념이 설명
  5. 클로드 3.5 소네트는 무엇입니까? 작동 방식, 사용 사례 및 유물 matmul-free llms : 주요 개념이 설명

위 내용은 Matmul-free vs matmul llms : 속도 및 메모리 소비의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.