无限可能的想象力

认真做事,用心写代码

vllm是如何支持大模型分布式推理?

LLM 只能逐个采样并生成新 token,并且每个新 token 的生成过程都依赖于该序列中所有先前的 token,具体来说是它们的key和value vectors。 在这个顺序生成过程中,已有 token 的key和value向量通常会被缓存以用于生成未来的 token,这称为 KV 缓存。 请注意,一个 token 的 KV 缓存依赖于其所有之前的 token。这意味着出现在序列中...

Pytorch DeviceMesh

DeviceMesh想要解决什么样的问题。 DeviceMesh 是管理进程组(或 NCCL )的更高级别的抽象。它允许用户轻松创建节点间和节点内进程组,而无需担心如何为不同的子进程组正确设置rank, 并且它有助于轻松管理这些分布式进程组。init_device_mesh()函数可用于创建新的 DeviceMesh,其网格可描述设备拓扑。 DeviceMesh 可用于描述整个集群中的设...

Pytorch DDP分布式数据并行训练

通过理解DDP分布式数据并行策略,来了解上层的算法和底层的计算之间是如何进行交互的 pytorch的并行策略实现对应三种不同的实现 torch/nn/parallel/distributed.py: DistributedDataParallel torch/distributed/fsdp:FSDP torch/distributed/pipelining:流水线并行,模型...

Pytorch Elastic 分布式训练架构

分布式训练系统 分布式训练需要使用由多台服务器组成的计算集群(Computing Cluster)完成。而集群的架构也需要根据分布式系统、大语言模型结构、优化算法等综合因素进行设计。 分布式训练集群属于高性能计算集群(High Performance Computing Cluster,HPC),其目标是提供海量的计算能力。 在由高速网络组成的高性能计算上构建分布式训练系统,主要有两种常见...

Torchelastic agent和user worker之间故障转移约定

本文翻译自pytorch源码中torch.distributed.elastic包: github地址 Torchelastic agent 和 user worker故障转移合约: TL;DR;: TE(torchelastic) 期望 user workers 在 5 分钟内完成漂移(drift) 最好将 DDP app 设计为所有workers都失败,而不是单个...

kubeflow分布式训练:training-operator的设计以及实现

本文简单介绍了kubeflow的整体架构,重点关注模型训练training-operator; 以PytorchJob为例,介绍CRD(Custom Resource Definition)的设计以及实现 kubeflow 简介 Kubeflow 是一个开源项目社区和生态系统,旨在解决机器学习 (ML) 生命周期中的每个阶段 ,并支持主流的开源工具和框架。Kubeflow 使 K...

langgraph设计解读-简介以及示例

2024年,随着OpenAI的Assistants API广泛使用,智谱、百度文心一言等大模型开始大力主推Agent,Agent在业界引起了极大的影响。其中,有一些AI领域大佬很认同Agent的未来前景:比如,Andrew Ng(吴恩达)在3月份分享的 AI agentic workflows; 作为AI从业者,我们快速落地了 Agent 在业务场景中的应用;同时,也非常看好 m...

在Github上将原仓库新建的分支同步到fork仓库中

问题描述:在Github上将原仓库新建的分支同步到fork仓库中 具体的解决步骤如下: 与源仓库建立关系 git remote add stream git@github.com:apache/dubbo-rust.git 拉取源仓库的数据 git fetch upstream 新建本地分支,并与远程分支建立追踪...

rust中,str vs String以及self vs Self的区别

str与String之间的区别 String是在heap上动态分配的字符串类型,类似 Vec;使用场景:当你需要拥有或修改字符串数据时。 str 是 UTF-8字节的不可变序列,内存中长度可变。因为str的大小是未知的,你只能通过指针来操作str。这意味着str通常以&str出现:表示指向UTF-8数据的引用;通常也称为string slice或者仅仅是slice。slice仅仅...

mongo-go-driver中topology的实现

topology模块是driver最重要的模块之一,该模块用来维护mongodb数据库的Deployment,以及每个Server的状态和Connection pool。 topology模块下有Topology、Server、Connection、Pool核心类型: Topology:负责监控MongoDB的部署状态,并通过server selection算法来选择Server。...