GITBOOK-34: change request with no subject merged in GitBook
|
After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 587 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 415 KiB |
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 441 KiB |
|
|
@ -37,7 +37,7 @@ Notion集成分为**内部集成**(internal integration)和**外部集成**
|
|||
|
||||
点击“**New integration**”按钮,类型默认是 **Internal**(不可修改),选择关联的空间,输入集成名称并上传 logo 后,点击“Submit”,集成创建成功。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
创建集成后,您可以根据需要在 Capabilities 选项卡下更新其设置,并在 Secrets 下点击 “Show” 按钮然后复制 Secrets。
|
||||
|
||||
|
|
|
|||
|
|
@ -81,4 +81,4 @@ Dify 使用了 [PKCS1\_OAEP](https://pycryptodome.readthedocs.io/en/latest/src/c
|
|||
|
||||
配置完模型后,就可以在应用中使用这些模型了:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
|
|
|||
|
|
@ -2,13 +2,15 @@
|
|||
|
||||
### RAG 的概念解释
|
||||
|
||||
向量检索为核心的 RAG 架构已成为解决大模型获取最新外部知识,同时解决其生成幻觉问题时的主流技术框架,并且已在相当多的应用场景中落地实践。开发者可以利用该技术低成本地构建一个 AI 智能客服、企业智能知识库、AI 搜索引擎等,通过自然语言输入与各类知识组织形式进行对话。以一个有代表性的 RAG 应用为例:
|
||||
向量检索为核心的 RAG 架构已成为解决大模型获取最新外部知识,同时解决其生成幻觉问题时的主流技术框架,并且已在相当多的应用场景中落地实践。
|
||||
|
||||
开发者可以利用该技术低成本地构建一个 AI 智能客服、企业智能知识库、AI 搜索引擎等,通过自然语言输入与各类知识组织形式进行对话。以一个有代表性的 RAG 应用为例:
|
||||
|
||||
在下图中,当用户提问时 “美国总统是谁?” 时,系统并不是将问题直接交给大模型来回答,而是先将用户问题在知识库中(如下图中的维基百科)进行向量搜索,通过语义相似度匹配的方式查询到相关的内容(拜登是美国现任第46届总统…),然后再将用户问题和搜索到的相关知识提供给大模型,使得大模型获得足够完备的知识来回答问题,以此获得更可靠的问答结果。
|
||||
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=NDJiZmFiM2VhYmFkZTI4ODEwYWVkMzg2MzM3ZGI2ZDJfcWZGVHBETnZveGhFblpGS1F6RTAwNTdvZlJLWkc4REFfVG9rZW46Tm9RWGJ1QVZEb2VzUGR4bnkxNWNDMWxSblRkXzE3MDAyMjEwNDA6MTcwMDIyNDY0MF9WNA" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTIxODY4NzllOGZhNjg0YjgwNjEyODQ2ZjQ3MTk2NDJfajZUU1RzblI4RHY2bUpIZW5JNmRLd01JbmNINDhra3ZfVG9rZW46U0xjaWJ0d2FDb1JaR2J4eUFJWGN4NHY1bjVnXzE3MDAzMTk4MzE6MTcwMDMyMzQzMV9WNA" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
为什么需要这样做呢?
|
||||
**为什么需要这样做呢?**
|
||||
|
||||
我们可以把大模型比做是一个超级专家,他熟悉人类各个领域的知识,但他也有自己的局限性,比如他不知道你个人的一些状况,因为这些信息是你私人的,不会在互联网上公开,所以他没有提前学习的机会。
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
以下是多路召回模式的技术流程图:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption><p>多路召回</p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2).png" alt=""><figcaption><p>多路召回</p></figcaption></figure>
|
||||
|
||||
由于多路召回模式不依赖于模型的推理能力或数据集描述,该模式在多数据集检索时能够获得质量更高的召回效果,除此之外加入 Rerank 步骤也能有效改进文档召回效果。因此,当创建的知识库问答应用关联了多个数据集时,我们更推荐将召回模式配置为多路召回。\
|
||||
\
|
||||
|
|
|
|||
|
|
@ -2,25 +2,22 @@
|
|||
|
||||
### 为什么需要重排序?
|
||||
|
||||
混合检索能够结合不同检索技术的优势获得更好的召回结果,但在不同检索模式下的查询结果需要进行合并和归一化(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提供给大模型。这时候我们需要引入一个评分系统:重排序模型(Rerank Model)。\
|
||||
|
||||
混合检索能够结合不同检索技术的优势获得更好的召回结果,但在不同检索模式下的查询结果需要进行合并和归一化(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提供给大模型。这时候我们需要引入一个评分系统:重排序模型(Rerank Model)。
|
||||
|
||||
**重排序模型通过将候选文档列表与用户问题语义匹配度进行重新排序,从而改进语义排序的结果**。其原理是计算用户问题与给定的每个候选文档之间的相关性分数,并返回按相关性从高到低排序的文档列表。常见的 Rerank 模型如:Cohere rerank、bge-reranker 等。
|
||||
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=NjQ1MGRkMGMxYmM1OTk2ZjRkOGYzYmM1MWQ3MjMwZTZfTnZIZXJCaU1mQmxJRmRTTHZTcm5ZM2NkemN1RWpuTEdfVG9rZW46R0xlOWJDTktXb1B0Z0h4MHNVRWNpT2xGbkNoXzE3MDAyMTc1NTA6MTcwMDIyMTE1MF9WNA" alt=""><figcaption><p>混合检索 + 重排序</p></figcaption></figure>
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=NTQwYjAxMDAyZmU4MGU1Y2JlYzY0NWFhNDExOGVjYThfb21ZM2lrbHlZM0NPeTJZTWxWbzhhYUNhamRSdU1LTHJfVG9rZW46R0xlOWJDTktXb1B0Z0h4MHNVRWNpT2xGbkNoXzE3MDAzMTk5MDQ6MTcwMDMyMzUwNF9WNA" alt=""><figcaption><p>混合检索+重排序</p></figcaption></figure>
|
||||
|
||||
在大多数情况下,在重排序之前会有一次前置检索,这是由于计算查询与数百万个文档之间的相关性得分将会非常低效。所以,**重排序一般都放在搜索流程的最后阶段,非常适合用于合并和排序来自不同检索系统的结果**。\
|
||||
在大多数情况下,在重排序之前会有一次前置检索,这是由于计算查询与数百万个文档之间的相关性得分将会非常低效。所以,**重排序一般都放在搜索流程的最后阶段,非常适合用于合并和排序来自不同检索系统的结果**。
|
||||
|
||||
不过,重排序并不是只适用于不同检索系统的结果合并,即使是在单一检索模式下,引入重排序步骤也能有效帮助改进文档的召回效果,比如我们可以在关键词检索之后加入语义重排序。
|
||||
|
||||
不过,重排序并不是只适用于不同检索系统的结果合并,即使是在单一检索模式下,引入重排序步骤也能有效帮助改进文档的召回效果,比如我们可以在关键词检索之后加入语义重排序。\
|
||||
在具体实践过程中,除了将多路查询结果进行归一化之外,在将相关的文本分段交给大模型之前,我们一般会限制传递给大模型的分段个数(即 TopK,可以在重排序模型参数中设置),这样做的原因是大模型的输入窗口存在大小限制(一般为 4K、8K、16K、128K 的 Token 数量),你需要根据选用的模型输入窗口的大小限制,选择合适的分段策略和 TopK 值。
|
||||
|
||||
需要注意的是,即使模型上下文窗口很足够大,过多的召回分段会可能会引入相关度较低的内容,导致回答的质量降低,所以重排序的 TopK 参数并不是越大越好。
|
||||
|
||||
在具体实践过程中,除了将多路查询结果进行归一化之外,在将相关的文本分段交给大模型之前,我们一般会限制传递给大模型的分段个数(即 TopK,可以在重排序模型参数中设置),这样做的原因是大模型的输入窗口存在大小限制(一般为 4K、8K、16K、128K 的 Token 数量),你需要根据选用的模型输入窗口的大小限制,选择合适的分段策略和 TopK 值。需要注意的是,即使模型上下文窗口很足够大,过多的召回分段会可能会引入相关度较低的内容,导致回答的质量降低,所以重排序的 TopK 参数并不是越大越好。
|
||||
|
||||
\
|
||||
重排序并不是搜索技术的替代品,而是一种用于增强现有检索系统的辅助工具。**它最大的优势是不仅提供了一种简单且低复杂度的方法来改善搜索结果,允许用户将语义相关性纳入现有的搜索系统中,而且无需进行重大的基础设施修改。**
|
||||
|
||||
\
|
||||
以 Cohere Rerank 为例,你只需要注册账户和申请 API ,接入只需要两行代码。另外,他们也提供了多语言模型,也就是说你可以将不同语言的文本查询结果进行一次性排序。\
|
||||
|
||||
|
||||
|
|
@ -30,23 +27,33 @@ Dify 目前已支持 Cohere Rerank 模型,通过进入“模型供应商-> Coh
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (112).png" alt=""><figcaption><p>在模型供应商内配置 Cohere Rerank 模型</p></figcaption></figure>
|
||||
|
||||
###
|
||||
|
||||
### 如何获取 Cohere Rerank 模型?
|
||||
|
||||
登录:[https://cohere.com/rerank](https://cohere.com/rerank),在页内注册并申请 Rerank 模型的使用资格,获取 API 秘钥。
|
||||
|
||||
### 在数据集检索模式中设置 Rerank 模型
|
||||
###
|
||||
|
||||
### 数据集检索模式中设置 Rerank 模型
|
||||
|
||||
通过进入“数据集->创建数据集->检索设置”页面并在添加 Rerank 设置。除了在创建数据集可以设置 Rerank ,你也可以在已创建的数据集设置内更改 Rerank 配置,在应用编排的数据集召回模式设置中更改 Rerank 配置。
|
||||
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=MDI3NzU1MjZkNDMxM2JjMjUzNDVjYmEzOTE3NDI1MGNfazF0ZzBqWHlDbGdLcHVxRG5Call4MlU3TXRQNUNvM2RfVG9rZW46QzZ6WmJqSWptb0E3eTd4aGN0N2NUY01EbjFlXzE3MDAyMTc1NTA6MTcwMDIyMTE1MF9WNA" alt=""><figcaption><p>在数据集检索模式中设置 Rerank 模型</p></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt="" width="563"><figcaption><p>数据集检索模式中设置 Rerank 模型</p></figcaption></figure>
|
||||
|
||||
**TopK:**用于设置 Rerank 后返回相关文档的数量。
|
||||
|
||||
**Score 阈值:**用于设置 Rerank 后返回相关文档的最低分值。设置 Rerank 模型后,TopK 和 Score 阈值设置仅在 Rerank 步骤生效。\
|
||||
|
||||
|
||||
### 在数据集多路召回模式中设置 Rerank 模型
|
||||
### 数据集多路召回模式中设置 Rerank 模型
|
||||
|
||||
通过进入“提示词编排->上下文->设置”页面中设置为多路召回模式时需开启 Rerank 模型。
|
||||
|
||||
关于多路召回模式的说明:[🔗](zhao-hui-mo-shi.md#duo-lu-zhao-hui-mo-shi)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption><p>数据集多路召回模式中设置 Rerank 模型</p></figcaption></figure>
|
||||
|
||||
|
||||
通过进入“提示词编排->上下文->设置”页面中设置为多路召回模式时需开启 Rerank 模型。关于多路召回模式的说明:链接
|
||||
|
||||
<figure><img src="https://langgenius.feishu.cn/space/api/box/stream/download/asynccode/?code=ZDk3ZTI3MDk3NGE5NzczNTU1ZDI5YzViYTFhMTZkOWFfV0tOQWNIbUlFY25xS3lxT2VESUpQMXB5WVh0QWFCaHpfVG9rZW46RmpJY2JmZTRBb0ppcXV4bG5lTWNyZlRUbjVnXzE3MDAyMTc1NTA6MTcwMDIyMTE1MF9WNA" alt=""><figcaption><p>在数据集多路召回模式中设置 Rerank 模型</p></figcaption></figure>
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ Query or prefix prompt is too long, you can reduce the preix prompt, or shrink t
|
|||
|
||||
如下方表格示例,仅需保留第二行的表头,首行(表格1)为多余表头,需删掉。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 20 买了 ChatGPT plus,为什么在 dify 里还不能使用 GPT4?
|
||||
|
||||
|
|
|
|||