社区供稿 | 元象大模型开源30款量化版本 加速低成本部署丨附教程

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 元象大模型一次性发布30款量化版本,全开源,无条件免费商用。

元象大模型一次性发布30款量化版本,全开源,无条件免费商用。“全家桶”通过极致压缩模型权重参数,保留高性能,旨在为海量中小企业和开发者更早一步提供更灵活、低成本的部署方案,加速大模型应用落地

企业微信截图_17116794814716.png

开发者可按需选择 低成本部署

模型量化(Quantization)通过优化内存占用、降低访存开销,来优化模型推理性能与总吞吐。通过不同的量化手段,我们可以在推理效率和模型能力间取得极致平衡。

对量化前后的模型能力、推理性能进行评估,以XVERSE-13B-GPTQ-Int4量化版本评估为例,量化后模型权重压缩72%,总吞吐提高1.5倍,并保留了95%的能力。

企业微信截图_1711679490209.png

企业微信截图_17116794972596.png

企业微信截图_17116795075575.png



免费下载元象大模型

元象大模型不仅支持vLLM和llama.cpp等主流框架的量化推理,更提供了GPTQ、GGUF 全量化方案的模型量化文件,开箱即用,极大降低了部署成本。

开发者可根据技能、软硬件配置和具体需求选择不同推理框架和数据精度的模型,若本地资源有限,可直接调用元象大模型API服务chat.xverse.cn)。

下文将分别介绍如何在vLLM和llama.cpp中部署元象大模型并进行对话体验。

vLLM 推理服务

  vLLM简介

vLLM是面向大语言模型推理、服务的高性能库,在长输出、高并发场景下,具有极致的吞吐效率与低延迟优势。支持GPTQ、AWQ等量化优化技术以及张量并行的分布式推理技术,使在消费级显卡上运行LLMs成为可能。

  环境配置

环境要求

  • 操作系统: Linux
  • Python版本: 3.8 - 3.11
  • GPU: 计算能力 7.0+ (比如 V100,T4, RTX20xx,  A100, L4, H100等)

vllm安装

1. 从源代码构建(推荐)

git clone https://github.com/vllm-project/vllm.git
cd vllm
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple  # 设置pip源
pip install -vvv -e .  # This may take 5-10 minutes.

环境安装时,下载torch包比较慢,如果没有显示下载进度条,Linux系统可通过 ls /tmp/pip* -alh | grep torch 查看正在下载的torch包的大小;

2.  使用pip安装

虽然xverse分支已合并到vLLM主分支,但当前pip安装的vllm包是上个月打包的v0.3.3版本,尚不支持xverse架构。

后续vllm 安装包更新后,可通过下面命令安装。

conda create -n vllm python=3.9 -y
conda activate vllm
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple

  下载模型文件

下面以XVERSE-7B-Chat-GPTQ-Int4 为例,给出手动下载模型的命令。

 ModelScope魔搭

# pip install modelscope 
from modelscope import snapshot_download
model_dir = snapshot_download('xverse/XVERSE-7B-Chat-GPTQ-Int4')
# 默认下载到 ~/.cache/modelscope/hub 目录下

快速示例

注: 如果想让vLLM自动从modelscope 拉取模型文件,需先设置 `export VLLM_USE_MODELSCOPE=True`.

from vllm import LLM
from vllm import LLM, SamplingParams
# enable trust_remote_code, if you use local model dir.
model_dir = "xverse/XVERSE-7B-Chat-GPTQ-Int4"
# Create an LLM.
llm = LLM(model_dir, 
          trust_remote_code=True)
# Create a sampling params object.
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=2048)
# Generate texts from the prompts. 
prompts = ["Human: 请你写一篇关于环保的文章,题材是从个人做起。\n\nAssistant: ",]
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

推理效果如下图所示:

企业微信截图_17116795238270.png

llama.cpp 推理服务

  llama.cpp与GGUF简介

llama.cpp是一款跨平台、性能卓越的张量库,纯C/C++实现,无需外部依赖,适合最小化部署测试。llama.cpp 针对ARM NEON指令集、Metal框架进行极致优化,支持x86架构的向量指令集,在模型量化方面提供1.5bit到8bit的量化支持,同时支持CPU+GPU的异构混合推理架构,是开发者在各种硬件平台上快速、高效部署LLM推理服务的优秀方案。

GGUF文件全称是GPT-Generated Unified Format,是llama.cpp的创始人Georgi Gerganov定义发布的一种大模型文件格式。GGUF采用了多种技术来保存大模型文件,包括采用定义优良的紧凑二进制编码格式,通过内存映射等技术,加速模型文件加载速度。

同时,包含模型元数据的统一格式,补全了safetensors 格式在性能和跨平台交换方面的不足。下图展示了GGUF格式的具体情况:

企业微信截图_17116795333008.png

  下载模型文件

XVERSE开源的GGUF模型大小如下表所示,请根据本地机器内存、GPU显存大小,选择合适的模型进行测试。

