FSDP 是 DDP 的一种改进,它晚于 deepspeed 出现,它其实就是 zero-3: 把权重、梯度、优化器全部 sharding 存储。理解起来不难,结合下 NCCL 通信就可以知道他干什么和怎么实现的。记住,FSDP的两个关键点,sharding 和 data parallel。
sharding
在深度学习中,shard(分片)指的是把一个整体的数据结构或模型参数拆成多个部分,...
知识蒸馏是一种技术,能够将大型、计算开销大的模型中的知识转移到较小的模型中,同时保持其有效性。这使得模型可以部署在计算能力较弱的硬件上,从而实现更快速和高效的推理。
知识蒸馏,简而言之,是让学生模型学习到类似教师模型某个阶段(即某些层)的结果,再搭配正常的与 labels 的监督学习,就可以对齐教师模型。以下是本文涉及到的不同层面的对齐方式的 loss 计算方式。
Loss 类型
分类...
接下来简单介绍几种 NCCL (NVIDIA Collective Communications Library) 的通信方式,不涉及原理,只是简单展示下效果。
scatter
gather
broadcast
reduce
all reduce
all gather
reduce scatter
1234from IPython.display import Imageimport l...
单轮对话以下是一个很基础的调用大模型的方式,除了 model, temperature 等参数外,最重要的就是 messages,即对话记录。大模型将基于传入的对话记录生成一个新的 message 。
123456789101112131415161718192021222324252627import osfrom openai import OpenAIdefault_client = ...
有些 LLM 在返回格式正确的 JSON 数据时会有些问题,有时会漏掉括号,有时会在数据中添加一些单词。不至于这种错误每次都要丢弃,再次生成太浪费时间了,因此能修复错误时还是要尽量修复。这就是 json_repair 的主要目的:修复 LLM 在生成 json 数据时的错误。
修复 JSON 中的语法错误
缺少引号、逗号位置错误、未转义的字符以及不完整的键值对。
缺少引号、格式不正确的值(...
Weights & Biases (wandb)使用 Weights & Biases (wandb) 可以非常方便地记录训练过程中的 loss、accuracy、模型权重、学习率曲线、超参配置、版本控制、模型可视化 等内容。
下面是使用 wandb 的完整入门步骤:
1. 安装 wandb1pip install wandb
2. 注册账号并登录你需要在 https:...
Reranker目的:
对检索到的文档进行重排序,优化其排名,优先展示与查询最相关的结果。
结构:
接受查询和文档作为单一输入对,进行联合处理。
机制:
单一输入对:将查询和文档作为组合输入,直接输出相关性评分。
自注意力机制:使用自注意力机制联合分析查询和文档,有效捕捉它们之间的语义关系。
优势:
更高的准确性:提供更精确的相似度评分。
深度语境分析:探索查询...
Reranker目的:
对检索到的文档进行重排序,优化其排名,优先展示与查询最相关的结果。
结构:
接受查询和文档作为单一输入对,进行联合处理。
机制:
单一输入对:将查询和文档作为组合输入,直接输出相关性评分。
自注意力机制:使用自注意力机制联合分析查询和文档,有效捕捉它们之间的语义关系。
优势:
更高的准确性:提供更精确的相似度评分。
深度语境分析:探索查询...
Tool工具是一个接口,允许代理、链条或大语言模型与外部世界互动。
LangChain 提供了易于使用的内置工具,并且还允许用户轻松构建自定义工具。
你可以在下面的链接中找到集成到 LangChain 中的工具列表。
集成到 LangChain 中的工具列表
内置工具 Built-in tools你可以使用 LangChain 提供的预定义工具和工具包。
工具指的是单一的实用工具,而工具...
OpenAI Embeddings本教程探讨了在 LangChain 框架中使用 OpenAI 文本嵌入 模型。
展示如何为文本查询和文档生成嵌入,使用 PCA 降维,并将其可视化为 2D 图形以便更好地理解。
通过分析查询与文档之间的 余弦相似度,该教程提供了嵌入如何增强工作流的洞察,包括 文本分析 和 数据可视化。
1234567891011from langchain_openai i...