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

LLaMaFactory 微调QwenCoder模型

步骤一:准备LLamaFactory环境

首先,让我们尝试使用github的方式克隆仓库:

git config --global http.sslVerify false && git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

# 创建新环境,指定 Python 版本(以 3.10 为例)
conda create -n llamafactory python=3.10 -y# 激活环境
conda activate llamafactory

仓库已经成功克隆下来了。现在让我们进入项目目录并查看一下环境要求:

cd LLaMA-Factory && cat requirements.txt

现在让我们安装所需的依赖:

pip3 install -r requirements.txt

 将CLI 工具(如有)注册到你的环境变量中

pip install -e .

步骤二:准备模型

下载QwenCoder模型 

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('XGenerationLab/XiYanSQL-QwenCoder-3B-2504')

步骤三:准备数据集

编辑 dataset_info.json

 dataset_info.json 文件(一般在 LLaMA-Factory/data/ 目录下),添加以下内容:

  "code_train.json": {"file_name": "code_train.json","columns": {"prompt": "instruction","query": "input","response": "output"},"format": "alpaca"}

步骤四:编写微调命令

LlamaFactory 的微调命令如下:

python src/train.py \--stage sft \--model_name_or_path /root/.cache/modelscope/hub/models/XGenerationLab/XiYanSQL-QwenCoder-3B-2504 \--do_train \--dataset_dir data \--dataset code_train.json \--output_dir output/qwencoder-sft \--per_device_train_batch_size 2 \--per_device_eval_batch_size 2 \--num_train_epochs 3 \--learning_rate 2e-5 \--fp16

步骤五:检查输出结果

  • 微调完成后,模型权重和配置会保存在 output/qwencoder-sft 目录下。
  • 你可以在该目录下找到如 pytorch_model.bin、adapter_model.bin、config.json、tokenizer_config.json 等文件。

步骤六:用 HuggingFace Transformers 代码推理

import argparse
import json
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
from tqdm import tqdmdef parse_args():parser = argparse.ArgumentParser(description="自动评测微调模型的推理效果")parser.add_argument('--model_dir', type=str, default='output/qwencoder-sft', help='模型目录')parser.add_argument('--test_file', type=str, default='code_test.json', help='测试集文件')parser.add_argument('--max_new_tokens', type=int, default=128, help='生成最大新token数')parser.add_argument('--device', type=str, default=None, help='推理设备,默认自动检测')parser.add_argument('--strict', action='store_true', help='是否严格匹配输出')return parser.parse_args()def main():args = parse_args()device = args.device or ('cuda' if torch.cuda.is_available() else 'cpu')print(f"加载模型到 {device} ...")model = AutoModelForCausalLM.from_pretrained(args.model_dir, trust_remote_code=True).to(device)tokenizer = AutoTokenizer.from_pretrained(args.model_dir, trust_remote_code=True)model.eval()print(f"加载测试集 {args.test_file} ...")with open(args.test_file, "r", encoding="utf-8") as f:test_data = json.load(f)correct = 0total = 0results = []for item in tqdm(test_data, desc="推理中"):prompt = item["instruction"]if item.get("input"):prompt += "\n" + item["input"]inputs = tokenizer(prompt, return_tensors="pt").to(device)with torch.no_grad():outputs = model.generate(**inputs, max_new_tokens=args.max_new_tokens)pred = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()gt = item["output"].strip()# 评测方式if args.strict:is_correct = (pred == gt)else:is_correct = (gt in pred)correct += int(is_correct)total += 1results.append({"prompt": prompt,"prediction": pred,"ground_truth": gt,"is_correct": is_correct})print(f"Prompt: {prompt}\nPred: {pred}\nGT: {gt}\nCorrect: {is_correct}\n---")acc = correct / total if total > 0 else 0print(f"\n总数: {total},正确: {correct},准确率: {acc:.2%}")# 保存详细结果with open("eval_results.json", "w", encoding="utf-8") as f:json.dump(results, f, ensure_ascii=False, indent=2)print("详细评测结果已保存到 eval_results.json")if __name__ == "__main__":main()

