From 74826077dad2cb687ede2587e092dcd008946494 Mon Sep 17 00:00:00 2001 From: Daniel Han-Chen Date: Sun, 31 Dec 2023 01:20:04 +1100 Subject: [PATCH] Fix Kaggle issues --- README.md | 17 ++++++++++++----- unsloth/__init__.py | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 69c8ddc67b..47ca0a3187 100644 --- a/README.md +++ b/README.md @@ -11,17 +11,17 @@ | [Free Colab Alpaca dataset example](https://colab.research.google.com/drive/1lBzz5KeZJKXjvivbYvmGarix9Ao6Wxe5?usp=sharing) | [Free Colab Alpaca dataset example](https://colab.research.google.com/drive/1Dyauq4kTZoLewQ1cApceUQVNcnnNTzg_?usp=sharing) | [Colab A100 example](https://colab.research.google.com/drive/1y7A0AxE3y8gdj4AVkl2aZX47Xu3P1wJT?usp=sharing) | [Kaggle Alpaca example](https://www.kaggle.com/danielhanchen/unsloth-alpaca-t4-ddp) | | [Colab A100 example](https://colab.research.google.com/drive/1YIPY_18xm-K0iJDgvNkRoJsgkPMPAO3G?usp=sharing) | [Colab A100 example](https://colab.research.google.com/drive/1SKrKGV-BZoU4kv5q3g0jtE_OhRgPtrrQ?usp=sharing) | (59 more examples if you scroll down) | [Kaggle Slim Orca example](https://www.kaggle.com/danielhanchen/unsloth-slimorca-t4-ddp) | -* Supports Llama, Yi, Mistral, CodeLlama, and their derived models (Open Hermes etc). +* Supports Llama, Yi, Mistral, CodeLlama, Qwen (llamafied), Deepseek and their derived models (Open Hermes etc). * All kernels written in [OpenAI's Triton](https://openai.com/research/triton) language. **Manual backpropagation engine**. * **0% loss in accuracy** - no approximation methods - all exact. * No change of hardware necessary. Supports NVIDIA GPUs since 2018+. Minimum CUDA Compute Capability 7.0 (V100, T4, Titan V, RTX 20, 30, 40x, A100, H100, L40 etc) [Check your GPU](https://developer.nvidia.com/cuda-gpus) * **NEW!** Works on **Linux** and **Windows** via WSL. * **NEW!** Support for [DPO (Direct Preference Optimization)](https://arxiv.org/abs/2305.18290), PPO and Reward Modelling via [TRL](https://huggingface.co/docs/trl/dpo_trainer). -* **NEW!** Download 4 bit models 4x faster directly from Huggingface! +* **NEW!** Download 4 bit models 4x faster from Huggingface! Eg: `unsloth/mistral-7b-bnb-4bit`. * Supports 4bit and 16bit QLoRA / LoRA finetuning via [bitsandbytes](https://github.com/TimDettmers/bitsandbytes). * Open source version trains 5x faster - check out [Unsloth Max](https://unsloth.ai/) for **30x faster training**! -| 1 A100 40GB | Huggingface | Flash Attention | Unsloth Open | Unsloth Equal | Unsloth Pro | Unsloth Max | +| 1 A100 40GB | Hugging Face | Flash Attention | Unsloth Open | Unsloth Equal | Unsloth Pro | Unsloth Max | |--------------|-------------|-------------|-----------------|--------------|---------------|-------------| | Alpaca | 1x | 1.04x | 1.98x | 2.48x | 5.32x | **15.64x** | | LAION Chip2 | 1x | 0.92x | 1.61x | 1.84x | 7.05x | **20.73x** | @@ -88,9 +88,16 @@ max_seq_length = 2048 # Supports RoPE Scaling interally, so choose any! url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl" dataset = load_dataset("json", data_files = {"train" : url}, split = "train") +# 4bit pre quantized models we support - 4x faster downloading! +fourbit_models = [ + "unsloth/mistral-7b-bnb-4bit", + "unsloth/llama-2-7b-bnb-4bit", + "unsloth/llama-2-13b-bnb-4bit", + "unsloth/codellama-34b-bnb-4bit", +] # Load Llama model model, tokenizer = FastLanguageModel.from_pretrained( - model_name = "unsloth/llama-2-7b", # Supports Llama, Mistral - replace this! + model_name = "unsloth/mistral-7b", # Supports Llama, Mistral - replace this! max_seq_length = max_seq_length, dtype = None, load_in_4bit = True, @@ -133,7 +140,7 @@ trainer.train() ``` # DPO (Direct Preference Optimization) Support -DPO, PPO, Reward Modelling all seem to work as per 3rd party independent testing from [Llama-Factory](https://github.com/hiyouga/LLaMA-Factory). +DPO, PPO, Reward Modelling all seem to work as per 3rd party independent testing from [Llama-Factory](https://github.com/hiyouga/LLaMA-Factory). We have a preliminary Google Colab notebook for reproducing Zephyr on 1x A100 here: [notebook](https://colab.research.google.com/drive/15vttTpzzVXv_tJwEk-hIcQ0S9FcEWvwP?usp=sharing). # Future Milestones and limitations 1. Support Mixtral. diff --git a/unsloth/__init__.py b/unsloth/__init__.py index 28c7affe94..879b092330 100644 --- a/unsloth/__init__.py +++ b/unsloth/__init__.py @@ -46,12 +46,12 @@ except: raise ImportError("Pytorch is not installed. Go to https://pytorch.org/.\n"\ "We have some installation instructions on our Github page.") -# We only support torch 2.1 +# We support torch 2.1 and 2.1.1 # Fixes https://github.com/unslothai/unsloth/issues/38 torch_version = torch.__version__.split(".") major_torch, minor_torch = torch_version[0], torch_version[1] major_torch, minor_torch = int(major_torch), int(minor_torch) -if (major_torch != 2) or (major_torch == 2 and minor_torch < 1): +if (major_torch != 2):# or (major_torch == 2 and minor_torch < 1): raise ImportError("Unsloth only supports Pytorch 2.1 for now. Please update your Pytorch to 2.1.\n"\ "We have some installation instructions on our Github page.")