机器人构建详解:售前售后服务客服机器人与广告生成机器人的微调数据处理方法

引言

        大模型(如BERT、GPT等)在自然语言处理任务中展现了强大的能力,但为了使其更贴合特定应用场景,通常需要进行微调。本文将详细讲解如何为售前售后服务的客服机器人和广告生成机器人准备高质量的微调数据,并通过具体的代码示例帮助读者更好地理解和应用这些技术。


一、微调数据来源与处理

        构建高效的机器人,关键在于使用高质量的微调数据。这些数据主要来自三个渠道,并经过一系列专业的处理步骤以确保数据质量。我们将结合售前售后服务客服机器人和广告生成机器人的具体场景来说明。

  1. 历史问答记录与广告文案

    • 数据来源
      • 客服机器人:公司积累的历史问答记录,由真人客服与客户通过淘宝旺旺、抖音等平台沟通产生。
      • 广告生成机器人:公司积累的历史广告文案。
    • 处理步骤
      1. 建立不文明用语词库:创建包含不文明用语的词库,用于后续筛选(仅适用于客服机器人)。
      2. 关键词匹配剔除:使用程序进行关键词匹配,自动剔除包含不文明用语的内容(仅适用于客服机器人)。
      3. 数据清洗:对剩余数据进行初步清洗,去除冗余信息和格式化问题。
      4. 人工审核:对清洗后的数据进行人工审核,剔除回答效果不佳或不符合业务逻辑的内容。
      5. 最终筛选:保留高质量的问答对作为微调数据。
      6. 生成更多问题:针对每个广告文案,人工编写相关的问题,并送入大模型生成更多含义相同但表达不同的问题,增加样本多样性(仅适用于广告生成机器人)。
  2. 文档及手册与产品SKU信息

    • 数据来源
      • 客服机器人:与问答相关的文档、说明书、手册等信息。
      • 广告生成机器人:产品的SKU信息。
    • 处理步骤
      1. 文本分块:对文档进行初步整理并分块,确保每个文本块主题明确且长度适中。
      2. 生成问题:利用大模型根据每个文本块生成相关问题,确保问题的多样性和覆盖面。
      3. 知识库构建:将生成的问题送入LangChain提问,获取答案,形成知识库(仅适用于客服机器人)。
      4. 生成广告文案:将产品SKU信息送入开源大模型(如ChatGPT),通过提示词生成相关广告文案(仅适用于广告生成机器人)。
      5. 人工筛选:人工筛选后保留高质量问答对作为微调数据。
      6. 数据增强:通过同义词替换、句子重组等方式增加数据多样性,提升模型泛化能力。
  3. 网上爬取的数据

    • 数据来源
      • 客服机器人:从互联网上爬取礼貌沟通的闲聊问答对,剔除涉及产品的数据。
      • 广告生成机器人:从互联网上获取的广告文案。
    • 处理步骤
      1. 数据采集:使用网络爬虫工具从多个可信来源收集数据,确保数据的多样性和代表性。
      2. 数据清洗:去除无关信息,保留高质量的问答对或广告文案。
      3. 去重处理:通过哈希算法或相似度计算,去除重复或高度相似的问答对或广告文案。
      4. 人工审核:对筛选后的数据进行人工审核,确保数据质量和适用性。

所有上述数据最终通过程序拼接,整理成JSON格式的问答对,其中context键对应问题,summary键对应答案。此外,还可以引入半监督学习方法,结合少量标注数据和大量未标注数据,进一步提高模型性能。


二、代码示例

为了更好地理解上述流程,下面提供一些代码示例,展示如何处理和整理微调数据。

1. 数据清洗与关键词匹配
import re
from sklearn.feature_extraction.text import CountVectorizer# 示例不文明用语词库
uncivil_words = ['脏话1', '脏话2']def clean_text(text):# 去除标点符号和特殊字符text = re.sub(r'[^\w\s]', '', text)return text.lower()def remove_uncivil(text, uncivil_words):words = text.split()cleaned_words = [word for word in words if word not in uncivil_words]return ' '.join(cleaned_words)# 示例数据清洗
texts = ["这是个测试句子,包含脏话1", "另一个干净的句子"]
cleaned_texts = [remove_uncivil(clean_text(text), uncivil_words) for text in texts]
print(cleaned_texts)
2. 自动生成问题
from transformers import pipeline# 初始化大模型
qa_pipeline = pipeline("question-generation")# 示例文本
text = "这是一段关于某个产品的描述,它具有很多独特的功能。"# 自动生成问题
questions = qa_pipeline(text)
for q in questions:print(q['question'])
3. 整理成JSON格式
import json# 示例问答对
qa_pairs = [{"context": "这是一个问题", "summary": "这是一个答案"},{"context": "这是另一个问题", "summary": "这是另一个答案"}
]# 写入JSON文件
with open('qa_data.json', 'w', encoding='utf-8') as f:json.dump(qa_pairs, f, ensure_ascii=False, indent=4)# 读取JSON文件
with open('qa_data.json', 'r', encoding='utf-8') as f:data = json.load(f)print(data)
4. 知识库构建与查询
from langchain import LangChain# 初始化LangChain
langchain = LangChain()# 示例知识库构建
knowledge_base = {"问题1": "答案1","问题2": "答案2"
}# 查询知识库
query = "问题1"
answer = langchain.query(knowledge_base, query)
print(answer)
5. 广告文案生成
from transformers import pipeline# 初始化大模型
generation_pipeline = pipeline("text-generation")# 示例产品SKU信息
sku_info = "产品名称: T恤, 颜色: 白色, 尺码: M"# 提示词
prompt = f"根据以下产品信息生成一则简洁的广告文案:{sku_info}"# 生成广告文案
ad_copy = generation_pipeline(prompt, max_length=50, num_return_sequences=1)[0]['generated_text']
print(ad_copy)

最佳实践建议

为了确保微调数据的质量和有效性,以下是一些建议:

  • 多样化数据来源:尽可能从多个渠道获取数据,确保数据的多样性和代表性。
  • 严格的人工审核:尽管自动化工具可以帮助处理大量数据,但最终的数据质量仍需依赖人工审核。
  • 持续迭代改进:定期更新和扩充数据集,确保模型能够适应不断变化的业务需求。
  • 引入高级技术:考虑引入半监督学习、对抗训练等先进技术,进一步提升模型性能。

总结

        机器人的构建,微调数据的质量直接影响到最终模型的效果。通过精心选择和处理数据源,可以显著提高模型的性能和实用性。希望本文能为你提供有价值的参考和启发。


参考资料

  • LangChain Documentation
  • OpenAI API Documentation
  • 对抗生成网络 (GAN) 概述

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

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

相关文章

cocos中使用SocketIO

Creator版本:v3.8.3 socketIO是socket的一个封装 cocos里集成了websocket但是没有socketIO 下载依赖文件 首先需要下载socketIO代码,版本要和后端保持一致 能npm下载最好npm install socket.io-clientversion(需要指定版本) 但我这一直超时,所以就直接…

AWD学习(二)

学习参考: AWD攻防学习总结(草稿状态,待陆续补充)_awd攻防赛入门-CSDN博客国赛分区赛awd赛后总结-安心做awd混子-安全客 - 安全资讯平台 记第一次 AWD 赛前准备与赛后小结-腾讯云开发者社区-腾讯云 AWD学习笔记 - DiaosSamas Blog…

Java从入门到工作2 - IDEA

2.1、项目启动 从git获取到项目代码后,用idea打开。 安装依赖完成Marven/JDK等配置检查数据库配置启动相关服务 安装依赖 如果个别依赖从私服下载不了,可以去maven官网下载补充。 如果run时提示程序包xx不存在,在项目目录右键Marven->Re…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 原模型 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 原模型 多图推理 flyfish 输入 输出 [‘第一张图片是一幅中国山水画,描绘了一座山峰和周围的树木。第二张图片是一张现代照片,展示了一座山峰和周围的自然景观,包括水体和植被。’] fro…

HTML和JavaScript实现商品购物系统

下面是一个更全面的商品购物系统示例,包含新增商品、商品的增加删除以及结算找零的功能。这个系统使用HTML和JavaScript实现。 1.功能说明: 这个应用程序使用纯HTML和JavaScript实现。 包含一个商品列表和一个购物车区域。商品列表中有几个示例商品&a…

Linux网络之“桥接模式”和“NAT模式”配置

