目录
第一步:安装 Anaconda
第二步:在 Anaconda Prompt 里创建隔离环境
第三步:在 Trae 里指定这个 Conda 环境
第四步:在 Trae 里运行代码
第一步:安装 Anaconda
去 Anaconda 官网下载 Windows 安装包,正常安装即可。安装时如果看到“Add Anaconda to PATH”的选项,勾选或不勾选都可以,后面 Trae 里我们会直接指定解释器绝对路径,不依赖 PATH。
安装完成后,打开开始菜单里的“Anaconda Prompt”(这是 Anaconda 自带的命令行工具),后续所有 conda 命令都在这里执行。
国内镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
第二步:在 Anaconda Prompt 里创建隔离环境
在 Anaconda Prompt 中输入以下命令,创建一个专门用于跑 Qwen 模型的环境(名字你可以自己定,比如qwen_env):
1.在Prompt中添加镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
2.创建环境
conda create -n qwen_env python=3.11 -y
这行命令会创建一个隔离的 Python 3.11 环境。完成后,激活它:
text
conda activate qwen_env
激活后,命令行前面会出现(qwen_env),说明你现在处在这个隔离环境里。接着安装任务需要的两个库:
text
pip install transformers torch
可能下载很久
装完后,先查一下这个环境里 Python 的绝对路径,后面 Trae 配置要用。在 Anaconda Prompt 里输入:
text
where python
它会输出一个路径,类似:C:\Users\你的用户名\anaconda3\envs\qwen_env\python.exe
把这个路径记下来。
第三步:在 Trae 里指定这个 Conda 环境
打开 Trae,打开你放代码的文件夹。按下Ctrl + Shift + P打开命令面板,输入并选择“Python: Select Interpreter”(选择解释器)。
在弹出的选项里,不要依赖它自动扫描出来的列表(有时候扫不到 Conda 环境)。选择“输入解释器路径”(Enter interpreter path…),然后把你刚才用where python得到的完整路径粘贴进去,回车确认。
指定成功后,Trae 右下角或状态栏会显示当前使用的 Python 解释器来自你创建的qwen_env环境。
第四步:在 Trae 里运行代码
1.把文件里的代码粘贴到 Trae 中新建的test_qwen.py里,保存。
第一次运行联网下载模型,然后找到下载的文件夹,如果在C盘,可以迁移到D盘
第一次下载会很慢,可以打开#联网下载模型的那行镜像代码
第二次运行,从D盘缓存加载模型+禁用下载模型
加载就很快了
import torch import os #从D盘缓存中加载模型 os.environ["HF_HOME"] = "D:\\huggingface_cache" # 禁用联网下载模型 os.environ["HF_HUB_OFFLINE"] = "1" #联网下载模型 # os.environ["HF_ENDPOINT"] = "https://hf-mirror.com" from transformers import AutoModelForCausalLM, AutoTokenizer # 指定模型ID model_id = "Qwen/Qwen1.5-0.5B-Chat" # 设置设备,优先使用GPU device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using device: {device}") # 加载分词器 tokenizer = AutoTokenizer.from_pretrained(model_id) # 加载模型,并将其移动到指定设备 model = AutoModelForCausalLM.from_pretrained(model_id).to(device) print("模型和分词器加载完成!")2.进行问答
我们来创建一个对话提示,Qwen1.5-Chat 模型遵循特定的对话模板。然后,可以使用上一步加载的tokenizer将文本提示转换为模型能够理解的数字 ID(即 Token ID)。
调用模型的generate()方法来生成回答了。模型会输出一系列 Token ID,这代表了它的回答。
最后,我们需要使用分词器的decode()方法,将这些数字 ID 翻译回人类可以阅读的文本。
import torch import os #从D盘缓存中加载模型 os.environ["HF_HOME"] = "D:\\huggingface_cache" # 禁用联网下载模型 os.environ["HF_HUB_OFFLINE"] = "1" #联网下载模型 # os.environ["HF_ENDPOINT"] = "https://hf-mirror.com" from transformers import AutoModelForCausalLM, AutoTokenizer # 指定模型ID model_id = "Qwen/Qwen1.5-0.5B-Chat" # 设置设备,优先使用GPU device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using device: {device}") # 加载分词器 tokenizer = AutoTokenizer.from_pretrained(model_id) # 加载模型,并将其移动到指定设备 model = AutoModelForCausalLM.from_pretrained(model_id).to(device) print("模型和分词器加载完成!") # 准备对话输入 messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "你好,请介绍你自己。"} ] # 使用分词器的模板格式化输入 text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) # 编码输入文本 model_inputs = tokenizer([text], return_tensors="pt").to(device) print("编码后的输入文本:") print(model_inputs) # 使用模型生成回答 # max_new_tokens 控制了模型最多能生成多少个新的Token generated_ids = model.generate( model_inputs.input_ids, max_new_tokens=512 ) # 将生成的 Token ID 截取掉输入部分 # 这样我们只解码模型新生成的部分 generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] # 解码生成的 Token ID response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] print("\n模型的回答:") print(response)恭喜您成功本地部署调用开源大模型