源码方式本地化部署deepseek和量化
前置条件
1.python环境,安装教程:https://www.python.org/downloads/
2.wsl环境(Windows系统),安装教程:https://learn.microsoft.com/zh-cn/windows/wsl/install
第一步下载大模型
模型仓库:https://huggingface.co/collections/deepseek-ai/deepseek-r1-678e1e131c0169c0bc89728d

第二步配置环境
1.安装cuda
https://www.cnblogs.com/zijie1024/articles/18375637
2.安装pytorch
使用命令nvidia-smi,查看cuda版本
在官网选择对应版本下载
官网:https://pytorch.org/get-started/locally/

得到命令:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu12
如果pip3安装失败就改为pip
3.安装依赖包

pip install bitsandbytes
pip install transformers
pip install accelerate
如果提示:ModuleNotFoundError: No module named 'torch'
执行:pip install --upgrade pip setuptools wheel
第三步运行
1.直接运行

try:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
except ImportError as e:
print(f"导入库时发生错误: {e},请确保 transformers 和 torch 库已正确安装。")
else:
try:
# 模型和分词器的本地路径
model_path = "."
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_path) # 加载模型
model = AutoModelForCausalLM.from_pretrained(model_path) # 检查是否可以使用 GPU 并设置设备
device = "cuda" if torch.cuda.is_available() else "cpu"
if device == "cuda":
print("Using GPU for inference.")
else:
print("Using CPU for inference.")
model.to(device) # 示例输入
input_text = "你是哪个模型?"
inputs = tokenizer(input_text, return_tensors="pt").to(device) # 模型推理
with torch.no_grad(): # 禁用梯度计算,减少内存占用
outputs = model.generate(**inputs, max_length=2000, num_return_sequences=1,
no_repeat_ngram_size=2, temperature=1.0, top_k=50, top_p=0.95) generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("Generated text:", generated_text) except FileNotFoundError:
print(f"模型文件未找到,请检查路径: {model_path}")
except Exception as e:
print(f"发生错误: {e}")
finally:
# 如果是在 GPU 上运行,尝试清理缓存
if device == "cuda":
torch.cuda.empty_cache()
2.量化后运行
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch # 模型路径
model_name = "."
quantized_model_dir = "deepseek-1.5b-quantized" # 配置量化参数
quantization_config = BitsAndBytesConfig(
load_in_4bit=True, # 使用 4 位量化
bnb_4bit_compute_dtype=torch.float16, # 计算精度
bnb_4bit_use_double_quant=True, # 使用双量化
llm_int8_enable_fp32_cpu_offload=True # 启用 CPU 卸载
) # 加载模型和分词器
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quantization_config,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name) # 保存量化后的模型
model.save_pretrained(quantized_model_dir)
tokenizer.save_pretrained(quantized_model_dir) print(f"Quantized model saved to: {quantized_model_dir}") # 执行运行模型的py,也可以手动运行,注意修改模型路径为量化后的模型路径
with open("run.py", "r") as file:
script_content = file.read() exec(script_content)
运行效果



源码方式本地化部署deepseek和量化的更多相关文章
- Spark1.0.0 源码编译和部署包生成
问题导读:1.如何对Spark1.0.0源码编译?2.如何生成Spark1.0的部署包?3.如何获取包资源? Spark1.0.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对 ...
- 使用yum源的方式单机部署MySQL8.0.13
使用yum源的方式单机部署MySQL8.0.13 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 基本上开源的软件都支持三种安装方式,即rmp方式安装,源码安装和二进制方式安装.在 ...
- 第6章 RTX 操作系统源码方式移植
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家将介绍 RTX 操作系统源码方式移植,移植工作比较简单,只需要用户添加需要的源码文件即可, ...
- centos7下源码方式安装gitlab8.9+发送邮件+ldap
CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...
- 源码方式安装 lrzsz 库
我们都知道安装了lrzsz工具的linux系统环境: 在shell里可以非常方便的上传和下载linux里面的文件: 通常的安装方式: yum install lrzsz sudo apt-get in ...
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件
win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件 1.去git上下载react-devtools文件到本地,https://github.com/fac ...
- 01.LNMP架构-Nginx源码包编译部署详细步骤
操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Pcre+Zlib+Openssl+Nginx 操作步骤: 一.创建目录 [root@localhost ~]# mk ...
- 02.LNMP架构-MySQL源码包编译部署详细步骤
操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Cmake+Boost+MySQL 操作步骤: 一.安装依赖组件 [root@localhost ~]# yum -y ...
- 源码方式安装 lrzsz库
源码方式安装 lrzsz库:https://www.cnblogs.com/cocoajin/p/11731787.html 我们都知道安装了lrzsz工具的linux系统环境,在shell里可以非常 ...
- Linux上生产环境源码方式安装配置postgresql12
1.Linux上源码方式安装postgresql12 01.准备操作系统环境 echo "192.168.1.61 tsepg61" >> /etc/hosts mou ...
随机推荐
- 【ElementPlus】el-form使用技巧:动态切换校验规则的最佳实践
喵~ 今天分享一篇在 ElementPlus 中使用 el-form 动态切换校验规则 的实用方法. 一.问题概述 作为前端开发人员,在开发项目中,特别是后台管理系统,表单的使用是必不可少的.当业务需 ...
- 《JavaScript 模式》读书笔记(4)— 函数3
这篇,我们来学习下自定义函数以及即时函数的内容. 四.自定义函数 函数可以动态定义,也可以分配给变量.如果创建了一个新函数,并且将其分配给保存了另外函数的同一个变量,那么就以一个新函数覆盖了旧函数.在 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 17 期(2024年12.09-12.15)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- 【Amadeus原创】k8s添加新master或node
Master 1,在master上生成新的token [root@it-1c2d ]# kubeadm token create --print-join-command kubeadm join k ...
- 【深度学习】Tensorflow学习(1)张量与常用函数
关于张量 张量可以表示0阶到N阶的数组 在TensorFlow中,张量(Tensor)表示某种相同数据类型的多维数据 因此张量有两个重要特征: 数据类型 数组形状(各个维度的大小) 张量的数据类型 t ...
- cs-script:一个非常成熟的C#脚本开源引擎
推荐一个强大C#脚本引擎,方便我们在项目中,动态执行C#脚本. 01 项目简介 CS-Script是非常成熟的C#脚本引擎,自2004年起就发布了,即.NET发布后的两年. 支持托管和独立(CLI)执 ...
- Qt数据库应用8-数据导出组件示例说明
一.前言 为了方便用户学习使用本组件,特意针对每个功能模块,每种可能的应用场景,都编写了对应的示例demo,从初级示例到中级示例再到高级示例以及多线程示例等,层层加码,针对结构体数据都做了相当详细细致 ...
- Qt编写可视化大屏电子看板系统14-标准曲线图
一.前言 近期将可视化大屏电子看板系统重新规划和调整项目结构代码,几个重大改变是新增启动窗体选择,可选大屏系统.控件演示.模块演示三种,其中控件演示是专门针对本系统中用到的各种自定义控件单独做的使用d ...
- IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!
[来源申明]本文引用了微信公众号"鲜枣课堂"的<上网慢?经常掉线?这篇文章告诉你该怎么办!>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注 ...
- Solution Set - “潮汐守候终结放逐月圆”
目录 0.「NOI Simu.」游戏 1.「NOI Simu.」海盗 2.「集训队作业 2020-2021」「LOJ #3405」Gem Island 2 3.「UR #12」「UOJ #181」密码 ...