在人工智能时代,充分利用大型语言模型(LLM)不仅仅是提出问题,更在于提出正确的问题。 这就是 Prompt engineering 发挥作用的地方,它将通用模型转变为强大的 数据分析 工具。

什么是Prompt engineering?

Prompt engineering 是一种通过精心设计输入提示,包括上下文和明确指令,来引导 LLM 产生准确且相关响应的技术。 就像我们与不同的人交流时会根据对象调整表达方式一样, LLM 需要清晰的指令才能理解用户的意图。

想象一下,你刚睡醒下楼喝咖啡,你的妈妈问:“怎么样?” 即使没有额外的细节,你也能理解她指的是什么并做出相应的回答。 但是,如果你向 LLM 提出同样的问题,你很可能会得到不正确或不相关的答案。 这是因为人类大脑自然会使用上下文来解释问题。 我们的反应也会因提问者而异,无论是你的母亲、孩子还是朋友; 你的回应的语气和内容会相应地变化。

相比之下,LLM 本身并不理解问题背后的上下文。 要生成准确的响应,你必须明确提供该上下文。 虽然 LLM 能够解决范围广泛的主题,但仅仅提供背景信息是不够的 —— 你还需要提供关于模型应该如何响应的明确说明。 这种构建包含上下文和明确指令的输入的做法被称为 Prompt engineering

Prompt engineering 的必要性

虽然在实践中,通过反复试验调整提示也可以改善结果,但是当目标是自动化流程、扩展应用程序或确保一致可靠的输出时,仅仅依靠反复试验是远远不够的。Prompt engineering 提供了一种系统的方法来构建结构良好、目标明确的提示。 这样可以减少不可预测性,并从一开始就提高性能。

Prompt engineering 的核心在于提升LLM在特定任务上的效率和准确性。举例来说,一家电商公司希望利用LLM自动分析客户评论,从而识别产品改进的方向。如果简单地将评论文本输入LLM,结果可能泛泛而谈。但是,通过精心设计的Prompt,例如“作为一名产品分析师,分析以下评论,提取用户最关心的三个问题,并给出改进建议”,就可以引导LLM更精准地完成任务。

如何编写有效的Prompt

编写有效的Prompt需要掌握一定的技巧。首先,为 LLM 提供上下文:明确定义你希望模型扮演的角色(例如,“充当数据分析师。”)。这有助于模型理解它应该采用的视角。你还可以引导模型“逐步思考”或在响应之前模拟推理。这提高了准确性和连贯性。其次,给出关于如何响应的明确说明:指定响应的格式(例如,项目符号、JSON 或表格)。这在自动化设置中尤其重要,在自动化设置中,可预测的输出结构至关重要。

以下是一些增强Prompt的其他技巧:

  • 指定领域:引导模型在特定领域内回答(例如,“仅使用来自金融和银行领域的信息。”)
  • 提供示例:提供示例输入和输出,以帮助模型理解你的期望。
  • 设置行为护栏:添加诸如“坚持统计事实”或“避免个人意见”之类的约束。

LLM 在数据分析中的应用

在过去的几十年里,企业已经开发出成熟的流程来将 数据 组织成结构化的模型,例如关系数据库和数据仓库。 传统上,非结构化数据主要限于文档、电子邮件和扫描文件。

然而,随着互联网(尤其是 Web 2.0)的兴起,非结构化数据通过社交媒体、客户反馈、图像、视频等呈爆炸式增长。 近年来,Web3 技术引入了新的内容形式,例如 NFT 和去中心化的用户生成内容。

在 LLM 出现之前,从大量非结构化数据中获得商业价值一直是一个主要的挑战。 这些模型现在提供了强大的方法来分析和生成对此类数据的见解。

利用 LLM 进行 数据分析 的优势在于其能够处理各种形式的数据,包括文本、图像和视频。 传统的 数据分析 方法通常需要将数据转换成结构化格式,而 LLM 可以直接处理原始数据,从而节省时间和精力。 例如,一家零售公司可以使用 LLM 分析客户在社交媒体上发布的图片,从而了解他们的购物偏好和趋势。

案例分析:利用Prompt engineering进行社交媒体情感分析

假设一家公司举办了一场大型活动,并积极使用社交媒体与参与者进行实时互动。 活动结束后,该公司渴望收集反馈。 传统上,他们可能会发送在线调查或通过电话收集回复 —— 这些方法可能缓慢、不完整且具有侵入性。 相反,该公司可以利用用户生成的内容,如帖子、评论和相关标签来衡量情绪。 使用 LLM,他们可以对 数据 执行情感分析,并快速了解活动的反响如何。

以下是一个简单的代码片段,演示了如何使用 LLM 来分析情感并评估访客的反应。 首先,让我们组织 数据 —— 例如,将每个访客的 ID 映射到他们相应的反馈:

首先,我们导入必要的库并设置 API 访问。 此代码利用 google.generativeai 库与 Google 的 Gemini 系列模型进行交互,从而提供了一种将 LLM 功能无缝集成到你的应用程序中的方法。

