>기술 주변기기 >일체 포함 >Jia Yangqing이 좋아함: 3K 별이 포함된 SGLang이 출시되어 Llama 405B 추론을 가속화하고 vLLM 및 TensorRT-LLM을 즉시 종료합니다.

Jia Yangqing이 좋아함: 3K 별이 포함된 SGLang이 출시되어 Llama 405B 추론을 가속화하고 vLLM 및 TensorRT-LLM을 즉시 종료합니다.

WBOY
WBOY원래의
2024-07-28 08:07:53601검색

Llama 3 405B를 실행하는 장점은 분명합니다.


최근 Meta는 최신 405B 모델(Llama 3.1 405B)을 오픈소스화하여 오픈소스 모델의 성능을 새로운 차원으로 끌어올렸습니다. 모델 매개변수의 수가 많기 때문에 많은 개발자는 모델의 추론 속도를 향상시키는 방법이라는 한 가지 질문에 대해 우려하고 있습니다.

단 이틀 만에 LMSYS Org 팀은 조치를 취하고 새로운 SGLang Runtime v0.2를 출시했습니다. LLM 및 VLM을 위한 일반 서비스 엔진입니다. Llama 3.1 405B를 실행하면 처리량과 대기 시간 모두에서 vLLM 및 TensorRT-LLM보다 성능이 뛰어납니다.

경우에 따라(Llama 시리즈 모델 실행) 처리량은 TensorRT-LLM의 2.1배, vLLm의 3.8배에 달할 수도 있습니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
LMSYS Org 팀은 캘리포니아 대학교 버클리 캠퍼스, 캘리포니아 대학교 샌디에고 대학교, 카네기 멜론 대학교의 학생 및 교수진으로 구성된 공개 연구 그룹입니다. 이들이 개발한 대형 모델 평가 플랫폼인 챗봇 아레나(Chatbot Arena)는 대형 모델의 역량을 테스트하는 중요한 플랫폼으로 자리 잡았으며, 비교적 공정한 평가 방법으로도 평가받고 있다.

SGLang은 팀에서 개발한 대규모 언어 모델 및 시각적 언어 모델을 위한 빠른 서비스 프레임워크로 올해 1월에 공식 출시되었으며 GitHub에서 3,000개 이상의 별을 받았습니다.

贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM

이번 업데이트의 효과는 놀랍습니다. 유명한 AI 연구원이자 Lepton AI 공동 창립자이자 CEO인 Jia Yangqing은 "저는 박사 학위를 받은 캘리포니아 대학교 버클리 대학의 지속적인 성과에 항상 놀랐습니다. 결과. 작년에 SGLang이 사용되는 것을 보았으며 이제는 새로운 SGLang을 프로덕션에 배포하고 사용해 보고 싶습니다!"
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
LMSYS 조직이 필요한 이유 SGLang에서 개발하고 반복하고 있나요? 이들은 블로그를 통해 “1년 넘게 챗봇 아레나 플랫폼을 운영하며 수백만 명의 사용자에게 서비스를 제공해 왔다”며 “인공지능 제품과 연구에 있어 효율적인 서비스의 중요성을 잘 알고 있다”고 밝혔다. - 심층적인 연구를 통해 고급 다중 모델 서비스 프레임워크인 FastChat부터 효율적인 서비스 엔진인 SGLang Runtime(SRT)까지 기본 서비스 시스템을 지속적으로 강화합니다. "

" 이 글의 초점은 SGLang Runtime입니다. LLM 및 VLM을 위한 범용 서비스 엔진입니다. TensorRT-LLM, MLC-LLM 및 Hugging Face TGI와 같은 기존 옵션은 장점이 있지만 때때로 사용하기 어렵거나 사용자 정의가 어렵거나 성능이 좋지 않습니다. 사용자 친화적이고 수정하기 쉬울 뿐만 아니라 TensorRT-LLM 및 vLLM과 비교할 때 SGLang Runtime은 Llama의 모델을 처리하는 최고의 성능을 갖춘 서비스 엔진을 만드는 것을 목표로 하는 SGLang v0.2를 개발하게 되었습니다. -8B ~ Llama-405B 및 A100에서 H100 GPU에서 FP8 및 FP16을 사용하면 온라인 및 오프라인 시나리오 모두에서 지속적으로 우수하거나 경쟁력 있는 성능을 제공할 수 있습니다. SGLang은 지속적으로 vLLM보다 뛰어난 성능을 발휘하여 Llama-70B에서 최대 3.8배의 처리량을 달성합니다. 또한 정기적으로 TensorRT-LLM과 일치하거나 이를 초과하여 Llama-405B에서 최대 2.1배의 처리량을 달성합니다. 게다가 SGLang은 순수 Python으로 작성된 완전한 오픈 소스이며 핵심 스케줄러는 4K 라인 미만의 코드로 구현됩니다.

