Update _utils.py
This commit is contained in:
parent
56a19d82de
commit
e5b2f577de
1 changed files with 51 additions and 45 deletions
|
|
@ -308,54 +308,60 @@ from transformers.models.llama.modeling_llama import logger
|
|||
|
||||
# =============================================
|
||||
# Get Xformers
|
||||
from xformers import __version__ as xformers_version
|
||||
# Temporarily disable 0.0.27 and higher - inference issues
|
||||
if False: #Version(xformers_version) >= Version("0.0.27"):
|
||||
raise ImportError(
|
||||
"Unsloth: If you are in Colab, we updated the top cell install instructions - please change it to below "\
|
||||
"then press Disconnect Runtime and then Restart it.\n"\
|
||||
"\n"\
|
||||
"%%capture\n"
|
||||
"# Installs Unsloth, Xformers (Flash Attention) and all other packages!\n"
|
||||
'!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"\n'
|
||||
'!pip install --no-deps "xformers<=0.0.27" trl peft accelerate bitsandbytes\n'\
|
||||
'\n'\
|
||||
f"Otherwise in local machines, your xformers version of {xformers_version} is too new.\n"\
|
||||
'Please downgrade xformers via `pip install --force-reinstall "xformers<=0.0.27"'
|
||||
)
|
||||
pass
|
||||
|
||||
if Version(torch_version) < Version("2.2.0") and Version(xformers_version) >= Version("0.0.24"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers < 0.0.24 for torch = {torch_version}."
|
||||
)
|
||||
elif Version(torch_version) < Version("2.3.0") and Version(xformers_version) >= Version("0.0.26"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers < 0.0.26 for torch = {torch_version}."
|
||||
)
|
||||
elif Version(torch_version) < Version("2.4.0") and Version(xformers_version) > Version("0.0.27"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers <= 0.0.27 for torch = {torch_version}."
|
||||
)
|
||||
pass
|
||||
|
||||
from xformers._cpp_lib import _register_extensions
|
||||
try:
|
||||
_register_extensions() # Check if C++ modules are loaded correctly
|
||||
except Exception as error:
|
||||
raise ImportError(
|
||||
"Unsloth: Xformers was not installed correctly.\n"\
|
||||
"Please install xformers separately first.\n"\
|
||||
"Then confirm if it's correctly installed by running:\n"\
|
||||
"python -m xformers.info\n\n"
|
||||
"Longer error message:\n" + str(error)
|
||||
)
|
||||
from xformers import __version__ as xformers_version
|
||||
# Temporarily disable 0.0.27 and higher - inference issues
|
||||
if False: #Version(xformers_version) >= Version("0.0.27"):
|
||||
raise ImportError(
|
||||
"Unsloth: If you are in Colab, we updated the top cell install instructions - please change it to below "\
|
||||
"then press Disconnect Runtime and then Restart it.\n"\
|
||||
"\n"\
|
||||
"%%capture\n"
|
||||
"# Installs Unsloth, Xformers (Flash Attention) and all other packages!\n"
|
||||
'!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"\n'
|
||||
'!pip install --no-deps "xformers<=0.0.27" trl peft accelerate bitsandbytes\n'\
|
||||
'\n'\
|
||||
f"Otherwise in local machines, your xformers version of {xformers_version} is too new.\n"\
|
||||
'Please downgrade xformers via `pip install --force-reinstall "xformers<=0.0.27"'
|
||||
)
|
||||
pass
|
||||
|
||||
if Version(torch_version) < Version("2.2.0") and Version(xformers_version) >= Version("0.0.24"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers < 0.0.24 for torch = {torch_version}."
|
||||
)
|
||||
elif Version(torch_version) < Version("2.3.0") and Version(xformers_version) >= Version("0.0.26"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers < 0.0.26 for torch = {torch_version}."
|
||||
)
|
||||
elif Version(torch_version) < Version("2.4.0") and Version(xformers_version) > Version("0.0.27"):
|
||||
raise ImportError(
|
||||
f"Unsloth: You have torch = {torch_version} but xformers = {xformers_version}.\n"\
|
||||
f"Please install xformers <= 0.0.27 for torch = {torch_version}."
|
||||
)
|
||||
pass
|
||||
|
||||
from xformers._cpp_lib import _register_extensions
|
||||
try:
|
||||
_register_extensions() # Check if C++ modules are loaded correctly
|
||||
except Exception as error:
|
||||
raise ImportError(
|
||||
"Unsloth: Xformers was not installed correctly.\n"\
|
||||
"Please install xformers separately first.\n"\
|
||||
"Then confirm if it's correctly installed by running:\n"\
|
||||
"python -m xformers.info\n\n"
|
||||
"Longer error message:\n" + str(error)
|
||||
)
|
||||
pass
|
||||
import xformers.ops.fmha as xformers
|
||||
xformers_attention = xformers.memory_efficient_attention
|
||||
except:
|
||||
xformers = None
|
||||
xformers_attention = None
|
||||
xformers_version = None
|
||||
pass
|
||||
import xformers.ops.fmha as xformers
|
||||
xformers_attention = xformers.memory_efficient_attention
|
||||
|
||||
# Check TRL version
|
||||
from trl import __version__ as trl_version
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue