魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署

简介: 随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。

导读


随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。


llama2.c 是用 C 语言实现的,没有任何依赖的大模型推理库,它能够以比较高效的方式运行在 CPU 上,可以在个人电脑,比如 Macbook 上完成大模型的推理任务,解决了很多没有显卡却想试一下部署 Llama2 的用户需求。


其实,在这个项目之前,就有一个开源项目专门针对个人用户的大模型推理需求,适配各种硬件的推理框架,包括 Andrej Karpathy 的 llama2.c 项目也是受其启发,那就是 llama.cpp,一个目前在 Github 有超过 4万 star 的项目。


llama.cpp


llama.cpp 是一个用 C/C++ 编写的推理框架,没有任何依赖,能够在几乎所有系统和硬件运行,支持包括 LLaMA 2、Code Llama、Falcon、Baichuan 等 llama 系的模型。除了能够使用 CPU 推理,它也可以利用 CUDA、Metal 和 OpenCL 这些 GPU 资源加速,所以不管是英伟达、AMD还是 Apple 的 GPU 都能够帮助提升推理性能。


除了硬件的支持,llamacpp 还有一个重要的特性就是支持模型量化,可以极大地减少模型对显存或者内存使用量,下面的表列出了不同量化方式的模型大小以及模型效果。

Name Quant method Bits Size Max RAM required Use case
llama-2-70b-chat.Q2_K.gguf Q2_K 2 29.28 GB 31.78 GB smallest, significant quality loss - not recommended for most purposes
llama-2-70b-chat.Q3_K_S.gguf Q3_K_S 3 29.92 GB 32.42 GB very small, high quality loss
llama-2-70b-chat.Q5_K_S.gguf Q5_K_S 5 30.57 GB 33.07 GB large, low quality loss - recommended
llama-2-70b-chat.Q3_K_M.gguf Q3_K_M 3 33.19 GB 35.69 GB very small, high quality loss
llama-2-70b-chat.Q3_K_L.gguf Q3_K_L 3 36.15 GB 38.65 GB small, substantial quality loss
llama-2-70b-chat.Q4_0.gguf Q4_0 4 38.87 GB 41.37 GB legacy; small, very high quality loss - prefer using Q3_K_M
llama-2-70b-chat.Q4_K_S.gguf Q4_K_S 4 39.07 GB 41.57 GB small, greater quality loss
llama-2-70b-chat.Q4_K_M.gguf Q4_K_M 4 41.42 GB 43.92 GB medium, balanced quality - recommended
llama-2-70b-chat.Q5_0.gguf Q5_0 5 47.46 GB 49.96 GB legacy; medium, balanced quality - prefer using Q4_K_M
llama-2-70b-chat.Q5_K_M.gguf Q5_K_M 5 48.75 GB 51.25 GB large, very low quality loss - recommended
llama-2-70b-chat.Q6_K.gguf Q6_K 6 56.59 GB 59.09 GB very large, extremely low quality loss
llama-2-70b-chat.Q8_0.gguf Q8_0 8 73.29 GB 75.79 GB very large, extremely low quality loss - not recommended



本地部署



模型


为了方便使用到 llamacpp 的能力,我们在魔搭平台上传了模型的 gguf 版本,目前已经支持的模型包括以下列表:


后续更多的模型也在持续支持中,欢迎大家在社区列出需要的模型,我们会第一时间上传到魔搭。


Xinference


