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

魔塔社区使用llamafactory微调AI阅卷试题系统

启动 LLaMA-Factory

1. 安装 LLaMA-Factory

执行安装指令

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

解决依赖冲突

如果遇到依赖冲突,可使用以下命令安装,不安装依赖项:

pip install --no-deps -e .

检查依赖冲突:

pip check

发现 pytorch 版本不匹配,LLaMA-Factory 需要 PyTorch 2.5.1,而当前环境为 2.3.x,退出后更改服务器镜像重登后解决问题。
在这里插入图片描述

2. 启动 LLaMA-Factory WebUI

执行以下命令启动 WebUI:

llamafactory-cli webui

训练 AI 题库

1. 上传数据集

将训练数据上传至 LLaMA-Factory 指定目录。
在这里插入图片描述

2. 修改数据集注册文件

编辑 LLaMA-Factory/data/dataset_info.json,配置数据集信息。
在这里插入图片描述

3. 下载模型(使用千问 1.5B)

from modelscope import snapshot_download
snapshot_download('Qwen/Qwen2.5-1.5B-Instruct',cache_dir="/mnt/workspace/model_data")

4. 配置参数训练

调整训练参数,优化 GPU 资源使用率。
在这里插入图片描述

5. 查询 GPU 资源占用率

pip3 install --upgrade nvitop
nvitop

根据 GPU 内存占用率调整 batch size,建议 GPU 占用率接近 90% 以提高训练速度。例如,24G 显卡可设定 batch size 为 12。
在这里插入图片描述

6. 训练评估

损失函数

观察损失函数曲线,判断模型收敛情况。
在这里插入图片描述

主观评估

在这里插入图片描述
在这里插入图片描述

评估指标

在这里插入图片描述
训练后的模型评估指标如下:

{"predict_bleu-4": 53.12,"predict_model_preparation_time": 0.0062,"predict_rouge-1": 100.0,"predict_rouge-2": 46.29,"predict_rouge-l": 100.0,"predict_runtime": 44.29,"predict_samples_per_second": 1.219,"predict_steps_per_second": 0.113
}
预测质量指标
  • BLEU-4:53.12(衡量生成文本和参考文本的匹配度)
  • ROUGE-1:100.0(单个词匹配度)
  • ROUGE-2:46.29(双词组匹配度)
  • ROUGE-L:100.0(最长公共子序列匹配度)
推理性能指标
  • 模型准备时间:0.0062 秒
  • 推理时间:44.29 秒
  • 每秒样本数:1.219
  • 每秒推理步骤数:0.113
评估总结
  • 文本生成质量 需要优化,可通过增加训练数据或优化超参数提升。
  • 推理性能 较慢,可调整 batch size 或优化计算资源。

7. 合并导出模型

模型训练完成后,可以进行合并并导出。

测试导出模型的加载情况,确保其可用性。
在这里插入图片描述


可能遇到的问题

1. 训练结果与部署效果不一致

  • 训练时的对话模板与部署时的对话模板不匹配。
  • 需要指定正确的模板,例如:
    vllm serve <model> --chat-template deepseek3.jinja
    

2. 训练效果不理想

可能的原因包括:

  • 模型选择:可能需要更适合的基础模型。
  • 训练轮次:训练次数不足。
  • 训练集质量:数据可能存在噪声或格式问题。

部署 LLaMA-Factory

1. 启动模型服务

vllm serve /mnt/workspace/model_data/Qwen/Qwen2.5-1.5B-Instruct-finish-merge

2. 配置 Open WebUI 进行部署

安装 Open WebUI

pip install open-webui

设置环境变量

export HF_ENDPOINT=https://hf-mirror.com
export ENABLE_OLLAMA_API=False  # 禁用 OLLAMA API
export OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1

启动 Open WebUI

open-webui serve

部署运行效果

成功后,可以在浏览器访问 WebUI 进行交互。
在这里插入图片描述