使用方法

在 LLaMA-Factory 目录下运行:

python t.py \--model_dir output/qwencoder-sft \--test_file code_test.json \--max_new_tokens 128 \--strict   # 可选,严格匹配时加

相关文章:

LLaMaFactory 微调QwenCoder模型

步骤一:准备LLamaFactory环境 首先,让我们尝试使用github的方式克隆仓库: git config --global http.sslVerify false && git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git # 创建新环境,指定 Python 版本(以 3.…...

Git全流程操作指南

Git全流程操作指南 一、Git 环境配置 1. 安装 Git Windows:下载 Git for Windows macOS:brew install git Linux: sudo apt-get update && sudo apt-get install git # Debian/Ubuntu sudo yum install git …...

【最新版】Arduino IDE的安装入门Demo

1、背景说明 1、本教程编写日期为2025-5-24 2、Arduino IDE的版本为:Arduino IDE 2.3.6 3、使用的Arduino为Arduino Uno 1、ArduinoIDE的安装 1、下载。网址如下:官网 2、然后一路安装即可。 期间会默认安装相关驱动,默认安装即可。 3、安…...

不起火,不爆炸,高速摄像机、数字图像相关DIC技术在动力电池新国标安全性能测试中的应用

2026年7月1日,我国将正式实施GB38031-2025《电动汽车用动力蓄电池安全要求》——这项被称为“史上最严电池安全令”的新国标,首次将“热失控不蔓延、不起火、不爆炸”从企业技术储备上升为强制性要求,标志着电池安全进入“零容忍”时代&#…...

thinkadmin中使用layui日期选择器,数据库存储时间戳

form.html <div class="layui-form-item label-required-prev" id="jiezhi_time-div">...

WSL中ubuntu通过Windows带代理访问github

WSL中ubuntu通过Windows带代理访问github 前言: WSL是Windows下的ubuntu访问工具&#xff0c;目前无法访问外网&#xff0c;因此需要配置一下。 步骤一 代理中进行如下设置: 步骤二 ubuntu22.04中修改配置 使用如下命令获取IP地址&#xff1a; ip route | grep default | aw…...

RISC-V特权模式及切换

1 RISC-V特权模式基本概念 1.1 RISC-V特权模式介绍 RISC-V 指令集架构&#xff08;ISA&#xff09;采用多特权级别设计作为其核心安全机制&#xff0c;通过层次化的权限管理实现系统资源的隔离与保护。该架构明确定义了四个层次化的特权模式&#xff0c;按照权限等级由高至低…...

Python爬虫实战:研究Tornado框架相关技术

1. 引言 1.1 研究背景与意义 网络爬虫作为一种自动获取互联网信息的程序,在信息检索、数据挖掘、舆情分析等领域有着广泛的应用。随着互联网数据量的爆炸式增长,对爬虫的性能和效率提出了更高的要求。传统的同步爬虫在处理大量 URL 时效率低下,而异步爬虫可以显著提高并发…...

【深度学习】11. Transformer解析: Self-Attention、ELMo、Bert、GPT

Transformer 神经网络 Self-Attention 的提出动机 传统的循环神经网络&#xff08;RNN&#xff09;处理序列信息依赖时间步的先后顺序&#xff0c;无法并行&#xff0c;而且在捕捉长距离依赖关系时存在明显困难。为了解决这些问题&#xff0c;Transformer 引入了 Self-Attent…...

Ubuntu实现和主机的复制粘贴 VMware-Tools(open-vm-tools)

Ubuntu实现和主机的复制粘贴 VMware-Tools&#xff08;open-vm-tools&#xff09; 1.安装open-vm-tools # 更新软件源并安装工具包 sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y2.启用剪贴板共享 sudo nano /etc/vmware-tools/tools.conf添加或…...

4060显卡什么水平 4060显卡参数介绍

