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以独立部署方式输出并服务线下客户,已助力多家大型客户高效自动化 ...
随机推荐
- 一些Clion使用记录
一些Clion使用记录 编译链设置 在设置"工具链"中可以按需增加不同的编译链 访问越界溢出debug AddressSanitizer介绍:AddressSanitizer 交的 ...
- Failed to collect dependencies at com.oneconnect......-Intellij-IDEA-使用maven打包采坑记录
一.问题由来 由于刚开始使用Intellij-IDEA,使用不是很熟练,因此使用过程中出现各种各样的问题.最近开发过程中,准备使用IDEA打包项目发布到测试服务器,报错信息如下: Failed to ...
- Vue3.x知识图谱
Vue3.x知识图谱 https://gitee.com/jishupang/vue3-knowledge-map/tree/master 回头有时间再贴图吧
- vue 可选链 功能 ?. 替代 res && res.status 可以变成 res?.status
安装 cnpm install --save-dev @babel/plugin-proposal-optional-chaining .babelrc { "presets": ...
- 基于4G的智能工牌解决方案特色解析
前记 随着数字化的不断发展以及cat1模块的竞争加剧.cat1无论从成本或者功耗上,都进化的特别快.这样的前提下,让基于4G可穿戴产品逐渐成为现实可穿戴产品必备.能解决以前很多不能解决的问题. 作 ...
- 2.4g无线私有协议透传方案特色梳理
为什么? 在2.4G这个频段,的确有待你拥挤,有提供高速上网的wifi,有提供短距离数据和云音乐传输的bt,还要各种xx的东西.在wifi和bt无法覆盖的领域,又出来一个2.4G私有协议传输芯片,这 ...
- Android MaterialButtonToggleGroup使用
原文地址: Android MaterialButtonToggleGroup使用 - Stars-One的杂货小窝 觉得单选框不好看,发现了一个Material里的单选按钮组,感觉UI还不错,记下使 ...
- 网络io与select
我们知道网络IO模型一共有5种,这里我们主要讨论同步IO和select多路复用的情况. 我们先从一个简单的TCP服务器的代码出发,来讨论一下这个是怎么实现的. 一个十分简单的TCP服务器 一个简单的T ...
- NJUPT自控第一次积分赛的小总结(一)题目感受
快开学了事情真的好多啊 -_- 忙完积分赛就赶紧要去复习期末了...线代还是依托答辩啥都不懂 先看题目吧,RT,我们队(我)选择的是第一题(仅仅是因为很简单罢啦) 一开始看题目,心想不就调调pid吗, ...
- Oracle与Java JDBC数据类型对照
Oracle Database JDBC开发人员指南和参考 SQL Data Types JDBC Type Codes Standard Java Types Oracle Extension Ja ...