Xinference(https://github.com/xorbitsai/inference) 是一个开源推理平台,能够帮助用户非常方便地在本地部署开源大模型,借助 Xinference,你能够在云端、本地设备,甚至是笔记本电脑上运行任何开源大语言模型、语音识别模型等多模态模型的推理,llamacpp 的模型同样也是支持的。同时,Xinference 和魔搭也做了深度集成,对于在魔搭中能够找到的模型,优先从魔搭下载,对于本地部署非常友好。


安装

安装 Xinference:

pip install xinference

安装 llamacpp:

  • CPU 版本
pip install llama-cpp-python


  • CUDA 版本
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python


  • Apple Metal 版本
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python


其余硬件可以参考文档

https://github.com/abetlen/llama-cpp-python#installation-with-hardware-acceleration


部署模型

通过命令行拉起 Xinference 服务:

xinference



默认会有一个模型选择的 Web UI,选择任意想部署的模型。


也可以通过代码部署模型与推理:

from xinference.client import Client
client = Client("http://127.0.0.1:9997")
model_uid = client.launch_model(
    model_name="llama-2-chat",
    model_format="ggufv2", 
    model_size_in_billions=7,
    quantization="Q4_K_M",
    )
model = client.get_model(model_uid)
chat_history = []
prompt = "What is the largest animal?"
model.chat(
    prompt,
    chat_history=chat_history,
    generate_config={"max_tokens": 1024}
)



多端体验

1 使用魔搭社区PAI-DSW的CPU实例

进入魔搭社区-notebook(https://modelscope.cn/my/mynotebook/preset)



选择CPU机型,拉起Xinference服务,以llama-2-chat 7B GGUF为例,27秒完成192个token:


内存占用:


2 在Mac-M1也可以轻松完成推理




Embedding模型


除了大语言模型,embedding 模型在 AI 应用中也占有非常重要的位置,我们在魔搭里上传了 MTEB 排行中靠前的 embedding 模型,也可以通过 xinference 非常方便地在本地部署。这是目前已经支持的模型列表,包括中文和英文模型:

  • bge-large-en
  • bge-base-en
  • gte-large
  • gte-base
  • e5-large-v2
  • bge-large-zh
  • bge-large-zh-noinstruct
  • bge-base-zh
  • multilingual-e5-large
  • bge-small-zh
  • bge-small-zh-v1.5
  • bge-base-zh-v1.5
  • bge-large-zh-v1.5
  • bge-small-en-v1.5
  • bge-base-en-v1.5
  • bge-large-en-v1.5


目前 embedding 模型支持通过代码推理:

In [1]: client = Client("http://localhost:9997")
In [2]: uid = client.launch_model(model_name="gte-base", model_type="embedding")
In [3]: model = client.get_model(model_uid=uid)
In [4]: model.create_embedding("write a poem.")
Out[4]:
{'object': 'list',
 'model': '3ef99480-496f-11ee-9009-c2c8e4cad3f6',
 'data': [{'index': 0,
   'object': 'embedding',
   'embedding': [-0.003699747147038579,
    0.019329899922013283,
    ...,
    -0.05098249390721321,
    -0.001861078548245132]}],
 'usage': {'prompt_tokens': 37, 'total_tokens': 37}}



总结



使用魔搭与 Xinference 平台,可以快速搭建本地大模型服务,赶快试用起来吧,更多的模型陆续支持中,欢迎大家的反馈。


相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
人工智能 前端开发 搜索推荐
利用通义灵码和魔搭 Notebook 环境快速搭建一个 AIGC 应用 | 视频课
当我们熟悉了通义灵码的使用以及 Notebook 的环境后,大家可以共同探索 AIGC 的应用的更多玩法。
1160 124
|
人工智能 Linux API
119K star!无需GPU轻松本地部署多款大模型,DeepSeek支持!这个开源神器绝了
"只需一行命令就能在本地运行Llama 3、DeepSeek-R1等前沿大模型,支持Windows/Mac/Linux全平台,这个开源项目让AI开发从未如此简单!"
967 0
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
4723 101
|
存储 测试技术 对象存储
容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型
阿里云最新发布的QwQ-32B模型拥有320亿参数,通过强化学习大幅度提升了模型推理能力,其性能与DeepSeek-R1 671B媲美,本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。
|
人工智能 测试技术 API
通义灵码 + 魔搭MCP:全流程构建创空间应用
最近,通义灵码上线 MCP(ModelScope Cloud Platform)功能,从之前代码生成及修改的基础功能,到可以使用MCP服务连接更多功能,开发者可以实现从 代码爬取、模型推理到应用部署
3295 27
|
机器学习/深度学习 编解码 文字识别
小米又放大招!MiMo-VL 多模态大模型开源,魔搭推理微调全面解读来了!
今天,小米开源发布两款 7B 规模视觉-语言模型 MiMo-VL-7B-SFT 和 MiMo-VL-7B-RL。
1710 9
|
人工智能 自然语言处理 API
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
Proxy Lite 是一款开源的轻量级视觉语言模型,支持自动化网页任务,能够像人类一样操作浏览器,完成网页交互、数据抓取、表单填写等重复性工作,显著降低自动化成本。
1276 11
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
|
机器学习/深度学习 存储
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
1029 15
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
机器学习/深度学习 人工智能 并行计算
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟
Unsloth 是一款开源的大语言模型微调工具,支持 Llama-3、Mistral、Phi-4 等主流 LLM,通过优化计算步骤和手写 GPU 内核,显著提升训练速度并减少内存使用。
2312 3
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟

热门文章

最新文章