自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (1)
  • 收藏
  • 关注

原创 RAG进阶(二): RAG 融合(rag fusion)

今天我们来介绍RAG 融合(rag fusion),它的主要思想是在Multi Query的基础上,对其检索结果进行重新排序(即reranking)后输出Top K个最相关文档,最后将这top k个文档喂给LLM并生成最终的答案(answer)。

2024-05-06 17:10:09 1063

原创 RAG进阶(一): 多重查询(Multi Query)

今天我们学习了如何如何避免在做RAG检索时,由于查询语句因人而异而导致检索结果不够全面和完整。我们的主要方法是当用户在做检索时,我们让LLM基于用户的查询语句再生成多个查询语句,这些由LLM生成的查询语句能够从多个视角用户的查询语句进行补充。这样可以使得LLM能够更加准确的理解用户查询语句的真正含义从而给出更加完整且全面的答案。

2024-04-19 16:14:13 1018

原创 RAG(检索增强生成)的基础知识总结: 关于token

token可以被认为是单词(词语)的片段, 在用户对大语言模型提出问题的时候,我们的输入(prompt)会被分解成一组token, 在英语的句子中单词之家存在空格,一些常见的单词可能会被切割成独立的token, 但并非所有的单词都会被切割成独立的token, 有时候一个单词可能会被切割成多个token, token可以包含尾随在单词后面空格甚至子单词。​​​​​或者因此可以这么认为一个句子,或者一篇文章它们的token总数往往会大于句子或者文章的单词总数。

2024-03-22 13:16:11 948

原创 大型语言模型的语义搜索(二):文本嵌入(Text Embeddings)

单词和句子嵌入是大型语言模型(LLM)的主要工作。它们是大多数语言模型的基础构件,它通过捕获了单词、语义和语言细微差别之间的许多关系,并将其转换为有关相应数字,从而将人类语言(单词)翻译为计算机能理解的语言(数字)。

2024-02-24 18:58:44 1424 2

原创 大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是,简称BM25。在信息检索中,Okapi BM25(BM是最佳匹配的缩写)是搜索引擎用来估计文档与给定搜索查询的相关性的排名函数。

2024-02-22 18:14:26 1783

原创 AutoGen实战应用(三):多代理协作的数据可视化

今天我们进一步加深了对多代理协作原理的理解,并在此基础上实现了数据的下载分析以及可视化,需要说明的是manager-broadcast机制是一种最基本的多代理协作的工作方式,为了适应一些更为复杂的应用场景,还有一些复杂的AutoGen多代理协作的工作方式,将会在以后的博客中介绍,希望今天的内容对大家学习AutoGen会有所帮助。

2024-02-06 14:48:46 1661

原创 AutoGen实战应用(二):多代理协作(Multi-Agent Collaboration)

在今天介绍了AutoGEN中的多代理协作(Multi-Agent Collaboration)的基本原理,即当我们遇到较为复杂的任务时我们可以创建多个agent,并且为每个agent赋予不同的角色如(user_proxy, coder,pm)等,并且每个角色都要有角色说明(system_message),通过角色说明可以让LLM充分了解当前agent的作用,同时我们还创建了一个GroupChat组和组管理员manager,并且将所有的agent都放入GroupChat组中,这样通过manager的广播机制就

2024-01-27 22:36:21 1720 1

原创 高级RAG(八): 自动合并检索(Auto-merging Retrieval)

关于自动合并检索评估的方法总结和补充说明:使用不同的文档层次结构参数进行迭代(级别数、子级数)和不同的块大小使用 RAG三元组评估应用程序版本跟踪实验以选择最佳的文档分割的层次结构参数找到关于最适合某些文档类型的超参数(文档层次结构参数)的直觉自动合并检索是对句子-窗口检索的补充

2024-01-19 13:24:36 1614 1

原创 高级RAG(七): 评估句子-窗口检索

今天我们详细介绍了如何使用trulens对LlamaIndex的句子窗口检索结果进行评估,基于成本的考虑我们只进行了两轮评估,从评估的结果上看 Sentence window size =1 似乎是个较为理想的值,因为它的各项指标均由于Sentence window size =3,希望今天的内容对大家学习RAG有所帮助。

2024-01-16 13:23:47 1277

原创 高级RAG(六): 句子-窗口检索

Sentence Window Retrieval 是一种检索策略,用于检索与查询相关的文本。它首先检索最相关的句子,然后返回围绕该句子的更广泛的文本,以便为 LLM 提供更广泛的上下文来支撑其响应。

2024-01-13 11:35:06 1419

原创 高级RAG(五):TruLens 评估-扩大和加速LLM应用程序评估

