LLaMaFactory 微调QwenCoder模型

article/2025/8/13 7:02:35

步骤一:准备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   # 可选,严格匹配时加


http://www.hkcw.cn/article/ctUcMBRyjN.shtml

相关文章

男子戴人皮面具偷了15万首饰现金 反侦查高手落网

5月29日,盐城市公安局盐南高新区分局新都派出所接到多个小区居民报警,称家中金条、金首饰丢失。警方迅速介入调查,发现案发前有一名男子在案发现场周边多次徘徊,并且面部反光,疑似戴着面具踩点。经过持续分析,最终锁定了犯罪嫌疑人的身份。5月23日,民警周密部署后成功抓…

园长回应幼儿园举办幼儿龙舟赛 雨中竞技展现传统文化魅力

广东汕头澄海区溪南西社幼儿园近日举办了一场特别的赛龙舟活动,视频在网络上引起了广泛关注。孩子们在细雨天身穿救生衣,在泳池中划着特制尺寸的龙舟,争夺冠军,泳池边的观众打着伞为他们助威呐喊。园长张晓燕透露,决赛于5月28日下午3点举行,当天有不少村民观赛,村委会成…

基于亚博K210开发板——物体检测测试

开发板 亚博K210开发板 实验目的 本次测试主要学习 K210 如何物体检测,然后通过 LCD 显示屏实时框出检测物体然后以不同颜色标记名称。 实验元件 OV2640 摄像头/OV9655 摄像头/GC2145 摄像头、LCD 显示屏 硬件连接 K210 开发板出厂默认已经安装好摄像头和显…

Glide源码解析

