笔记本 Win10 部署阿里通义千问 1.5-0.5B 大模型 mini 版

news2025/3/16 16:02:26

文章目录

  • 1.环境准备
    • 1.1 硬件环境
    • 1.2 OS 环境
    • 1.3 Python 环境
  • 2.环境安装
    • 2.1 CUDA 驱动下载安装
    • 2.2 torch 库下载安装
    • 2.3 transformers 库安装
    • 2.3 accelerate 库安装
    • 2.4 验证 CUDA 是否可用
    • 2.5 下载 Qwen1.5-0.5B 大模型
  • 3.测试大模型
    • 3.1 加载大模型
    • 3.2 简单对话
    • 3.3 亲测体验感受


1.环境准备

1.1 硬件环境

华硕飞行堡垒笔记本

网络:联网环境(必备)
显卡:NVIDIA GeForce GTX 1050 显卡,4G 显存
运行内存:8G 即可
CPU:4核

1.2 OS 环境

Windows 10 操作系统

1.3 Python 环境

Python 3.8.2 版本

pip 国内源配置,目的是快速下载 Python 依赖库
先在 C:\Users\Administrator 目录 创建 .pip 目录
然后在 C:\Users\Administrator.pip 目录 创建 pip.ini 文件
然后在文件编辑如下内容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url = 
    https://pypi.org/simple
    https://mirrors.aliyun.com/pypi/simple/
    https://pypi.mirrors.ustc.edu.cn/simple/
    https://mirrors.sustech.edu.cn/pypi/web/simple/

2.环境安装

2.1 CUDA 驱动下载安装

因为使用的显卡是笔记本自带的 NVIDIA GeForce GTX 1050
所以这里安装的驱动是 CUDA 12.4 版本,兼容 1050 显卡

CUDA 12.4 版本 驱动 下载地址:
https://developer.download.nvidia.cn/compute/cuda/12.4.1/local_installers/cuda_12.4.1_551.78_windows.exe

cuda_12.4.1_551.78_windows.exe 此安装包 2.97G,下载时间有点长

注意:
根据不同操作系统、CPU架构版本,需要适配 CUDA 驱动版本,可以去 NVIDIA 官网下载
访问地址是:
https://developer.nvidia.cn/cuda-toolkit
https://developer.nvidia.cn/cuda-downloads

手动安装 cuda_12.4.1_551.78_windows.exe
安装完,需重启笔记本

检查 CUDA 驱动是否能用
Windows + R 运行 → cmd 确定 → 输入 nvidia-smi
示例:

C:\Users\Administrator>nvidia-smi
Sat Mar 15 11:31:24 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 551.78                 Driver Version: 551.78         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                     TCC/WDDM  | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1050      WDDM  |   00000000:01:00.0 Off |                  N/A |
| N/A   32C    P0             N/A / ERR!  |       0MiB /   4096MiB |      1%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

C:\Users\Administrator>

2.2 torch 库下载安装

为了使用 GPU,Torch 库的版本需要依赖 CUDA 版本的,需要单独下载,Windows 版本所以下载 whl 包

torch 下载地址(因为本地使用的 Python 版本是 3.8,所以下载这个版本 torch-2.2.1+cu121-cp38-cp38-win_amd64.whl):
https://download.pytorch.org/whl/cu121/torch-2.2.1%2Bcu121-cp38-cp38-win_amd64.whl

torch-2.2.1+cu121-cp38-cp38-win_amd64.whl 这个包 2.28G,下载有点慢

安装方式:(Windows 10 控制台安装)
首先,Windows + R 运行 → cmd 确定,cd 进到 torch-2.2.1+cu121-cp38-cp38-win_amd64.whl 文件所在目录,然后 pip 安装

pip install torch-2.2.1+cu121-cp310-cp310-win_amd64.whl

安装后 pip list 看到的 torch 版本是 2.2.1+cu121

