当前位置: 首页 > news >正文

LLM - LlamaFactory 的大模型推理 踩坑记录

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/148538165

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


LL

在使用 LlamaFactory 大模型进行推理时,记录了遇到的诸多问题及解决过程,为后续应用提供经验参考。

下载地址 LLaMA-Factory:https://github.com/hiyouga/LLaMA-Factory

也可使用代理下载,注意,下载之后,需要修改 remote 地址,即:

git clone https://ghfast.top/https://github.com/hiyouga/LLaMA-Factory.git
git remote set-url origin https://github.com/hiyouga/LLaMA-Factory.git

当前 Commit ID: e3d5e0fa28cdf5530ca7fae6feb04f88c1807de9

安装 Conda 环境,参考:使用 Docker 配置 PyTorch 研发环境

建议使用 Docker 环境,配置环境,安装 Python 依赖,以及 llama-factory 包:

cd LLaMA-Factory
pip install -r requirements.txt
# pip uninstall llamafactory
pip install -e ".[torch,metrics]"
# llamafactory-0.9.3.dev0

其他,相关环境:

pip install peft transformers datasets deepspeed sentencepiece
pip install vllm --timeout=120
pip install trl==0.9.6

注意:TRL 库 不是最新版本,使用 0.9.6 版本。

如果使用 webui 模式推理,需要修改源码的 IP 地址与 端口,同时,要重新安装 llama-factory 包,包括3处:

  • src/webui.py,1处
  • src/llamafactory/webui/interface.py,2处
gradio_ipv6 = is_env_enabled("GRADIO_IPV6")
# gradio_share = is_env_enabled("GRADIO_SHARE")
# server_name = os.getenv("GRADIO_SERVER_NAME", "[::]" if gradio_ipv6 else "0.0.0.0")
print("Visit http://ip:port for Web UI, e.g., http://127.0.0.1:8090")
fix_proxy(ipv6_enabled=gradio_ipv6)
create_ui().queue().launch(share=False, server_name="0.0.0.0", server_port=8090, inbrowser=True)

启动WebUI界面:

export DISABLE_VERSION_CHECK=1
CUDA_VISIBLE_DEVICES="0,1" llamafactory-cli webui

多卡环境需要指定环境变量,否则显存溢出。

启动页面:

页面

显存占用:

显存

批量结束进程,即:

ps -ef | grep "python3.11" | grep -v grep | awk '{print $2}'
ps -ef | grep "python3.11" | grep -v grep | awk '{print $2}' | xargs kill -9

参考:

  • 使用 Docker 配置 PyTorch 研发环境
  • 使用 LLaMA-Factory 微调大模型 环境配置与训练推理
http://www.xdnf.cn/news/948673.html

相关文章:

  • 算法思想之广度优先搜索(BFS)及示例(亲子游戏)
  • 云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
  • 安卓贝利自动点击器高级版下载安装教程
  • Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
  • SSRF由浅入深
  • 【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
  • SAP Fiori UI5 开发环境搭建和部署(含增强开发)
  • 从零手写Java版本的LSM Tree (一):LSM Tree 概述
  • XXL-JOB——源码分析解读(2)
  • 什么是VR全景技术
  • 【JMeter】接口断言
  • 在WSL2的Ubuntu镜像中安装Docker
  • claude3.7高阶玩法,生成系统架构图,国内直接使用
  • CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?
  • Linux信号保存与处理机制详解
  • 自然语言处理——循环神经网络
  • PKIX path building failed问题小结
  • Element-Plus:popconfirm与tooltip一起使用不生效?
  • Spring数据访问模块设计
  • Python自然语言处理库之gensim使用详解
  • Appuploader:在WindowsLinux上完成iOS APP上架的一种解决方案
  • RLHF vs RLVR:对齐学习中的两种强化方式详解
  • Rsync+inotify+nfs实现数据实时备份方案
  • Socket 编程
  • 架构设计之存储高性能——非关系型数据库(NoSQL)
  • 代购商城系统怎么选?从业务痛点看系统核心价值
  • SOC-ESP32S3部分:QA-关于唤醒词更改及配置操作步骤
  • 解锁Vscode:C/C++环境配置超详细指南
  • Python训练营---DAY49
  • 卷积神经网络设计指南:从理论到实践的经验总结