返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Docker本地部署大模型集成框架Xinference

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 13:17 |阅读模式 打印 上一主题 下一主题
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。
说人话:Xinference是一款模型部署框架,可以一键部署想要的开源大模型。
Xinference能做什么

准备工作

  • Xinference 使用 GPU 加速推理,该镜像需要在有 GPU 显卡并且安装

  • CUDA 的机器上运行。

  • 保证 CUDA 在机器上正确安装。可以使用nvidia-smi检查是否正确运行。

  • 镜像中的 CUDA 版本为12.4。为了不出现预期之外的问题,请将宿主机的 CUDA 版本和 NVIDIA Driver 版本分别升级到12.4550以上。

Docker 镜像

当前,可以通过两个渠道拉取 Xinference 的官方镜像。1. 在 Dockerhub 的xprobe/xinference仓库里。2. Dockerhub 中的镜像会同步上传一份到阿里云公共镜像仓库中,供访问 Dockerhub 有困难的用户拉取。拉取命令:dockerpullregistry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference:<tag>。目前可用的标签包括:

  • nightly-main: 这个镜像会每天从 GitHub main 分支更新制作,不保证稳定可靠。

  • v<releaseversion>: 这个镜像会在 Xinference 每次发布的时候制作,通常可以认为是稳定可靠的。

  • latest: 这个镜像会在 Xinference 发布时指向最新的发布版本

  • 对于 CPU 版本,增加-cpu后缀,如nightly-main-cpu

自定义镜像

如果需要安装额外的依赖,可以参考xinference/deploy/docker/Dockerfile(https://inference.readthedocs.io/zh-cn/latest/getting_started/using_docker_image.html)。请确保使用 Dockerfile 制作镜像时在 Xinference 项目的根目录下。比如:


gitclonehttps://github.com/xorbitsai/inference.gitcdinferencedockerbuild--progress=plain-ttest-fxinference/deploy/docker/Dockerfile.

使用镜像

你可以使用如下方式在容器内启动 Xinference,同时将 9997 端口映射到宿主机的 9998 端口,并且指定日志级别为 DEBUG,也可以指定需要的环境变量。

dockerrun-eXINFERENCE_MODEL_SRC=modelscope-p9998:9997--gpusallxprobe/xinference:v<your_version>xinference-local-H0.0.0.0--log-leveldebug
警告
  • --gpus必须指定,正如前文描述,镜像必须运行在有 GPU 的机器上,否则会出现错误。

  • -H0.0.0.0也是必须指定的,否则在容器外无法连接到 Xinference 服务。

  • 可以指定多个-e选项赋值多个环境变量。

当然,也可以运行容器后,进入容器内手动拉起 Xinference。

挂载模型目录

默认情况下,镜像中不包含任何模型文件,使用过程中会在容器内下载模型。如果需要使用已经下载好的模型,需要将宿主机的目录挂载到容器内。这种情况下,需要在运行容器时指定本地卷,并且为 Xinference 配置环境变量。

dockerrun-v</on/your/host>:</on/the/container>-eXINFERENCE_HOME=</on/the/container>-p9998:9997--gpusallxprobe/xinference:v<your_version>xinference-local-H0.0.0.0

上述命令的原理是将主机上指定的目录挂载到容器中,并设置XINFERENCE_HOME环境变量指向容器内的该目录。这样,所有下载的模型文件将存储在您在主机上指定的目录中。您无需担心在 Docker 容器停止时丢失这些文件,下次运行容器时,您可以直接使用现有的模型,无需重复下载。

如果你在宿主机使用的默认路径下载的模型,由于 xinference cache 目录是用的软链的方式存储模型,需要将原文件所在的目录也挂载到容器内。例如你使用 huggingface 和 modelscope 作为模型仓库,那么需要将这两个对应的目录挂载到容器内,一般对应的 cache 目录分别在 <home_path>/.cache/huggingface 和 <home_path>/.cache/modelscope,使用的命令如下:

dockerrun\-v</your/home/path>/.xinference:/root/.xinference\-v</your/home/path>/.cache/huggingface:/root/.cache/huggingface\-v</your/home/path>/.cache/modelscope:/root/.cache/modelscope\-p9997:9997\--gpusall\xprobe/xinference:v<your_version>\xinference-local-H0.0.0.0

开始部署:

mkdir/data/xinference&cd/data/xinferencedockerrun-d--privileged--gpusall--restartalways\-v/data/xinference/.xinference:/root/.xinference\-v/data/xinference/.cache/huggingface:/root/.cache/huggingface\-v/data/xinference/.cache/modelscope:/root/.cache/modelscope\-p9997:9997\xprobe/xinference:v1.5.0\xinference-local-H0.0.0.0
docker run -d --privileged --gpus all --restart always -v /data/xinference/.xinference:/root/.xinference -v /data/xinference/.cache/huggingface:/root/.cache/huggingface -v /data/xinference/.cache/modelscope:/root/.cache/modelscope -p 9997:9997 xprobe/xinference:v1.5.0 xinference-local -H 0.0.0.0

到此Xinference部署成功,用http://ip:9997即可访问。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