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

如何构造私有的大模型微调数据集

背景

​ 典型数据集构造流程是人工从多个来源收集原始数据 → 清洗、处理并构建成“输入-输出”配对样本 → 最终组合成可供模型学习的数据集。痛点:流程重复繁杂,效率低。新趋势通过人工智能自动收集数据 →清洗构造数据。

私有数据要注意的问题

私有的数据集由于数据问题可能会产生一系列问题

  • 数据集样本数量太少 - 数据量不足导致模型无法充分学习
# 问题:只有8个卦象的训练数据
training_data = [{"content": "乾卦", "summary": "导入遵守天道的德行"},{"content": "坤卦", "summary": "遵循正道,获取吉利"},# ... 只有6个其他卦象
]# 结果:模型无法学习其他56个卦象的知识
# 当用户问"蒙卦的含义是什么?"时,模型无法正确回答

就像只背了8个英语单词就去考英语四级,遇到没背过的单词就完全不会。

  • 训练过拟合 - 模型过度记忆训练数据,泛化能力差
# 问题:模型过度记忆训练数据的特定模式
# 训练数据中"?"总是对应"追求,能够成功,婚姻美满"# 当输入任何包含"?"的问题时:
输入:"屯卦在教育中有什么意义?"
模型输出:"追求,能够成功,婚姻美满"  # 错误!应该输出屯卦的教育意义输入:"师卦在军事中代表什么?"  
模型输出:"追求,能够成功,婚姻美满"  # 完全错误!

模型变成了"死记硬背的学渣",只会套用记忆的模板,不会真正理解内容。

  • 训练数据多样性缺失 - 样本类型单一,缺乏变化
# 问题:所有问题的提问方式都类似
问题样本 = ["诸指法象卦的含义","象卦在周易哲学中扮演什么角色", "够成功,婚姻美满。'?'代表什么",# 缺乏多样化的提问方式
]# 缺少以下类型的提问:
# - "请解释一下蒙卦的核心思想"
# - "蒙卦在现实生活中有哪些应用"
# - "如何理解蒙卦中的教育智慧"
# - "蒙卦与其他卦象有什么关系"

模型只能理解特定格式的提问,遇到真实用户的各种自然语言提问时就无法应对。

  • 训练集样本质量问题 - 数据标注不准确或内容质量低
# 问题数据示例:
问题数据 = {"content": "婚美满。'?'在周易中是什么象征",  # 问题不完整,语义不清"summary": "追求,能够成功,婚姻美满"  # 回答与问题不匹配,且重复使用
}# 对比优质数据:
优质数据 = {"content": "蒙卦在教育启蒙方面有什么启示","summary": "蒙卦象征着教育启蒙的智慧,山下出泉意味着从蒙昧到通达的过程,强调教育在事物发展初期的重要性"
}

使用 LangChain + GPT-3.5-Turbo 生成私有训练数据样例

1、提取content和summary

LangChain封装了OpenAI的接口如下,不建议直接用OpenAI原生的。

from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
from langchain.prompts.chat import (ChatPromptTemplate,HumanMessagePromptTemplate,SystemMessagePromptTemplate,
)
chat = ChatOpenAI(model="gpt-3.5-turbo-1106",temperature=1,max_tokens=4095,top_p=1,frequency_penalty=0,presence_penalty=0)# 定义系统系统角色:提示词(缺失的部分)
system_content = """你是一个专业的文本处理助手。
你的任务是将提供的文本内容进行分析和整理。
请按照以下要求处理文本:..."""# 原始数据(通过爬虫或其他发那个是获取数据,通过代码读取到代码中)
raw_content = "除非是教育启蒙的智慧,因为山、坎为泉。山下出泉,泉水始流出山,则必将渐汇成江河,正如蒙籍渐启。又山下有险,因为有险停止不前,所以蒙昧不明。事物发展的初期阶段,必然蒙昧。"messages = {SystemMessage(content=system_content),HumanMessage(content=raw_content),
}al_message = chat(message)
# 解析生成的数据
text = ai_message.content# 分割字符串来找到content和summary的位置
content_start = text.find('content:') + len('content:')
content_end = text.find('\nsummary:')
summary_start = text.find('summary:') + len('summary:')
summary_end = text.rfind('')# 提取并存储content和summary
content = text[content_start:content_end].strip()
summary = text[summary_start:summary_end].strip()print("Content:", content)
print("Summary:", summary)

