下载llama factory
llama-factory是一个零代码大模型训练平台,可以快速搭建模型训练环境,并提供丰富的模型训练功能。可以选择前往github下载llama-factory项目的压缩包。但我下面是直接命令行下载的,但其实差不多,就是不用git clone https://gitee.com/hiyouga/LLaMA-Factory.git下载,自己手动下载到本地。
用框架自带的requirements.txt去下载安装相关依赖,完全匹配当前分支的依赖版本,避免 “手动指定版本出错”。
安装好后可以执行llamafactory-cli version来快速校验安装是否成功,如下界面就是安装成功了,然后执行运行webui.py的代码就可以得到下图界面
当你选择大模型时可以发现有很多版本,这些模型名称中的后缀(Chat/Math/Base)代表不同的模型定位和用途,针对 “微调大模型” 的需求,选择逻辑如下:
下面时出现的一些下载情况,走了很多弯路,为啥下面我一开始非要单独下载一些依赖,导致很多依赖的版本都互相冲突。所以下面内容可以不看。
在anaconda中创建
出现如下报错
当我下载安装好git就可以了,注意下载时,可以放在自己想放的位置,其实不同在本地cmd中执行也可,在虚拟环境下是一样的。
注意执行 下面的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等文件,就是正确目录。在对应目录下执行下面这条命令就可以
之前在warehouse目录执行pip install torch能成功,但执行pip install -e ".[torch,metrics]"失败,核心是这两条pip命令的逻辑完全不同—— 前者是 “安装公共库”,后者是 “安装当前目录下的本地项目”(LlamaFactory 这个开源项目),核心依赖当前目录的配置文件。
如上图所示还是出现了问题,这是安装numpy时触发的编译环境缺失错误,原因是 Windows 系统缺少 C/C++ 编译器(比如 Visual Studio 的编译工具),导致numpy无法从源码编译安装。
这样就可以顺利安装好依赖了。
如下命令安装可选依赖
执行第二条命令时出现如图报错
这个报错是依赖版本冲突:安装bitsandbytes时,pip 自动把你的torch版本升级到了2.9.1,但原来的torchaudio和torchvision是依赖torch==2.1.0+cu121的,新版本torch 2.9.1和它们不兼容。
执行完上面代码觉得可以了后,通过使用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 等库。
先卸载
正确的依赖安装顺序
但安装第一步时发现如下报错,卸载再去安装又和别的依赖冲突了。
报错太多实在时一直出现版本安装问题,直接执行pip check会很清晰。
发现处理pip check,还有如下命令可以很好的查看依赖情况。
因为出现的依赖问题太多,后来我直接删除了虚拟环境,重新下载依赖
这是之前发现的一些问题。
发现下图问题,下载的 LlamaFactory 代码包不完整 / 分支不对,导致缺少 Web UI 核心文件(webui.py),可能用git clone --depth 1只克隆了最新版本,但如果仓库的默认分支没有 Web UI 文件,就会缺失,但其实明明webui.py文件就在src文件下。这个ai骗我。
考虑到上面出现的两个问题,所以下面打算清除之前下载的内容(下载的llamafactory框架,就是删除这个文件夹即可),重新来下载。
如下重新下载,注意可以切换到自己想要的路径下下载,可以在cmd中下载,也可以在虚拟环境中执行。