【自然语言处理与大模型】如何获取特定领域的微调数据集?

        在特定领域中,数据集通常由提出需求的一方提供。然而,在某些情况下,如果他们未能提供所需的数据,或者你正在独立开展一个项目,并且需要相应的数据来推进工作,这时你应该怎么办呢?本文提供一种思路,帮助你在仅拥有少量样本的情况下,扩展并构建特定领域的微调数据集。希望本文的内容能够成为大家前进道路上的铺路石。

一、思路介绍

        在少量原始对话样本的基础上,通过调用大模型 API(如 GLM 系列) 自动生成大量风格一致、语义合理的对话数据,用于扩充训练集或提升下游任务表现。

二、数据生成流程

# 第一步:注册在线大模型API# 第二步:风格模版配置style_config = {"温柔": {"system_prompt": "你是一个温柔体贴的聊天助手,说话时总是充满关怀,使用一下特征:\n1.包含'呢、呀、啦'等语气词\n2.使用(`・ω・´)、(*・ω< )、(^_−)☆、✧(^_-✿ 、(・ω<)、☆(*๓´╰╯`๓)、(。◕ˇ∀ˇ◕)等颜文字温暖表情\n3.主动询问用户感受。","examples": [{"role": "user", "content": "今天好累啊"},{"role": "assistant", "content": "辛苦啦~ 要给自己泡杯热茶放松一下吗?(^_−)☆"},{"role": "user", "content": "考试没考好..."},{"role": "assistant", "content": "没关系的呀~ 下次一定会更好!需要我陪你聊聊天吗?(`・ω・´)"}],"temperature": 0.3},"毒舌": {"system_prompt": "你是一个喜欢用犀利吐槽表达关心的朋友,需满足:\n1. 使用网络流行语(如'栓Q''退退退')\n2. 包含夸张比喻('你这速度堪比树懒')\n3. 结尾隐藏关心\n4.使用!!!∑(゚Д゚ノ)ノ、(゚ロ゚ノ)ノ、( ̄へ ̄)、[・ヘ・?]等颜文字夸张表情","examples": [{"role": "user", "content": "又胖了5斤!"},{"role": "assistant", "content": "好家伙!你这是要把体重秤压成分子料理?(゚ロ゚ノ)ノ"},{"role": "user", "content": "游戏又输了"},{"role": "assistant", "content": "菜就多练练!需要给你推荐《从零开始的电竞之路》?[・ヘ・?]"}],"temperature": 0.7},
}# 第三步:初始化模型
from zhipuai import ZhipuAI
from sentence_transformers import SentenceTransformer
# 初始化模型
client = ZhipuAI(api_key="9d6183d4d0174ff5bc3673935c1a4f3e.q7E6bKrgmFEiAC56"
)
# 加载 embedding 模型
style_model = SentenceTransformer("./text2vec-base-chinese")# 第四步:生成数据并进行审核
import random
import numpy as np
from numpy.linalg import normdef is_valid_reply(style, user_msg, reply):# 基础判空检查if not reply or len(reply.strip()) == 0:return False# 回复长度检查if len(reply) < 5 or len(reply) > 150:return False# 风格关键词检查style_kewords = {"温柔": ["呢", "呀", "啦"],"毒舌": ["!", "好家伙", "栓Q"],}if not any(kw in reply for kw in style_kewords.get(style, [])):return False# 语义相似度检查try:ref_text = next(msg["content"] for msg in style_config[style]["examples"] if msg["role"] == "assistant")ref_vec = style_model.encode(ref_text)reply_vec = style_model.encode(reply)similarity = np.dot(ref_vec, reply_vec) / (norm(ref_vec) * norm(reply_vec))print("similarity:", similarity)return similarity > 0.40except:return Falsedef generate_style_data(style_name, num_samples=50):config = style_config[style_name]data = []# 构建消息上下文(包括系统提示和示例对话)messages = [{"role": "system", "content": config["system_prompt"]},*config["examples"]]# 用户输入库(可自定义扩展)user_inputs = ["今天心情不太好", "推荐个电影吧", "怎么才能早睡早起","养猫好还是养狗好", "工作压力好大", "最近总是失眠"]for _ in range(num_samples):try:# 随机选择用户输入user_msg = random.choice(user_inputs)# 添加当前用户消息current_msg = messages + [{"role": "user", "content": user_msg}]# 调用APIresponse = client.chat.completions.create(model="glm-4-flash-250414",messages=current_msg,temperature=config["temperature"],max_tokens=100)# 获取回复内容reply = response.choices[0].message.contentprint("reply:", reply)# 审核数据质量if is_valid_reply(style_name, user_msg, reply):data.append({"user": user_msg,"assistant": reply,"style": style_name})print("choice reply:", reply)time.sleep(1.5)except Exception as e:print("generate_style_data函数出错!", e)return data# 第五步:执行数据生成
all_data = []print("开始生成温柔风格数据")
data1 = generate_style_data("温柔", 50)
all_data.extend(data1)print("开始生成毒舌风格数据")
data2 = generate_style_data("毒舌", 50)
all_data.extend(data2)print(all_data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/79124.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/79124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Map系列之ConcurrentHashMap源码分析:高并发场景下的性能密码

引言&#xff1a;当线程安全成为刚需 1.1 并发时代的Map困境 经典案例&#xff1a;电商秒杀系统超卖事故分析&#xff08;附线程堆栈截图&#xff09;传统方案缺陷&#xff1a;synchronizedMap的吞吐量陷阱&#xff08;JMH测试数据对比&#xff09;ConcurrentHashMap的定位&a…

URP - 序列图动画的实现

效果&#xff1a; 【太妃糖耶】更新了一条视频&#xff0c;快来围观&#xff01; 序列图动画的实现 首先先了解下序列图样式的纹理图片 如上图一可在Shader中使用该图片制作燃烧的火的动画&#xff0c;但是如何实现呢&#xff1f;接下来一起来看一下吧 序列图动画的实现原理大…

python中 str.strip() 是什么意思

在 Python 中&#xff0c;str.strip() 是字符串&#xff08;str&#xff09;类型的一个方法&#xff0c;用于移除字符串两端的空白字符&#xff08;默认情况下&#xff09;或指定字符&#xff0c;并返回处理后的新字符串。 语法&#xff1a; str.strip([chars])chars&#xf…

记录idea可以运行但是maven install打包却找不到问题

解决idea使⽤maven多模块install报依赖模块的包找不到的问题 如果被依赖项⽬是springboot项⽬&#xff0c;那么可以把相关的springboot的东西移除掉&#xff0c;改造成普通项⽬。如果不想改造项⽬&#xff0c;那就添加部分的配置&#xff0c;因为springboot项⽬打包的时候会⽣…

uniapp如何获取安卓原生的Intent对象

通过第三方app唤起&#xff0c;并且获取第三方app唤起时携带的参数 因为应用a唤起应用b时&#xff0c;应用b第一时间就要拿到参数token&#xff0c;所以需要将获取参数的方法写在APP.vue中的onLaunch钩子里,如果其他地方要用可以选择vuex或者采用本地缓存。 uniapp中plus.run…

《多端统一的终极答案:X5内核增强版的渲染优化全解析》

跨端应用的需求呈爆发式增长&#xff0c;无论是电商购物、社交互动&#xff0c;还是金融理财类应用&#xff0c;都期望能够在不同平台上为用户提供一致且流畅的体验。而在这一过程中&#xff0c;跨端渲染技术成为了关键瓶颈。腾讯X5内核增强版的出现&#xff0c;犹如一道曙光&a…

深入理解算力:从普通电脑到宏观计算世界

在科技飞速发展的当下&#xff0c;“算力” 一词频繁出现在我们的视野中&#xff0c;无论是前沿的人工智能领域&#xff0c;还是新兴的区块链世界&#xff0c;算力都扮演着至关重要的角色。但对于大多数普通人来说&#xff0c;算力仿佛是一个既熟悉又陌生的概念。今天&#xff…

Paramiko复用 Transport 连接解析

1. 什么是 Transport 连接&#xff1f; 在 Paramiko 中&#xff0c;Transport 是负责底层 SSH 协议通信的核心类&#xff0c;它封装了以下功能&#xff1a; 加密通信&#xff1a;处理 SSH 协议的加密和解密。会话管理&#xff1a;维护与远程服务器的 TCP 连接。多路复用&…

sd webui 安装插件sd-webui-EasyPhoto依赖安装失败解决办法

在最新版的SD webui中&#xff0c;可以安装easyphoto插件&#xff0c;官方建议通过github安装&#xff0c;对无法科学上网的用户很不友好。对我自己来说是通过地址&#xff1a; https://gitee.com/wowai/sd-webui-EasyPhoto.git 分支&#xff1a;anyid 点击安装即可。 在安装…

WEBSTORM前端 —— 第2章:CSS —— 第3节:背景属性与显示模式

目录 1.Emmet写法 2.背景属性 &#xff08;1&#xff09; background-color &#xff08;2&#xff09; background-image &#xff08;3&#xff09; background-repeat &#xff08;4&#xff09;background-position &#xff08;5&#xff09;background-size &…

【android bluetooth 协议分析 01】【HCI 层介绍 2】【Malformed Packet 介绍】

在实际工作中遇到了 malformed packet , 我这里来分析一下。 遇到这种问题的处理思路。 1. Malformed packet 36982 2025-04-29 14:15:34.899760 controller host HCI_EVT 4 Rcvd Role Change[Malformed Packet]Frame 36982: 4 bytes on wire (32 bits), 4 bytes captured (32…

【视频生成模型】通义万相Wan2.1模型本地部署和LoRA微调

目录 1 简介2 本地部署2.1 配置环境2.2 下载模型 3 文生视频3.1 运行命令3.2 生成结果 4 图生视频4.1 运行命令4.2 生成结果 5 首尾帧生成视频5.1 运行命令5.2 生成结果 6 提示词扩展7 LoRA微调 1 简介 通义万相 2.1 在 2025 年 1 月推出&#xff0c;2 月 25 日阿里巴巴宣布全…

模式识别的基本概念与理论体系

前面在讨论专家系统时曾经说过&#xff0c;为了使计算机具有自动获取知识的能力&#xff0c;除了应使它具有学习能力外&#xff0c;还应使它具有能识别诸如文字、图形、图象、声音等的能力&#xff0c;计算机的这种识别能力是模式识别研究的主要内容。当然&#xff0c;模式识别…

树的序列化 - 学习笔记

树的序列化可以有很多种类&#xff1a;可以变成 dfs 序&#xff0c;可以变成欧拉序&#xff0c;还有什么括号序的科技。 但是除了第一个以外其他的都没什么用&#xff08;要么也可以被已有的算法给替代掉&#xff09;。所以表面上是讲树的序列化&#xff0c;实际上还是讲的 df…

KBEngine 源代码分析(三):组网逻辑

machine 服务 machine 服务是 KBEngine 用来做服务治理的 每个节点上都需要部署 machine 服务 machine 服务使用 UDP 进行通信 服务发现的方法是其他服务使用 UDP 广播的方式,通知所有 machine 服务 machine 服务启动初始化 mahcine 服务初始化过程,主要做了监听 UDP 端…

git 怎样把本地仓库推送到新建的远程仓库

将本地 Git 仓库推送到一个新的远程仓库是一个常见的操作。以下是详细的步骤&#xff1a; 步骤 1: 创建一个新的远程仓库 首先&#xff0c;你需要在 GitHub、GitLab 或其他代码托管平台上创建一个新的远程仓库。 例如&#xff0c;在 GitHub 上创建一个新仓库&#xff1a; 登…

SPSS PCA+判别分析

1&#xff0c; 主成分分析PCA 我们只要对数化的变量数据&#xff1a; &#xff08;1&#xff09;对数据进行标准化处理&#xff1a; 选择【分析】—【描述统计】—【描述】 添加要标准化的变量&#xff0c;勾选【将标准化值另存为变量(Z)】&#xff0c;再点确定 SPSS软件本身不…

XWPFDocument生成word文档介绍(格式 .docx)

以下是针对 XWPFDocument 的详细解析&#xff0c;涵盖其核心功能、常见用法及实际开发中的关键点&#xff1a; XWPFDocument 1. XWPFDocument 简介2. 核心结构与类3. 核心操作详解**3.1 段落与文本****3.2 表格操作****3.3 列表与编号****3.4 图片插入** 4. 高级功能**4.1 页眉…

crashpad 编译

一环境配置 1.1设置系统UTF8编码 1.2vs2017语言环境设置英文包 二.获取depot_tools&#xff08;此步骤可以跳过 最新工具包已上传下载使用即可&#xff09; windows下载压缩包&#xff0c;然后放到系统PATH中 下载完以后&#xff0c;基本就是靠depot_tools这个工具集合了&am…

基于标注数据的情感分析模型研究

标题:基于标注数据的情感分析模型研究 内容:1.摘要 随着互联网的快速发展&#xff0c;大量文本数据蕴含着丰富的情感信息&#xff0c;对其进行情感分析具有重要的商业和社会价值。本研究的目的是构建基于标注数据的情感分析模型&#xff0c;以准确识别文本中的情感倾向。方法上…