注意:
解释 torch-2.2.1+cu121-cp38-cp38-win_amd64.whl 版本参数
torch-2.2.1 : torch 版本
cu121 : CUDA 版本 12.1,实际使用 CUDA 版本 12.4,也能够兼容
cp38 : Python 3.8 版本
win_amd64 : Windows 64 位版本

其他 Python 版本(3.8,3.9,3.10,3.11,3.12)下载列表地址:
https://download.pytorch.org/whl/cu121/torch/

2.3 transformers 库安装

transformers 库是使用大模型的基础库

pip install transformers

不需要指定版本,自动安装最新的库
安装后 pip list 看到的 transformers 版本是 4.46.3

2.3 accelerate 库安装

pip install accelerate

不需要指定版本,自动安装最新的库
安装后 pip list 看到的 accelerate 版本是 1.0.1

2.4 验证 CUDA 是否可用

import torch

# 输出为 True 则表示可以正常使用 CUDA
print(torch.cuda.is_available())

# 输出 CUDA 版本号
print(torch.version.cuda)

if torch.cuda.is_available():
    # 打印当前GPU的名称,通常包含CUDA版本信息
    print(torch.cuda.get_device_name(0))
	# 打印当前GPU的计算能力(例如7.5)
    print(torch.cuda.get_device_capability(0))

2.5 下载 Qwen1.5-0.5B 大模型

大模型下载地址:(国内地址,可直接访问)
https://modelscope.cn/models/Qwen/Qwen1.5-0.5B/files
推荐浏览器访问,建议逐个点击下载,保存到本地,重点 model.safetensors 文件务必下载完整,否则后续跑不通
因为模型文件比较大,故 git clone 拉取不推荐使用

建议下载路径保存到 全英文目录

下载后的文件列表是:

LICENSE
README.md
config.json
configuration.json
generation_config.json
merges.txt
model.safetensors
tokenizer.json
tokenizer_config.json
vocab.json

3.测试大模型

3.1 加载大模型

# dependency
from transformers import AutoModelForCausalLM, AutoTokenizer

## the device to load the model onto
device = "cuda"

## 0.5B 大模型 保存的目录,建议全英文目录
path = r"F:\\models\\Qwen1.5-0.5B"

model = AutoModelForCausalLM.from_pretrained(
    path,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(path)

3.2 简单对话

  • v1 基础版本
## 会话
prompt = "你是谁"

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

model_inputs = tokenizer([text], return_tensors="pt").to(device)

generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

print(response)

基础版本直接回答问题

  • v2 封装成函数版本
def get_response(prompt):
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt}
    ]
	
    text = tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )
    
	model_inputs = tokenizer([text], return_tensors="pt").to(device)
    
	generated_ids = model.generate(
        model_inputs.input_ids,
        max_new_tokens=512,
        pad_token_id=tokenizer.eos_token_id
    )
    
	generated_ids = [
        output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
    ]
    
	response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
    
	print(response)

get_response("如何学习Python?")

这一版可以直接调用函数进行问答问题

  • v3 保存历史进行多轮会话版本
def run_qwen_with_history():
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        #{"role": "user", "content": prompt}
    ]

    while True:
        new_question = input("请输入你的问题:")
        
        if new_question == "clear":
            messages = [messages[0]]
            continue

        #messages.append({"role": "user", "content": new_question})
        
        text = tokenizer.apply_chat_template(
            messages,
            tokenize=False,
            add_generation_prompt=True
        )
        
        model_inputs = tokenizer([text], return_tensors="pt").to(device)

        generated_ids = model.generate(
            model_inputs.input_ids,
            max_new_tokens=512,
            pad_token_id=tokenizer.eos_token_id
        )
        
        generated_ids = [
            output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
        ]

        response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
        
        print(response)
        #messages.append({"role": "system", "content": response})

run_qwen_with_history()

这一版后台会记住之前的对话,从而实现多轮对话的功能。

3.3 亲测体验感受

实测 0.5B 模型 跑的时候占用 GPU 显存 1.3G
整体对话回答的体验效果不是很好,毕竟这是笔记本跑的 mini 版,勉强算是体验了一把大模型,哈哈哈