总结

  1. 安装 LLaMA-Factory,解决 PyTorch 版本冲突。
  2. 训练 AI 题库,上传数据集、下载预训练模型、优化 GPU 使用。
  3. 评估训练结果,分析 BLEU/ROUGE 评分和推理性能。
  4. 部署模型,使用 VLLM 启动服务,配置 Open WebUI 进行交互。

相关文章:

魔塔社区使用llamafactory微调AI阅卷试题系统

启动 LLaMA-Factory 1. 安装 LLaMA-Factory 执行安装指令 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"解决依赖冲突 如果遇到依赖冲突&#xff0c;可使用以下命令安装&#xff0c;不…...

Java面试黄金宝典29

1. 什么是普通索引和唯一性索引 定义&#xff1a; 普通索引&#xff1a;是最基本的索引类型&#xff0c;它为数据表中的某一列或多列建立索引&#xff0c;以加快数据的查询速度。它不限制索引列的值重复&#xff0c;允许存在多个相同的值。唯一性索引&#xff1a;在普通索引的基…...

git `switch` 命令详解与实用示例

文章目录 git switch 命令详解与实用示例git switch vs git checkoutgit switch 用法1. 切换到已有分支2. 创建并切换到新分支3. 切换到上一个分支4. 切换到远程分支&#xff08;自动创建本地分支并追踪远程&#xff09;5. 放弃未提交的修改并切换分支 总结 git switch 命令详解…...

Oracle中文一二三四排序【失败】

原文地址&#xff1a; Oracle数据库如何对中文的一二三四五六七八九十数进行正序排列排序_中文数字排序-CSDN博客 自定义排序函数 -- 自定义中文映射阿拉伯数字函数 CREATE OR REPLACE FUNCTION P_ORDER_CHINESE_TO_ARABIC(V_NUM VARCHAR2) RETURN NUMBER IS BEGIN-- 根据…...

AWS S3 和 Lambda 使用

目录&#xff1a; AWS概述 EMR Serverless AWS VPC及其网络 关于AWS网络架构的思考 AWS S3 和 Lambda 使用 本文将通过一个实例来说明如何使用 AWS S3 和 Lambda。 使用场景&#xff1a;通过代码将文件上传到S3&#xff0c;该文件需要是公开访问的&#xff0c;并对上传的文件进…...

Mysql 在什么样的情况下会产生死锁?

在 MySQL 中&#xff0c;死锁是指两个或多个事务相互等待对方释放锁&#xff0c;导致所有相关事务无法继续执行的情况。死锁会影响数据库的并发性能&#xff0c;因此需要及时检测并处理。假设有两个事务 T1 和 T2&#xff1a; 事务 T1 首先锁定 表 A 的行 1。然后尝试锁定 表 B…...

符号秩检验

内容来源 非参数统计&#xff08;第2版&#xff09; 清华大学出版社 王星 褚挺进 编著 符号秩检验 在符号检验的基础上&#xff0c;增加了数据绝对值大小的信息 检验统计量 用一个简单的例子来说明 样本数据 X i , i 1 , ⋯ , 6 X_i,i1,\cdots,6 Xi​,i1,⋯,6 如下 X …...

RainbowDash 的 Robot

H RainbowDash 的 Robot - 第七届校赛正式赛 —— 补题 题目大意&#xff1a; 给一个 n ∗ m n*m n∗m 的二维网格&#xff0c;在第 i i i 列中&#xff0c;前 a i a_i ai​ 单元格被阻断&#xff0c;无法通行&#xff0c;即 [ 1 , a i ] [1,a_i] [1,ai​] 。 一个机器人正…...

yum repolist all全部禁用了 怎么办

文章目录 步骤思考解决yum仓库全部被禁用的问题步骤思考: 检查仓库状态:运行yum repolist all,查看所有仓库的启用状态。 被禁用的仓库会显示为disabled。 启用所有仓库:可以逐一启用,或者使用命令批量启用。 例如使用yum-config-manager --enable ‘*’,但需要注意是否有…...

SQL WHERE 与 HAVING

