约 192GB 短信样本如何标记分类?

53 天前
 andforce

之前开发了一个《垃圾短信过滤 App 》- 胖鱼信使

为什么要重新造轮子?

主要是 2 个原因: 1: 市面上没有完全不联网的垃圾短信过滤 App 2: 想学习一下人工智能分类

192.36 GB 纯文本短信数据

上架研发初期,垃圾短信的训练样本都是来自互联网,然后加上自己和家人的几百条数据,

偶尔有用户会给我回馈几条,还能处理。

后来想更提高一把模型准确性,想多搞点样本,有个用户提供了这些个短信数据。

192,184,722,019 字节(磁盘上的 192.36 GB )

纯文本数据,这也太多了。。。。

有什么工具能对其进行批量标注吗?

5426 次点击
所在节点    程序员
65 条回复
raycool
53 天前
部署个 qwen2.5 最新开源的大模型
使用大模型快速标注
andforce
53 天前
@raycool 我粗略估算了一下,按照 utf8 编码,汉字大约占用 3 个字节。那么就是约 640 亿个汉字,假设每条短信按 30 个汉字算,大约有 21 亿条。
如果考虑到去重,就算 80%是重复的,那么还得有 4 亿条。。。。

由于大模型思考需要时间,就算 1 秒条,全部标注完也得 10 万小时起步了。。。
lozzow
53 天前
可以简单的使用文本正则处理一次,然后用这些基于正则的数据跑一个分类模型出来,再用这个分类模型(需要适当的调整下输入的数据)去处理剩余的数据,如果是我的话会这么处理,或者第一步用正则处理出来的数据+用大模型处理的一些数据来做
andforce
53 天前
@lozzow 经过 2 楼的数据量估算,数据量太大了。

数据条数都按亿为单位了,突然觉得没有必要全部都参与训练。

感觉可以从中根据关键字主动选取垃圾短信,和正常短信。

感觉训练数据样本再百万级别就已经很能打了
guiyumin
53 天前
有吧?那个熊猫吃短信
andforce
53 天前
@guiyumin 可能我表达不太严谨。我想要的是这个应用完全离线,连网络权限都不申请那种。

熊猫我记得提交反馈的时候会有网络权限申请
noqwerty
53 天前
@andforce 不联网怎么提交反馈呢
rechardwong0522
53 天前
可以先用聚类试着清理掉重复度高的样本,然后选出一部分来训练就可以了。
syaoranex
53 天前
没必要所有的短信都拿来训练,同意楼上所说,可以先聚类再挑选聚类中心的一部分短信来用于训练。没有被挑中的就拿来当测试集就 OK 了。因为聚成一类的大多数都是重复的模式。

聚类的时候,可以先用正则等文本匹配来识别短信发送源,例如 [XX 应用] 之类的,然后在每个发送源下,使用文本嵌入模型转换向量,之后对向量进行聚类,建议聚多个类,挑选多个聚类中心的前 3~5%的短信来训练。足够有代表性。这一步可以很快,因为文本嵌入模型一般不大,运行速度尚可接受。至此筛选出 2-3kW 条典型短信。

如果还想更快,可以使用分词+词表统计的方法统计词频生成稀疏向量再聚类的办法,这种方法也许更适合,如果数据集中同一来源的大多数短信是套取模板(比如运营商的话费流量短信)生成的,那么可以针对模板类短信取其中千分之一的样本,模板类短信之外的取较大比例的样本,覆盖度更好。

之后就是用 LLM 来进行文本分类了,文本分类任务上,再优秀的传统模型的效果可能才刚好够上最烂的大模型。至于速度问题,可以搭配提示工程尝试效果不错的小模型,或者使用 Groq 等平台,它们提供了吞吐速度较快的大模型,分类任务足够了;而且可以搭配工程实现的优化:对于同一个聚类样本,例如 2K 条样本,如果在分类过程中前 1K 条样本有 95%以上都被判定为垃圾短信,那么可以将后 1K 条样本直接划为垃圾短信,这样做可以节省大量时间。同时也可以考虑多个平台多个账号并发处理,我认为资金充足的情况下,1 秒 10 个的处理速度还是可以达到的。按照这个速度,一个月可以弄完 2.5 kW 条样本的分类。
GeekGao
53 天前
andforce
52 天前
@noqwerty #7 我的 app 的做法是:点击反馈跳转到网页,在网页里让用户主动粘贴。

其实 App 有了联网权限,就有了把短信自动上传的可能性,当然如果你 100%信任作者或者不关心“可能短信会被收集”这件事,就无所谓了
andforce
52 天前
@syaoranex #9 感谢,不过“使用文本嵌入模型转换向量”这听起来好像有点过于专业了,不太会实际操作。
murmur
52 天前
短信现在感觉没有分类的意义了,长文本才有分类的意义,因为短文本本身就表意不明,长语句现在更倾向于微信说话

最后分类出来要么是验证码要么是广告
ibazhx
52 天前
可以使用智谱的 batch api
Pteromyini
52 天前
简单聚类然后抽出一部分样本做分类
weofuh
52 天前
是不是可以先从这 192G 文件里提取 1 ~ 100M 出来,分析下热点词什么的,再看有什么规律、共性
securityCoding
52 天前
按我做推荐工程给算法同学打工的经验,第一步一定是洗数据🌚
sxfscool
52 天前
这个方向不太建议,现在基本不会有人安装非系统自带的短信 app 了吧
dhb233
52 天前
技术相关的不太懂,个人使用上来说,除了验证码,都是垃圾短信。。。
TimeStudy
52 天前
autodl 租个 4090 跑起来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075541

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX