记录通过在 AutoDL 算力云(Linux)上用 LLaMA-Factory 的 WebUI 微调和训练模型,微调后下载到本地用 Ollama 运行的全流程,代码和界面操作为主,记关键点和坑。

环境准备

  • AutoDL 环境:Linux(Ubuntu 20.04 常见),租 NVIDIA GPU(推荐 A100 40GB,显存 ≥24GB)
  • 本地环境:Windows 10/11,装 Ollama
  • 软件
    • Python 3.9
    • CUDA 11.8 或 12.x(AutoDL 镜像自带)
  • 网络:AutoDL 需梯子(Hugging Face 下模型)

AutoDL 云端配置与 WebUI 微调

1. 租用实例与检查
  • 登录 AutoDL,选 GPU 实例(A100 40GB)。
  • 进终端,确认:
    python --version  # 3.9.x
    nvidia-smi # GPU 和 CUDA
2. 下载 LLaMA-Factory
  • LLaMA-Factory 项目页,点“Code” > “Download ZIP”。
  • 用 AutoDL 文件管理或 SFTP 上传到服务器。
  • 解压:
    unzip LLaMA-Factory-main.zip
    mv LLaMA-Factory-main LLaMA-Factory
    cd LLaMA-Factory
3. 配置环境
  • 建虚拟环境:
    python -m venv venv
    source venv/bin/activate
  • 装依赖:
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install gradio # WebUI 必需
  • 确认 PyTorch:
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

    检查:

    python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