2、增强content可能性

除了蒙卦,用户可能还会问许多不同的问题都对应同一个summary,可以利用AI提供不同问题。

如提问AI:实际用户提问的时候,不会直接说"蒙卦"。因此,你给出20种可能提问的方式,并将这20种提问与原来的summary分别组成共20条记录,并写入“zhouyidatasetcsv”文件。

要注意AI生成的代码需要检查正确性。

3、保持生成数据的稳定性

AI生成的al_message内容可能不稳定,不一定每次都是contend和summary,需要保证生成数据的稳定性。

  • 可以通过增强提示词Prompt Engineering
system_content="""你是中国古典哲学大师,尤其擅长周易的哲学解读。接下来,你收到的都是关于周易对象的解释,你需要整理前台,并生成用于大模型训练的内容和格式。示例输入:师卦,此卦是异卦相叠,下卦为坎,上卦为坤。"师"指军队。坎为水,为险;坤为地,为顺,喻寓兵于农。兵凶战危,用兵乃圣人不得已而为之,但它可以顺师卦位于讼卦之后,《序卦》之中这样解释道:"讼必有众起,故受之以师。师者,众也。"争讼的人越来越多,以致形成了军队。期待结果:content:"师卦"
summary:"在周易中,师卦是一个极具深意的卦象,它由两个异卦相叠组成:下卦坎(水)和上卦坤(地)。这一卦象代表"师",即军队,寓意着兵力和农力。师卦的核心哲学是:虽然兵力代表着危险和战争,但其使用应当是圣人不得已而为之的最后手段。在正确的情况下,军事力量可以顺应形势,将危险转化为吉凶。师卦紧随讼卦(争讼卦),在《序卦》中解释为"讼必有众起,故受之以师"。这意味着争端激化至众多人群的参与,形成了类似军队的集体力量。返回格式要求:
content:"(卦名)
summary:"(内容)"""

http://www.dtcms.com/a/562339.html

相关文章:

  • 网站源码.net微信官网weixinqqcom
  • 网页设计与网站建设期末考试试卷wordpress背景自动变幻图形
  • 注册网站挣钱wordpress太难用了
  • 怎么发布自己做的网站建设银行官方网站官网
  • 湘潭网站建设开发企业网站网页设计费用
  • 苏宁易购网站建设建议西安优秀的集团门户网站建设服务商
  • 济南网络建站php网站搭建教程
  • CTF密码学学习思路:从入门到进阶
  • 网站关键词做标签做一个企业网站需要哪些技术
  • 新闻门户网站psd模板网站的建设费计入无形资产吗
  • 网站建设如何空间绑定域名广告行业包括网站建设吗
  • 4.2 【2015统考真题】
  • Github学生认证报错Error getting location
  • 网站建设的调研报告网站建设经费计划内容
  • 那个网站可以帮助做数学题搜索营销
  • 百日挑战——单词篇(第十一天)
  • 广告网站建设原创wordpress网站加载效果
  • 微软网站开发哪些属于网站评论
  • 第四十二篇|JCL外国语学院的数据建模:日本语言学校的结构信任机制
  • Codeforces Round 957 (Div. 3)
  • 按钮控制数码管显示(中断实现)
  • 基于 Python 的电影知识图谱构建与可视化分析实战
  • 呢图网seo最新
  • 推荐设计网站ui设计培训项目
  • 注册网站查询官网cdr做的网站效果怎么直接用
  • 做维修广告效最好是哪个网站吗做网站怎么这么贵
  • 建设工程质量管理条例网站万网域名注册官网阿里云
  • 服务佳的广州网站建设网站建设开拓该行业的难点疑
  • 公钥与私钥:数学如何重塑数字身份认证的基石
  • 行业网站建设分析网站如何做提现功能