摘要

数据标注是大语言模型(LLMs)的一个重要应用。在这篇文章中,我将分享使用ChatGPT(API版本3.5和4)进行Aspect-Based Sentiment Analysis(ABSA)即基于方面的情感分析之后获得的一些见解和知识。我选择ABSA作为示例,是因为它是一个具有挑战性的任务,并且我之前在没有依赖LLMs的情况下,已经在一些研究和行业项目中处理过类似任务。例如,我的团队曾经训练并提供了一个基于BERT的ABSA 模型,您可以通过以下链接访问。

https://huggingface.co/tezign/BERT-LSTM-based-ABSA

本文的关键要点:

  • LLMs可以有效地执行数据标注任务,其表现水平类似于人类,且无需人工数据标注和模型训练,从而可能节省时间和成本。

  • 使用 GPT4 来标注 200 万条评论,配合使用长的 few-shot 提示词,大约花费$30K。

  • Supervised Fine-tuning(SFT)即监督微调,更便宜且更快,但性能远不如 GPT4(注意:这可能是由于微调数据的问题 – 这边没有花太多时间调整微调数据集)。

主要议题包括:

  • 不同的标注过程:人工 vs. 基于LLM

  • 不同的方法(提示词工程 vs. 小批量处理 vs. 微调)及其时间/成本影响

  • 不同方法的性能比较

ABSA任务和数据集

基于方面的情感分析(ABSA)是一项自然语言处理任务,旨在识别和提取产品或服务特定方面的情感。在这个领域有许多论文、数据集和比赛(参见https://paperswithcode.com/task/aspect-based-sentiment-analysis)。

例如,以下是一条餐厅评论,其中包含四个方面的情感(参见此repo:https://github.com/harrywang/openai-api-starter来获取一个简单的代码示例):

这个地方非常酷,装饰也很棒。饮料还可以,但有点贵。

  • 氛围:正面

  • 食物:中性

  • 价格:负面

  • 服务:未提及

我们为一个研究项目创建了一个酒店评论的ABSA数据集,该数据集包含大约200万条酒店评论,涉及三个方面:

  • 员工服务

  • 服务机器人的服务

  • 人机互动

我们雇用了数据标注员手动标注了约2.5万条评论,并训练了一个模型来标注其余的数据集。

传统过程
一个ABSA任务通常包括以下步骤:

  • 手动标注一部分数据,分两步进行:首先定义方向,然后标注相应的情感。检查标注的一致性,如果人手不够则需要更多的标注员。

  • 使用标注的数据训练一个模型并检查性能(如有需要则标注更多数据)。

  • 使用训练好的模型预测其余的数据。

这个过程非常耗费人力和成本,例如,我们手动标注了约2.5万条评论,几位标注员花了几周时间完成。

基于LLM的过程:

使用LLM进行ABSA的过程如下:

  • 手动标注一个小的测试数据集,例如几百条评论。

  • 编写一个few-shot标注提示词(详见下文)并标注100条评论。

  • 审查初步的标注结果,将任何错误标注的示例,特别是有挑战性的案例,作为补充示例加入few-shot提示词。根据需要重复此过程。

  • 使用最终提示词标注其余的数据集。

提示词工程

提示词按照之前概述的步骤构建,最终如下所示:

You are an experienced data labeling engineer with extensive experience in labeling hotel reviews. Your task is to classify a review based on three dimensions, with four categories: positive, negative, neutral, and not mentioned.``   ``The definitions and examples of the three dimensions are as follows:``   ``Dimension 1: Quality of hotel staff service``   ``Definition: customer perceptions directly related to staff behavior or attitude, such as timely service, skilled, knowledgeable, professional, polite, caring, understanding, sincere, helpful, etc.``   ``Examples:``   ``Review: The cleaning lady cleans in a timely manner.``Sentiment: Positive``   ``Review: Staff were testing robots in the hallway, the noise was very loud and annoying, and the front desk did nothing about it!``Sentiment: Negative``   ``[more examples]...``   ``   ``Dimension 2: Quality of robot service``   ``Definition: customer perceptions of robot functionality or perceptions of the service result after using the robot``   ``Examples:``   ``Review: The robot is very convenient``Sentiment: Positive``   ``Review: The robot delivers too slowly``Sentiment: Negative``   ``[more examples]...``   ``Dimension 3: Human-robot interaction perception``   ``Definition: customer perceptions other than robot functionality, such as robot social intelligence (communication understanding ability), robot social existence (making one feel it has human characteristics or experiences a human can bring), robot design and novelty (voice, and posture freshness, curiosity, advanced, coolness.``   ``Examples:``   ``Review: The little robot speaks adorably, too cute``Sentiment: Positive``   ``Review: The robot's voice is too loud and noisy;``Sentiment: Negative``   ``[more examples]...``   ``   ``Now, classify the sentiment of the following review into three dimensions using a JSON object as the output method, with "employee_service", "robot_service", "human_robot_interaction" as the keys and the value is one of positive/negative/neutral/unknown.``   ``Here is the hotel review:

性能比较

最新的API定价如下(GPT4大约是GPT3.5的20倍贵,但是 OpenAI现在最新的GPT-4o的比之前的GPT4便宜了一半):

上述提示词相当长(在此我们使用了tiktoken来计算token数量),大约1400个token。连同实际评论,输入OpenAI API大约1500个token。

所以,标注一条评论的成本大致如下(考虑到输出很短,我们可以忽略输出的成本估计):

  • GPT-4:$0.015

  • GPT-3.5:$0.00075

  • GPT-4o:$0.0075

对于200万条评论,总成本如下:

  • GPT-4:$30K美元 —— 相当贵!

  • GPT-3.5:$1.5K美元

  • GPT-4o:$15K美元

为了降低成本,我们尝试了以下方法:

  • 小批量处理:将100条评论(而不是1条)附加到提示词中,以减少API调用的总次数。注意:如果每批次放入太多评论,输出可能会超过最大4096个token

  • 监督微调(SFT):尝试使用100条评论微调GPT 3.5,去掉上述few-shot提示词中的示例以减少输入token(从约1500减少到约500)。

然而,小批量处理和SFT的标注性能都要差得多,如下所示。

不同方法标注100条评论的时间如下:

  • ~ 5分31秒用于100次单独API调用

  • ~ 6分19秒用于1个批次100条评论

  • ~ 1分28秒用于使用简短提示词的微调模型进行100次单独API调用(快得多)

总之,GPT 4在ABSA任务中表现良好,但可能很昂贵。SFT方法似乎更便宜和更快,但性能需要改进,例如准备好质量更高的数据集和数据工程。

PS. 本文的配图是使用DALLE 3生成的。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