别再只知道 Ollama 了,独家公开,DeepSeek R1 & Janus-Pro 本地部署高级版教程

文摘   科技   2025-02-02 21:29   山东  


点击上方🔺公众号🔺关注我✅

你好啊,我是雨飞,见字如面感谢阅读,期待我们下一次的相遇。

最近 DeepSeek 实在是太火了,总结了下高赞的帖子以及现有的方式,基本符合下面两种模式。

1、Ollama、LM studio 这种一键安装 gguf 格式模型的软件,差不多可以实现 2 分钟完成本地部署

2、Chatbox 、CherryStudio、AnythingLLM 这种客户端软件,配合 ollama 可以进行可视化使用,并且添加 RAG 等功能。


今天给大家介绍下如何通过下载模型权重进行部署,包括 DeepSeek-R1 以及最新的 Janus-Pro 都可以按这个方式来部署。由于我们采用 transformers 下载了模型权重的方式部署,理论上所有模型都会支持,属于比较通用的方法,这个方法的缺点就是没有额外的加速推理的功能,推理速度会低于 Vllm、SGLang 等推理框架


掌握了这个方法,你就又比别人更进一步。

一、模型下载

我们推荐国内用户使用 modelscope 去下载相关模型权重,下载速度更快、更稳定。ms 地址:https://www.modelscope.cn/organization/deepseek-ai


点击这个网址,就能看到 DeepSeek 的页面,红框里的模型就是我们熟悉的 R1 以及 Janus-Pro 模型,两者的下载过程是一样的,这里雨飞就以 Janus-Pro 为例,给大家演示下具体下载过程。



点击下方网址或者从红框内容进入,找到 Janus-Pro-1B 模型,打开如下方所示的页面,点击如图所示的「模型文件」按钮。

网址:https://www.modelscope.cn/models/deepseek-ai/Janus-Pro-1B


注意: Janus 是多模态的模型,1B 大小的模型显存占用在 8GB。如果低于 8GB 的,考虑用云服务器,或者去部署 DeepSeek R1 模型



点击「下载模型」 会弹出一个对话框。



我们推荐使用 Git 进行下载,这种方式更稳定,也比较常用。Git lfs 是用于下载大型文件必备的软件,可以根据下面所示的安装教程去进行安装:https://git-lfs.com/

git lfs install git clone https://www.modelscope.cn/deepseek-ai/Janus-Pro-1B.git

执行上面命令,会在本地生成一个文件夹,等待下载模型完成。


二、环境配置

首先,需要下载 Janus 的项目,网址:https://github.com/deepseek-ai/Janus

点击右上角的 Code 按钮,在弹出的对话框中点击「Download ZIP」,将项目下载到本地,然后解压缩到一个目录。



然后可以在 VS code 或者 Cursor 中打开此项目,正常需要显示下面这些内容,则表示没有任何问题。


接下来需要安装 Python 环境以及安装相关依赖,有不清楚的地方可以去问问 AI 具体哪一步出现了问题。打开命令行,在当前目录下执行下方命令等待安装完成,如果遇到了网络问题可以换成下面第二个命令。
pip install -e .
命令2:使用清华源安装
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


三、实战


在上面打开的项目页面向下滑动,看到第三部分「Quick Start」,我们可以使用这里面的示例进行验证。官方提供了两个案例,一个是多模态的图片理解,另外一个是文生图。



以多模态理解为例,我们需要修改相关代码中的几个部分,大家可以根据我下面放出来的代码片段,将model_path、image、question 变量的内容进行修改,替换为自己模型的路径、图片所在的路径以及想要提问的内容。


import torchfrom transformers import AutoModelForCausalLMfrom janus.models import MultiModalityCausalLM, VLChatProcessorfrom janus.utils.io import load_pil_images# specify the path to the modelmodel_path = "E:\models\Janus-Pro-1B"vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path)tokenizer = vl_chat_processor.tokenizervl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained(    model_path, trust_remote_code=True)vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()image = "images\doge.png"question = "Extract all information from this image and convert them into markdown format."conversation = [    {        "role""<|User|>",        "content": f"<image_placeholder>\n{question}",        "images": [image],    },    {"role""<|Assistant|>""content"""},]


然后在命令行中执行这个代码,出现如下方所示的内容,表示案例执行成功,其中蓝色框里就是 Janus-Pro-1B 输出的内容。



四、DeepSeek-R1 实战

DeepSeek R1 模型,目前只有后缀带 qwen、llama 的蒸馏模型可以在本地使用 transformers 进行部署,也就是可以参考我们上面的安装步骤。

以 qwen 为后缀名的示例代码可以参考这个网站:

https://qwen.readthedocs.io/zh-cn/latest/getting_started/quickstart.html


成功执行后,可以在本地看到 <think> 标识符,这个就是思维链的推导过程,由于默认情况下只输出 512 个字符,推理过程偏长时,输出不完整。这个时候,需要在代码中,找到 512,把它调大些,比如 2048、4096 就可以看到完整的输出内容了。



下面是我把输出长度调整到 2048 之后的结果,可以看到 <think>、</think> 的标识符就都出来了。



最后,上面网站的代码只支持以 qwen 为后缀名的模型,大家可以根据自己的显存大小去体验下本地部署。蒸馏出来的模型,效果肯定要比原版的671B的模型差不少,根据我们自己的体验,要想在本地获得还不错的结果,最低选用32b的模型。因此,很多文章说着可以在本地体验R1模型,但也就是简单体验下,32b模型部署至少要32G内存,很多人电脑远达不到这个配置。


如果你觉得这篇文章对你有启发,欢迎点赞收藏转发下。目前运营了几个 Cursor & DeepSeek 交流群,付费、免费的都有,有想一起交流学习的可以添加下方的微信,邀你一起学习。


❤️常驻小尾巴❤️

加微 1060687688,备注「公众号」,送你一份「AI工具与副业变现指南


推荐阅读

「雨飞同行」这是雨飞的介绍(第8版,交个朋友,限时送福利)

雨飞AI笔记
个人V:1060687688,添加后,发送暗号“777”送你一份副业与AI相关的见面礼。 雨飞个人号,AI算法从业者,在职场搞副业,探索一人企业。在AI时代,持续分享自己在学习、副业路上的所见、所思,记录雨飞个人IP打造中的心路历程。
 最新文章