自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 langchain入门合集

1.langchain简介与入门2. langchain的Prompt模版3. 使用链构建可组合流水线4. 使用LangChain的LLM对话记忆5.检索增强6. AI智能体7. 定制化工具8. 具有长记忆的智能体9. Langchain的流式输出10. RAG多维查询11. LCEL:Langchain表达式语言1. prompt2. token3. embedding4. vector database5. RAG

2024-10-08 09:59:15 403

原创 LLM基础概念:模型训练

神经网络模型可以认为是一个非常复杂的数学公式,模型本质有一系列矩阵参数构成。所谓训练,就是给这些参数分配了合适的值。LLM输入是一段文本,输出也是一段文本,模型训练就是学习输入和输出的映射关系y=f(x)

2024-10-01 09:00:00 241

原创 LLM基础概念-训练集

具体来说,就是模型输出与训练数据标注的正确答案之间的差距。训练误差越小,意味着模型越能够很好的拟合已见的训练数据。Test Error:指的是模型在完全未见过的测试数据集上的预测误差或损失函数值。训练就是通过不断调整模型的参数,让预测值尽可能接近标准答案的过程,目标就是将loss最小化。它帮助我们调整模型训练参数的设置,以确保模型不仅在训练数据上表现好,也能在新的数据上表现好。它包含了模型在训练过程中没有见过的数据,这样我们就可以更真实的了解模型在现实世界中的表现。用来训练模型的数据。

2024-09-30 07:45:00 741

原创 LLM基础概念:RAG

在大语言模型时代,RAG指的是在回答问题或生成文本时,先从大规模文档库中检索相关信息,然后利用这些检索到的信息来生成响应或文本,从而提高预测的质量。RAG已被证明能显著提高回答的准确性,减少模型产生的幻觉,尤其是在知识密集型任务中。

2024-09-29 09:49:56 464

原创 LLM基础概念:Vector DataBase

向量数据库是存储大量向量并允许高效执行相似度搜索的数据库(例如,通过余弦相似度)的数据库。这种类型的数据库在与大数据和机器学习相结合的场景中非常有用。向量数据库可以在大量(通常是高纬度)向量中快速找到与查询向量最接近的向量,而无需进行暴力搜索。向量数据库的关键性能指标包括召回率、准确率和检索效率,这些都会影响你选择哪种向量库或索引。什么是向量数据库,如何选择向量数据库----索引的选择(召回率和准确率,检索效率)。

2024-09-28 15:46:18 275

原创 LLM基础概念:Embedding

embedding在机器学习和自然语言处理中,主要是将词汇、句子、段落甚至整个文档转换为实数向量的过程。这种转换过程允许模型在进行训练和推理过程中,能够理解和处理语言数据。这些向量能够捕捉单词语义上的相似性,例如词义相近的单词在嵌入空间中的向量会更接近。

2024-09-27 09:15:14 632

原创 LLM基础概念:Token

在机器学习和深度学习领域中,词元分析器也是必不可少的一步,它能够将文本数据转化为数学模型所需要的向量或矩阵形式,更方便进行后续的算法和模型训练。每一个token都对应一个向量,当输入模型的token数量增加时,模型需要处理的数据量也会相应增加,这对计算资源(如内存和计算能力)的需求也会增大。当我们说模型消耗的token数时,通常是指在一次计算(比如一次训练步骤中或是一次推理过程中)模型处理的token总量(包括input和output)。token是用于自然语言处理的词的片段。

2024-09-26 09:50:53 769

原创 LLM基础概念:Prompt

prompt injection通常是通过在对话的起始或每个对话轮次插入特定的文本来实现的。这些文本可以是问题、指令、上下文信息或任务相关的提示,以引导模型生成与特定任务或目标相符合的回答。通过prompt injection,可以引导模型产生特定领域的回答,提供特定的信息或执行特定的操作。例如,在问答任务中,可以在prompt中提供问题和相关上下文,以引导模型生成相关的答案。在任务导向的对话中,可以在每个对话轮次重注入指令或任务目标,以引导模型按照特定的任务要求进行回答。

2024-09-25 09:42:27 777

原创 11. LCEL:LangChain Expression Language

这篇文章覆盖了LCEL的理解和他是如何工作的。LCEL(LangChain Expression Language):是把一些有趣python概念抽象成一种格式,从而为构建LangChain组件链提供一种“简约”代码层。在这篇文章中,我们将学习LCEL是什么、他是如何工作的,以及LCEL链、pipe和RUnnable的要点。

2024-09-25 09:40:08 1267

原创 10. RAG多维查询

我们将用两个prompt来尝试这个,这两个prompt都会促使搜索查询更加多样化。

2024-09-24 09:55:51 613

原创 9. LangChain流式输出

一篇涵盖agent和工具的简单流到复杂流的指南。对于LLM来说,流式传输已成为一个越来越受欢迎的特性。他的理念是在生成过程中迅速返回令牌,而不是等到完整响应生成后再返回内容。对于简单的用例来说,流实际上非常容易实现,但当我们开始引入像agent这样具有自身运行逻辑的东西时,它可能变得复杂,因为这些逻辑可能会阻碍我们进行流的尝试。幸运的是,我们可以让他起作用----只是需要一些额外的努力。

