求助——AssertionError: Attribute pipeline is missing from configuration.json. 在网上找了很多问题都没有解决,求助一下广大网友。有什么好的解决方法吗?我在本地运行Sunsimiao大模型的时候遇到了“本地环境如上所示,不知是哪里出现了问题!
LangChain——自定义流式生成器函数 在 LCEL 管道中使用生成器函数(即使用 yield 关键字且行为类似于迭代器的函数)。这些生成器的签名应该是 Iterator[Input] -> Iterator[Output]。或者对于异步生成器: AsyncIterator[Input] -> AsyncIterator[Output]。这些对于: - 实现自定义输出解析器 - 修改上一步的输出,同时保留流功能为逗号分隔列表实现一个自定义输出解析器。
LangChain——设置配置项 使用“@chain”装饰器创建一个可运行程序,还可以通过添加 @chain 装饰器将任意函数变成链。其次,一个 configurable_alternatives 方法。使用此方法,您可以列出可以在运行时设置的任何特定可运行对象的替代方案。通常,您可能想要尝试多种不同的做事方式,甚至向最终用户展示多种不同的做事方式。通过正确跟踪链,这将具有提高可观察性的好处。对该函数内的可运行对象的任何调用都将被跟踪为嵌套子函数。这允许您配置可运行的特定字段。它还允许像任何其他可运行程序一样使用它,将其组合成链等。
LangChain——数据传递 可以在管道中使用任意函数。请注意,这些函数的所有输入都必须是单个参数。如果有一个接受多个参数的函数,则应该编写一个接受单个输入并将其解包为多个参数的包装器。chain = (| prompt| model# 输出结果。
LangChain——并行发散流程控制 RunnableParallel(又名 RunnableMap)可以轻松并行执行多个 Runnable,并将这些 Runnable 的输出作为映射返回。RunnableParallel 对于并行运行独立进程也很有用,因为映射中的每个 Runnable 都是并行执行的。导入相关的包,并且将两个并行处理的内容;这里先列举了传统的处理方法;
LangChain——自查询 自查询检索器,顾名思义,是一种能够查询自身的检索器。具体来说,给定任何自然语言查询,检索器使用查询构造 LLM 链来编写结构化查询,然后将该结构化查询应用于其底层 VectorStore。这允许检索器不仅使用用户输入的查询与存储的文档的内容进行语义相似性比较,而且还从对存储的文档的元数据的用户查询中提取过滤器并执行这些过滤器。我们使用Chroma矢量存储,创建一个小型演示文档,其中包含电影摘要等;注意:自查询检索器要求您安装 lark 软件包。
LangChain——多向量检索器 通常,摘要可能能够更准确地提炼出某个块的内容,从而实现更好的检索。在这里,我们展示如何创建摘要,然后嵌入它们。# 创建链chain = (| ChatPromptTemplate.from_template("总结下面的文档:{doc}")| modeldocs = []# max_concurrency最大的并行量# 添加文件到检索器# id和文档的映射sub_docs = retriever.vectorstore.similarity_search("众测活动是否有参与限制?
LangChain——HTML文本分割 & 多种文本分割 加载文档后,您通常会想要对其进行转换以更好地适合您的应用程序。最简单的例子是,您可能希望将长文档分割成更小的块,以适合模型的上下文窗口。LangChain 有许多内置的文档转换器,可以轻松地拆分、组合、过滤和以其他方式操作文档。当您想要处理长文本时,有必要将该文本分割成块。这听起来很简单,但这里存在很多潜在的复杂性。理想情况下,您希望将语义相关的文本片段保留在一起。“语义相关”的含义可能取决于文本的类型。本笔记本展示了实现此目的的几种方法。
LangChain——加载知识库文本文档 & PDF文档 这涵盖了如何加载目录中的所有文档。在底层,默认情况下使用 UnstructedLoader。需要安装依赖python导入方式我们可以使用 glob 参数来控制加载特定类型文件。请注意,此处它不会加载 .rst 文件或 .html 文件。默认情况下不会显示进度条。要显示进度条,请安装 tqdm 库(例如 pip install tqdm ),并将 show_progress 参数设置为 True。
LangChain——提示词里模板中的模板 最常用的是 AIMessagePromptTemplate 、 SystemMessagePromptTemplate 和 HumanMessagePromptTemplate ,它们分别创建 AI 消息、系统消息和人工消息。想象一下,有一个提示,希望获得当前日期。想要部分提示模板的一个常见用例是,如果先于其他变量获取某些变量。相反,可使用foo值部分提示模板,然后传递部分化的提示模板并直接使用。与其他方法一样,“部分”提示模板是有意义的,例如需要传入所需的子集,以创建一个仅需要剩余值子集的新提示模板。
faiss VS ChromaDB ChromaDB 适用于需要快速、可扩展的时间序列数据存储和查询的各种应用,如监控系统、物联网、金融市场数据分析等。ChromaDB 是一个开源的、基于 Python 的数据库,专门用于存储和查询时间序列数据。它是由 MongoDB 的创造者开发的一个高性能、可扩展的解决方案,适用于需要处理大规模时间序列数据的场景。faiss 的核心优势在于它为高维向量空间中的数据提供了快速的近似最近邻搜索(ANNS)算法,这对于推荐系统、信息检索、图像和视频分析等应用非常重要。
LangChain 1、类属性定义max_token: 定义类模型可以处理的最大令牌数;do_sample: 指定是否在生成文本时采用采样策略;temperature: 控制生成文本的随机性,较高的值会产生更多的随机性;top_p: 一种替代temperature的采样策略,这里设置为0.0,意味着不适用;tokenizer: 分词器,用于将文本转换为模型可以理解的令牌;model: 存储加载的模型对象;history: 存储对话历史;2、构造函数init: 构造函数初始化了父类的属性;
常见大模型——chatlm系列 主流的预训练框架主要有三种:1、AutoRegressive自回归模型(AR模型):代表GPT。本质上是一个Left-to-Right的语言模型。通常用于生成式任务,在长文本生成方面取得了巨大的成功。当扩展到十亿级别参数时,变现出了少样本学习能力。缺点是单向注意力机制,在NLU任务中,无法完全捕捉上下文的依赖关系。2、Autoencoding自编码模型(AE模型):代表BERT。是通过某个降噪目标(比如MLM)训练的双向文本编码器。编码器会产生适用于NLU任务的上下文表示,但无法直接用于文本生成。
P-tuning、Prompt-tuning和Prefix-tuning区别是什么? 是 Prompt Tuning 的一种变体,其核心思想是在特定位置插入可训练的 Token,使模型能够更好地理解下游任务的需求。P-Tuning 方法通过在输入序列中间插入额外的 Prompt Token,使模型在处理输入时能更好地捕捉上下文信息。这样,模型在处理输入序列时,每一层的输入都会包含这些额外的 Token,从而适配下游任务。是通过在输入序列前添加额外的 Token 来适配下游任务的方法。这些额外的 Token 是可训练的,而预训练语言模型的参数保持不变。
常见大模型——LLama系列 LLaMA开源大模型繁荣发展的开端,一系列相关工作均基于LLaMA开展;模型规模7B、13B、33B、65B满足了开发者和研究者的不同需求;Alpaca:通过少量的指令精调赋予LLaMA指令理解与执行的能力Llama-2LLaMA的二代模型,相关模型性能进一步提升,模型可商用推出官方对⻬的Chat版本模型,采用了完整的RLHF链条;Code Llama:专注于代码能力的LLaMA模型,最好的模型代码能力接近GPT-4效果,模型可商用。
Transformer模型——token及模型参数 在tokens数量一定的数据集上做多epochs的模型训练,会影响模型的性能,降低模型的效果。这在预训练和下游任务都会产生影响。但是,随着模型的发展,高质量数据集的tokens数将很快用完。而采用正则技术虽然会影响模型训练效率,但是会降低这种影响。