fix typo docs/

This commit is contained in:
digger yu
2023-05-24 09:53:21 +08:00
committed by Frank Lee
parent 34966378e8
commit e90fdb1000
23 changed files with 30 additions and 30 deletions

View File

@@ -48,7 +48,7 @@ Colossal-AI 为用户提供了一个全局 context使他们能够轻松地管
world_size: int,
config: Config,
data_parallel_size: int,
pipeline_parlalel_size: int,
pipeline_parallel_size: int,
tensor_parallel_size: int,
arg1,
arg2):

View File

@@ -122,7 +122,7 @@ Inside the initialization of Experts, the local expert number of each GPU will b
## Train Your Model
Do not to forget to use `colossalai.initialize` function in `colosalai` to add gradient handler for the engine.
Do not to forget to use `colossalai.initialize` function in `colossalai` to add gradient handler for the engine.
We handle the back-propagation of MoE models for you.
In `colossalai.initialize`, we will automatically create a `MoeGradientHandler` object to process gradients.
You can find more information about the handler `MoeGradientHandler` in colossal directory.

View File

@@ -48,7 +48,7 @@ zero = dict(
</figure>
ColossalAI设计了Gemini就像双子星一样它管理CPU和GPU二者内存空间。它可以让张量在训练过程中动态分布在CPU-GPU的存储空间内从而让模型训练突破GPU的内存墙。内存管理器由两部分组成分别是MemStatsCollector(MSC)和StatefuleTensorMgr(STM)。
ColossalAI设计了Gemini就像双子星一样它管理CPU和GPU二者内存空间。它可以让张量在训练过程中动态分布在CPU-GPU的存储空间内从而让模型训练突破GPU的内存墙。内存管理器由两部分组成分别是MemStatsCollector(MSC)和StatefulTensorMgr(STM)。
我们利用了深度学习网络训练过程的迭代特性。我们将迭代分为warmup和non-warmup两个阶段开始时的一个或若干迭代步属于预热阶段其余的迭代步属于正式阶段。在warmup阶段我们为MSC收集信息而在non-warmup阶段STM入去MSC收集的信息来移动tensor以达到最小化CPU-GPU数据移动volume的目的。
@@ -75,7 +75,7 @@ STM管理所有model data tensor的信息。在模型的构造过程中Coloss
我们在算子的开始和结束计算时,触发内存采样操作,我们称这个时间点为**采样时刻sampling moment)**,两个采样时刻之间的时间我们称为**period**。计算过程是一个黑盒由于可能分配临时buffer内存使用情况很复杂。但是我们可以较准确的获取period的系统最大内存使用。非模型数据的使用可以通过两个统计时刻之间系统最大内存使用-模型内存使用获得。
我们如何设计采样时刻呢。我们选择preOp的model data layout adjust之前。如下图所示。我们采样获得上一个period的system memory used和下一个period的model data memoy used。并行策略会给MSC的工作造成障碍。如图所示比如对于ZeRO或者Tensor Parallel由于Op计算前需要gather模型数据会带来额外的内存需求。因此我们要求在模型数据变化前进行采样系统内存这样在一个period内MSC会把preOp的模型变化内存捕捉。比如在period 2-3内我们考虑的tensor gather和shard带来的内存变化。
我们如何设计采样时刻呢。我们选择preOp的model data layout adjust之前。如下图所示。我们采样获得上一个period的system memory used和下一个period的model data memory used。并行策略会给MSC的工作造成障碍。如图所示比如对于ZeRO或者Tensor Parallel由于Op计算前需要gather模型数据会带来额外的内存需求。因此我们要求在模型数据变化前进行采样系统内存这样在一个period内MSC会把preOp的模型变化内存捕捉。比如在period 2-3内我们考虑的tensor gather和shard带来的内存变化。
尽管可以将采样时刻放在其他位置比如排除gather buffer的变动新信息但是会给造成麻烦。不同并行方式Op的实现有差异比如对于Linear OpTensor Parallel中gather buffer的分配在Op中。而对于ZeROgather buffer的分配是在PreOp中。将放在PreOp开始时采样有利于将两种情况统一。

View File

@@ -52,7 +52,7 @@ export CHECKPOINT_DIR="your_opt_checkpoint_path"
# the ${CONFIG_DIR} must contain a server.sh file as the entry of service
export CONFIG_DIR="config_file_path"
docker run --gpus all --rm -it -p 8020:8020 -v ${CHECKPOINT_DIR}:/model_checkpoint -v ${CONFIG_DIR}:/config --ipc=host energonai:lastest
docker run --gpus all --rm -it -p 8020:8020 -v ${CHECKPOINT_DIR}:/model_checkpoint -v ${CONFIG_DIR}:/config --ipc=host energonai:latest
```
接下来,您就可以在您的浏览器中打开 `https://[IP-ADDRESS]:8020/docs#` 进行测试。

View File

@@ -477,7 +477,7 @@ def build_cifar(batch_size):
return train_dataloader, test_dataloader
# craete dataloaders
# create dataloaders
train_dataloader , test_dataloader = build_cifar()
# create loss function
criterion = CrossEntropyLoss(label_smoothing=0.1)
@@ -492,7 +492,7 @@ lr_scheduler = CosineAnnealingWarmupLR(optimizer=optimizer,
#### 启动 Colossal-AI 引擎
```python
# intiailize
# initialize
engine, train_dataloader, test_dataloader, _ = colossalai.initialize(model=model,
optimizer=optimizer,
criterion=criterion,