环境配置 (Windows 系统)
要在 Windows
上顺利运行 WeClone,我们需要先搭建好相应的环境。由于现在的数据清洗
使用vllm
加速推理,而vllm
目前仅支持Linux
系统,所以对Windows
用户而言,要么使用虚拟机/WSL2,要么选择卸载vllm
,并舍弃掉数据清洗
功能。具体操作步骤如下:
Git 版本控制
你需要 Git
来克隆 WeClone 项目仓库。 从 Git for Windows 下载并安装。你可以参考下面这篇教程:
安装 uv (推荐的包管理器)
uv
是一个由 Astral 开发的快速 Python 包管理器。推荐使用 uv
创建虚拟环境并安装项目依赖,可以避免包版本冲突。
打开命令提示符 (CMD) 或 PowerShell,使用 pip 安装 uv:
pip install uv
注:项目尚未提供
requirements.txt
,使用其他命令(如conda
)易导致依赖版本冲突。
虚拟环境搭建
cuda安装(已安装可跳过,要求版本12.4及以上):LLaMA Factory
克隆 WeClone 项目: 打开 CMD 或 PowerShell,导航到你希望存放项目的目录,然后克隆仓库:
bashgit clone https://github.com/xming521/WeClone.git cd WeClone
创建并激活虚拟环境 (使用 uv): 在
WeClone
项目根目录下执行:bashuv venv .venv --python=3.10 # 你可以指定已安装的 Python 3.10+ 版本 .venv\Scripts\activate
激活成功后,你的命令行提示符前通常会显示
(.venv)
。安装项目主要依赖:
bashuv pip install --group main -e .
此命令将读取项目中依赖配置并安装所有库。
(
pytorch
安装失败再看)手动安装pytorch
手动安装 PyTorch 参考教程
网络环境不稳定的情况下安装PyTorch有一定概率会出错,所以可以在环境内安装好 PyTorch。推荐从一些国内镜像源下载好 PyTorch 安装包后在本地离线安装。可以参考下面的教程,但是注意教程中使用的是下载官方包的链接,需要替换成国内镜像源的对应网站。
参考教程:PyTorch 离线版本安装教程
安装完后记得重新跑一下`uv pip install --group main -e .`把漏掉的包重新安装上测试 CUDA 环境 (NVIDIA GPU 用户): 安装完依赖后(特别是 PyTorch),运行以下命令测试 CUDA 是否配置正确并能被 PyTorch 识别:
bashpython -c "import torch; print('CUDA是否可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('PyTorch版本:', torch.__version__)"
如果
CUDA是否可用:
显示True
,则表示配置成功。复制配置文件模板
将配置文件模板复制一份并重命名为
settings.jsonc
,后续配置修改在此文件进行:cmdcopy settings.template.jsonc settings.jsonc
(可选) 安装 FlashAttention 为了加速训练和推理(如果你的硬件支持),可以尝试安装 FlashAttention。
参考教程:Windows环境下flash-attention安装_flashattention2 windows 安装-CSDN博客
⚠️ FlashAttention 在 Windows 上安装较复杂,且并非所有显卡支持,如遇失败可跳过,项目仍可运行,只是推理速度稍慢。
(适用于 0.2.1 ~ 0.2.2 版本)禁用 vLLM 功能模块
从 0.2.1 版本开始,WeClone 项目引入了
vLLM
模块,但由于vLLM
不支持 Windows 环境,为避免报错,需要手动禁用相关功能。✅ 0.2.21 及以上版本已在
pyproject.toml
中添加自动环境检测,无需手动操作,可忽略本指南。如果你当前使用的是 0.2.1 ~ 0.2.2 的旧版本,可选择以下任一方法:
方法一(推荐,最简单):
- 卸载
vllm
bashgit pull https://github.com/xming521/WeClone.git # 拉取最新代码 uv pip uninstall vllm # 卸载 vLLM 模块
- 禁用数据清洗或启用在线清洗
打开配置文件
settings.jsonc
,根据需求修改clean_dataset
配置项:- 若需禁用数据清洗,将
"enable_clean": false
; - 若需启用在线清洗,则保持
"enable_clean": true
,同时设置"online_llm_clear": true
,并填写相应的 LLM API 信息。
json"clean_dataset": { "enable_clean": true, "clean_strategy": "llm", "llm": { "accept_score": 2, // 可接受的 LLM 打分阈值,1 分最差,5 分最好。低于该分数的数据将被过滤掉 } }, "online_llm_clear": false, "base_url": "https://xxx/v1", "llm_api_key": "xxxxx", "model_name": "xxx", // 建议使用参数量较大的模型,如 DeepSeek-V3 "clean_batch_size": 10
方法二(不推荐)
- 注释掉 vLLM 引用
打开
WeClone/weclone/data/clean/strategies.py
,将vLLM
的导入语句注释掉:python# from weclone.core.inference.vllm_infer import infer as infer # 注释此行
完整的导入部分如下(供参考):
pythonimport json import pandas as pd from abc import ABC, abstractmethod from dataclasses import dataclass from typing import Any, Dict, List, Union from langchain_core.prompts import PromptTemplate from weclone.data.models import QaPair, CutMessage, QaPairScore from weclone.prompts.clean_data import CLEAN_PROMPT # from weclone.core.inference.vllm_infer import infer as infer from weclone.utils.log import logger
- 禁用数据清洗功能
打开配置文件
settings.jsonc
,修改clean_dataset
配置项:json"clean_dataset": { "enable_clean": false, // 将 true 改为 false,禁用数据清洗 "clean_strategy": "llm", "llm": { "accept_score": 2 // 可接受的 LLM 打分阈值(1分最差,5分最好) } }
- 屏蔽 llamafactory 自动加载 vLLM
llamafactory
导入时可能尝试加载vllm_engine
,在 Windows 上会报错。为避免问题,在以下文件最顶部添加 mock 脚本:WeClone/weclone/eval/web_demo.py
WeClone/weclone/server/api_service.py
插入如下代码(必须放在文件开头、其他导入语句之前):
pythonimport sys import types from unittest.mock import MagicMock fake_vllm_engine = types.ModuleType('vllm_engine') fake_vllm_engine.VllmEngine = MagicMock sys.modules['llamafactory.chat.vllm_engine'] = fake_vllm_engine # 以下为原始文件的其他代码
- 卸载
到这里,恭喜你完成了全部的环境配置。你已经完成了整个项目部署最难的部分!!!