Skip to content

Commit

Permalink
⬆️ UPDATE typo fix for ai
Browse files Browse the repository at this point in the history
  • Loading branch information
sunwu51 committed Oct 27, 2024
1 parent 8f40e2b commit 0e51105
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions 24.09/零基础了解AI应用.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ tags:
</Slider>


`chat`作为最基础、最重要的能力,一般也会堆外直接提供API来进行调用,而这些提供API的服务,又被叫做`LLM供应商`(之前的文章中盘点过市面上一部分常见的供应商)。`chat`接口的形式大部分供应商都是兼容或者类似`openai`(gpt的公司)提出的接口规范,是个http接口。`URL`一般是`${baseURL}/chat/completions`,而具体的参数形式可以查看[openAI文档](https://platform.openai.com/docs/api-reference/chat/create)
`chat`作为最基础、最重要的能力,一般也会对外直接提供API来进行调用,而这些提供API的服务,又被叫做`LLM供应商`(之前的文章中盘点过市面上一部分常见的供应商)。`chat`接口的形式大部分供应商都是兼容或者类似`openai`(gpt的公司)提出的接口规范,是个http接口。`URL`一般是`${baseURL}/chat/completions`,而具体的参数形式可以查看[openAI文档](https://platform.openai.com/docs/api-reference/chat/create)

![request](https://i.imgur.com/7uPqW6f.png)

Expand Down Expand Up @@ -196,7 +196,7 @@ tags:
# 6 RAG与相关工具
`RAG` (Retrieval-augmented Generation)也是常听到的一种技术手段,通俗讲就是:因为模型的上下文长度是有限的,如果业务数据总量超过了上下文,例如`gpt-4o`上下文是128k,就需要压缩上下文的长度。此外很多上下文的内容也不是必须传给`LLM`的。

例如有一本人物传记,我们想要LLM根据书中内容,回答这个人18岁高考考了多少分,去了哪个大学,那么正本书的内容都作为`prompt`显然不必要的,`RAG`的作用就是把高考、大学等相关的信息提炼出来,到这本书中去检索,找到相关性比较高的章节,把这部分章节作为`prompt`,这样就大大减少了`prompt`的长度。那么`RAG`是如何检索出相关性高的部分章节的呢?
例如有一本人物传记,我们想要LLM根据书中内容,回答这个人18岁高考考了多少分,去了哪个大学,那么整本书的内容都作为`prompt`显然不必要的,`RAG`的作用就是把高考、大学等相关的信息提炼出来,到这本书中去检索,找到相关性比较高的章节,把这部分章节作为`prompt`,这样就大大减少了`prompt`的长度。那么`RAG`是如何检索出相关性高的部分章节的呢?

其实是通过向量化或者叫嵌入或者叫`embedding`,我们把`embedding`理解成一个黑盒的函数,他的入参是字符串,出参是一个向量或者叫`double数组`,数组长度就是嵌入算法的维度,任意的字符串甚至是其他数据形式,都可以通过`embedding`函数得到一个向量。那么我们可以把我们的知识库,上面例子中就是正本人物传记,先进行拆分,比如每个章节拆分、或者每个段落、或者固定的每1k个字进行拆分,拆分成多个分片`chunk`,每个`chunk`运行`embedding`函数得到向量,再把`chunk`和向量存起来,可以存到普通的数据库,也可以是向量数据库(Vector Database),后者对向量存储、查找、计算都有专门优化。

Expand Down

0 comments on commit 0e51105

Please sign in to comment.