1、向量数据库的作用
1. 在AI大模型训练过程中,向量数据库可以有效提升数据检索、特征提取等任务的效率。
2、在AI大模型推理过程中,向量数据库为大模型提供外挂知识库,提升模型时效性与准确性,提供缓存能力,减少调用开销,提升响应速度等。
2、大模型训练框架
pytorch DDP
微软deepspeed
英伟达megatron-lm
3、CPU做模型推理 bitnet.cpp
4、NCCL
是专为NVIDIA GPU设计的集合通信库,在GPU之间的通信可以通过以下几种方式实现:
(1)GPU Shared Memory
在这种方式中,GPU之间的数据传输需要经过CPU的主机内存(Host Memory)。这意味着数据首先需要从一块GPU拷贝到CPU的主机内存,然后再从CPU的主机内存拷贝到另一块GPU。这种方式涉及到CPU和PCIe总线,可能会导致较高的通信延迟和额外的性能开销。
(2)GPU Direct P2P
GPU Direct Peer-to-Peer(P2P)技术允许同一节点上的GPU直接相互通信,无需通过CPU的主机内存。这种直接点对点(P2P)通信减少了数据传输的延迟,并且可以显著提高多GPU之间的通信效率。GPU Direct P2P依赖于PCIe架构,允许GPU共享内存资源,从而实现高效的数据交换。
(3)NVLink
NVLink是NVIDIA开发的一种高速互连技术,它提供了比传统PCIe更高的带宽和更低的延迟。通过NVLink,GPU之间的数据传输不再通过PCIe总线,而是直接通过NVLink连接。NVLink通过NVSwitch设备实现多GPU之间的全互联,这对于高性能计算和深度学习应用中的大规模并行处理尤为重要。
5、torchtune
torchtune核心原则之一是最小化抽象和样板代码,通过使用配置文件(Config)和预置方案(Recipe),快速启动微调任务,以极低的成本试验不同的优化策略,且在不同的硬件上能够开箱即用,即多设备支持。
配置以YAML文件的形式存在,每个配置文件定义了一个完整的微调任务,包括:数据集的路径和格式、模型的架构和参数、优化器的类型和超参数、训练的批大小、学习率、迭代次数等。
方案是针对特定的场景和任务,提供了一套优化的实现和最佳实践,如
lora_finetune_single_device单设备上使用LoRA进行微调、lora_finetune_distributed多设备分布式环境下使用LoRA进行微调、qlora_finetune使用QLoRA进行参数高效微调、distill_finetune使用知识蒸馏技术进行微调。
7、PrivateUse1
DispatchKey在PyTorch中是一个重要的概念,用于动态分发算子调用到不同的后端实现。
PyTorch的PrivateUse1是一个保留扩展的DispatchKey,是用于开发者自定义算子实现的机制。
PrivateUse1和touch C++提供了非侵入性接入PyTorch及自定义算子的途径