我们下期见,拜拜!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2316133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postman中Authorization和Headers的区别

案例 笔者在进行token验证的时候碰到的问题 一般如果是进行token验证,大部分是在Headers下面添加token名称及token的值 这样:后端提取请求头的token即可 还有一种是,左侧选择Bearer Token,右侧添加token的值,后端传递的 大概…

python使用openai的api的时候声明不要走系统代理,默认是走的

配置了以上的方式,还是不行。因为项目默认使用的是国内的大模型服务商,但是接口是和openapi通用的,所以可以直接使用,但是项目中有的链接还是要走系统代理的,所以就需要将两者区分开,配置openapi不走系统代…

【免费】1949-2020年各省人均GDP数据

1949-2020年各省人均GDP数据 1、时间:1952-2020年 2、来源:国家统计局、统计年鉴 3、指标:各省人均GDP 4、范围:31省 5、指标解释:人均GDP(Gross Domestic Product per capita)是指一个国家…

《Python实战进阶》No24: PyAutoGUI 实现桌面自动化

No24: PyAutoGUI 实现桌面自动化 摘要 PyAutoGUI 是一个跨平台的桌面自动化工具,能够模拟鼠标点击、键盘输入、屏幕截图与图像识别,适用于重复性桌面任务(如表单填写、游戏操作、批量文件处理)。本集通过代码截图输出日志的实战形…

功耗电流和耗电量的获取

1. 实验室环境: 在受控的实验条件下,我们使用 PowerMonitor 精确控制变量(如固定设备型号和系统版本、清理后台应用、设置恒定的亮度与音量、确保稳定的网络连接等),以获取高精度的电流测量数据,从而准确评…

医疗送药机器人“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用

一、引言 1.1 研究背景与意义 在医疗体系中,高效精准的药品配送是保障医疗服务质量和患者安全的关键环节。随着医疗技术的不断进步和医疗需求的日益增长,传统的人工送药方式逐渐暴露出诸多弊端,如配送效率低下、易受人为因素干扰导致错误率上升、人力成本高昂等。特别是在…

[CISCN 2022 初赛]ezpop(没成功复现)

打开在线环境可以看到&#xff1a; 记得之前做过一个类似的就是有点像照着漏洞去复现。应该可以直接在网上找到链子去打。 www.zip查看路由是 Index/test&#xff0c;然后 post 传参 a&#xff1a; exp&#xff08;参考了别的大神的wp&#xff09;&#xff1a; <?php //…

QT编程之QGIS

一、QGIS介绍 Quantum GIS&#xff08;QGIS&#xff09;是开源地理信息系统桌面软件&#xff0c;使用GNU&#xff08;General Public License&#xff09;授权&#xff0c; 属于 Open Source eospatial Foundation&#xff08; OSGeo &#xff09;的官方计划。在 GNU 授权下&am…

嵌入式C语言中堆栈管理与数据存储的精髓

在嵌入式开发中,理解C语言的内存管理和数据存储机制是至关重要的。本文将从堆栈管理和数据存储两个方面,深入探讨C语言在嵌入式Linux开发中的应用。 一、堆栈管理 1.1 栈的初始化与作用 栈是C语言运行的基础,主要用于存储函数参数、局部变量、函数返回值和编译器生成的临时…

LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本实验基于汽车销量时序数据&#xff0c;使用LSTM网络&#xff08;长短期记忆网络&#xff09;构建时间序列预测模型。通过数据预处理、模型训练与评估等完整流程&#xff0c;验证LSTM在短期时序预测中的有效性。 目录 一、实验…

[Windows] 轻量级景好鼠标录制器 v2.1 单文件版,支持轨迹+鼠标键盘录制复刻

[Windows] 轻量级景好鼠标录制器 链接&#xff1a;https://pan.xunlei.com/s/VOLHz0rPyqdhV4bgyTYuW6W7A1?pwd98uj# 软件特性&#xff1a; 高效播放控制&#xff1a;动作间隔优化至100 ms&#xff0c;进度条可视化&#xff0c;支持随机循环/多次播放。 深度自定义&#xff1…