NVIDIA的GeForce RTX 40系列显卡基于最新的Ada Lovelace架构&#xff0c;提供了前所未有的图形处理能力和效率。其中&#xff0c;RTX 4060定位中高端市场&#xff0c;针对那些寻求卓越性能同时又注重成本效益的用户群体。那么&#xff0c;4060显卡什么水平呢&#xff1f;本文将…...

Kafka Producer 如何实现Exactly Once消息传递语义

Exactly-Once (精确一次) 是 Kafka 中最高级别的消息传递语义&#xff0c;确保消息既不会丢失也不会重复。以下是 Kafka Producer 实现 Exactly-Once 语义的关键机制&#xff1a; 1. 实现方法 1.1 启用幂等性 (Idempotence) props.put("enable.idempotence", &quo…...

通过ansible playbook创建azure 资源

安装 Ansible 在 macOS 上 Ansible 可以通过多种方式在 macOS 上安装,推荐使用 pip 或 Homebrew。 使用 Homebrew 安装 Ansible 运行以下命令: brew install ansible使用 pip 安装 Ansible 确保 Python 已安装(macOS 通常自带 Python),然后运行: pip install ansible…...

C++双线程交替打印奇偶数(活泼版)

C双线程交替打印奇偶数&#xff08;活泼版&#xff09; 文章目录 C双线程交替打印奇偶数&#xff08;活泼版&#xff09;1.&#x1f3ae; 游戏规则说明书2.&#x1f527; 游戏道具准备区2.1&#x1f9e9; 道具清单 3.&#x1f46f;‍♂️ 创建两个线程小伙伴3.1&#x1f9d1;‍…...

技术为器,服务为本:AI时代的客服价值重构

在智能化浪潮中&#xff0c;大语言模型的出现为客户服务行业注入了全新动能。然而技术创新的价值不在于技术本身&#xff0c;而在于其赋能服务的深度与广度。AI对于我们来说&#xff0c;如同发动机之于汽车&#xff0c;重要的不是引擎参数&#xff0c;而是整车带给用户的驾驶体…...

hadoop异构存储

Hadoop异构存储是一种基于HDFS的存储优化技术&#xff0c;通过将不同热度的数据分配到不同类型的存储介质上实现性能与成本的平衡。以下是其核心原理和实现方式&#xff1a; 一、核心概念 ‌异构存储基本原理‌&#xff1a;Hadoop集群允许使用SSD、HDD、ARCHIVE等多种存储介质…...

EasyVoice:开源的文本转语音工具,让文字“开口说话“

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、EasyVoice是什么&#xff1f;1. 核心特性一览2. 技术架构概览 二、安装部署指南…...

扫地机产品异物进入吸尘口堵塞异常检测方案

扫地机产品异物进入吸尘口堵塞异常的检测方案 文章目录 扫地机产品异物进入吸尘口堵塞异常的检测方案一.背景二.石头的音频异常检测的方案2.1 音频检测触发点2.1.1时间周期2.1.2根据清洁机器人清扫模式或清扫区域污渍类型,即当清扫模式为深度清洁模式 或清扫区域污渍类型为重度…...

C++并集查找

前言 C图论 C算法与数据结构 本博文代码打包下载 基本概念 并查集&#xff08;Union-Find&#xff09;是一种用于处理动态连通性&#xff08;直接或间接相连&#xff09;的数据结构&#xff0c;主要支持两种操作&#xff1a;union 和 find。通过这两个基本操作&#xff0c;可…...

git reset --hard HEAD~1与git reset --hard origin/xxx

git reset --hard HEAD~1与git reset --hard origin/xxx git reset --hard origin/xxx有时候会太长&#xff0c;手工输入略微繁琐&#xff0c;可以考虑&#xff1a; git reset --hard HEAD~1 替代。 或者使用这种方式 git reset撤销当前分支所有修改&#xff0c;恢复到最近一…...

window 显示驱动开发-转换 Direct3D 固定函数状态(二)

