【用于生成AI应用程序的向量搜索】 ⑧ 将LLM应用于分类问题

首先

Apache Cassandra和DataStax Astra DB作为向量数据库的背景

根据DataStax工程师的提议,为了应对2022年起生成AI的繁荣,他们提出了对Apache Cassandra的扩展,增加了向量搜索功能,并使其可在DataStax的Cassandra托管服务Astra DB中使用。
本系列文章是基于DataStax公司发布的白皮书内容,作为这一趋势的一部分。

来源和日语版

這個系列文章的原始資料可以在以下位置獲取。

 

在博客文章中,我们注重易读性而不是忠实翻译,因此进行了部分省略。
如果您希望获取没有省略的日文版白皮书,请通过info-jp@datastax.com与我们联系,我们将提供给您。

【为AI应用生成矢量搜索】⑧分类

在分类问题中有许多用例。在文本分析中,有一个分类问题,即文档的主题分类。例如,确定文档的内容属于哪个类别,如体育、政治、娱乐等。
以下将解释使用LLM进行分类的几种不同方法,以及它们各自的优点和缺点。首先,我们将从实施上最简单的方法开始,然后逐渐过渡到更复杂的方法。

Few-shot学习用于分类。

利用Few-shot学习提示,LLM能够直接用于文本分类。Few-shot学习提示为LLM提供了各种分类标签的示例。我们来看一个简单的例子,对积极情绪和消极情绪进行分类。这里我们使用OpenAI平台上的gpt-3.5-turbo模型来示范如何实现这一点。为了展示Few-shot学习的例子,首先演示平台提供的任务定义功能的使用示例。

[系统提示]
(在这里,我们将句子分为肯定和否定两种情况)

Document:
This movie was horrible.
Sentiment: 
Negative.
Document:
I loved the movie I saw this weekend, it was so exciting!
Sentiment:
Positive.
Document:
Worth every penny!  It was soooo good!
Sentiment:
Positive.

现在,我们已经准备好从用户提示中提供新的文档,并请求LLM返回该文档所包含的情感。[用户提示]

Document:
I hated that movie, it was so boring.
Sentiment:

在这种情况下,LLM 的回应将是“助手:否定”。

为了分类目的进行LLM微调

在Fine-tuning中,需要为模型提供大规模的输入输出对,并且根据目标进行调整,以使模型能够执行所需的操作。要对LLM进行Fine-tuning,通常需要至少提供数百个样本(一般而言,从Few-shot学习的提示中传递如此大量的样本在输入文本大小的限制或令牌成本的考虑下并不现实)。

在以下内容中,我们将讨论在 Few-shot 提示中存在角色不足,需要进行微调的情况。我们将考虑一个分类问题,即确定特定产品是否在文本中被讨论。Stripe 公司(一家提供金融服务的 SaaS 公司)提供 Payments、Checkouts、Billing 等产品。如您所见,产品名称使用的是普通名词。在这种情况下,对于 LLM 来说,区分产品名称作为专有名词和作为会计术语的普通名词可能会变得困难。

现在我们来考虑一句话:“My stripe payments failed.” 用户可能想表达“我尝试设置 Stripe Payments,但没有成功”的意思,或者更详细地表达“我试图支付 Stripe 的发票,但失败了”的意思。

在这个简单的例子中,判断这句话是否应该作为关于“Stripe Payments”产品的讨论进行分类似乎是困难的。

作为应对措施,我们可以使用文档中包含关于 Stripe payments 产品的一定数量的总体样本(正例)和包含“payments”一词,但不是作为产品名称而是作为会计术语使用的附近词汇的相同数量的样本(负例)进行 LLM 的微调。通过这样的微调,LLM 可能能够区分这两种情况。

这种方法有如下的优点和缺点。

    • メリット – 分類器の精度向上

 

    • デメリット – 少なくとも数百のトレーニングサンプルのセットを維持する必要性

 

    デメリット – クラウドベンダーの提供するファインチューニングモデルは標準のLLMより高額
广告
将在 10 秒后关闭
bannerAds