前言 Glide是一款专为Android设计的开源图片加载库。有以下特点:1.支持高效加载网络、本地及资源图片;2.具备良好的缓存策略及生命周期管理策略;3.提供了简易的API和强大的功能。本文将对其源码进行剖析。 基本使用 dependencies {compile …

01.认识Kubernetes

什么是Kubernets 套用官方文档对Kubernetes的定义,翻译成中文的意思是: Kubernetes,也称为k8,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。 它将组成应用程序的容器分组为逻辑单元,以便于管理和发现…

印把PL-15残骸给日本 中国有防备吗 国防部回应让16亿人松口气

印巴冲突虽然已经结束20多天,但其影响仍在持续。印度方面将此前获得的PL-15空空导弹残骸交由日本团队研究,外界对此表示担忧,担心技术泄密或被反向研制。针对这一情况,国防部的回应让许多人松了一口气。在印巴冲突期间,两国分别使用中式武器和西式武器进行对抗,展示了各自…

美的集团董事长兼总裁再谈小米 战略上已输

5月30日,美的集团董事长兼总裁方洪波在2024年度股东大会上回应投资者提问时表示,小米进入家电业在战略上已失败。今年小米在空调市场掀起低价竞争,其大家电业务一季度收入同比翻倍增长。此前,方洪波曾表示“在战术上重视小米、在战略上不惧怕小米”。针对这一表述,他解释说…

莫迪想对中企下黑手的动机是什么 稀土牌反制威力显现

莫迪政府试图对中企采取行动,其动机和影响引发关注。莫迪政府的外交政策逐渐极端化,最近要求监控设备商提交硬件、软件和源代码供评估,声称是为了防止所谓的“安全问题”。这显然针对的是中国企业在印度市场的份额,如海康威视、小米和大华等。这种要求无理且超出正常安全审…

余承东展示尊界S800新功能 挥手关门科技感十足

鸿蒙智行的百万级豪华轿车尊界 S800 将于今晚正式发布。华为常务董事、终端BG董事长余承东在微博上持续预热这款新车,并发布了一则新视频,展示了尊界S800挥手关门的新功能。视频中,尊界S800不仅能够自动开门,乘客落座后向内挥手,车门还能自动轻轻关上。此外,视频还展示了…

摄像头探测器APP:守护隐私的防偷拍利器

在当今社会,隐私保护成为越来越多人关注的焦点。无论是入住酒店、民宿,还是在其他公共场所,我们都有可能面临被偷拍的风险。摄像头探测器APP的出现,为用户提供了一种便捷、高效的检测手段,能够有效识别并防范潜在的偷拍…

8天Python从入门到精通【itheima】-54~56

目录 54节-函数传入的参数 1.函数传入数据的定义和功能 2.函数传入参数的实例 3.代码实战 4.形参和实参的概念 5.函数传入参数的注意事项 6.小节总结 55节-案例练习-升级版自动查核酸 1.案例需求 2.代码实战 56节-函数的返回值定义语法 1.学习目标 2.返回值的生活案…

ROS云课基础篇-02-C++-250529

ROS云课基础篇-01-Linux-250529-CSDN博客 基于Zsh的C机器人编程基础实验报告 ——结合AutomaticAddison教程与ROS开发环境 一、实验目标 掌握C基础语法及面向对象编程(OOP)在机器人开发中的应用配置Zsh终端环境,结合ROS Kinetic实现C机器人…

黄金现货期货双跌 市场避险情绪降温

5月30日,国际黄金价格在经历前一日的回调和反弹后依旧低迷。5月29日,国际黄金市场遭遇显著回调,现货黄金价格盘中一度下探至3245.19美元/盎司,创本周以来新低,COMEX黄金期货价格也同步回落。当天伦敦金现货价格跌破3330美元/盎司,一度触及3245.19美元/盎司的新低。截至当…

青岛即墨通报店铺涉嫌传销 市场监管部门发布情况

本文转自【即墨市场监管】;5月30日,即墨市场监管发布情况通报:责任编辑:0764

成都发生持刀伤人案 警方通报 因感情纠纷引发

成都市公安局锦江区分局5月30日发布警情通报,当天下午3点左右,中纱帽街8号负一层发生一起持刀伤人事件。警方接到报警后迅速赶到现场,并控制了犯罪嫌疑人陆某某,他今年26岁。经初步调查,陆某某因感情纠纷前往前女友胡某某的工作单位。胡某某今年24岁,在与陆某某发生口角后…

A股打破“端午劫”魔咒?专家建议 持股过节乐观看待

5月30日,A股迎来端午节前最后一个交易日,整体走势较为平淡。上证指数、深证成指和创业板指均呈现窄幅震荡,市场涨停个股不足50只。体育、养殖、银行等板块涨幅居前,而近期火爆的可控核聚变概念出现回调。回顾过去十年A股在端午节前后的表现,整体涨少跌多,因此有“端午劫”…

美国防长拿什么来取信亚洲国家 承诺可信度受质疑

第22届香格里拉对话会将于5月30日至6月1日在新加坡举行。美国国防部长赫格塞思计划在会议上发表演讲,阐述美国在“印太地区”的防务政策。自上任以来,赫格塞思主要关注国内问题,抵制军队中的多元、平等与包容政策,并对媒体持批评态度。此次访问亚洲,他将试图向该地区的国防…

App识别安卓系统弹授权框包含某段文字-并自动点击确定按钮

安卓App识别手机系统弹授权框包含某段文字-并自动点击确定按钮 --蓝牙电话App自动部署 上一篇:手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 下一篇:编写中。 一、前言 蓝牙电话方案中,我们提供了将手机通话的语音拦截后转发到…

上海高考报名人数逆势上涨 招生计划调整引关注

2025年上海秋季高考考生人数预计将超过6万人,比2024年增加近万人。上海市教育考试院透露了这一数据,并表示已经与全国高校沟通在沪招生计划增量。预计今年在沪招生的本科计划数将有所增加,但受限于高校教育资源承载力等因素,本科计划增量不一定能完全匹配生源的增长。对于今…

长了痣到底要不要除掉 专家建议关注“问题痣”

近日,演员孙俪出席时尚芭莎年度派对。亮相时,网友发现她的唇下痣消失了,随后话题#孙俪唇下痣没了#登上热搜。其实,在《甄嬛传》播出期间,孙俪唇下的一个小黑点就引发过观众的关注。到《芈月传》和《那年花开月正圆》播出期间,这颗痣已经成为她面部轮廓的一个标志。然而,…