SGLang은 Apache 2.0 라이선스에 따라 라이선스가 부여된 오픈 소스 프로젝트입니다. LMSYS Chatbot Arena에서는 일부 모델, Databricks, 여러 스타트업 및 연구 기관을 지원하고 수조 개의 토큰을 생성하고 더 빠른 반복을 가능하게 하기 위해 사용되었습니다.

다음은 여러 프레임워크의 비교 실험 설정과 결과입니다.

벤치마크 설정

연구원들은 오프라인 및 온라인 사용 사례를 벤치마킹했습니다.

오프라인: 한 번에 2K~3K 요청을 보내고 출력 처리량(토큰/초)을 측정했습니다. 즉, 출력 토큰 수를 총 기간으로 나눈 값입니다. 그들이 테스트한 합성 데이터세트는 ShareGPT 데이터세트에서 가져온 것입니다. 예를 들어, I-512-O-1024는 평균 입력이 512개 토큰이고 평균 출력이 1024개 토큰인 데이터 세트를 나타냅니다. 5개의 테스트 데이터 세트는 다음과 같습니다.

데이터 세트 1: I-243-O-770;

데이터 세트 2: I-295-O-770; I-243-O-386;
  • 데이터세트 4: I-295-O-386;
  • 데이터세트 5: I-221-O-201.
  • 온라인: 1~16 RPS(초당 요청) 속도로 요청을 보내 평균 종단 간 지연 시간을 측정합니다. 그들은 합성 데이터 세트 I-292-O-579를 사용합니다.
  • 그들은 vLLM 0.5.2(기본 매개변수 포함) 및 TensorRT-LLM(권장 매개변수 및 조정된 배치 크기 포함)을 사용했습니다. 모든 엔진에 대해 접두사 캐싱이 꺼집니다. 추측적 디코딩이나 캐싱 등의 추가 기능 없이 기본 성능을 벤치마킹하는 것이 목적입니다. OpenAI 호환 API를 사용하여 SGLang 및 vLLM을 벤치마킹하고 Triton 인터페이스를 사용하여 TensorRT-LLM을 벤치마킹했습니다.

A100(bf16)에서 실행되는 Llama-8B

연구원들은 소형 모델 Llama-8B로 테스트를 시작했습니다. 아래 그래프는 5개의 서로 다른 데이터세트에 대해 오프라인 설정에서 각 엔진이 달성할 수 있는 최대 출력 처리량을 보여줍니다. TensorRT-LLM과 SGLang은 모두 초당 약 4000개의 토큰 처리량을 달성할 수 있는 반면, vLLM은 약간 뒤쳐져 있습니다.

아래 온라인 벤치마크 그래프는 오프라인 사례와 유사한 추세를 보여줍니다. TensorRT-LLM과 SGLang은 RPS > 10을 유지하면서 비슷한 성능을 발휘하는 반면, vLLM의 대기 시간은 요청 속도가 높을수록 크게 늘어납니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
8개의 A100(bf16)에서 실행되는 Llama-70B

8개의 GPU에서 텐서 병렬성을 실행하는 대형 Llama-70B 모델의 경우 추세는 8B와 유사합니다. 아래 오프라인 벤치마크에서는 TensorRT-LLM과 SGLang 모두 높은 처리량을 달성했습니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
아래 온라인 결과에서 TensorRT-LLM은 효율적인 커널 구현 및 런타임 덕분에 더 낮은 지연 시간을 보여줍니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
8개의 H100(fp8)에서 실행되는 Llama-70B

이제 FP8 성능을 테스트합니다. vLLM과 SGLang은 모두 CUTLASS의 FP8 커널을 사용합니다. 오프라인 설정에서 SGLang의 배치 스케줄러는 매우 효율적이며 배치 크기가 증가함에 따라 처리량을 계속 확장하여 이 경우 최고의 처리량을 달성할 수 있습니다. 다른 시스템은 OOM, 광범위한 수동 조정 부족 또는 기타 오버헤드로 인해 처리량이나 배치 크기를 확장하지 못합니다. 이는 SGLang과 TensorRT의 평균 지연 시간이 비슷한 온라인에서도 마찬가지입니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
8개의 H100(fp8)에서 실행되는 Llama-405B

마지막으로 가장 큰 405B 모델에서 다양한 방식의 성능을 벤치마킹했습니다. 모델이 크기 때문에 대부분의 시간은 GPU 커널에 소비됩니다. 다양한 프레임워크 간의 격차가 줄어듭니다. TensorRT-LLM의 성능이 저조한 이유는 405B 모델이 막 나왔고 그림에 사용된 버전이 아직 일부 최신 최적화 기능을 통합하지 않았기 때문일 수 있습니다. SGLang은 온라인과 오프라인 모두에서 최고의 성능을 발휘합니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
SGLang 개요