今天我们学习了TruLens评估的基本原理,其中包括RAG三元组Context Relevance,Groundedness和Answer Relevance的定义和作用,然后我们又使用llamaIndex开发了基本RAG应用,最后我们使用了TruLens的反馈函数对基本RAG的检索结果进行了评估。希望今天的内容对大家学习RAG有所帮助.

2024-01-08 19:03:30 1578 1

原创 高级RAG(四):RAGAs评估

RAGAs (Retrieval-AugmentedGenerationAssessment) 它是一个框架(github官方文档question:用户输入的问题。answer:从 RAG 系统生成的答案(由LLM给出)。contexts:根据用户的问题从外部知识源检索的上下文即与问题相关的文档。: 人类提供的基于问题的真实(正确)答案。这是唯一的需要人类提供的信息。

2024-01-03 16:53:17 3099 5

原创 使用python快速开发与PDF文档对话的Gemini聊天机器人

今天我们主要介绍了如何开发一个简单的RAG系统:基于pdf文档问答的机器人应用,其中我们应用了langchain的父文档检索策略,panel的页面聊天组件chat_interface以及谷歌的Gemini大模型。希望今天的内容对大家学习RAG和聊天机器人程序有所帮助。

2023-12-31 13:39:58 1606

原创 高级RAG(三):llamaIndex从小到大的检索

LlamaIndex是一个用于连接大语言模型(LLMs)和外部数据源的数据框架,它可以让LLMs访问和利用私有或领域特定的数据。数据连接:支持从本地文件、Notion、Google文档、Slack、Discord等多种数据源读取数据。数据索引:支持构建不同类型的索引结构,如列表索引、向量索引、树形索引、关键词表索引等,以便快速检索和过滤数据。查询接口:支持使用自定义的输入提示(prompt)与LLMs进行交互,以获取知识增强的响应。

2023-12-28 16:37:57 2336

原创 使用python快速开发各种聊天机器人应用

Panel是一个开源的Python库,它可以让你用Python轻松地构建强大的工具、其中包括聊天机器人程序,今天我们使用panel快速开发了ChatGPT,Gemini,Langchain的聊天机器人应用。通过使用使用panel库,我们可以开发出功能强大界面美观的web机器人程序。

2023-12-26 16:45:54 1035

原创 高级RAG(二):父文档检索器

今天我们学习了langchain的父文档检索器,父文档检索器有两种工作方式即检索完整文档,和检索较大的文档块,其中检索完整文档的前提条件是原始文档的大小不能超过大模型llm对输入文本长度的限制条件,因此我们的原始文档不能太长。

2023-12-24 18:46:26 1971 2

原创 高级RAG(一):Embedding模型的选择

今天我们测试了openai,gemini,baai它们的embedding模型,我们发现baai的embedding模型表现最为优秀,它检索出了所有的相关文档,而gemini的embedding模型表现最差,它机会都没有检索出任何相关文档,我并不清楚这是什么原因造成的。

2023-12-21 16:29:38 3114

原创 谷歌Gemini API 应用(二):LangChain 加持

今天我们学习了在langchain中使用gemin模型的的一些方法,总的来说使用方法和其他的模型如openai的模型的方法都是类似的。今天我们还尝试了langchain的stream和beath方法在gemini模型上的应用,还介绍了RAG、PAL Chain的应用,最后我们用一个简单例子介绍了langchain中使用gemini多模态模型的方法。希望今天的内容对大家学习gemini大模型有所帮助。

2023-12-16 15:31:58 2099

原创 谷歌Gemini API 应用(一):基础应用

今天我们学习了谷歌最新的Gemini语言模型gemini-pro和多模态模型gemini-pro-vision的一些基础应用,其中包括了模型的一些限制条件,安全性审查,流式输出,多模态模型应用等内容,希望这些内容对读者学习Gemini模型有所帮助。

2023-12-15 17:28:29 2841

原创 AutoGen实战应用(一):代码生成、执行和调试

今天我们学习了AutoGen的基本原理以及基础参数的设置,并通过两个简单的例子轻松实现了原本需要使用复杂逻辑才能完成的任务。任务的复杂逻辑并没有发生变化,只是实现这些逻辑的主体由人变成了AI,我们模拟出两个由AI担任的人物角色,他们通过相互之间的对话一步一步的解决了人类交给它们的任务,你说神奇不神奇!😀。

2023-12-12 12:35:23 2931

原创 LangChain的函数,工具和代理(六):Conversational agent

今天我们回顾了在langchain中实现基本的函数调用方法,以及在此基础上进行手动优化和自动优化的流程,最后我们将所有的功能整合在一起开发了一个自动化的聊天机器人,它具有记忆能力同时还能根据用户的问题来自主判断是否调用外部函数并给出对用户友好的回复,希望今天的内容对大家学习langchain有所帮助!

2023-12-08 13:55:10 1761

原创 LangChain的函数,工具和代理(五):Tools & Routing

今天我们学习了langchain的tools,routing组件的原理,并借助tool和routing让llm实现了真正意思上的函数调用,最后我们还介绍了openapi格式的函数说明文本如何通过langchain来转换成openai的函数描述变量,希望今天的内容对大家有所帮助。

2023-12-06 16:38:26 2202

原创 LangChain的函数,工具和代理(四):使用 OpenAI 函数进行标记(Tagging) & 提取(Extraction)

今天我们学习了通过langchain和openai的函数调用来实现标记(Tagging)和提取(Extraction)功能,通过taggin我们可以让llm对用户信息进行评估,通过extration我们可以让llm从用户信息中提取有用的内容,最后我们介绍了两个真实的应用场景案例,我们介绍了如何使用langchain的长文本切割工具对长文本进行切割,从而解决了openai的llm对输入的上下文长度限制问题。希望今天的内容对大家有所帮助。

2023-12-04 19:24:02 1807

原创 LangChain的函数,工具和代理(三):LangChain中轻松实现OpenAI函数调用

今天我们学习了pydantic的基础语法,以及如何利用langchain将pydantic定义的类转换成openai的函数描述对象,通过pydantic我们可以轻松定义函数描述对象的类,然后使用langchain的convert_pydantic_to_openai_function方法将其转换成openai所需要的格式,如果不使用pydantic我们必须手动创建openai的函数描述对象,这将是非常低效且繁琐的工作。

2023-12-01 22:54:57 2294

原创 LangChain的函数,工具和代理(二):LangChain的表达式语言(LCEL)

今天我们介绍了LangChain的表达式语言(LCEL)的基础知识,其中包括了简单链(Simple Chain),复杂链(More complex chain),绑定(Bind),后备措施(Fallbacks),接口(Interface)的应用,其中包括对invoke,batch,stream等方法的使用以及相应的异步方法的介绍,希望今天的内容对大家有所帮助。

2023-11-30 16:22:39 2131

原创 LangChain的函数,工具和代理(一):OpenAI的函数调用

几个月前OpenAI官方发布了其API的函数调用功能(Function calling), 在 API 调用中,您可以描述函数,并让模型智能地选择输出包含调用一个或多个函数的参数的 JSON 对象。API函数“ChatCompletion” 虽然不会实际调用该函数;但是模型会生成这些基于函数参数的JSON对象,您可以使用它来调用代码中的实际函数。

2023-11-21 20:53:31 1528 1

原创 微调大型语言模型(一):为什么要微调(Why finetune)?

今天我们来学习Deeplearning的在线课程 微调大型语言模型(一)的第一课:为什么要微调(Why finetune)。我们知道像GPT-3.5这样的大型语言模型(LLM)它所学到的知识截止到2021年9月,那么如果我们向ChatGPT询问2022年以后发生的事情,它可能会产生“幻觉”从而给出错误的答案,再比如我们有一些关于企业的某些产品的业务数据,但是由于ChatGPT没有学习过这些数据,因此它也无法正确回答出关于这些产品的问题。为了扩大LLM的知识面,让LLM能够更好的学习并掌握新知识从而更好的为用

2023-09-21 22:51:27 1127

原创 使用 Gradio 构建生成式 AI 应用程序(一): 图片内容读取app

今天我们学习了如何通过blip-image-captioning-bas模型来读取图片内容信息,使用该模型一般有两种方法,一种是api调用的方式,但是需要在云端部署模型的应用程序,另一种是将模型下载到本地,然后在本地加载模型,两种方法都有各自的优缺点。另外我们还学习了如何使用gradio来开发一个基于blip-image-captioning-bas模型的读取图片内容的web app,同时我们还学习了gradio的主要方法Interface及其主要参数。希望今天的内容对大家学习gradio有所帮助。

2023-08-11 20:29:55 1634 3

原创 使用langchain与你自己的数据对话(五):聊天机器人

今天我们学习了如何开发一个具有记忆能力的个性化问答机器人,所谓个性化是指该机器人可以针对用户数据的内容进行问答,我们在实现该机器人时使用了ConversationalRetrievalChain组件,它是一个具有记忆能力的检索链,也是机器人的核心组件。希望今天的内容对大家有所帮助!

2023-08-07 20:44:55 3247 4

原创 使用langchain与你自己的数据对话(四):问答(question answering)

今天我们介绍了如何通过答链RetrievalQA,来检索向量数据库并回答用户的问题。其中我们介绍了几种RetrievalQA检索向量数据库的工作方式,也就是chain type方式,其实默认方式是stuff,除此之外还有map_reduce,refine, map_rerank等几种方式,它们都有各自的优缺点。同时我们还介绍了通过使用prompt模板,可以让LLM返回格式化的结果。希望今天的内容对大家学习langchain有所帮助!

2023-08-01 18:08:30 5259 6

原创 使用langchain与你自己的数据对话(三):检索(Retrieval)

今天我们学习了很多有用的新技术比如最大边际相关性(MMR),MMR可以让搜索结果保持相关性和多样性,这样可以避免出现冗余的搜索结果,除此之外我们可以定义元数据的过滤条件,这样向量数据库可以更加精准的搜索和问题相关的答案。

2023-07-27 17:28:50 4814 1

原创 使用langchain与你自己的数据对话(二):向量存储与嵌入

今天我们学习了嵌入和向量数据库的基本原理,并且对嵌入(Embeddings)和开源数据库Chroma进行了实际的操作,并观察了各种的返回结果,同时我们还发现了两种Chroma数据库相似搜索失效的场景。关于如何避免失效的应用我们将在下一篇博客中进行讨论。

2023-07-24 22:01:16 3552 4

原创 使用langchain与你自己的数据对话(一):文档加载与切割

今天我们学习了文本的加载与分割,Langchain提供了丰富的外部数据加载器,这些外部数据可以是结构化的,也可以是非结构化的,其中我们还介绍了从网页和youtube视频中加载文本的方法,这个挺有意思的,大家可以尝试一下,由于外部数据量可能比较大,如pdf, text文档等,因此当我们加载了外部数据以后,我们还需要对数据进行分割处理,我们介绍了几种文本分割的方法,其中有按字符分割的CharacterTextSplitter分割器,和递归分割的RecursiveCharacterTextSplitter分割器。

2023-07-20 17:55:52 12323 4

原创 LangChain大型语言模型(LLM)应用开发(六):Agents

在LangChain中,代理是一个可以访问一套工具的组件,并且可以根据用户的输入决定使用哪个工具。

2023-07-15 16:45:04 3323 7

原创 LangChain大型语言模型(LLM)应用开发(五):评估

今天我们学习了如何利用Langchain来评估LLM的表现,和以前评估openai模型的方法不同的是,这里我们使用的是全自动方式,即全自动方式生成测试集,并且全自动方式评估产生评估结果,通过全自动生成测试集的方式解放了我们的双手,使我们不需要因为没有测试数据集而苦恼,大大提高了生产率。

2023-07-13 17:59:44 25475 3

原创 LangChain大型语言模型(LLM)应用开发(四):Q&A over Documents

今晚我们将学习如何利用Langchain和LLM对文档进行问答,其中会涉及到索引,词嵌入,向量数据库等知识。

2023-07-11 16:15:29 2467 4

原创 如何让大型语言模型(LLMs)遵守道德原则?

今天我们将学习如果让llm给出的答案符合法律和道德伦理规范,我们学习了openai的Moderation内容审查机制,以及Langchain的道理审查机制。

2023-07-08 00:42:16 1456 1

原创 开源免费多语言翻译模型

​今天给大家介绍赫尔辛基大学开源免费的多语言翻译模型,赫尔辛基大学开发了1400多个多语种翻译模型,我们可以在Hugging Face网站上免费下载免费使用这些模型,今天我来介绍其中的中译英和英译中两个模型。

2023-07-06 14:47:09 3262 2

原创 LangChain大型语言模型(LLM)应用开发(三):Chains

今天我们学习了Langchain的核心组件chain。主要分为LLMChain,Sequential Chains,Router Chain,其中LLMChain是最基本的chain它简单的组合了LLM和promt,Sequential Chains主要包含SimpleSequentialChain和SequentialChain,对于SimpleSequentialChain来说它只是简单的将多个LLMChain串联在一起,前一个chain的输出是后一个chain的输入,所以总体上来说SimpleSeq

2023-07-02 22:38:35 11309 4

原创 LangChain大型语言模型(LLM)应用开发(二):Conversation & Memory

LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,以便在不同的应用程序中使用。

2023-06-30 15:29:12 1484

概率导论笔记1.概率模型和公理.pdf

概率导论笔记1.概率模型和公理,除了介绍概率论基本知识外,还介绍了距母函数,最小二乘估计,泊松过程等等

2020-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除