Elasticsearch:在你的数据上训练大型语言模型 (LLM)

过去的一两年,大型语言模型(LLM)席卷了互联网。 最近 Google 推出的 PaLM 2 和 OpenAI 推出的 GPT 4激发了企业的想象力。 跨领域构思了许多潜在的用例。 多语言客户支持、代码生成、内容创建和高级聊天机器人都是一些例子。 这些用例要求 LLMs 根据业务的自定义数据做出响应。

企业如何借助 LLMs 对其自定义数据解决这些用例? 经过一些研究和接触 LLMs 后,我发现了三种方法。

  1. Prompt Engineering
  2. Embeddings
  3. Fine Tuning

Prompt Engineering

什么是提示 (prompt)?

提示是 LLM 的输入。 例如,在下图中,提示是:

"Recommend me 5 fiction novels similar to the Bourne Series . Write only the title and author name."
提示要求 Chat GPT 推荐小说

提示中的自定义数据

在提示中注入数据或上下文是在 LLM 中使用自定义数据的最简单方法。 例如,在下图中,提示包含某公司 2023 年第一季度和 2023 年第二季度的销售数据。 LLM 的问题是返回销售额的百分比变化。
Adding data in Chat GPT prompt

何时使用 prompt engineering?

Prompt engineering 有很多应用。 事实上,Prompt engineering 被认为是一项未来将令人垂涎的关键技能。

在你想要向 LLM 提供说明、执行搜索操作或从较小的数据集中获取查询答案的情况下,在提示中传递数据效果很好。 但是,由于提示的大小和将大型文本传递给 LLM 相关的成本的限制,这并不是将大量文档或网页作为 LLM 输入的最佳方式。

嵌入 - embeddings

什么是嵌入?

嵌入是将信息(无论是文本、图像还是音频)表示为数字形式的一种方式。 想象一下,你想要根据相似性对苹果、香蕉和橙子进行分组。 这可以使用 "嵌入" 来完成。

嵌入会将每种类型的水果转换为数字形式(向量)。 考虑下面的例子,

  • 苹果 -> (3, 8, 7)
  • 香蕉 -> (8, 1, 3)
  • 橙子 -> (4, 7, 6)

苹果和橙子的这些嵌入彼此更接近。 我们可以说苹果和橙子更相似。

使用嵌入

下图从概念上解释了如何使用这些嵌入来使用 LLM 从你的文档中检索信息。 首先,文档通过一个模型,该模型创建文档的小块,然后创建这些块的嵌入。 然后将这些嵌入存储在向量数据库中。 当用户想要查询 LLM 时,将从向量存储中检索嵌入并将其传递给 LLM。 LLM 使用嵌入从自定义数据生成响应。

这篇文章是一个为文档生成嵌入并将这些嵌入传递到 Chat GPT 的工作示例。
LLM 文档嵌入

目前 Elasticsearch 是时间上下载量最大的向量数据库。我们可以使用 Elasticsearch 作为上图中的 Vector DB。

在实际的使用中,为了得到更好的响应,我们可以把从向量数据库中搜索出来的结果进行组合,已提供更多的上下文:

什么时候使用嵌入?

当需要将大量文档或网页传递给 LLM 时,嵌入效果很好。 例如,当构建聊天机器人来向用户提供一组策略文档的响应时,此方法会很有效。

微调

什么是微调 (fine tuning)?

微调是一种教导模型如何处理输入查询以及如何表示响应的方法。 例如,LLM 可以通过提供有关客户评论和相应情绪的数据进行微调。

Prompt: I really liked this product. I highly recommend it.
Completion: Positive
Prompt: I found the delivery experience below average.
Completion: Negative

这里 "prompt" 是输入的示例,"completion"是相应输出的示例。

现在,如果你向 LLM 提供另一条评论作为提示,那么它会以相应的情绪做出回应。
使用微调的 Chat GPT 进行情感分析

另一个例子是:

Prompt: Q1 2023, $10 million, +5%, good, positive
Completion: The revenue for Q1 2023 was $10 million, which is 5% higher than revenue in the previous quarter. The sentiment on the streets is good for this company and there is a positive outlook for the business.
Prompt: Q2 2023, $20 million, -2%, neutral, negative
Completion: The revenue for Q2 2023 was $20 million, which is 2% lower than revenue in the previous quarter. The sentiment on the streets is neutral for this company and there is a negative outlook for the business.

你可以提供许多示例来微调模型,然后向模型提出问题。

微调可用于有限的基本模型 - davinci、curie、babbage 和 ada。

什么时候使用微调?

微调通常用于针对特定任务调整 LLM 并在该范围内获得响应。 该任务可以是电子邮件分类、情感分析、实体提取、根据规格生成产品描述等。

这篇文章仅仅触及了这些技术的表面。 其中每一个都有更多的细微差别。

相关推荐
静静AI学堂2 分钟前
动态头部:利用注意力机制统一目标检测头部
人工智能·目标检测·计算机视觉
嵌入式小强工作室4 分钟前
stm32能跑人工智能么
人工智能·stm32·嵌入式硬件
ly21st18 分钟前
elasticsearch安全认证
安全·elasticsearch
Mitch31119 分钟前
【漏洞复现】CVE-2014-3120 & CVE-2015-1427 Expression Injection
运维·web安全·elasticsearch·docker·apache
像污秽一样29 分钟前
动手学深度学习-深度学习计算-1层和块
人工智能·深度学习
迪小莫学AI34 分钟前
精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目
人工智能·深度学习·分类
编程迪1 小时前
自研PHP版本AI口播数字人系统源码适配支持公众号H5小程序
人工智能·数字人系统源码·口播数字人·数字人小程序·数字人开源
Anna_Tong1 小时前
人工智能的视觉天赋:一文读懂卷积神经网络
人工智能·神经网络·cnn
神秘打工猴1 小时前
Spark任务的执⾏流程
大数据·分布式·spark
ZHOU_WUYI1 小时前
adb 安装教程
人工智能·adb