聊天平台 ChatGPT 将聊天机器人带入一个新境界

毫不奇怪,ChatGPT已经风靡全球。它是第一个支持类似人类对话的主流语言模型,但并非第一个。谷歌的LaMDA在2021年的谷歌I/O大会上宣布推出,被集成到谷歌助手中(被称为谷歌Duplex),可代表您接听电话。请看下面的视频。

由于可能存在的道德影响和它变得有思想的争议,他们从来没有公开过。你可以在这里查看他们的原始博客。快进一年,我们拥有了ChatGPT,它代表了预训练的生成转换器。

大多数读者可能已经意识到了,如果没有使用它的话。我们在此不讨论 ChatGPT 如何改变世界,而是讨论它对于开发者意味着什么。

在撰写本文时,几乎所有的大型公司都选择提供某种形式的聊天机器人交互。但是他们又如何限制聊天机器人可用的数据,使其只显示他们想要展示的内容呢?

在回答这个问题之前,让我们先了解一些概念。

向量化

由于计算机并不擅长理解文本数据,我们尝试将其转换成一些数值向量,向量通常表示连续的数值。这对于机器学习模型理解语义意义至关重要。模型永远不会知道给定单词或句子的含义是新的还是旧的。它总是比较一个单词或句子所具有的向量来理解上下文。

有多种矢量化方法,如词袋模型、词频-逆文档频率和词嵌入。我们更感兴趣的是词嵌入。

单词嵌入将单词表示为在一个连续向量空间中密集、低维的向量。这些向量由捕捉的语义和句法关系而形成,即通过捕捉单词的意义和顺序。下面的图片展示了如何根据语义意义捕捉和排列每个数据点。在这里了解更多信息。

ChatGPT中文站
image by George Pearse.

这似乎太复杂了,让我们创建一个简单的类比。为了简单起见,假设有一个三维空间,在这里应该放置我们的向量。

假设我们有一个向量,它保存了关于我的姓名的信息。

ChatGPT中文站
A text represented as vector

矢量的邻域代表着可能占据该空间的矢量的相似性或相关性。假设我们进行两个搜索查询。

  1. 你住在哪里?
  2. 你叫什么名字?
ChatGPT中文站
all the vectors represented in the space.

正如我们所说的,与我们的原始向量相邻最为重要,那么我们会基于此来选择答案,对吗?但是当存在多个向量时,我们如何衡量邻近性呢?

记得欧几里得距离公式吗?它可以找到空间中任意两点之间的距离。

ChatGPT中文站
Euclidean distance

然而,由于向量的长度不同,原始距离通常不是一个好的度量标准。我们使用余弦相似度,它基本上是任意两个向量之间的夹角。

ChatGPT中文站
cosine Similarity

角度越小,意思越类似于原始文本。这就是向量数据库的运作方式。这个简单的概念是基于采用基于向量的索引的大型数据库的基础。Pinecone和其他强大的组织提供这些服务。

Sorry, but "Langchain" is not a proper English text to translate to Chinese as it does not have a clear meaning or context. Please provide a sentence or phrase that needs to be translated.

这个开源框架最近在热门话题中,是一个很好的工具。它的核心功能是帮助开发者构建大型语言模型(LLMs)。

它结合了多个API,如openAI和Hugging Face,有助于开发多模式解决方案。这个框架的主要优势在于代理、模板和链式处理。

代理人 - 代理人是一个组件,具有访问工具的权限,并可根据用户输入来决定使用哪个工具。它可以根据提示为您执行完整的操作。代理人帮助模型访问互联网上的数据,如谷歌和维基百科。

ChatGPT中文站
how agents work

模板 - 模板利用快速工程的力量。大多数模型都可以扮演一个角色,即它试图模仿该角色并根据其输出。这是我想学习数据科学时的提示之一。

你是一位高知识的数据科学家,在Google和其他顶尖FAANG公司工作过。你还与许多深度学习模型合作过,尤其是音频和情感分析。在这个领域工作了40多年后,你希望退休。现在,你教授像我这样的年轻人。你教授一个由基础知识开始,并以两个惊人的项目结束的完整课程,其中详细说明每个步骤。基础应该涵盖我作为工程师所需的一切知识。你也是一位很不错的老师,会通过不断询问反馈意见改变教学风格。你会花费尽可能长的时间来确保我明白了所有的内容。你也很擅长讲故事,所以可以添加一些个人经历,使这个旅程更加有趣。

你可以在这里阅读完整的聊天记录。模板的作用是允许预先制作一些提示并留出空白位置让用户填写。

链式调用——链式调用有助于通过不同的模型创建数据流。这是非常棒的,因为它让你使用多个模型创建高级应用程序。

ChatGPT中文站
chaining

有一些其他特点,使Langchain成为构建应用程序的最佳平台之一。

微调

一个预先训练好的模型可以使用微调技术在机器学习和神经网络模型中进行修改,以执行特定的任务或数据集。在首先训练了一个更大的、通用的数据集之后,模型通过接受在一个更小的、任务特定的数据集上进行额外训练来进行微调。这有助于减少训练时间,提高性能,减轻过拟合。

主要优点是精细调整的模型受限于我们提供的数据,这使得它非常适用于许多用例。正如我们上面所讨论的那样,这就是许多公司或组织将其聊天机器人限制于特定数据的方式。

构建一个精细调节的聊天机器人

利用我们强大的大型语言模型的所有力量,我们可以通过对我们自己的数据进行训练来构建定制的聊天机器人。

ChatGPT中文站
ref- langchain

上图显示了我们的应用程序如何创建。我们将数据分成块,并利用文本嵌入来存储数据库中的不同向量。现在,每当用户输入一个查询,文本嵌入就会用于检索最接近的数据点。我们的LLM专门理解上下文,包括之前的对话。模型然后返回相关的数据库答案。

记住,我们并没有在微调模型的架构上做出实质性的改变,而是利用了LLM的上下文理解能力。

我为我的大学创建了一个类似的聊天机器人。虽然它只是在有限的数据上进行了训练,但它工作得非常出色。

你可以在这里进行测试。

ChatGPT中文站
chatbot for VNRVJIET

您可以在这里查看代码。非常感谢您的阅读!

2023-10-20 16:51:30 AI中文站翻译自原文