SGLang은 대규모 언어 모델과 시각적 언어 모델을 위한 서비스 프레임워크입니다. LightLLM, vLLM 및 Guidance를 포함한 여러 오픈 소스 LLM 서비스 엔진의 최고의 설계를 기반으로 하며 이를 향상시킵니다. FlashInfer의 고성능 Attention CUDA 커널을 활용하고 gpt-fast에서 영감을 얻은 torch.compile을 통합합니다.

또한 연구원들은 자동 KV 캐시 재사용을 위한 RadixAttention 및 빠른 제약 조건 디코딩을 위한 압축 상태 머신과 같은 몇 가지 혁신적인 기술도 도입했습니다. SGLang은 완전히 Python으로 구현된 효율적인 배치 스케줄러로 유명합니다. 공정한 비교를 위해 이 블로그에서는 접두사 캐싱 및 추측 디코딩과 같은 특정 시나리오 또는 워크로드 최적화를 끄고 이러한 서비스 엔진의 기본 성능을 테스트했습니다. SGLang의 속도 향상은 적절한 엔지니어링을 통해 달성됩니다. SGLang의 효율적인 Python 기반 배치 스케줄러는 확장성이 뛰어나며 C++로 구축된 비공개 소스 구현과 비슷하거나 더 나은 경우가 많습니다.

표 1은 SGLang, TensorRT-LLM 및 vLLM의 다양한 측면을 비교합니다. 성능면에서는 SGLang과 TensorRT-LLM이 모두 우수합니다. 유용성 및 사용자 정의 가능성 측면에서 SGLang의 경량 및 모듈식 코어는 사용자 정의를 쉽게 만드는 반면, TensorRT-LLM의 복잡한 C++ 기술 스택 및 설정 지침은 사용 및 수정을 더욱 어렵게 만듭니다. SGLang의 소스 코드는 완전 오픈 소스인 반면 TensorRT-LLM은 부분적으로만 오픈 소스입니다. 이에 비해 vLLM은 CPU 스케줄링 오버헤드가 더 높습니다.
贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM
연구원들은 또한 앞으로는 긴 컨텍스트 및 MoE 최적화와 같은 새로운 기능도 개발할 것이라고 말했습니다.

使用方法

你可以按照以下步驟輕鬆服務Llama 模型:  

-project/sglang/tree/main?tab=readme-ov-file#install

2、啟動伺服器:
# Llama 8Bpython -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct# Llama 405Bpython -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-405B-Instruct-FP8 --tp 8

3、使用Openm8
4、運行基準:  
curl http://localhost:30000/v1/completions \-H "Content-Type: application/json" \-d '{"model": "default","prompt": "Say this is a test","max_tokens": 7,"temperature": 0  }'

附錄:詳細的基準設定

_c
對於所有基準測試,研究者都設定了 ignore_eos 或 min_length/end_id 以確保每個引擎輸出相同數量的 token。他們曾嘗試使用 vLLM 0.5.3.post1,但它在高負載情況下經常崩潰,與部分基準測試中的 vLLM 0.5.2 相比,vLLM 0.5.3.post1 效能似乎差不多甚至更差。因此,他們報告的是 vLLM 0.5.2 的結果。雖然他們知道不同的伺服器配置會對服務效能產生重大影響,但他們主要使用每個引擎的預設參數來模擬普通用戶的情況。
對於8B 和70B 模型,他們使用meta-llama/Meta-Llama-3-8B-Instruct 和meta-llama/Meta-Llama-3-70B-Instruct bf16 檢查點,以及neuralmagic/Metaetao -3-70B-Instruct-FP8 fp8 檢查點。對於 405B 模型,他們在所有基準測試中都使用了虛擬權重。由於TensorRT-LLM 最新圖像r24.06 不支援官方meta-llama/Meta-Llama-3.1-405B-FP8 檢查點中的fbgemm_fp8 量化,他們在所有框架中都使用了每層fp8 量化,並對除lm_head 以外的所有層都進行了量化。他們相信這樣可以對所有引擎進行公平的比較。 A100 和 H100 GPU 為 80GB SXM 版本。

參考連結:https://lmsys.org/blog/2024-07-25-sglang-llama3/

위 내용은 Jia Yangqing이 좋아함: 3K 별이 포함된 SGLang이 출시되어 Llama 405B 추론을 가속화하고 vLLM 및 TensorRT-LLM을 즉시 종료합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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