暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MVP 手把手|五分钟,基于你的文档数据搭建 GPT 助手

Azure云科技 2023-08-23
403


MVP 手把手

最近,Azure OpenAI 更新了“使用自己的数据”这一新功能,即基于您自己的数据,使用 Azure OpenAI Studio 让 ChatGPT 来更加准确地回答问题。

这个场景应该是我看到的最早几个 OpenAI 的 GPT 模型落地的示例之一。

如果您对 GPT 有一些了解,就知道直到 GPT-4,训练的数据仍然是截止到 2021 年 09 月的,更新的内容和知识 GPT 模型目前是不知道的。此外,由于使用的大量语料训练,GPT 对问题的响应基本基于 toekn 的概率,所以经常会出现一本正经地胡说八道,我们称之为“幻觉”。

因此,为了让 GPT/ChatGPT 更加靠谱地回答特定领域的问题,我们需要在发布的标准 LLM 模型,比如 GPT 之上做一些处理。例如通过微调(fine tune)嵌入(embedding)来告诉模型更多相关的内容,来更好地生成内容。当然,除了折腾模型本身,我们还可以让模型去搜索给定的信息。




#1

循本溯源

以下就是非常早出现的实际范例:

“使用 Azure OpenAI 和认知搜索来实现 ChatGPT 和企业数据的集成”。

如上图,企业可以将数据,例如 SQL 数据库、Cosmo 数据库或文档作为数据源,使用搜索引擎,例如 Azure 认知搜索,创建索引。当我们使用设备上的 App 去访问服务器上的应用,就可以和 Azure OpenAI 的大模型,例如 GPT 或 ChatGPT 进行对话。

我们可以使用自然语言与大模型沟通,提示大模型使用例如小结的能力,将我们的意图浓缩转换为有限的语句,然后在认知搜索中进行搜索。得到结果后,再通过 GPT 使用自然语言答复给用户。


微软将整个解决方案都放到了 Github 上,如有兴趣可复制链接访问:https://github.com/Azure-Samples/azure-search-openai-demo


说实话我一直想把这套环境部署起来,但是这套代码还是挺(fu)(za)的。因为包含了 Python 后端的代码,也包含了 TypeScript 的前端代码;因为做好了 WebApp,还有 CSS 等代码;而为了部署全套架构,还包含了 Bicep 来配置 Azure 云服务以及 PowerShell 来运行脚本;甚至还有 Jupyter Notebook 帮助理解提示工程…简直就是个宝库~

可是我不想让脚本重新创建整个架构,所以打算看看代码然后改一版,这一打算就 … 一直都在打算 … 直到前段时间产品组跟 MVP 的 PGI 会议时,看到在 Azure OpenAI Studio 里面居然有 Azure Cognitive Search 的选项,我敏锐地感觉,这个方案将会集成到 AOAI 工作室里面,可惜限于 NDA 约束,不能提前写点啥。

直到现在,我们终于看到 PuPr (Public Preview) 的功能——“添加您的数据”。



#2

大巧不工

要开始这个五分钟之旅很简单。打开 Azure OpenAI Studio 在左边选择“聊天”,在“助理设置”这个面板,就能看到多了“Add your data (preview)” 页签。

点击打开,就是朴实无华的一个“Add a data source” 按钮。添加的数据将用于帮助 ChatGPT 更靠谱地和人聊天,这些数据将保存在 Azure 订阅的存储服务,为了避免担心数据的泄漏,还提供了有关数据保护的链接参考。

实际我们已经看到有三种添加数据的方式:添加 Azure 认知搜索、添加 Azure Blob 存储和上传文件。其实 … 这三个选项是一样的,只不过一个是已经配置好认知搜索,一个是配置了 Blob 存储及容器然后配置认知搜索,一个是通过向导上传文件同时配置存储和认知搜索。

免费定价层的 Azure 认知搜索是不能够用在这个功能里的。所以我们就用 Basic 的定价层创建一个 Azure 认知搜索服务来使用。选择上传文件这个数据源之后,可以看到向导中需要指定 Azure Blob 存储资源。向导会提示启用 CROS 跨源资源共享。向导会在 Azure Blob 存储上自动创建文件容器,以存放上传的文件。然后,选择或者直接创建免费定价层之上的 Azure 认知搜索以提供搜索。使用认知搜索的时候,还需要为创建的索引输入一个索引名称。