2024-09-24 09:55:12 1020

原创 7. 定制化工具

Agent是使用LLM最强大且最引人入胜的方式之一。对LLM的兴趣激增,使得agent在AI智能驱动的应用场景中变得非常普遍。使用Agent可以让LLM访问工具。这些工具提供了无限可能。通过工具,LLM可以搜索web,进行数学计算,运行代码,等等。LangChain库提供了大量的预构建工具。然而,在许多实际的项目中,我们尝尝发现现有的工具只能有限的需求。意味着我们需要适配已有的工具,或者完全构建新的工具。本章节,我们即将探索如何在LangChain中构建自定义工具。

2024-09-23 17:00:00 1104

原创 8. 具有长记忆的Agent

探索我们如何构建增强检索的对话代理。我们在前面的章节已经见识了检索增强和对话式agent是多么强大。当我们把他们在一起使用时,他们变得更加有吸引力。对话式agent可能会在数据时效性、特定领域知识或访问内部文档方便遇到困难。通过将agent和检索增强工具相结合,我们就不再有这些问题了。在另外一方面,在不使用agent的情况下,使用“原生”检索增强意味着我们将在每次查询时检索上下文。同样,这并不总是理想的,因为并不是每次查询都需要访问外部知识。将这些方法结合起来,我们就能兼得两者的优势。

2024-09-23 17:00:00 643

原创 6. AI Agent

我们可以把agent当做LLM的工具库。就像人使用计算器进行数学计算或者为了信息使用google搜索,agent允许LLM做相同的事情。agent是LLM可以使用的工具,譬如计算器、搜索,或者执行代码。使用agent,LLM可以写或者执行python代码。他可以搜索信息,以及甚至是查询一个sql数据库。让我们看一个简单的例子。我们将以“zero-short”agent作为开始,这个agent允许我们的LLM使用计算器。

2024-09-19 12:00:00 801

原创 5. 检索增强

LLM(大语言模型)有一个数据保鲜的问题。甚至是一些最强大的模型,譬如GPT-4,对于时事一无所知。在大语言模型看来,世界是静止的。他们只了解通过训练数据呈现的世界。这给任何依赖最新信息或特定数据集的用例带来了问题。例如,您可能有一些公司内部文件,希望通过大语言模型进行交互。第一个挑战是将这些文档添加到LLM,我们可以尝试使用这些文档训练LLM,但是这个是耗费时间、昂贵的。那么,当添加一个新的文档会发生什么呢?对每个新添加的文档进行训练是机器低效的--这简直是不可能的。那么,我们如何来解决这个问题。

2024-09-19 07:41:59 1389

原创 4. 使用LangChain的LLM对话记忆

对话记忆是聊天机器人如何以对话方式响应多个query的机制。他使得对话连贯,没有他,每个query都是当做完全独立的输入、而不考虑过去的交互。上面的图代表了LLM有对话记忆和没有对话记忆。蓝色的框是用户的prompt、灰色的框是LLM的响应。右侧没有对话式记忆,LLM无法使用交互中的历史知识来响应。记忆使得LLM(Large Language Model)可以记录与用户的历史交互。默认情况下,LLM是无状态的--代表每一个传入的query都是独立处理,与其他交互无关。

2024-09-18 10:06:25 933

原创 3. 使用Chain构建可组合流水线

定义:chains是一个LangChain的一个基础模块官方定义如下:chain是由原始元素或者其他chain组成的链. 原始元素可以是prompt、llm、util或者其他的chain链基本上是一个由特定的原始元素组合的、可以处理输入的pipleline。直观上,他可以被视为一个“步骤”,对输入执行一组特定的操作并返回结果。他们可以是基于prompt的LLM处理,也可以是处理text的python函数。

2024-09-18 10:04:50 956

原创 2. Langchain的Prompt模版

实际上,我们在应用中不太可能将上下文和用户问题硬编码到代码中。我们会通过一个模版来输入他们,这个就是LangChain的Prompt Template的作用。Langchain 中的提示模板类旨在简化构建包含动态输入的提示的过程。在这些类中,最简单的是PromptTemplate。我们将通过向之前的提示中添加一个动态输入(用户输入的“query”)来进行测试。通过上述方法,我们可以在上使用format方法,以查看将query传递给模版的效果。通过这个,我们可以在上使用format。

2024-09-14 10:31:42 713

原创 1. LangChain: 简介与入门

LangChain简介

2024-09-14 10:25:41 922

原创 Prompt是什么

如果生成Python代码,可能会使用import来指示模型开始编写Python代码(因为Python脚本经常以import来开始)Context(external info):作为模型的额外知识来源,可以手动插入到提示中,或者通过向量数据库(检索增强),或者通过其他方式(如API、计算等)引入。Instructiions:指示模型应该做什么,如何使用提供的外部信息,如何处理查询,以及如何构造输出。User Input or Query:通常是由人类用户(提示词)输入到系统中的查询。

2024-09-04 19:16:44 142

原创 RAG(retrieval-augmented-generation)简介

检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。

2024-09-04 09:42:31 925

空空如也

空空如也

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

TA关注的人

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