文章目录
- 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 版,勉强算是体验了一把大模型,哈哈哈
我们下期见,拜拜!