WHERE 和 HAVING 都是 SQL 中用于筛选数据的子句&#xff0c;但它们有重要的区别 WHERE 子句 在 分组前 过滤数据 作用于 原始数据行 不能使用聚合函数 执行效率通常比 HAVING 高 SELECT column1, column2 FROM table WHERE condition; HAVING 子句 在 分组后 过滤数据 …...

如何在 Unity3D 导入 Spine 动画

一、前言 《如何在 Unity3D 项目中导入 Spine 动画》&#xff0c;虽然在网上有很多这种文章&#xff0c;直接将问题交给 DeepSeek 也能得到具体的操作流程&#xff0c;但是照着他们提供的方法还是能遇到几个问题&#xff0c;比如&#xff1a; AI 回答没有提到 Unity 无法识别.…...

子网划分2

子网分配的问题&#xff0c;下列vlsm如何设置&#xff1f; 某公司申请了一个C类202.60.31.0的IP地址&#xff0c;要求设置三个子网&#xff0c;一个为100台主机&#xff0c;一个为50台主机&#xff0c;另一个为50台主机&#xff0c;用VLSM如何设置&#xff1f; 哪位高手指教一…...

C++的UDP连接解析域名地址错误

背景 使用c开发一个udp连接功能的脚本&#xff0c;可以接收发送数据&#xff0c;而且地址是经过内网穿透到外网的 经过 通常发送数据给目标地址&#xff0c;需要把目的地址结构化&#xff0c;要么使用inet_addr解析ip地址&#xff0c;要么使用inet_pton sockaddr_in target…...

23种设计模式中的观察者模式

定义了一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;其所有依赖者都会收到通知并自动更新。 观察者模式是一种发布-订阅模式。它让发送通知的一方&#xff08;被观察者&#xff09;和接收通知的一方&#xff08;观察者&#xff09;能够解耦&#xf…...

论文笔记:ASTTN模型

研究现状 现有研究大多通过分别考虑空间相关性和时间相关性或在滑动时间窗口内对这种时空相关性进行建模&#xff0c;而未能对直接的时空相关性进行建模。受最近图领域Transformer成功的启发&#xff0c;该模型提出利用局部多头自关注&#xff0c;在自适应时空图上直接建立跨时…...

Java单例模式详解

单例模式详解 一、单例模式概述 单例模式(Singleton Pattern)是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。 核心特点 唯一实例&#xff1a;保证一个类只有一个实例存在全局访问&#xff1a;提供统一的访问入…...

Linux命令-tar

tar 命令的完整参数列表&#xff1a; 参数 描述 -c 创建新的归档文件 -x 解压归档文件 -t 列出归档文件内容 -r 追加文件到归档文件 -u 更新归档文件中的文件 -d 从归档文件中删除文件 -f 指定归档文件的名称 -v 显示详细信息&#xff08;verbose&#xff09; -z 使用 gzip 压缩…...

深入解析 Git Submodule:从基础到高级操作指南

深入解析 Git Submodule&#xff1a;从基础到高级操作指南 一、Git Submodule 是什么&#xff1f; git submodule 是 Git 提供的一个强大功能&#xff0c;允许在一个 Git 仓库&#xff08;主仓库&#xff09;中嵌入另一个独立的 Git 仓库&#xff08;子模块&#xff09;。主仓…...

2025-4-2 蓝桥杯刷题情况(分布式队列)

1.题目描述 小蓝最近学习了一种神奇的队列:分布式队列。简单来说&#xff0c;分布式队列包含 N 个节点(编号为0至N-1&#xff0c;其中0号为主节点)&#xff0c;其中只有一个主节点&#xff0c;其余为副节点。 主/副节点中都各自维护着一个队列&#xff0c;当往分布式队列中添加…...

C/C++指针核心难点全解析:从内存模型到实战避坑指南

引言&#xff1a;指针为何被称为C/C的“灵魂”&#xff1f; 指针是C/C语言中最强大的工具之一&#xff0c;也是开发者通往底层编程的必经之路。它直接操作内存地址的能力&#xff0c;赋予了程序极高的灵活性和性能优势。然而&#xff0c;指针的复杂性也让无数初学者“折戟沉沙…...

