为什么要用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构建数据标注助手的更多相关文章

  1. 破局AI落地难,数据标注行业需率先变革丨曼孚科技

    ​2019年,国内人工智能领域的投融资热情大幅降低,相当数量的AI企业彻底消失在了历史的长河中,“人工智能寒潮已至”甚至成为行业年度热词. 与前几年创业与投资热情齐头并进的盛况相比,近段时间的AI行业 ...

  2. 曼孚科技:数据标注,AI背后的百亿市场

    ​ 1. 两年前,来自山东农村的王磊成为了一位数据标注员.彼时的他,工作内容非常简单且枯燥:识别图片中人的性别. 然而,一段时间之后,他注意到分配给他的任务开始变得越来越复杂:从识别性别到年龄,从框选 ...

  3. 3.基于Label studio的训练数据标注指南:文本分类任务

    文本分类任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取).文本分类等 2.基于Label studio的训练数据标注指南:(智能文档) ...

  4. 零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程。

    零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程. 1.通用文本分类技术UTC介绍 本项目提供基于通用文本分类 UTC(Universal Text C ...

  5. Kafka笔记7(构建数据管道)

    构建数据管道需要考虑的问题: 及时性  可靠性 高吞吐量和动态吞吐量   数据格式  转换    安全性   故障处理能力  耦合性与灵活性 数据管道的构建分为2个阵营,ETL和ELT ETL:提取- ...

  6. 使用Dataset构建数据到lgb中

    训练数据要放到Dataset中供lgb使用,构建数据如下: import lightgbm as lgb import numpy as np # 训练数据,500个样本,10个维度 train_da ...

  7. tableau desktop(三)--构建数据视图(二)

    前段时间忙于工作的事情,好久没有来记录一点东西了,今天利用周末做点记录吧,近期因为工作的原因,也有两三周没实用tableau了.今天继续上一篇构建数据试图(二). 3.7 參考线和參考区间 參考线通经 ...

  8. 分析Python中解析构建数据知识

    分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...

  9. Dataphin帮助企业构建数据中台系列之--萃取数据中心

    Dataphin作为阿里巴巴数据中台OneData (OneModel.OneID.OneService)方法论的产品载体,帮助企业构建三大数据中心:基于数据集成形成的垂直数据中心.基于数据开发沉淀的 ...

  10. 阿里大数据产品Dataphin上线公共云,将助力更多企业构建数据中台

    日前,由阿里数据打造的智能数据构建与管理Dataphin,重磅上线阿里云-公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客户高效自动化 ...

随机推荐

  1. Python列表字典推导式

    [一]语法 列表推导式可以利用列表,元组,字典,集合等数据类型,快速的生成一个特定需要的列表. 语法格式如下 [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]] [二]列表推导式 [ ...

  2. Zabbix“专家坐诊”第185期问答汇总

    问题一 Q:Zabbix5.0版本,如图,请问这里怎么修改回localhost? A:找到文件conf/zabbix.conf.php,改下图这个位置 问题二 Q:大家好,我有个疑问请教下,zabbi ...

  3. The History of the English language 英语语音的起源 - 英语的历史 - 古英语 印欧语 希腊语 拉丁语

    印欧语 希腊语 拉丁语 日耳曼语 都是什么年代的语言 https://time.graphics/line/776755 印欧语是指印欧语系,它最初被认为在公元前2500年左右分散流传于欧洲.亚洲和印 ...

  4. 数据湖&湖仓一体简介

    1 简介 术语 数据库 数据库是"按照数据结构来组织.存储和管理数据的仓库". 广义上的数据库,在20世纪60年代已经在计算机中应用了.但这个阶段的数据库结构主要是层次或网状的,且 ...

  5. TI工程师总结的判断ADS129x是否工作正常的方法步骤

    当大多数 ADC 出现无响应时,可以通过一些基本的调试技术帮助验证器件是否仍然正常工作.以下是 ADS129x 器件出现无响应时需要采取的一些基本步骤: 为器件通电.然后探测器件电源引脚或最近的去耦电 ...

  6. 基于wifi的音频采集及处理解决方案小结

    一沉浮    这些年,一直围绕着音频来做案子,做出来的案子自己都数不清楚了.记得前几年,刚出道的时候,就把wifi音频传输的设备做出来了.可惜的是,当初太超前市场了,鲜有人问.随着时间的推移,在疫情之 ...

  7. C语言中的强制转换

    许久没有遇到的问题   C语言真是博大精深,越使用它,就越发感觉到它的威力和恐怖,最近在做算法的时候,遇到了一个强转的错误,把人折腾的够受,这次要好好梳理一下了,希望下次不能再犯此类的问题. 强制转换 ...

  8. leetcode数据库sql之Delete Duplicate Emails

    leetcode原文引用: Write a SQL query to delete all duplicate email entries in a table named Person, keepi ...

  9. [STM32]STM32双机串口通信

    [STM32]STM32双机串口通信 上一篇的通信方案在发送端高强度通信下寄了,发现是函数HAL_UART_Transmit()的锅,一个函数居然能跑0.3s左右...于是打算选用DMA收发数据,但是 ...

  10. 记录--vue3的宏到底是什么东西?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 从vue3开始vue引入了宏,比如defineProps.defineEmits等.我们每天写vue代码时都会使用到这些宏,但是你有 ...