mirror of
https://github.com/hpcaitech/ColossalAI.git
synced 2025-09-01 17:17:05 +00:00
[misc] update pre-commit and run all files (#4752)
* [misc] update pre-commit * [misc] run pre-commit * [misc] remove useless configuration files * [misc] ignore cuda for clang-format
This commit is contained in:
@@ -4,4 +4,4 @@ from .embedding import Embedding, PatchEmbedding
|
||||
from .linear import Classifier, Linear
|
||||
from .normalization import LayerNorm
|
||||
|
||||
__all__ = ['Linear', 'Classifier', 'Embedding', 'PatchEmbedding', 'LayerNorm', 'Dropout', 'partition_batch']
|
||||
__all__ = ["Linear", "Classifier", "Embedding", "PatchEmbedding", "LayerNorm", "Dropout", "partition_batch"]
|
||||
|
@@ -6,7 +6,7 @@ from ..parallel_2p5d._operation import split_batch_2p5d
|
||||
from ..parallel_3d._operation import split_batch_3d
|
||||
from ..utils import get_tensor_parallel_mode
|
||||
|
||||
_parallel_split_batch = {'2d': split_batch_2d, '2.5d': split_batch_2p5d, '3d': split_batch_3d}
|
||||
_parallel_split_batch = {"2d": split_batch_2d, "2.5d": split_batch_2p5d, "3d": split_batch_3d}
|
||||
|
||||
|
||||
def partition_batch(input_) -> Tensor:
|
||||
@@ -21,7 +21,6 @@ def partition_batch(input_) -> Tensor:
|
||||
|
||||
|
||||
class ColossalaiModule(nn.Module):
|
||||
|
||||
def __init__(self, module: nn.Module, **kwargs):
|
||||
super().__init__()
|
||||
self.module = module
|
||||
@@ -29,7 +28,7 @@ class ColossalaiModule(nn.Module):
|
||||
setattr(self, k, v)
|
||||
|
||||
def __getattr__(self, name: str):
|
||||
if name == 'module':
|
||||
if name == "module":
|
||||
return super().__getattr__(name)
|
||||
elif hasattr(self.module, name):
|
||||
return getattr(self.module, name)
|
||||
|
@@ -24,7 +24,7 @@ class Dropout(ColossalaiModule):
|
||||
super().__init__(drop, tensor_parallel=tensor_parallel)
|
||||
|
||||
def forward(self, *args):
|
||||
if self.tensor_parallel in [None, '1d']:
|
||||
if self.tensor_parallel in [None, "1d"]:
|
||||
return super().forward(*args)
|
||||
else:
|
||||
with seed(ParallelMode.TENSOR):
|
||||
|
@@ -15,25 +15,25 @@ from ..vanilla import VanillaPatchEmbedding
|
||||
from ._utils import ColossalaiModule
|
||||
|
||||
_parallel_embedding = {
|
||||
'1d': Embedding1D,
|
||||
'2d': Embedding2D,
|
||||
'2.5d': Embedding2p5D,
|
||||
'3d': Embedding3D,
|
||||
"1d": Embedding1D,
|
||||
"2d": Embedding2D,
|
||||
"2.5d": Embedding2p5D,
|
||||
"3d": Embedding3D,
|
||||
}
|
||||
|
||||
_vocab_parallel_embedding = {
|
||||
'1d': VocabParallelEmbedding1D,
|
||||
'2d': VocabParallelEmbedding2D,
|
||||
'2.5d': VocabParallelEmbedding2p5D,
|
||||
'3d': VocabParallelEmbedding3D
|
||||
"1d": VocabParallelEmbedding1D,
|
||||
"2d": VocabParallelEmbedding2D,
|
||||
"2.5d": VocabParallelEmbedding2p5D,
|
||||
"3d": VocabParallelEmbedding3D,
|
||||
}
|
||||
|
||||
_parallel_patchembedding = {
|
||||
None: VanillaPatchEmbedding,
|
||||
'1d': PatchEmbedding1D,
|
||||
'2d': PatchEmbedding2D,
|
||||
'2.5d': PatchEmbedding2p5D,
|
||||
'3d': PatchEmbedding3D
|
||||
"1d": PatchEmbedding1D,
|
||||
"2d": PatchEmbedding2D,
|
||||
"2.5d": PatchEmbedding2p5D,
|
||||
"3d": PatchEmbedding3D,
|
||||
}
|
||||
|
||||
|
||||
@@ -67,19 +67,24 @@ class Embedding(ColossalaiModule):
|
||||
`init <https://github.com/hpcaitech/ColossalAI/blob/main/colossalai/nn/init.py>`_
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
num_embeddings: int,
|
||||
embedding_dim: int,
|
||||
padding_idx: int = None,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.normal_(),
|
||||
vocab_parallel_limit: int = 2048,
|
||||
*args,
|
||||
**kwargs) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
num_embeddings: int,
|
||||
embedding_dim: int,
|
||||
padding_idx: int = None,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.normal_(),
|
||||
vocab_parallel_limit: int = 2048,
|
||||
*args,
|
||||
**kwargs,
|
||||
) -> None:
|
||||
tensor_parallel = get_tensor_parallel_mode()
|
||||
if tensor_parallel is None:
|
||||
embed = nn.Embedding(num_embeddings, embedding_dim, padding_idx=padding_idx, *args,
|
||||
**kwargs).to(dtype).to(get_current_device())
|
||||
embed = (
|
||||
nn.Embedding(num_embeddings, embedding_dim, padding_idx=padding_idx, *args, **kwargs)
|
||||
.to(dtype)
|
||||
.to(get_current_device())
|
||||
)
|
||||
weight_initializer(embed.weight, fan_in=num_embeddings, fan_out=embedding_dim)
|
||||
elif num_embeddings <= vocab_parallel_limit:
|
||||
embed = _parallel_embedding[tensor_parallel](
|
||||
@@ -135,7 +140,7 @@ class PatchEmbedding(ColossalaiModule):
|
||||
flatten: bool = True,
|
||||
weight_initializer: Callable = init.kaiming_uniform_(a=math.sqrt(5)),
|
||||
bias_initializer: Callable = init.xavier_uniform_(a=1, scale=1),
|
||||
position_embed_initializer: Callable = init.zeros_()
|
||||
position_embed_initializer: Callable = init.zeros_(),
|
||||
) -> None:
|
||||
tensor_parallel = get_tensor_parallel_mode()
|
||||
embed = _parallel_patchembedding[tensor_parallel](
|
||||
|
@@ -5,7 +5,6 @@ from typing import Callable
|
||||
from torch import dtype, nn
|
||||
|
||||
from colossalai.nn import init
|
||||
from colossalai.utils import get_current_device
|
||||
|
||||
from ..parallel_1d import *
|
||||
from ..parallel_2d import *
|
||||
@@ -15,21 +14,21 @@ from ..utils import get_tensor_parallel_mode
|
||||
from ..vanilla import *
|
||||
from ._utils import ColossalaiModule
|
||||
|
||||
_parallel_linear = {None: VanillaLinear, '1d': Linear1D, '2d': Linear2D, '2.5d': Linear2p5D, '3d': Linear3D}
|
||||
_parallel_linear = {None: VanillaLinear, "1d": Linear1D, "2d": Linear2D, "2.5d": Linear2p5D, "3d": Linear3D}
|
||||
|
||||
_parallel_classifier = {
|
||||
None: VanillaClassifier,
|
||||
'1d': Classifier1D,
|
||||
'2d': Classifier2D,
|
||||
'2.5d': Classifier2p5D,
|
||||
'3d': Classifier3D
|
||||
"1d": Classifier1D,
|
||||
"2d": Classifier2D,
|
||||
"2.5d": Classifier2p5D,
|
||||
"3d": Classifier3D,
|
||||
}
|
||||
|
||||
_vocab_parallel_classifier = {
|
||||
'1d': VocabParallelClassifier1D,
|
||||
'2d': VocabParallelClassifier2D,
|
||||
'2.5d': VocabParallelClassifier2p5D,
|
||||
'3d': VocabParallelClassifier3D
|
||||
"1d": VocabParallelClassifier1D,
|
||||
"2d": VocabParallelClassifier2D,
|
||||
"2.5d": VocabParallelClassifier2p5D,
|
||||
"3d": VocabParallelClassifier3D,
|
||||
}
|
||||
|
||||
|
||||
@@ -65,19 +64,21 @@ class Linear(ColossalaiModule):
|
||||
`init <https://github.com/hpcaitech/ColossalAI/blob/main/colossalai/nn/init.py>`_.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
in_features: int,
|
||||
out_features: int,
|
||||
bias: bool = True,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.kaiming_uniform_(a=math.sqrt(5)),
|
||||
bias_initializer: Callable = init.xavier_uniform_(a=1, scale=1),
|
||||
**kwargs) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
in_features: int,
|
||||
out_features: int,
|
||||
bias: bool = True,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.kaiming_uniform_(a=math.sqrt(5)),
|
||||
bias_initializer: Callable = init.xavier_uniform_(a=1, scale=1),
|
||||
**kwargs,
|
||||
) -> None:
|
||||
tensor_parallel = get_tensor_parallel_mode()
|
||||
linear_cls = _parallel_linear[tensor_parallel]
|
||||
gather_output = kwargs.pop('gather_output', None)
|
||||
if 'gather_output' in inspect.signature(linear_cls.__init__).parameters.keys(): # gather_out arg is available
|
||||
kwargs['gather_output'] = gather_output
|
||||
gather_output = kwargs.pop("gather_output", None)
|
||||
if "gather_output" in inspect.signature(linear_cls.__init__).parameters.keys(): # gather_out arg is available
|
||||
kwargs["gather_output"] = gather_output
|
||||
layer = linear_cls(
|
||||
in_features,
|
||||
out_features,
|
||||
@@ -108,15 +109,17 @@ class Classifier(ColossalaiModule):
|
||||
`init <https://github.com/hpcaitech/ColossalAI/blob/main/colossalai/nn/init.py>`_.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
in_features: int,
|
||||
num_classes: int,
|
||||
weight: nn.Parameter = None,
|
||||
bias: bool = True,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.kaiming_uniform_(a=math.sqrt(5)),
|
||||
bias_initializer: Callable = init.xavier_uniform_(a=1, scale=1),
|
||||
vocab_parallel_limit: int = 2048) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
in_features: int,
|
||||
num_classes: int,
|
||||
weight: nn.Parameter = None,
|
||||
bias: bool = True,
|
||||
dtype: dtype = None,
|
||||
weight_initializer: Callable = init.kaiming_uniform_(a=math.sqrt(5)),
|
||||
bias_initializer: Callable = init.xavier_uniform_(a=1, scale=1),
|
||||
vocab_parallel_limit: int = 2048,
|
||||
) -> None:
|
||||
tensor_parallel = get_tensor_parallel_mode()
|
||||
if num_classes <= vocab_parallel_limit or tensor_parallel is None:
|
||||
layer = _parallel_classifier[tensor_parallel](
|
||||
|
Reference in New Issue
Block a user