-
Notifications
You must be signed in to change notification settings - Fork 403
ChatGPT面前,JioNLP 工具的价值在何处?
- ChatGPT 自从2022年11月30日公测以来,可以说将 NLP 原有的业界模式全方位改变了。还没了解 ChatGPT 的可以读一下我的文章《ChatGPT原理介绍(无公式版)》
- 对于 NLP 从业者来说,亟需思考的就是,我们以往的工作的价值是否就随着业态的改变而消失?
- 对于这个问题,我在博文 《ChatGPT这么强,会影响NLPer的就业环境吗?》 里有非常详细的阐述,欢迎大家阅读。
ChatGPT 本身是直接面向人的模型,而人本身对模型的推理耗时并不敏感。换句话说,ChatGPT 的推理耗时慢则停留在5~30秒的范围内(最初公开网页版),快也要在1~3秒的范围内(openai API版),由于模型的体量摆在这里,无论怎么优化,它的推理速度一定到不了毫秒级。
其实也有很多的任务,并不需要直接面向用户,而且人们忍受不了如此长的处理耗时,例如,地址解析,这个功能常用在快递行业、邮政行业等等,我们无法接受一个地址解析功能去调用 ChatGPT 模型,等待1到3秒钟,此外,全世界地址千千万万,每时每刻需要处理巨量的地址信息,这就导致了大模型在处理这些问题上的吃力。因此,对于这些不直接面向用户问答,并行计算量大,且任务难度并不算高的任务,传统的NLP 工具和软件依然有存在价值。
ChatGPT 输出的一定是一段文字,但是有时我们需要的并不是文字,而是结构化数据,例如时间语义解析,针对一个时间短语 明天早上8点半
,功能要求,输出结构化的信息{'time_point': '2023-03-14 08:30:00', 'time_base': '2023-03-13 18:23:09'}
,这是一个json 结构的数据,需要触发别的程序在明早8点30分
执行相应功能,当然,我们可以要求 ChatGPT 按 json 格式返回数据,但是,存在两个问题:一个是这样的调用量非常大,单纯用ChatGPT 是成本巨大的,二个是ChatGPT 的强项在于语言的精准表述,而非结构化、计算量化的数据输出,直接要求ChatGPT 返回格式化数据,存在不稳定的输出隐患(json 无法真正 loads)。这就导致了,此类功能依然需要利用传统的工具来完成。
不可否认,类 ChatGPT 将会对传统 NLP 的模式、工具、软件、商业都产生冲击,JioNLP 工具同样不可避免。但 JioNLP 也有一些独特的优势是类 ChatGPT 等模型难以替代的。
JioNLP 工具包短时间内,依然是具备竞争力的。实际上在生产应用中,稳定性是最关键的一环,而人工神经网络依靠概率进行输出,永远都存在极微小概率的输出异常,影响线上生产。 例如,阅读理解下文,判断用户到底想要订几点的闹钟?
针对这个例子,用传统的NLP 直接来进行模型建模或解析,肯定是比较困难的。如果首先经过ChatGPT,将准确时间明天的早上8点50分
返回出来,然后再使用JioNLP 的语义解析功能将可供程序接口调用的形式反馈出来。一方面增强了模型的可解释性,另一方面保证了输出结果的准确性。
除了时间语义解析功能之外,所有根据词典和解析规则实现的功能,如“邮箱抽取”、“地址解析”等等,均可以采用 JioNLP 工具进行输出结果的稳定化和可解释化。
目前而言,超大规模参数的 ChatGPT 带来的一个问题就是输出速度慢,针对一条问题的回复生成需要耗费较多的时间,针对大量的并发请求是不足够使用的。 而 JioNLP 工具瞄准的是针对简要、常用任务的高效调用。例如,JioNLP 的地址解析能力但进程调用速度可达180条每秒(不同机器性能不同),这对于 ChatGPT 模型是大材小用。所以,JioNLP 此时依然存在生存空间。
众所周知,Python 语言的处理速度是比较慢的,JioNLP 将在未来对某些需要大规模使用的接口和功能进行 C++ 语言的迁移,使得接口更加适用于生产环境。如文本清洗接口、分句功能等等。 当然,C++ 语言在对字符串的各种操作上是不方便的,尤其是涉及到字符串的编码方面,QString 库相对来讲较为优秀,但也存在局限性。
在未来,JioNLP 将对一些大模型需要的接口或者功能进行封装和优化。