llm构建数据标注助手
为什么要用LLM构建数据标注工具
在LLM出现之前,传统的深度学习模型(包括CV和NLP)就已经需要大量的数据进行训练和微调。没有足够的数据,或者数据需要进行二次加工(比如标签标注),这些问题都成为限制深度学习模型泛化的关键。对于第一个问题,一般就是从网络上爬虫或者花大价钱从数据供应商购买数据;对于第二种情况,一般是找外包进行标注,这在业界非常普遍。
种类 | 优点 | 缺点 |
---|---|---|
爬虫 | 成本几乎可以忽略 | 质量参差不齐 |
买数据 | 质量符合要求 | 价格昂贵 |
标注 | 准确性足够 | 昂贵、容易泄露数据信息 |
自从Chatgpt3.5诞生以来,已经有不少公司使用Chatgpt的接口来标注自己的数据了,甚至国内知名的大模型公司也有这些操作,这是因为大家逐渐发现LLM已经可以达到和人类数据标注者相同的水平。
大模型现在已经不是什么稀罕之物了,但是为什么有的大模型效果就比别人的好很多呢?一般认为是数据质量起到决定性的作用。据网上流传的消息,OpenAI数据标注过程可是非常昂贵的,简单理解就是模型训练用到的数据可以分成好几个档次,比如生活常识、基础知识、高级知识等。对于生活常识,可能一个普通的工人就能标注,而且这类标注往往只是选择一个正确的选项即可。而基础知识类可能需要有义务教育才能解决,而且需要写出简短的解题理由。而高级知识往往是某个领域专属的数据,比如医疗、法律等,往往是需要这些专业的研究生及以上学历的人来标注,而且需要写出完整的解题思路。正因为花了大量的时间和金钱在构建高质量的数据上,才有了OpenAI如今碾压别人的表现。
话说回来,既然已经有如此多优秀的大模型开源出来了,那么对于普罗大众来说,就可以用这些模型来帮助自己、提升效率,只要不违反相应的协议即可。
用LLM构建数据标注助手
在网上找了一个中文的酒店住宿评价数据集用于本次验证模型标注能力,数据下载地址:住宿评论数据
数据预览:
# 好评,用1表示
1,在宜昌应该是排名前三位的酒店了,希望能继续得到保持,应该会成为宜昌的首选
1,外观看起来不是很起眼,房间不是很大,但是很干净,服务也不错,早餐也很丰富,比较喜欢。
1,环境优美,设施齐全,服务周到,房间舒适。
1,员工服务好,房间舒适如家,硬件设施应有尽有,保持。
...
# 差评,用0表示
0,看到网友的点评还有些不信,去了以后才知道什么叫全世界最脏,最差的酒店。
0,超级恶心的一家宾馆,入住后发现写字台窗台上到处是灰尘,非常恶心,向总台投诉后,才打扫干净!服务非常差,房间也非常差,进去后还有异味,而且床非常不舒服,感觉床单也不干净,个人感觉根本够不上星级!太恶心了,这么破的地方,晚上竟然还有人打骚扰电话,问要不要服务,什么破地方!早餐也非常恶心,根本没什么吃的!!
0,一个字,差啊,冷啊,暖气没有.空调太差!
0,服务极差,价格高,地点环境偏,房间条件能有一星..
本次使用了Chatglm3-6b-32k的模型搭建了一个本地的服务,如果用的是其他厂商提供的API,只需要修改url的内容以及传输的参数即可。如果用的是本地的模型,就把post请求替换为模型的调用即可。而且为了加快处理,用了进程池,如果用的是买的API,可能需要加个延迟防止短时间内发起太多请求。
import pandas as pd
import requests
import json
from multiprocessing import Pool
df = pd.read_csv('ChnSentiCorp_htl_all.csv')
url = 'your_llm_serve_api'
def process_text(t):
try:
prompt = f"""\
你是一个精通酒店用户评论的标注员,能准确辨别出用户的评价是正面的还是负面的。
你的任务是从用户的角度分析以下文本中的情绪,并仅用两个标签中的一个标签进行标记。
不要提供任何解释,只返回标签:正面、负面
例子:
文本: 早餐很丰富,服务也热情,早上很早退房时,前台值此人员办理手续也非常快.
标签: 正面
文本: 离机场很近,房间里的床很大,里面还有一面镜子
标签: 正面
文本: 可能是酒店比较老的缘故,房间看起来很一般,设施也比较一般.
标签: 负面
文本: 房间太小。设施太简单。服务太冷淡。不会再住。
标签: 负面
你需要标注的评论:
文本: {t}
标签: """
d = {"messages": prompt}
response = requests.post(url, data=json.dumps(d), stream=False)
r = json.loads(response.text)
return r
except Exception:
return 'ERROR'
if __name__ == '__main__':
texts = df['review'].tolist()
with Pool(processes=4) as pool: # 根据需要设置进程数量
results = pool.map(process_text, texts)
tmp = []
for t, r in zip(texts, results):
tmp.append(f"{r}[<>]{t}") # 加个符号区分标签和文本
with open('./save_res.txt', 'w') as f:
f.write('\n'.join(tmp))
效果评估
实际\预测 | 正 | 负 |
---|---|---|
正 | 4266 | 1056 |
负 | 230 | 2215 |
综合来看准确率只有83%,初步看起来不高。
距离川沙公路较近,但是公交指示不对,如果是"蔡陆线"的话,会非常麻烦.建议用别的路线.房间较为简单
早餐太差,无论去多少人,那边也不加食品的。酒店应该重视一下这个问题了。房间本身很好。
闹中取静的一个地方,在窗前能看到不错的风景。酒店价格的确有些偏高
价格偏高,好象连云港这地方的酒店都偏贵.早饭不好.房间还不错,窗外风景还行.最重要是房间的窗户很隔音.床小,还是明珠万豪的床好些.
房间设备太破,连喷头都是不好用,空调几乎感觉不到,虽然我开了最大另外就是设备维修不及时,洗澡用品感觉都是廉价货,味道很奇怪的洗头液等等...总体感觉服务还可以,设备招待所水平...
随机查看了5条模型标注为负面但标签是正面的评论,实际上这几条都没有完全好评的内容,基本上都是中性甚至偏向负面。因此实际上准确率应该在83%以上才对,这里主要还是受到数据集本身都影响。
本次虽然只测试了Chatglm3-6b-32k的模型,其他的模型如千问、llama等虽然没测,但应该都可以满足标注需求了,说明用现在的大模型来标注数据是完全可行的,能节省成本。如果怕泄漏数据那把模型部署到本地即可,这些大模型在消费级显卡上完全是跑得动的。
llm构建数据标注助手的更多相关文章
- 破局AI落地难,数据标注行业需率先变革丨曼孚科技
2019年,国内人工智能领域的投融资热情大幅降低,相当数量的AI企业彻底消失在了历史的长河中,“人工智能寒潮已至”甚至成为行业年度热词. 与前几年创业与投资热情齐头并进的盛况相比,近段时间的AI行业 ...
- 曼孚科技:数据标注,AI背后的百亿市场
1. 两年前,来自山东农村的王磊成为了一位数据标注员.彼时的他,工作内容非常简单且枯燥:识别图片中人的性别. 然而,一段时间之后,他注意到分配给他的任务开始变得越来越复杂:从识别性别到年龄,从框选 ...
- 3.基于Label studio的训练数据标注指南:文本分类任务
文本分类任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取).文本分类等 2.基于Label studio的训练数据标注指南:(智能文档) ...
- 零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程。
零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程. 1.通用文本分类技术UTC介绍 本项目提供基于通用文本分类 UTC(Universal Text C ...
- Kafka笔记7(构建数据管道)
构建数据管道需要考虑的问题: 及时性 可靠性 高吞吐量和动态吞吐量 数据格式 转换 安全性 故障处理能力 耦合性与灵活性 数据管道的构建分为2个阵营,ETL和ELT ETL:提取- ...
- 使用Dataset构建数据到lgb中
训练数据要放到Dataset中供lgb使用,构建数据如下: import lightgbm as lgb import numpy as np # 训练数据,500个样本,10个维度 train_da ...
- tableau desktop(三)--构建数据视图(二)
前段时间忙于工作的事情,好久没有来记录一点东西了,今天利用周末做点记录吧,近期因为工作的原因,也有两三周没实用tableau了.今天继续上一篇构建数据试图(二). 3.7 參考线和參考区间 參考线通经 ...
- 分析Python中解析构建数据知识
分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...
- Dataphin帮助企业构建数据中台系列之--萃取数据中心
Dataphin作为阿里巴巴数据中台OneData (OneModel.OneID.OneService)方法论的产品载体,帮助企业构建三大数据中心:基于数据集成形成的垂直数据中心.基于数据开发沉淀的 ...
- 阿里大数据产品Dataphin上线公共云,将助力更多企业构建数据中台
日前,由阿里数据打造的智能数据构建与管理Dataphin,重磅上线阿里云-公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客户高效自动化 ...
随机推荐
- 第12章_MySQL数据类型精讲
第12章_MySQL数据类型精讲 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT. ...
- Abp.Zero 手机号免密登录验证与号码绑定功能的实现(三):Vue网页端开发
前端代码的框架采用vue.js + elementUI 这套较为简单的方式实现,以及typescript语法更方便阅读. 首先来编写发送验证码函数, 登录,绑定,解绑的业务都需要发送验证码功能,通过c ...
- idea 暂存 Stash Changes Git/Repository/Stash Changes 恢复暂存 UnStash Changes
idea 暂存 Stash Changes Git/Repository/Stash Changes 恢复暂存 UnStash Changes git stash save "save me ...
- WPF之XAML语法
目录 树形结构 对象属性赋值语法 使用标签的Attribute 使用属性元素 扩展:标记扩展(Markup Extensions) 扩展:使用TypeConverter 类映射Atribute与Pro ...
- Android Studio 下载jcenter依赖失败问题及解决
优先国内的镜像下载即可 我用的华为和阿里云的国内镜像 google() maven { url 'https://jitpack.io' } maven { url 'http://maven.ali ...
- day11-实现Spring底层机制-01
实现Spring底层机制-01 主要实现:初始化IOC容器+依赖注入+BeanPostProcessor机制+AOP 前面我们实际上已经使用代码简单实现了: Spring XML 注入 bean (S ...
- python学习笔记(2): 函数式编程
函数式编程 高阶函数 map() map接受一个函数和一个可迭代对象(Iterable),返回一个map对象(Iterator) def f(x): return x*x list(map(f, [1 ...
- 记一个很好用的轻量级翻译软件 copytranslator
软件下载主页: https://gitee.com/ylzheng/CopyTranslator/wikis/windows 可以设置始终置顶,监听剪切板,翻译起来非常方便
- 数与计算机 (编码、原码、反码、补码、移码、IEEE 754、定点数、浮点数)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 说说你对vue的mixin的理解,有什么应用场景?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现.其他类可以访问mixin类的方法而不必成为其子类 Mixi ...