ray.rllib-入门实践-12-2:在自定义policy中注册使用自定义model(给自定义model新增参数)

建议先看博客 ray.rllib-入门实践-12-1&#xff1a;在自定义policy中注册使用自定义model &#xff0c; 本博客与之区别在于可以给自定义的 model 新增自定义的参数&#xff0c;并通过 config.model["custom_model_config"] 传入自定义的新增参数。 环境配置&#xf…...

【Java中级】10章、内部类、局部内部类、匿名内部类、成员内部类、静态内部类的基本语法和细节讲解配套例题巩固理解【5】

❤️ 【内部类】干货满满&#xff0c;本章内容有点难理解&#xff0c;需要明白类的实例化&#xff0c;学完本篇文章你会对内部类有个清晰的认知 &#x1f495; 内容涉及内部类的介绍、局部内部类、匿名内部类(重点)、成员内部类、静态内部类 &#x1f308; 跟着B站一位老师学习…...

swift-7-汇编分析闭包本质

一、汇编分析 fn1里面存放的东西 func testClosure2() {class Person {var age: Int 10}typealias Fn (Int) -> Intvar num 0func plus(_ i: Int) -> Int {num ireturn num}return plus} // 返回的plus和num形成了闭包var fn1 getFn()print(fn1(1)) // 1print(fn1(…...

Linux: 进程信号初识

目录 一 前言 二 信号的感性认识 三 信号处理常见方式 四 系统信号列表 五 信号的保存 六 信号的产生 1. 通过终端按键产生信号 2. 通过系统调用向进程发送信号 3. 硬件异常产生信号 4. 软件条件产生信号 一 前言 在Linux操作系统中&#xff0c;进程信号是一个非常重…...

python 项目怎么通过docker打包

python 项目怎么通过docker打包 1. 编写Dockerfile 在Python项目的根目录下创建一个名为 Dockerfile 的文件,其内容示例如下: # 使用Python基础镜像 FROM python:3.9-slim# 设置工作目录 WORKDIR /app# 将当前目录下的所有文件复制到工作目录 COPY . /app# 安装项目依赖 R…...

MySQL-- 函数(单行函数):数值函数, 字符串函数

目录 1.数值函数 2. 字符串函数 1.数值函数 ABS:绝对值 ; SIGN&#xff1a;数字正负&#xff0c;正返回1&#xff0c;负返回-1 , 0返回0 ; CEIL,CEILING:取数上面的数 &#xff1b;FLOOR:取数下面的数 &#xff1b; MOD&#xff1a;取余 #基本的操作 SELECT ABS(-123),ABS…...

CSS--解决float: right在空间不够时会自动往下移的问题

原文网址&#xff1a;CSS--解决float: right在空间不够时会自动往下移的问题-CSDN博客 简介 众所周知&#xff0c;float: right在空间不够时会自动往下移。那么怎样让它不要往下移呢&#xff1f;本文介绍解决方案。 需求 我想写一个无需列表&#xff0c;每个列表后边跟一个…...

深度学习 Deep Learning 第14章 自编码器

深度学习 Deep Learning 第14章 自编码器 内容概要 本章深入探讨了自编码器&#xff08;Autoencoders&#xff09;&#xff0c;这是一种用于特征学习和降维的神经网络架构。自编码器通过编码器和解码器两个部分&#xff0c;将输入数据映射到一个内部表示&#xff08;编码&…...

C++(匿名函数+继承+多态)

#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>using namespace std;// 基类 Weapon class Weapon { protected:int atk; public:Weapon…...

软考中级网络工程师第十一章网络管理

11-1考点分析 11-2网络管理基础&#xff08;记忆&#xff09; 网络管理体系结构 网络管理五大功能域&#xff1a;故障管理、配置管理、计费管理、性能管理和安全管理。 助记&#xff1a; “安配能计障” 故障管理&#xff1a;尽快发现故障&#xff0c;找出故障原因&#x…...