未使用的User-Mode显示驱动程序函数 启用固定函数顶点着色器转换器时&#xff0c;Direct3D 运行时不会调用以下 用户模式显示驱动程序函数 &#xff1a; MultiplyTransform SetTransform SetMaterial SetLight CreateLight DestroyLight 1. 核心规则 当 固定功能顶点着…...

双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开

在双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开&#xff0c;并追求性能最优&#xff0c;需要从硬件、宿主机系统、KVM配置、虚拟机配置等多个层面进行优化。 以下是详细的操作指南和优化建议&#xff1a; 阶段一&#xff1a;BIOS/UEFI 设置优化 (重启进入) 启用虚拟化…...

C++ RB_Tree

一、红黑树是什么&#xff1f;—— 带颜色标记的平衡二叉搜索树 红黑树是一种自平衡二叉搜索树&#xff0c;它在每个节点上增加了一个颜色属性&#xff08;红色或黑色&#xff09;&#xff0c;通过对颜色的约束来确保树的大致平衡。这种平衡策略被称为 "弱平衡"&…...

命令模式,观察者模式,状态模式,享元模式

什么是命令模式&#xff1f; 核心思想是将原本直接调用的方法封装为对象&#xff08;如AttackCommand&#xff09;&#xff0c;对象包含​​执行逻辑​​和​​上下文信息​​&#xff08;如目标、参数&#xff09;。比如&#xff0c;玩家的按键操作被封装成一个命令对象&#…...

kibana解析Excel文件,生成mapping es导入Excel

一、Excel转为CSV格式 在线免费网站&#xff1a;EXCEL转CSV - 免费在线将EXCEL文件转换成CSV (cdkm.com) 二、登录kibana 点击左边菜单栏找到Machine Learning&#xff0c; 进入后上面菜单选择Data Visualizer&#xff0c;然后上穿转好的csv格式的Excel 点击导入输入建立的m…...

开疆智能Profinet转Profibus网关连接EC-CM-P1 PROFIBUS DP从站通讯模块配置案例

本案例是通过开疆智能Profibus转Profinet网关将正弦研发的Profibus从站模块连接的EM600变频器接入到西门子1200PLC的配置案例。 配置过程 1. 打开网关配置软件“”新建项目并添加模块PN2DPM并设置参数 2. 设置网关的Profibus参数。如站地址&#xff0c;波特率等。&#xff08;…...

Oracle RMAN自动恢复测试脚本

说明 此恢复测试脚本&#xff0c;基于rman备份脚本文章使用的fullbak.sh做的备份。 数据库将被恢复到RESTORE_LO参数设置的位置。 在恢复完成后&#xff0c;执行一个测试sql,确认数据库恢复完成&#xff0c;数据库备份是好的。恢复测试数据库的参数&#xff0c;比如SGA大小都…...

零基础设计模式——结构型模式 - 代理模式

第三部分&#xff1a;结构型模式 - 代理模式 (Proxy Pattern) 在学习了享元模式如何通过共享对象来优化资源使用后&#xff0c;我们来探讨结构型模式的最后一个模式——代理模式。代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。 核心思想&#xff1a;为其…...

架构意识与性能智慧的双重修炼

架构意识与性能智慧的双重修炼 ——现代软件架构师的核心能力建设指南 作者:蓝葛亮 🎯引言 在当今快速发展的技术环境中,软件架构师面临着前所未有的挑战。随着业务复杂度的不断增长和用户对性能要求的日益严苛,如何在架构设计中平衡功能实现与性能优化,已成为每个技术…...

Dynamics 365 Business Central AI Sales Order Agent Copilot

#AI Copilot# #D365 BC 26 Wave# 最近很多客户都陆续升级到 Dynamics 365 Business Central 26 wave, Microsoft 提供一个基于Copilot 的Sales Order Agent&#xff0c;此文将此功能做个介绍. Explorer: 可以看到26版本上面增加了这样一个新图标。 Configuration: 配置过程…...