Quick patch to scope xformer imports until a better solution
This commit is contained in:
1 parent
2e5f6668dc
commit
b4f64de4c2
2 files changed
+10
-8
No files matched your search
+1
-2
@@ -32,5 +32,4 @@ sentencepiece
|
|||||||
huggingface_hub
|
huggingface_hub
|
||||||
peft
|
peft
|
||||||
gradio
|
gradio
|
||||||
python-slugify
|
python-slugify
|
||||||
xformers
|
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
import math
|
import math
|
||||||
from typing import List, Optional, Tuple, Any, Union
|
from typing import List, Optional, Tuple, Any, Union, TYPE_CHECKING
|
||||||
import os
|
import os
|
||||||
import torch
|
import torch
|
||||||
import torch.nn as nn
|
import torch.nn as nn
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from xformers.ops.fmha.attn_bias import BlockDiagonalMask
|
|
||||||
from xformers.ops.fmha import memory_efficient_attention
|
|
||||||
from huggingface_hub import snapshot_download
|
from huggingface_hub import snapshot_download
|
||||||
from safetensors.torch import load_file
|
from safetensors.torch import load_file
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from xformers.ops.fmha.attn_bias import BlockDiagonalMask
|
||||||
|
|
||||||
|
|
||||||
class RMSNorm(torch.nn.Module):
|
class RMSNorm(torch.nn.Module):
|
||||||
def __init__(self, dim: int, eps: float = 1e-6):
|
def __init__(self, dim: int, eps: float = 1e-6):
|
||||||
@@ -86,8 +87,9 @@ class Attention(nn.Module):
|
|||||||
x: torch.Tensor,
|
x: torch.Tensor,
|
||||||
freqs_cis: torch.Tensor,
|
freqs_cis: torch.Tensor,
|
||||||
cache: Optional[Any] = None,
|
cache: Optional[Any] = None,
|
||||||
mask: Optional[BlockDiagonalMask] = None,
|
mask: Optional['BlockDiagonalMask'] = None,
|
||||||
) -> torch.Tensor:
|
) -> torch.Tensor:
|
||||||
|
from xformers.ops.fmha import memory_efficient_attention
|
||||||
assert mask is None or cache is None
|
assert mask is None or cache is None
|
||||||
seqlen_sum, _ = x.shape
|
seqlen_sum, _ = x.shape
|
||||||
|
|
||||||
@@ -155,7 +157,7 @@ class TransformerBlock(nn.Module):
|
|||||||
x: torch.Tensor,
|
x: torch.Tensor,
|
||||||
freqs_cis: torch.Tensor,
|
freqs_cis: torch.Tensor,
|
||||||
cache: Optional[Any] = None,
|
cache: Optional[Any] = None,
|
||||||
mask: Optional[BlockDiagonalMask] = None,
|
mask: Optional['BlockDiagonalMask'] = None,
|
||||||
) -> torch.Tensor:
|
) -> torch.Tensor:
|
||||||
r = self.attention.forward(self.attention_norm(x), freqs_cis, cache)
|
r = self.attention.forward(self.attention_norm(x), freqs_cis, cache)
|
||||||
h = x + r
|
h = x + r
|
||||||
@@ -317,6 +319,7 @@ class PixtralVisionEncoder(nn.Module):
|
|||||||
self,
|
self,
|
||||||
images: List[torch.Tensor],
|
images: List[torch.Tensor],
|
||||||
) -> torch.Tensor:
|
) -> torch.Tensor:
|
||||||
|
from xformers.ops.fmha.attn_bias import BlockDiagonalMask
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
images: list of N_img images of variable sizes, each of shape (C, H, W)
|
images: list of N_img images of variable sizes, each of shape (C, H, W)
|
||||||
@@ -387,7 +390,7 @@ class VisionTransformerBlocks(nn.Module):
|
|||||||
def forward(
|
def forward(
|
||||||
self,
|
self,
|
||||||
x: torch.Tensor,
|
x: torch.Tensor,
|
||||||
mask: BlockDiagonalMask,
|
mask: 'BlockDiagonalMask',
|
||||||
freqs_cis: Optional[torch.Tensor],
|
freqs_cis: Optional[torch.Tensor],
|
||||||
) -> torch.Tensor:
|
) -> torch.Tensor:
|
||||||
for layer in self.layers:
|
for layer in self.layers:
|
||||||
|
|||||||
Reference in new issue
Block a user