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

Gemma 4 微调 商品分类

在之前已经完成了对Gemma4在情绪数据集上的LoRA微调,这里切换商品分类数据集进行实际实践,以下是实践笔记记录:

原项目:

  • 数据集:AI-ModelScope/emotion(英文情绪 6 分类,parquet 格式)
  • 模型:Gemma 4 E4B-it
  • 方式:LoRA 单卡微调

改造后:

  • 数据集:winwin_inc/product-classification-hiring-demo(中文商品 10 分类,jsonl 格式)
  • 模型:还是 Gemma 4 E4B-it
  • 方式:还是 LoRA 单卡微调

但是由于两个数据集的形式是不同的,所以需要对切换的数据集进行一定的预处理,大致处理逻辑如下:

def pre_process(split_name: str, label_id: int): file_path = os.path.join(dataset_dir, f"{split_name}.jsonl") data = [] cur_label = label_id with open(file_path, 'r', encoding='utf-8') as file: for line in file: json_obj = json.loads(line.strip()) cat = json_obj['category'] # 新类别就分配一个 label if cat not in LABEL_DICT: LABEL_DICT[cat] = cur_label LABEL_NAMES.append(cat) cur_label += 1 # 把 category 换成 label(数字) del json_obj['category'] json_obj['label'] = LABEL_DICT[cat] data.append(json_obj) # 存成 json,后面用 datasets 加载 with open(os.path.join(dataset_dir, f"{split_name}.json"), 'w', encoding='utf-8') as f: json.dump(data, f) return cur_label

这样,就可以实现在不知道数据集标签的数量和具体标签的情况下维护一个对应的标签字典,适配之前情绪数据集微调的后续训练操作。

另外,在prompt方面,因为当前数据集为中文数据集,所以在模板上进行了相应的修改:

SYSTEM_PROMPT = """你是一个产品判别专家。 阅读用户文本,并使用一个准确的标签进行回答。 你的回答只能从以下选项中选择:即饮奶茶, 即饮茶, 硬糖, 牙膏, 非冷藏即饮果汁, 冷藏即饮果汁, 白酒, 方便面, 软糖, 口香糖。 你的回答只能是上面一个选项标签。 """

在分类任务上将输出标签固定,不让模型自行发挥。

最终也是成功完成了整个模型的新数据集的切换与适配,本次实现最大的感受就是,做微调项目,数据预处理真的是最花时间的。模型加载、LoRA 配置这些都是套路,照着写就行。但数据不一样,每个数据集格式都不同,坑也不一样,每次都得重新折腾。

之后如果有时间也会尝试分析一下bad case,看看是否有哪些地方可以进一步优化一下的。

http://www.jsqmd.com/news/1075166/

相关文章:

  • 吾爱出品,相当炸裂!!
  • 2026零基础录音转文字入门指南避坑教学包教包会看完可直接上手
  • VisualCppRedist AIO:Windows运行库的“瑞士军刀“如何解决你的软件兼容性难题
  • 如何用3分钟解锁15+加密音乐格式:浏览器中的音乐自由革命
  • Java应用启动慢、接口超时、频繁Full GC?别再把锅甩给JVM了!
  • TVA在物流分拣领域的独特价值(8)
  • git项目目录下创建git忽略上传文件
  • 免费开源视频对比工具完全指南:如何像专家一样发现视频差异
  • 从0到1:企业级AI项目迭代日记 Vol.53|功能没做错,边界没接对
  • 【操作系统】进程调度算法(FCFS/SJF/优先级/时间片轮转)
  • 油层物理——2. 储层流体的物化性质
  • Android Studio中文汉化终极指南:5分钟打造母语级开发环境
  • 如何解决小说创作中的组织混乱问题:使用Bibisco的完整解决方案
  • 汽车电子智能分布式控制(IDC)技术:从SiP集成到车门模块的工程实践
  • 博主实测爆火的 Sakana Fugu,发现它还不如一个GPT?
  • 学习者高效阅读赋能知识吸收的方法与实践探究
  • 如何拯救你收藏的B站视频?m4s-converter让你的缓存文件重获新生
  • BilldDesk:完全免费的跨平台远程桌面控制软件完全指南
  • ROS嵌入式部署实战:在Jetson/RPi上稳定运行机器人系统
  • 服装贴口袋工序自动化科普:慧拿线上激光模板机全面解析
  • AI案例:选AI还是选人
  • 清理隐形账单刺客:基于 Python 的闲置云端资源自动巡检与审计实践
  • 白领 16 亿 tokens
  • 自监督学习实战:绕过标注瓶颈的工业AI落地路径
  • 面试官皱眉:“你的 Agent 跑了10轮之后还靠谱吗”,我说:“靠谱啊,为啥不靠谱?”,面试官让我回去再想想。。。
  • KPI测量不是算数,而是定义可验证的业务动作
  • Headunit Revived:让安卓设备变身 Android Auto 接收器,多连接方式及更新计划来袭!
  • Fastjson反序列化漏洞:从原理到实战防护的Java安全必修课
  • 从高维数据中提取本质特征:秩提取与鲁棒子空间设计实践
  • 银河麒麟V10 SP3 源码编译部署 PostgreSQL 18.4