llama-factory是一个零代码大模型训练平台,可以快速搭建模型训练环境,并提供丰富的模型训练功能。可以选择前往github下载llama-factory项目的压缩包。但我下面是直接命令行下载的,但其实差不多,就是不用git clone https://gitee.com/hiyouga/LLaMA-Factory.git下载,自己手动下载到本地。
我是在anaconda的虚拟环境下载的,hi徐你也可以不用 # 创建新环境(指定Python 3.10,适配绝大多数依赖) conda create -n llama_factory_env python=3.10 -y # 激活新环境 conda activate llama_factory_env 在虚拟环境下想要存放的路径下载llamafactory框架,或者直接cmd中执行也可,但注意执行的路径要切换到自己想存放的位置 git clone https://gitee.com/hiyouga/LLaMA-Factory.git # 进入LlamaFactory根目录(替换成你的实际路径)即框架下载好的位置 cd D:\xxx\LLaMA-Factory # 一键安装所有依赖(框架自带的requirements.txt,无需额外下载) pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 以可编辑模式安装LlamaFactory(关联到当前环境),执行这条命令也要在下载框架的目录下 pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple用框架自带的
requirements.txt去下载安装相关依赖,完全匹配当前分支的依赖版本,避免 "手动指定版本出错"。安装好后可以执行llamafactory-cli version来快速校验安装是否成功,如下界面就是安装成功了,然后执行运行webui.py的代码就可以得到下图界面
当你选择大模型时可以发现有很多版本,这些模型名称中的后缀(
Chat/Math/Base)代表不同的模型定位和用途,针对 "微调大模型" 的需求,选择逻辑如下:下面时出现的一些下载情况,走了很多弯路,为啥下面我一开始非要单独下载一些依赖,导致很多依赖的版本都互相冲突。所以下面内容可以不看。
在anaconda中创建
conda create -n llama_factory_env python=3.10 -y conda activate llama_factory_env # 安装 CUDA 12.1(与 PyTorch 2.1+ 适配,LlamaFactory 推荐版本) conda install cudatoolkit=12.1 cudnn=8.9 -c conda-forge -y出现如下报错
当我下载安装好git就可以了,注意下载时,可以放在自己想放的位置,其实不同在本地cmd中执行也可,在虚拟环境下是一样的。
git clone --depth 1 https://gitee.com/hiyouga/LLaMA-Factory.git注意执行 下面的llamafactory核心依赖时,要在llamafactory的根目录下执行,不然会出下面如下报错
问题不是路径本身的问题 ,也不是 "虚拟环境存储路径" 的问题,而是你执行
pip install -e ".[torch,metrics]"时,当前目录不是 LlamaFactory 的代码根目录 ------ 这条命令必须在包含setup.py/pyproject.toml的 LlamaFactory 文件夹内执行,否则 pip 找不到安装配置文件,自然会报错。之前用
git clone下载的 LlamaFactory 代码,完整路径应该是:D:\software\liulanqi\weitiao\llamafactory\warehouse\LLaMA-Factory(进入这个文件夹,能看到setup.py、webui.py、requirements.txt等文件,就是正确目录。在对应目录下执行下面这条命令就可以
pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple之前在
warehouse目录执行pip install torch能成功,但执行pip install -e ".[torch,metrics]"失败,核心是这两条pip命令的逻辑完全不同------ 前者是 "安装公共库",后者是 "安装当前目录下的本地项目"(LlamaFactory 这个开源项目),核心依赖当前目录的配置文件。如上图所示还是出现了问题,这是安装
numpy时触发的编译环境缺失错误 ,原因是 Windows 系统缺少 C/C++ 编译器(比如 Visual Studio 的编译工具),导致numpy无法从源码编译安装。
pip install numpy==1.26.4 --only-binary :all: -i https://pypi.tuna.tsinghua.edu.cn/simple (--only-binary表示只下载预编译好的包,跳过源码编译) 执行完后,在执行上面执行过的如下命令 pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple这样就可以顺利安装好依赖了。
如下命令安装可选依赖
# 安装 Web UI 可视化界面(新手必装) pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装模型量化依赖(节省显存,12GB 显存必备) pip install bitsandbytes accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装中文分词依赖(微调中文模型必备) pip install jieba zhconv -i https://pypi.tuna.tsinghua.edu.cn/simple执行第二条命令时出现如图报错
这个报错是依赖版本冲突 :安装
bitsandbytes时,pip 自动把你的torch版本升级到了2.9.1,但原来的torchaudio和torchvision是依赖torch==2.1.0+cu121的,新版本torch 2.9.1和它们不兼容。
执行命令,先把不兼容的bitsandbytes 0.48.2删掉: pip uninstall bitsandbytes -y 再次执行torch的安装命令,此时环境里已经没有冲突的bitsandbytes了,就能确保无冲突正常安装: pip install torch==2.1.0 torchaudio==2.1.0 torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cu121 安装适配torch 2.1.0的bitsandbytes版本。bitsandbytes 0.41.1是和torch 2.1.0兼容的稳定版本,执行: pip install bitsandbytes==0.41.1 accelerate -i https://pypi.tuna.tsinghua.edu.cn/simple执行完上面代码觉得可以了后,通过使用
llamafactory-cli version来快速校验安装是否成功。出现如下图报错,transformers库版本与torch版本不兼容 导致的:因为transformers新版本用到了torch.utils._pytree.register_pytree_node,但你当前的torch 2.1.0中这个接口还没开放(或命名不同)。但是明明没手动执行
pip install transformers,但transformers却出现在环境里,核心原因是执行pip install -e ".[torch,metrics]"时,pip 会自动下载 / 安装 LlamaFactory 声明的依赖,transformers就是其中之一。
--no-deps如何阻断这个自动下载?
- 不加
--no-deps:pip 会 "先装依赖,再关联 LlamaFactory",且优先装最新版依赖(导致 transformers 升级到 4.36+);- 加
--no-deps:pip 会 "跳过所有依赖的安装 / 升级,只关联 LlamaFactory",完全不碰 transformers、torch 等库。先卸载
# 卸载当前高版本transformers pip uninstall transformers -y正确的依赖安装顺序
# 先装适配torch 2.1.0的transformers 4.35.2 pip install transformers==4.35.2 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps但安装第一步时发现如下报错,卸载再去安装又和别的依赖冲突了。
报错太多实在时一直出现版本安装问题,直接执行pip check会很清晰。
发现处理pip check,还有如下命令可以很好的查看依赖情况。
# 安装依赖树工具 pip install pipdeptree -i https://pypi.tuna.tsinghua.edu.cn/simple # 查看所有依赖的版本+依赖关系 pipdeptree # 只看冲突的依赖(过滤关键信息) pipdeptree --warn silence | findstr /i "conflict" # Windows # pipdeptree --warn silence | grep -i "conflict" # Linux/Mac因为出现的依赖问题太多,后来我直接删除了虚拟环境,重新下载依赖
# 1. 先退出当前环境(如果已激活) conda deactivate # 2. 删除llama_factory_env环境(彻底清理) conda remove -n llama_factory_env --all -y # 创建新环境(指定Python 3.10,适配绝大多数依赖) conda create -n llama_factory_env python=3.10 -y # 激活新环境 conda activate llama_factory_env 下载llamafactory框架命令,和文章一开头的方法一样,只不过我没删除框架,所以可以不用再下载,而且要分清楚,之前那些版本冲突的依赖是下载到虚拟环境中的,所以只要删除虚拟环境就可以清空所有依赖。
这是之前发现的一些问题。
发现下图问题,下载的 LlamaFactory 代码包不完整 / 分支不对 ,导致缺少 Web UI 核心文件(
webui.py),可能用git clone --depth 1只克隆了最新版本,但如果仓库的默认分支没有 Web UI 文件,就会缺失,但其实明明webui.py文件就在src文件下。这个ai骗我。考虑到上面出现的两个问题,所以下面打算清除之前下载的内容(下载的llamafactory框架,就是删除这个文件夹即可),重新来下载。
如下重新下载,注意可以切换到自己想要的路径下下载,可以在cmd中下载,也可以在虚拟环境中执行。
# 克隆完整仓库(不限制depth,确保文件齐全) git clone https://gitee.com/hiyouga/LLaMA-Factory.git


