以下是使用 LLM 执行情感分析的代码。

访客的社交媒体评论以一致的格式组织。 Prompt 以 LLM 需要扮演的角色开始,然后它向 LLM 提供指令,然后插入访客 数据。 generate_content() 函数处理 Prompt 并返回模型对访客反馈的分析。 以下是模型返回的输出示例:

[
  {
    "guestid": "123",
    "sentiment": "positive",
    "comment": "Great event! Loved the speakers and the networking opportunities."
  },
  {
    "guestid": "456",
    "sentiment": "negative",
    "comment": "The food was terrible and the venue was too crowded."
  },
  {
    "guestid": "789",
    "sentiment": "neutral",
    "comment": "It was an okay event. Nothing special."
  }
]

如果成千上万的访客,平均每人有 10-20 次社交媒体互动,数据 集将迅速扩展到数万条条目。 这种庞大的 数据 量使得手动分析不切实际。 使用 Prompt engineering,可以快速、高效且准确地获得 数据 见解。

此外,大型语言模型可以以预定义的格式提供响应。 例如,如果 Prompt 被定义为“将结果作为 JSON 数组返回,每个项目都具有“guestid”和“sentiment””,则模型响应将采用 JSON 布局。

处理大量数据以获取整体情感

请注意,在上面的代码中,为了获得情感,我们向 LLM 提供了整个 数据 集。 这引出了一个问题:可以向 LLM 提交多少 数据? 如果收集到的 数据 量很大,例如数百兆字节,并且大型语言模型无法处理该 数据 量,会发生什么情况? 那么,我们如何使用 LLM 处理大量 数据 呢? 例如,假设你被要求找到泰勒·斯威夫特长达数月的巡演的整体情感。 收集到的关于社交互动的 数据 量达到数亿。 鉴于无法将整个 数据 提交给 LLM 以请求整体情感,如何使用 LLM 来获得这次巡演的整体情感呢?

有几种方法可以解决这个问题:

  • 使用 LLM 进行迭代处理:一种选择是使用 Python 的内置库打开文件,对于表示一次社交互动的每一行,将其传递给 LLM 函数以获取情感。 为了提高效率和管理 API 成本,在与 LLM API 交互时,通常更有效地将多个互动批处理到单个 Prompt 中,确保总 Prompt 内容保持在模型的令牌限制内。 使用 Prompt 获取 1 表示积极情感,0 表示中性情感,-1 表示消极情感。 这些值的总和将指示整体情感,其中正总和表示整体积极情感,其幅度反映强度。 对于数亿或数 TB 的 数据 集,像 Apache Spark 这样的分布式计算框架对于并行处理 数据 和有效管理工作负载至关重要。
  • 数据 减少和清理:另一种选择是使用诸如停用词删除和词形还原之类的技术来减小 数据 的大小,从而利用 NLP 库。 此外,使用 数据 清理来删除诸如“!!@#$…”之类的无意义的互动。 虽然这些步骤优化了各个文本块,但它们并没有解决直接 LLM 提交的核心卷挑战; 相反,它们使每个处理后的块更加高效。
  • 与 LLM 集成数据库:一种强大的方法是将图形数据库或向量数据库与 LLM 结合使用,以获得整体情感。 向量数据库可以存储 LLM 生成的文本嵌入,从而实现跨大量 数据 集的有效相似性搜索和语义检索。 图形数据库可以对社交互动中实体之间的关系进行建模,从而可以基于连接和上下文进行更细致的情感分析。

例如,我们可以将每个社交媒体帖子的文本转换为向量嵌入,并存储在向量数据库中。然后,我们可以使用 LLM 生成一个 Prompt,询问“泰勒·斯威夫特巡演的整体情感如何?”。LLM 可以使用向量数据库来检索与巡演相关的最相似的帖子,并根据这些帖子来评估整体情感。这种方法可以有效地处理大量的社交媒体数据,并提供对巡演情感的更深入的了解。

Prompt engineering 的未来趋势

随着 LLM 的不断发展,Prompt engineering 将会变得越来越重要。 未来,我们可以期待看到以下趋势:

  • 自动化 Prompt 生成:研究人员正在开发自动化工具,可以根据任务需求自动生成有效的 Prompt。
  • Prompt 优化:新的算法可以自动优化 Prompt,以提高 LLM 的性能。
  • Prompt engineering 平台:将会出现专门的 Prompt engineering 平台,提供各种工具和服务,帮助用户更好地利用 LLM。

总结

Prompt engineering 正在迅速成为在 数据分析 中利用 LLM 的一项关键技能。 无论是挖掘社交媒体中的情感还是从非结构化来源中自动化洞察力,设计有效 Prompt 的能力都可以将通用模型转变为强大的业务工具。 随着 LLM 的不断发展,掌握 Prompt engineering 对于寻求更智能、更快、更直观的分析的组织来说至关重要。 掌握 Prompt engineering,就如同掌握了打开 大模型 这座宝藏的钥匙,能够更高效地利用其强大的 数据分析 能力,从而在激烈的市场竞争中占得先机。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注