介绍虚拟机的“桥接模式”和“NAT模式”配置。 1、“桥接模式”介绍 “桥接模式”将虚拟机的虚拟网络适配器与主机的“物理网络适配器”进行交接,虚拟机中的“虚拟网络适配器”通过主机中的“物理网络适配器”访问外部网络。物理主机的网卡好比是一个“虚拟的交换机…

Harmonyos之深浅模式适配

Harmonyos之换肤功能 概述实现原理颜色适配颜色资源配置工具类编写界面代码编写适配效果 概述 深色模式(Dark Mode)又称之为暗色模式,是与日常应用使用过程中的浅色模式(Light Mode)相对应的一种UI主题。 换肤功能应…

github配置pages并配置自定义域名

有cloudflare的话实现的效果更好,可以使用自己的域名,实现白嫖一个网站服务器 1、配置git(可选步骤) git init git config --global user.name "sijia" git config --global user.email "devopsgame.vip"g…

HDFS的Federation机制提高存储能力及读写性能的实现原理和Erasure Coding节省存储空间的原理

目录 Federation机制的实现原理1.HDFS的分层图解(1)NameSpace(2)Block Storage1)Block Management2)Storage 2.Federation机制的优点3.Federation机制的缺点4.Federation机制的实现(1&#xff0…

shell编程(完结)

shell编程(完结) 声明! 学习视频来自B站up主 ​泷羽sec​​ 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其…

echarts图表自定义配置(二)——代码封装

下图是初版,火山图的代码。可以看出,里面的变量,逻辑,函数存在冗余,基本上都是改了参数,同样的get和set,去刷新图表;对于往后继续开发十几二十个图表,会很麻烦。因此需要…

《庐山派从入门到...》IDE启动

《庐山派从入门到...》IDE启动 《庐山派从入门到...》IDE启动 IDE(Integrated Development Environment),即集成开发环境,是一种软件应用程序,旨在为软件开发人员提供一个全面的工具集合,以便可以更高效地编…

Elasticsearch 集群部署

Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我…

SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!

一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情况下我们在开发系统的时候都是使用一个数据源,但是由于有些项目同步数据的时候不想造成数据库io消耗压力过大,便会一个项目对应多个数据源…

软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护

10.6 大型网站系统架构演化实例 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,主要解决这类问题。 1. 单体架构 特点: 所有资源(应用程序、数据库、文件)集中在一台服务器上。适用场景: 小型网站&am…

angular图表echarts设置

angular框架ngx-echarts图表的配置 图表高度设置 默认高度是400px 可以自己动态设置容器高度 <div echarts nz-row nzJustify"start" [options]"option" [style.height]"option.echartHeight"></div>option.echartHeight‘600px’…

FastAPI vs Flask 选择最适合您的 Python Web 框架

文章目录 1. 简介2. 安装和设置3. 路由和视图4. 自动文档生成5. 数据验证和序列化6. 性能和异步支持结论 在 Python Web 开发领域&#xff0c;FastAPI 和 Flask 是两个备受欢迎的选择。它们都提供了强大的工具和功能&#xff0c;但是在某些方面有所不同。本文将比较 FastAPI…

[SAP ABAP] DEBUG ABAP程序中的循环语句

在ABAP程序开发中可能会遇到要DEBUG循环语句的情况&#xff0c;这个循环语句可能会执行上万次&#xff0c;但我们希望程序执行循环到100次就停下来&#xff0c;也就是希望DEBUG断点设置在循环语句的第100次停下来观察执行的结果&#xff0c;这时我们可以在DEBUG程序时通过设置一…

服务器部署,用 nginx 部署后页面刷新 404 问题,宝塔面板修改(修改 nginx.conf 配置文件)

如果你的项目使用了 vue&#xff0c;并使用了路由且路由配置为 history 模式&#xff0c;就会出现这种情况。 当你使用 nginx 部署前端项目时&#xff0c;发现页面刷新或不用根目录访问页面时&#xff0c;出现404页面 宝塔面板 解决方法&#xff1a;修改 nginx 配置&#xff…

学习思考:一日三问(思考篇)之路由表

学习思考&#xff1a;一日三问&#xff08;思考篇&#xff09;之路由表 学了什么&#xff08;是什么&#xff09;Destination/Mask&#xff08;最终目标&#xff0c;寻路必须&#xff09;Proto&#xff08;择优可选&#xff09;Pre&#xff08;择优可选&#xff09;Cost&#x…