乐趣区

关于人工智能:大模型总是胡说八道怎么办手把手教你如何应对

随着 ChatGPT 的呈现,「AI 幻觉」一词被频繁提及。那么,什么是 AI 幻觉?简略来说,就是大模型在不苟言笑地胡言乱语。

不止 ChatGPT,其余大语言模型也常常如此,究其基本是大语言模型在训练的过程中存在数据偏差。为此,当问题不在射程范畴内,它们或开始含糊答案,或假造一些看似正确的谬误答案。在此状况下,如何阻止「AI 幻觉」成为开发者亟待解决的事件。

本文将从应答思路讲起,由原理、工具、操作实例开展,手把手教你如何阻止「AI 幻觉」!

阻止大模型“胡言乱语”的三种思路

总体而言有三种思路:微调大语言模型、调整 prompt、用知识库进行限度。

提起阻止「AI 幻觉」,大家首先会想到用本人的数据对大语言模型进行微调。不过,这种思路是不切实际的,因为微调这件事件自身就与大语言模型的特点——零样本迁徙。再者,微调须要筹备大量的数据用于训练,这就对数据提出了更高的要求,例如数据必须有用,要进行数据荡涤、数据要与训练适配等。此外,训练大模型对于资源的耗费堪称微小,个别开发者很难接受背地的昂扬费用。不止如此,通过微调的模型也不足以通用,甚至失去了大语言模型零样本迁徙的劣势,其老本和收益基本不成比例。

第二种思路是调整 prompt,即批改提醒,例如,能够跟 ChatGPT 说 ” 当你不晓得答案的时候,不要假造答案,间接答复不晓得。” 然而,如果大家尝试过就会发现,ChatGPT 并不能很好地遵循此类指令,仍旧会呈现假造答案的状况。另外,prompt 的长度是有限度的,家喻户晓 OpenAI 的调用依照长度单位 token 免费。超长且不甚有用的 prompt 只会弊大于利,只调整 prompt 的形式都谈不上是最优解。

第三种思路是通过建设知识库(Knowledge Base)的形式限度「AI 幻觉」的“自由发挥”。知识库,顾名思义是给 ChatGPT 灌输一些额定的常识,为它提供更多的参考。后面提到了 token 的限度,因而如果把常识一股脑地“喂”给 ChatGPT 相对属于得失相当,且知识库中的常识未必都对问题有帮忙。在此状况下,须要对这些常识进行语义搜寻或者说是初步筛选,以找出真正有用的常识。不过,传统的常识检索的形式与之并不适配。如果只进行关键词搜寻,答案很可能对答复问题毫无帮忙或者脱漏重要的音讯,CVP Stack 可能无效地解决这一问题。

什么是 CVP Stack?C 是以 ChatGPT 为代表的大模型,它在 AI 程序中充当中央处理器的角色;V 代表 Vector Database,即以 Zilliz Cloud 和 Milvus 为代表的向量数据库,为大模型提供常识存储;P 代表 Prompt Engineering,各环节通过 prompt 的形式进行交互。CVP 是咱们的工程师在做问答机器人 OSSChat 时提出来的一种技术栈,对该我的项目感兴趣的同学能够点击详情理解(https://osschat.io/chat)。

CVP Stack 实操:用 Zilliz Cloud 和 LangChain 进行常识加强

如何借助 CVP Stack 模式对大模型进行常识加强?接下来的这个实例或者能够帮忙大家理解一二。

不过,在正式进入实操环节前,须要先筹备好 Zilliz Cloud。Zilliz Cloud 是用于全托管 Milvus 的云服务,有了 Zilliz Cloud 后,用户无需本地部署或保护向量数据库 Milvus,能够更加简略、疾速地上手操作。目前,Zilliz Cloud 曾经反对 AWS、GCP 的服务,往年 6 月底行将登陆阿里云,其余几朵云的服务也已提上日程。

回到 Zilliz Cloud 的筹备环节:

  • 用户首先能够在 Zilliz 官网注册账号及登陆(https://cloud.zilliz.com/signup),当初注册即可获赠价值 $100 的 credit,享受 30 天收费试用的福利,绑定领取形式可获赠价值总计 $400 的 credits;
  • 登陆后能够创立 Database,在此环节能够抉择对应的云服务及所属我的项目;
  • 抉择过后,页面左边会给出计费形式;
  • 随后便可在底部应用你所创立的 database;
  • 实现该步骤后,在 database details 中找到连贯数据库的地址。有了连贯地址后,用户就能够依据本人的计算机语言偏好抉择用何种 SDK 进行操作。

筹备实现后便可进入实操环节,用 Python 代码基于 Langchain 搭建一个带有常识加强的智能聊天机器人。其中 Vectorstore,也就是向量存储局部,会用到 Zilliz Cloud。该零碎的架构次要分为问答和常识录入两条链路:

  • 常识录入:把文档转成向量,将其存储在 Zilliz Cloud 之中。由 Zilliz Cloud 提供向量存储和语义搜寻的能力,在发问环节为 ChatGPT 提供额定的常识以加强其问答能力。
  • 问答:向大模型发问并失去最初的答案。不过如果在这个过程中应用常识加强,首先会将问题转换成向量,随后在知识库也就是向量数据库中进行语义搜寻,并筛选出其中有用的信息,最终连同问题一起交给 ChatGPT。此时,ChatGPT 会综合问题及接管到的有用信息给出一个更靠谱的答复。

具体操作如下:

首先导入须要的 Langchain 模块(依据环境装置相干 python 依赖,比方 LangChain、pymilvus)。

其中文档的加载和解决局部会用到 LangChain 提供的网页加载、文本拆分工具,具体代码如下:

此处有一个在线的 demo[](https://huggingface.co/spaces/SimFG/LangChain-Zilliz-Cloud) 供大家参考,目前已公开在 Hugging Face 中,链接为 https://huggingface.co/spaces/SimFG/LangChain-Zilliz-Cloud

|demo 图片

|关上 demo 后会看到该页面

  • 输出 URL 地址,该网页的内容将会被拆分并转成向量,存入数据库;
  • 从 OpenAI 获取 key,用于连贯 OpenAI 服务;
  • 填写 Zilliz Cloud 数据库的连贯信息,包含前文中提到的连贯地址、用户名和明码;
  • 点击 Load Data 创立常识底库,创立工夫取决于文档长度;
  • 加载结束便可进行发问。

以上便是借助 Zilliz Cloud 和 LangChain 实现问答机器人(大模型)常识加强的全过程,具体解说视频和 PPT 可点击获取。
(本文作者顾梦佳系 Zilliz 算法工程师)


  • 如果在应用 Milvus 或 Zilliz 产品有任何问题,可增加小助手微信“zilliz-tech”退出交换群。
  • 欢送关注微信公众号“Zilliz”,理解最新资讯。

本文由 mdnice 多平台公布

退出移动版