LINUX --- KVM

什么是 KVM&#xff1f;– 基于内核的虚拟机简介 – AWS (amazon.com) 什么是 KVM&#xff1f; 基于内核的虚拟机&#xff08;KVM&#xff09;是一种软件功能&#xff0c;您可以将其安装在物理 Linux 机器上以创建虚拟机。虚拟机是一种软件应用程序&#xff0c;可作为另一台实…

LabVIEW VI Scripting实现连接器窗格自动化

通过VI Scripting自动化配置连接器窗格&#xff0c;可大幅提升开发效率、统一接口规范&#xff0c;并适配动态需求。以下为真实场景中的典型应用案例&#xff0c;涵盖工业、汽车电子及教育领域&#xff0c;展示其实际价值与实施效果。 特点&#xff1a; 程序化配置&#xff1a;…

网络安全信息收集[web子目录]:dirsearch子目录爆破全攻略以及爆破字典结合

目录 一、dirsearch 工具详细使用攻略 1. 安装 前提条件 安装步骤 可选&#xff1a;直接下载预编译版本 2. 基本用法 命令格式 参数说明 示例 3. 核心功能与高级用法 3.1 多线程加速 3.2 自定义字典 3.3 递归扫描 3.4 过滤响应 3.5 添加请求头 3.6 代理支持 3…

pandas表格内容比较

前阵子来了一个211大学实习生&#xff08;小男生&#xff09;&#xff0c;要比较2个版本字段的变化&#xff0c;辅助完成系统升级字段替换&#xff0c;要求找出哪些字段是新增的&#xff0c;哪些字段是删除的&#xff0c;哪些字段是属性信息修改的&#xff0c;要求半天时间搞定…

TMS320F28P550SJ9学习笔记13: 软件I2C_驱动AT24Cxx存储芯片

今日尝试配置软件I2C通信&#xff0c;我的目标通信芯片是AT24C64&#xff0c;相较于AT24C02这样的8位寻址&#xff0c;它是16位寻址的&#xff0c;所以有些不同 文章提供测试代码讲解、完整工程下载、测试效果图 目录 软件I2C引脚初始化&#xff1a; C内联函数改变SCL与SDA的输…

手抖预防方法主要包括以下几个方面

手抖预防方法主要包括以下几个方面&#xff1a; 1. 心理调节&#xff1a;保持心情舒畅&#xff0c;避免过度紧张和焦虑。如有必要&#xff0c;可以寻求心理医生帮助进行心理调适。 2. 充分休息&#xff1a;保证充足的睡眠时间&#xff0c;避免熬夜和过度劳累。合理安排工作和…

SpringBoot MCP 入门使用

随着AI的火爆&#xff0c;最近发现MCP在未来确实大有可为&#xff0c;作为一名javaer怎么可以落后在历史洪流呢&#xff0c;根据官网和cursor也从零开始体验一下自定义mcp server。以后可以根据自己业务场景做出各种适合自身业务的工具。 至于什么是MCP 可以到https://modelcon…

Windows 11 安装Docker Desktop环境

1、确认CPU开启虚拟化 打开任务管理器&#xff0c;切换到“性能”选项卡&#xff0c;查看 CPU 信息。若“虚拟化”状态显示为“已启用”&#xff0c;则表示虚拟化已开启&#xff1b;若显示为“已禁用”&#xff0c;则需要在启动时进入 BIOS 开启虚拟化设置&#xff08;若显示已…

汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程

一、概述 本实例以佳易王汽车保养维护服务记录查询管理系统为例说明&#xff0c;其他版本可参考本实例。试用版软件资源可到文章最后了解&#xff0c;下载的文件为压缩包文件&#xff0c;请使用免费版的解压工具解压即可试用。 软件特点&#xff1a;1、功能实用&#xff0c;操…