企业微信截图_17116795434802.png

ModelScope魔搭

# pip install modelscope 
from modelscope import snapshot_download
model_dir = snapshot_download('xverse/XVERSE-7B-Chat-GGUF')
# 默认下载到 ~/.cache/modelscope/hub 目录下

  使用llama.cpp运行XVERSE推理服务

build llama.cpp

git clone https://github.com/hxer7963/llama.cpp.git
# git clone https://github.com/ggerganov/llama.cpp.git  #xverse分支正在review,预计2天内可以合并到主分支
mkdir build && cd build
cmake ..  # build on mac
# cmake .. -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS -DLLAMA_CCACHE=OFF  # build on CPU, enable blas、OpenBLAS
# cmake .. -DLLAMA_CUBLAS=ON         # build on GPU, enable cublas.
cmake --build . --config Release

启动推理服务

./main -m xverse-7b-chat-q4_k_m.gguf --color -c 512 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -ins   # run on CPU
./main -m xverse-13b-chat-q4_0.gguf --color -c 512 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -ins -ngl 99  # run on GPU

./main --help 可查看支持的相关参数,示例中的 -c 表示序列长度,-ins 表示 交互模式; -ngl 表示加载到GPU的模型层数;

如果在Mac上起llama.cpp服务,遇到 ggml_metal_graph_compute: command buffer 0 failed with status 5. 说明内存不够,可适当调低 n_ctx长度,即 `-c` 参数值;

llama.cpp部署xverse-13b-chat-q4_0.gguf 推理如下图所示:

企业微信截图_17116795542436.png

视频演示了在Mac M2 16GB机器上,xverse-13b-q4_0.gguf量化模型的效果。

微信公众平台 00_00_00-00_00_30.gif

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1月前
|
机器学习/深度学习 编解码 Shell
|
3月前
|
人工智能 物联网 PyTorch
SCEdit:轻量级高效可控的AI图像生成微调框架(附魔搭社区训练实践教程)
SCEdit是一个高效的生成式微调框架,由阿里巴巴通义实验室基础视觉智能团队所提出。
|
4月前
|
人工智能 开发者
解决HuggingFace模型下载难题:AI快站的高效加速服务
在AI研发领域,获取优质模型资源是关键。国内开发者常因海外服务器导致的下载困难而苦恼,尤其是大型模型下载更是耗时且充满挑战。AI快站(aifasthub.com)作为huggingface镜像网站,提供了高效的加速下载服务。它不仅解决了huggingface大模型下载的速度问题,还支持断点续传,保证下载连续性。此外,AI快站还提供全面及时更新的模型资源,是国内AI开发者的理想选择。
819 0
|
8月前
|
数据安全/隐私保护 开发者 异构计算
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
8月16日,时间、空间可控的视频生成模型 VideoComposer 在魔搭社区开源。
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
|
2月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
162 3
|
9天前
|
Web App开发 算法 PyTorch
社区供稿 | vLLM部署Yuan2.0:高吞吐、更便捷
vLLM是UC Berkeley开源的大语言模型高速推理框架,其内存管理核心——PagedAttention、内置的加速算法如Continues Batching等,一方面可以提升Yuan2.0模型推理部署时的内存使用效率,另一方面可以大幅提升在实时应用场景下Yuan2.0的吞吐量。
|
11天前
|
人工智能 文字识别 物联网
新一代端侧模型,面壁 MiniCPM 2.0开源,魔搭社区最佳实践
MiniCPM-V 2.0 不仅带来优秀端侧多模态通用能力,更带来惊艳的 OCR 表现。通过自研的高清图像解码技术,可以突破传统困境,让更为精准地识别充满纷繁细节的街景、长图在端侧成为可能。
|
1月前
|
人工智能 vr&ar 图形学
开源单图生成3D模型TripoSR的应用场景
【2月更文挑战第24天】开源单图生成3D模型TripoSR的应用场景
57 1
开源单图生成3D模型TripoSR的应用场景
|
1月前
|
存储 人工智能 达摩院
社区供稿 | FunASR 语音大模型在 Arm Neoverse 平台上的优化实践
Arm 架构的服务器通常具备低功耗的特性,能带来更优异的能效比。相比于传统的 x86 架构服务器,Arm 服务器在相同功耗下能够提供更高的性能。这对于大模型推理任务来说尤为重要,因为大模型通常需要大量的计算资源,而能效比高的 Arm 架构服务器可以提供更好的性能和效率。
|
3月前
|
自然语言处理 算法 Swift
浪潮信息开源 源2.0 基础大模型,魔搭社区最佳实践教程来啦!
浪潮信息发布源2.0基础大模型,参数量包括1026亿、518亿、21亿三个大模型,从源2.0的论文上可以看到,源2.0不仅在数理逻辑、数学计算、代码生成能力上,再次超强进化,还在算法、数据、算力方面,提出了三项创新。

热门文章

最新文章