信息都输入完成后,就可以点击“下一步”,继续使用向导。向导会提示上传文件。支持浏览文件和拖放文件到上载区域。文件类型可以是 .txt 文本、.md MarkDown文本、 .html HTML文件、.pdf PDF文件、.docx Word文档和 .pptx Powerpoint 文档。大小不能超过16MB。Azure 认知搜索能够支持上述文件数据,对其进行处理索引,用以支持快速查询。

为了测试,我选择上传了一些之前收集的 ARXIV 的论文。这些论文以 PDF 文件的形式发布,因此我把这些文件使用向导上传到了 Azure 的 Blob 存储中。

点击“Upload files”完成文件上传之后,就可以点击“下一步”继续进行向导。

向导会在关闭之前,回顾之前进行的配置和操作。确认无误之后,即可点击“保存并关闭”完成向导。

在此之后,“Add your data (preview)”页签的内容就发生了变化,我们上传的 PDF 文件会被 Azure 认知搜索进行必要的索引和处理。这需要一点时间,不要关闭浏览器,等待这个过程完成。

完成索引处理之后,数据源及相应的信息就会出现。这时候就可以使用这些数据来和 ChatGPT 聊天了。注意,使用数据时有个“Limit responses to your data content”选项。勾选的话就可以避免 ChatGPT 胡说八道的幻觉,而仅使用提供的数据来回答问题了。

我们马上用 ChatGPT Playground 来测试一下。我上传的其中一个PDF文件是编号 arxiv:2207.00032 的一篇论文,是微软关于 DeepSpeed 加速人工智能的介绍。所以我在聊天窗口提了一个关于 DeepSpeed 的问题。

可以看到 ChatGPT 根据 Azure 认知搜索获得的信息给出了回复,并且在回复引用我们提供的PDF文档时给出了文档的链接。点击链接时,会在原本配置的面板位置,显示引文的简介。这就基本实现了我之前利用下载的众多论文,通过 ChatGPT 学习有关知识,开展思考等等的想法。


#3

布武天下

在我们查看“引文”面板的时候,就可以看到它的上方,有一个“Deploy to”的按钮。使用这个按钮就可以将当前的“ChatGPT Playground”部署为“Azure Web App”通过浏览器直接访问。

除非你已经有一个现成的、空的 web app,不然还是建议新建一个。因为向导会向这个 web app 部署代码。如果跟现有的 web app 已有环境冲突,部署就会失败。如果只是测试,可以选择免费定价层 F1。

需要注意的是,这个 Web App 将会使用 Azure AD 来验证用户,这意味你可以添加用户到 AAD,应该也可以支持 B2B/B2C 的用户账户。这样就可以让其他人也使用这个基于私有数据增强的 ChatGPT 了。

部署会需要一点时间,成功后会出现一个紫色的 “Launch web app” 的按钮。点击即可打开站点。首选会向你请求 Azure AD 的验证许可。同意后就打开了 web app 的页面。

可以看到界面很简洁,和 ChatGPT Playground 差不多。询问同样的问题,也会给出类似的回答并提供数据来源。点击链接后会显示引文的内容供进一步参考。

如果我们回过去看 ChatGPT Playground 使用的 Blob 存储和 Azure Cognitive Search,还会发现资源被打上了“ProjectType : aoai-your-data-service”的 tag 标签。

Azure 认知搜索还提供更多的数据来源,例如数据库、数据湖等等。同时也包含了很多技能(skillset),例如可以使用视觉技能对扫描件做 OCR,也可以对图片做分析以获得图片的描述等。最近还开启了语意搜索能力,跟 GPT 为代表的 AI 集成得更为紧密,可以说具备了非常多的扩展能力和想象空间。


至此,一个基于我们自有数据(比如 PDF 论文集)的专业 ChatGPT 就完成了,你看我们没有写一行代码,基本也就五分钟完成了配置。人工智能确实越来越强大了。


胡浩

Microsoft MVP MCT

19 届多方向微软 MVP,目前奖励领域是 Azure 和 AI。多年从事基础架构相关工作,熟悉全栈虚拟化、终端用户和边缘计算等,对多个技术方向有所涉猎。乐于学习并分享 Azure 和 AI,曾在很多大型研讨会演讲,如微软 TechEd、MEDC、Tech Summit、Ignite,威睿 VMworld、vForum、ENPOWER、Explore 等技术会议。同时也是很多社区大会如 Global AI Bootcamp、Global Azure Bootcamp、Global M365 Bootcamp 等活动的组织者和演讲者。



微软最有价值专家(MVP)是微软公司授予第三方技术专业人士的一个全球奖项。30年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。MVP 是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。


更多详情请点击阅读原文登录官方网站:

https://mvp.microsoft.com/zh-cn

文章转载自Azure云科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论