chatgpt本地部署和接入api的区别 如何调教一个定制化的ChatGPT私人助理,接入自家知识库

AI资讯2年前 (2023)发布 fengdao
58 0

我正在参加「掘金·启航计划」

大家好,欢迎来到 的编程教室 !

我在之前的文章里介绍过,如何利用 开放的 API,将 接入自己开发的程序:

如何在程序中接入

不过接入后还有个问题:

虽然很能“聊”,但它并了解你的产品啊。就好比你把郭德纲喊来做你的客服,他也并不会比一个经过培训的客服人员做得更好。

而且 还有个毛病,即使是它不知道的问题,也不会老老实实承认自己不知道,而是一本正经的胡说八道。比如对于这个不存在的“跨国集团有限公司”,它也会煞有介事地进行介绍。

于是,为了能将 变成一个老实本分的客服,我进行了一番摸索。

1. 微调模型

因为在 开发者后台的用量记录里看到一个“Fine-tune ”(微调训练)的栏目,所以我第一反应就想到,这个接口是不是就是用来训练自己的私有模型

大致了解了一下,发现也确实如此,并且官方还给出了详细文档和一个完整的微调代码范例:

/docs/…

仿照案例拿自己的一些语料做了个测试,等了大约1个半小时(主要是排队),得到了微调后的模型。

然而结果不能说是差强人意,是完全胡言乱语……

本地接入网是什么_本地网和接入网区别_chatgpt本地部署和接入api的区别

这比之前的 text–003 还要差上一大截啊。

又经过一番搜索,了解到原来微调是在基础的 模型之上进行。换句话说,text–003 已经是经过大量数据微调后的一个模型。

所以如果要想得到一个满意的定制化模型,同样也需要大量的语料来进行训练,而且还享受不到 的高质量回答。

那这不是调了个寂寞?

2. 提示工程

此路不通,那就另辟蹊径。

的 API 里支持传递对话列表,那如果我把希望 了解的背景知识放在历史对话里,它不就知道了嘛?

试了下,效果符合预期

而且,我还可以进一步“PUA”它,让它别给我整那些有的没的,不知道就是不知道。

看来这方法可行。

了解了一下,原来这种方法有个专门的名词,叫做提示工程( ),就是通过改进提示,让 AI 能产生更加符合预期的结果。

不过,又有了新问题……

本地网和接入网区别_chatgpt本地部署和接入api的区别_本地接入网是什么

如果背景知识库比较大,比如一个公司各种产品的详细介绍,每次都把这么多内容放到 API 请求里,也还是挺耗钱的。

3. 嵌入

经过进一步调研,发现官方推荐了一种叫做“嵌入”()的方法来实现此类需求。并且也提供了相应的范例:

//open…

简单来说就是:

通过一个 接口,把你提供的每一条语料都分别转换成一组高维向量(1500+),并记录下来;

收到一个问题后,也通过相同接口将此问题转换成一组高维向量;

从前面记录的向量库中寻找与当前这组向量最接近的几条语料,即与问题相关度最高的背景知识;

用之前我们讲的提示工程方法,把这几条背景放入问题中,向 接口请求回答。

这个方法的好处是,即使你有很多背景知识,每次请求时也只需要带上几条,花费很少的token。

而 接口本身的费用则非常便宜,几乎可以说是免费。

初步测试下来,发现对于最相关语料的判断还是比较准确的。

后续我还会用更多数据做进一步尝试。

以上就是我关于如何调教一个定制化的私人助理,接入自家知识库的初步尝试。

如果你也有这方面的经验和疑问,欢迎留言讨论。

© 版权声明

相关文章

暂无评论

暂无评论...