4. 启动 WebUI
  • 运行:
    python src/webui.py
  • 输出地址(类似 http://0.0.0.0:7860),AutoDL 需端口映射:
    • 去 AutoDL 控制台,设置“自定义端口”,映射 7860。
    • 浏览器打开公网地址(比如 http://xxx.autodl.com:7860)。
  • :7860 端口可能被防火墙挡,确认开放。
5. WebUI 数据集准备
  • 内置数据集:WebUI 的“Dataset” Tab,选 alpaca_zh(测试用)。
  • 自定义数据集
    • 格式:JSON,参考 data/alpaca_zh.json
      [
      {"instruction": "你好", "input": "", "output": "你好!有什么可以帮你的?"}
      ]
    • 上传:
      • 在“Dataset” Tab,点“Upload”,选 my_data.json
      • 在“Custom Dataset” 填文件名(my_data),点“Register”。
  • 注意:数据至少几百条,格式错会报错。
6. WebUI 微调
  • 模型选择

    • 在“Model” Tab,选基模型(比如 meta-llama/Llama-3-8B-Instruct)。
    • 提前下模型:
      huggingface-cli download meta-llama/Llama-3-8B-Instruct --local-dir /root/models/llama3
  • 训练设置
    • 去“Train” Tab。
    • Adapter:选“LoRA”。
    • Dataset:选 my_dataalpaca_zh.
    • 参数:
      • Batch Size:4
      • Learning Rate:5e-6
      • Epochs:3
      • LoRA Target:q_proj,v_proj
      • Output Dir:./output/llama3_finetuned
    • 点“Start Training”。
  • 输出:LoRA 适配器存 output/llama3_finetuned
7. 合并与导出
  • WebUI 无直接导出,用 CLI:
    llamafactory-cli export \
    --model_name_or_path /root/models/llama3 \
    --adapter_name_or_path output/llama3_finetuned \
    --export_dir ./exported_model \
    --export_size 2 \
    --export_legacy_format False
  • 导出到 ./exported_model
8. 下载到本地
  • 压缩:
    tar -czvf llama3_finetuned.tar.gz ./exported_model
  • 下到本地(D:\Models):
    • 用 AutoDL 文件管理或 SFTP。

本地 Ollama 运行

1. 安装 Ollama
  • Windows:

2. 转换模型为 GGUF
  • llama.cpp
    git clone https://github.com/ggerganov/llama.cpp
    cd llama.cpp
    pip install -r requirements.txt
  • 转换:
    python convert-hf-to-gguf.py D:\Models\exported_model --outfile llama3_finetuned.gguf
3. 创建 Ollama Modelfile
  • 新建 Modelfile
    FROM ./llama3_finetuned.gguf
    TEMPLATE """
    {{ .System }}
    {{ .Prompt }}
    """
  • 导入:
    ollama create llama3_finetuned -f Modelfile
4. 运行
  • 启动:
    ollama run llama3_finetuned
  • 测试:
    >>> 你好
    你好!有什么可以帮你的?

注意

  • 网络:AutoDL 下模型慢,配代理或用国内镜像。
  • 显存:LoRA 批次调小(4 或 2),A100 40GB 跑 8B 稳。
  • 数据集:几百条起步,JSON 格式不能乱。
  • 端口:7860 被占,改 src/webui.pyport

问题

  • WebUI 打不开:端口没映射或防火墙挡。
  • 微调失败:显存爆或数据格式错,查 output/llama3_finetuned 日志。
  • Ollama 导入失败:GGUF 文件坏,确认路径。
  • 推理慢:本地 CPU 卡,试 4-bit 量化。

补充

  • 监控:WebUI 无曲线,CLI 跑 TensorBoard:
    pip install tensorboard
    tensorboard --logdir output/llama3_finetuned
  • 数据集:用 Easy Dataset 造数据。

LLaMA-Factory AutoDL WebUI 微调与本地 Ollama 运行笔记的更多相关文章

  1. hadoop 2.7.3本地环境运行官方wordcount-基于HDFS

    接上篇<hadoop 2.7.3本地环境运行官方wordcount>.继续在本地模式下测试,本次使用hdfs. 2 本地模式使用fs计数wodcount 上面是直接使用的是linux的文件 ...

  2. hadoop 2.7.3本地环境运行官方wordcount

    hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...

  3. spark在idea中本地如何运行?(处理问题NoSuchFieldException: SHUTDOWN_HOOK_PRIORITY)

    spark在idea中本地如何运行? 前几天尝试使用idea在本地运行spark+scala的程序,出现了问题,http://www.cnblogs.com/yjf512/p/7662105.html ...

  4. jinkens + svn 把代码更新到本地在运行。(方法比较笨,只是想实现自己的想法。把代码更新下来在运行。)

    jinkens + svn 把代码更新到本地在运行.

  5. 无法定位 Local Database Runtime 安装。请验证 SQL Server Express 是否正确安装以及本地数据库运行时功能是否已启用。

    错误描述: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provide ...

  6. vue打包之后在本地运行,express搭建服务器,nginx 本地服务器运行

    一.使用http-server 1.安装http-server npm install -g http-server 2.通过命令进入到dist文件夹 3.运行http-server 以上在浏览器输入 ...

  7. Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境

    Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境 环境准备 安装jdk环境 安装idea 配置maven 搭建好的hadoop集群 配置hadoop ...

  8. 大数据入门第八天——MapReduce详解(四)本地模式运行与join实例

    一.本地模式调试MR程序 1.准备 参考之前随笔的windows开发说明处:http://www.cnblogs.com/jiangbei/p/8366238.html 2.流程 最重要的是设置Loc ...

  9. 攻城狮在路上(陆)-- 配置hadoop本地windows运行MapReduce程序环境

    本文的目的是实现在windows环境下实现模拟运行Map/Reduce程序.最终实现效果:MapReduce程序不会被提交到实际集群,但是运算结果会写入到集群的HDFS系统中. 一.环境说明:     ...

  10. Form_Form Builder本地部署运行的实现(案例)

    2014-08-09 Created By BaoXinjian

随机推荐

  1. Win11系统软件固定到开始菜单的方法

    很多电脑基地的用户使用了我们的Win11操作系统,觉得都说很不错,但是却不知道怎么把一些常用软件固定到开始菜单里面,其实方法还是很简单的,下面就和技术员小编一起来看看具体的操作方法吧. 在 Windo ...

  2. Burst使用场合

    使用Burst可以将你的代码变成成机器语言,来提高性能 适合大量,密集型计算的功能

  3. EF6基本使用

    1.EF基本搭建 EF也用了好几年了,但是在日常开发的时候,有时候因为偷懒,有时候因为赶项目,很多代码,多半就是Ctrl+C和Ctrl+V,慢慢的一些代码怎么写都忘记了,虽然觉得很简单,但是就是记不起 ...

  4. javascript高级程序编程-学习笔记(基础)

    1.js实现 js诞生:为了验证字段是否输出(前期) 1.1分类 Esmascript,Dom,Bom 语法,类型,语句,关键字,保留字,操作符,对象 2.script async 立即下载 char ...

  5. 转-Java 异常处理的 20 个最佳实践,你知道几个?

    ‍ 作 者:武培轩 出 处:https://www.cnblogs.com/wupeixuan 原文链接:https://www.cnblogs.com/wupeixuan/p/11746117.ht ...

  6. centos7 网卡接口命名规则 udev 详解

    在 CentOS 7 中,网络接口的命名由 ​​udev​​ 设备管理器管理.以下是详解 udev 规则如何控制网卡命名的流程: ​​核心机制​​ ​​udev 规则目录​​ 规则文件:/usr/li ...

  7. P2330 [SCOI2005] 繁忙的都市 (最小生成树)

    测试链接:https://www.luogu.com.cn/problem/P2330 结论 最小生成树一定是最小瓶颈树 题解 #include <bits/stdc++.h> using ...

  8. 最强ORM让你开发效率提升百倍

    最强ORM让你开发效率提升百倍 easy-query在经过2年的迭代目前已经在查询领域可以说是无敌的存在,任何orm都不是对手,这几年的功能点简单罗列一下 [x] 动态join:查询涉及到对应的关系表 ...

  9. H. Zebras and Ocelots -ICPC North Central NA Contest 2017

    https://nanti.jisuanke.com/t/43375 简单的二进制变换 可以理解为当前二进制数 自增1 到2^(n-1)需要的操作数 注意输出格式 代码 #include<ios ...

  10. 一步一步学习使用LiveBindings(13) TListView的进阶使用(1)

    在<一步一步学习使用LiveBindings(12)>中,介绍了如何通过设计面板来定制TListView中Item的显示,虽然方便,但是重用性确也是一个问题:此外,当列表项的内容不固定时, ...