From 2e5c8430fffa28a1a30bdaf9a0e640f5d93cb1e2 Mon Sep 17 00:00:00 2001 From: Quarto GHA Workflow Runner Date: Wed, 29 Jan 2025 05:11:13 +0000 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- FAQS.html | 6 + TODO.html | 6 + docs/amd_hpc.html | 6 + docs/batch_vs_grad.html | 6 + docs/config.html | 6 + docs/dataset-formats/conversation.html | 6 + docs/dataset-formats/index.html | 18 +- docs/dataset-formats/inst_tune.html | 6 + docs/dataset-formats/pretraining.html | 6 + docs/dataset-formats/stepwise_supervised.html | 6 + docs/dataset-formats/template_free.html | 6 + docs/dataset-formats/tokenized.html | 6 + docs/dataset_preprocessing.html | 6 + docs/debugging.html | 6 + docs/faq.html | 6 + docs/fsdp_qlora.html | 6 + docs/images/ray-cluster-dashboard.png | Bin 0 -> 299281 bytes docs/input_output.html | 6 + docs/lr_groups.html | 6 + docs/mac.html | 6 + docs/multi-node.html | 6 + docs/multimodal.html | 6 + docs/multipack.html | 6 + docs/nccl.html | 6 + docs/ray-integration.html | 836 ++++++++++++++++++ docs/reward_modelling.html | 6 + docs/rlhf.html | 6 + docs/torchao.html | 6 + docs/unsloth.html | 6 + .../colab-axolotl-example.html | 6 + index.html | 6 + search.json | 313 ++++--- sitemap.xml | 132 +-- src/axolotl/integrations/LICENSE.html | 6 + .../cut_cross_entropy/ACKNOWLEDGEMENTS.html | 6 + 36 files changed, 1281 insertions(+), 200 deletions(-) create mode 100644 docs/images/ray-cluster-dashboard.png create mode 100644 docs/ray-integration.html diff --git a/.nojekyll b/.nojekyll index 66c2f2e33..d0f8f3511 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -3f6621ed \ No newline at end of file +36ffb084 \ No newline at end of file diff --git a/FAQS.html b/FAQS.html index 616640792..c852cda19 100644 --- a/FAQS.html +++ b/FAQS.html @@ -181,6 +181,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/TODO.html b/TODO.html index 83b76b3f6..f800a8985 100644 --- a/TODO.html +++ b/TODO.html @@ -181,6 +181,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/amd_hpc.html b/docs/amd_hpc.html index 4a14f3a9d..02812a9cc 100644 --- a/docs/amd_hpc.html +++ b/docs/amd_hpc.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/batch_vs_grad.html b/docs/batch_vs_grad.html index c479e7201..5d0436512 100644 --- a/docs/batch_vs_grad.html +++ b/docs/batch_vs_grad.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/config.html b/docs/config.html index 2e66a2c80..0a5f2029c 100644 --- a/docs/config.html +++ b/docs/config.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/conversation.html b/docs/dataset-formats/conversation.html index e7754df51..9ed8389a4 100644 --- a/docs/dataset-formats/conversation.html +++ b/docs/dataset-formats/conversation.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/index.html b/docs/dataset-formats/index.html index 42f3ffd5b..b8c00207d 100644 --- a/docs/dataset-formats/index.html +++ b/docs/dataset-formats/index.html @@ -242,6 +242,12 @@ window.Quarto = { Training with AMD GPUs on HPC Systems + + @@ -369,7 +375,7 @@ Description - + Pre-training @@ -377,7 +383,7 @@ Description Data format for a pre-training completion task. - + Instruction Tuning @@ -385,7 +391,7 @@ Description Instruction tuning formats for supervised fine-tuning. - + Conversation @@ -393,7 +399,7 @@ Description Conversation format for supervised fine-tuning. - + Stepwise Supervised Format @@ -401,7 +407,7 @@ Description Format for datasets with stepwise completions and labels - + Template-Free @@ -409,7 +415,7 @@ Description Construct prompts without a template. - + Custom Pre-Tokenized Dataset diff --git a/docs/dataset-formats/inst_tune.html b/docs/dataset-formats/inst_tune.html index 7552abda8..6bb1ddaec 100644 --- a/docs/dataset-formats/inst_tune.html +++ b/docs/dataset-formats/inst_tune.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/pretraining.html b/docs/dataset-formats/pretraining.html index 85a03915a..42fd5c786 100644 --- a/docs/dataset-formats/pretraining.html +++ b/docs/dataset-formats/pretraining.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/stepwise_supervised.html b/docs/dataset-formats/stepwise_supervised.html index a3fa20c28..13798ca35 100644 --- a/docs/dataset-formats/stepwise_supervised.html +++ b/docs/dataset-formats/stepwise_supervised.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/template_free.html b/docs/dataset-formats/template_free.html index 28a3f0bd8..398c3fd5e 100644 --- a/docs/dataset-formats/template_free.html +++ b/docs/dataset-formats/template_free.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset-formats/tokenized.html b/docs/dataset-formats/tokenized.html index aee0578ea..e73f94f4f 100644 --- a/docs/dataset-formats/tokenized.html +++ b/docs/dataset-formats/tokenized.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/dataset_preprocessing.html b/docs/dataset_preprocessing.html index 9488f4616..30da72e02 100644 --- a/docs/dataset_preprocessing.html +++ b/docs/dataset_preprocessing.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/debugging.html b/docs/debugging.html index 27e08979a..9e7b765e2 100644 --- a/docs/debugging.html +++ b/docs/debugging.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/faq.html b/docs/faq.html index fee0770c3..77e1ccfc2 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/fsdp_qlora.html b/docs/fsdp_qlora.html index 5efe81c74..682ad75bd 100644 --- a/docs/fsdp_qlora.html +++ b/docs/fsdp_qlora.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/images/ray-cluster-dashboard.png b/docs/images/ray-cluster-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b4beb56498e7024e60763172f72f42754f5096 GIT binary patch literal 299281 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

X4H@xrcW>s}km$lWvv>M*&g%?! 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 code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + +

diff --git a/docs/lr_groups.html b/docs/lr_groups.html index 06c3e104e..d4443b360 100644 --- a/docs/lr_groups.html +++ b/docs/lr_groups.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/mac.html b/docs/mac.html index b3ffd3f11..133ac4865 100644 --- a/docs/mac.html +++ b/docs/mac.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/multi-node.html b/docs/multi-node.html index a373ea3f8..ca798e0f9 100644 --- a/docs/multi-node.html +++ b/docs/multi-node.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/multimodal.html b/docs/multimodal.html index 78338600b..168b1d1ee 100644 --- a/docs/multimodal.html +++ b/docs/multimodal.html @@ -215,6 +215,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/multipack.html b/docs/multipack.html index 0464065fb..13321d835 100644 --- a/docs/multipack.html +++ b/docs/multipack.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/nccl.html b/docs/nccl.html index 2a31d4dff..cbbffdaaf 100644 --- a/docs/nccl.html +++ b/docs/nccl.html @@ -182,6 +182,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/docs/ray-integration.html b/docs/ray-integration.html new file mode 100644 index 000000000..0fc3560f0 --- /dev/null +++ b/docs/ray-integration.html @@ -0,0 +1,836 @@ + + + + + + + + + + +Ray Train integration – Axolotl + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Ray Train integration

+
+ +
+
+ How to use Axolotl with Ray Train +
+
+ + +
+ + + + +
+ + + +
+ + +

Axolotl supports using Ray as an alternative to accelerate for orchestrating training. This is especially useful for multi-node training since you only have to setup code and dependencies in a single node and launch training as if you were using a single node.

+

With the --use-ray CLI flag, Axolotl will use Ray Train’s TorchTrainer to run training.

+
+

Ray cluster setup

+

A prerequisite using the Ray Train integration is to setup a Ray cluster on your desired node(s). For a detailed guide on how you can get started with ray clusters, check the official Ray docs here: https://docs.ray.io/en/latest/cluster/getting-started.html

+

Every Ray cluster has one head node and a set of worker nodes. The head node is just like any other worker node, but it also runs certain special processes related to scheduling and orchestration. Ray-enabled scripts are run on the head node and depending on the resources (number of CPUs, GPUs, etc) they request, will be scheduled to run certain tasks on the worker nodes. For more on key concepts behind a Ray cluster, you can refer this doc.

+
+
+

Sanity check

+

To run a sanity check on whether your ray cluster is setup properly, execute the following on the head node:

+
ray status
+

The output should have a summary of your Ray cluster - list of all the nodes in your cluster, the number of CPUs and GPUs in your cluster, etc. For example, if you have a cluster with 1 CPU-only head node and 2 4xL40S worker nodes, the output can look like this:

+
Node status
+---------------------------------------------------------------
+Active:
+ 1 head
+Idle:
+ 2 4xL40S:48CPU-384GB
+Pending:
+ (no pending nodes)
+Recent failures:
+ (no failures)
+
+Resources
+---------------------------------------------------------------
+Usage:
+ 0.0/96.0 CPU
+ 0.0/8.0 GPU
+ 0B/800.00GiB memory
+ 0B/229.57GiB object_store_memory
+
+Demands:
+ (no resource demands)
+

You should also be able to see the same on the Ray dashboard.

+
+
+

Configuring training with Ray Train

+

You can find an example configuration at configs/llama-3/lora-1b-ray.yaml.

+

The key parameters to note here are:

+
...
+use_ray: true
+ray_num_workers: 4
+# optional
+resources_per_worker:
+    GPU: 1
+...
+
    +
  • use_ray: This is the flag that enables the Ray Train integration. You can either use the corresponding --use-ray flag in the CLI or set use_ray in the config file.
  • +
  • ray_num_workers: This is the number of workers/GPUs to use for training.
  • +
  • resources_per_worker: This is the Ray resource request for each worker. This can be used to request a specific GPU type or a custom resource for each worker. For example, if your ray cluster has GPUs of different types, and you only want to use NVIDIA L40S GPUs, you can do
  • +
+
resources_per_worker:
+    accelerator_type:L40S: 0.001
+
+
+

Launching training

+

You can simply run the following command on the head node:

+
axolotl train examples/llama-3/lora-1b-ray.yml --use-ray
+

This will launch training on the head node and workers will be scheduled automatically by Ray Train to run on the appropriate head or worker nodes.

+

You can also monitor training progress on the Ray dashboard.

+

Coming back to the example on a Ray cluster with 1 head node and 2 4xL40S worker nodes, let’s say you want to make use of all 8 GPUs. You would be able to just set ray_num_workers: 8 and run the previous command. The Cluster tab will show the following:

+
+
+

+
Ray dashboard
+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/docs/reward_modelling.html b/docs/reward_modelling.html index 106ee2d6b..2c61d755a 100644 --- a/docs/reward_modelling.html +++ b/docs/reward_modelling.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/rlhf.html b/docs/rlhf.html index 990e6f39c..044c420e1 100644 --- a/docs/rlhf.html +++ b/docs/rlhf.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/torchao.html b/docs/torchao.html index 1743ccd43..263951685 100644 --- a/docs/torchao.html +++ b/docs/torchao.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/docs/unsloth.html b/docs/unsloth.html index 2c159e144..e0da9bf6b 100644 --- a/docs/unsloth.html +++ b/docs/unsloth.html @@ -216,6 +216,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/examples/colab-notebooks/colab-axolotl-example.html b/examples/colab-notebooks/colab-axolotl-example.html index b8d0b260c..3db956fdd 100644 --- a/examples/colab-notebooks/colab-axolotl-example.html +++ b/examples/colab-notebooks/colab-axolotl-example.html @@ -244,6 +244,12 @@ window.Quarto = { Training with AMD GPUs on HPC Systems + + diff --git a/index.html b/index.html index b2dffcfa3..466e3a232 100644 --- a/index.html +++ b/index.html @@ -215,6 +215,12 @@ pre > code.sourceCode > span > a:first-child::before { text-decoration: underlin Training with AMD GPUs on HPC Systems + + diff --git a/search.json b/search.json index f68132eb2..078fa9f38 100644 --- a/search.json +++ b/search.json @@ -196,125 +196,37 @@ ] }, { - "objectID": "docs/faq.html", - "href": "docs/faq.html", - "title": "FAQ", + "objectID": "docs/dataset_preprocessing.html", + "href": "docs/dataset_preprocessing.html", + "title": "Dataset Preprocessing", "section": "", - "text": "Q: The trainer stopped and hasn’t progressed in several minutes.\n\nA: Usually an issue with the GPUs communicating with each other. See the NCCL doc\n\nQ: Exitcode -9\n\nA: This usually happens when you run out of system RAM.\n\nQ: Exitcode -7 while using deepspeed\n\nA: Try upgrading deepspeed w: pip install -U deepspeed\n\nQ: AttributeError: ‘DummyOptim’ object has no attribute ‘step’\n\nA: You may be using deepspeed with single gpu. Please don’t set deepspeed: in yaml or cli.", - "crumbs": [ - "FAQ" - ] + "text": "Dataset pre-processing is the step where Axolotl takes each dataset you’ve configured alongside the (dataset format)[../dataset-formats/] and prompt strategies to: - parse the dataset based on the dataset format - transform the dataset to how you would interact with the model based on the prompt strategy - tokenize the dataset based on the configured model & tokenizer - shuffle and merge multiple datasets together if using more than one\nThe processing of the datasets can happen one of two ways:\n\nBefore kicking off training by calling python -m axolotl.cli.preprocess /path/to/your.yaml --debug\nWhen training is started\n\nWhat are the benefits of pre-processing? When training interactively or for sweeps (e.g. you are restarting the trainer often), processing the datasets can oftentimes be frustratingly slow. Pre-processing will cache the tokenized/formatted datasets according to a hash of dependent training parameters so that it will intelligently pull from its cache when possible.\nThe path of the cache is controlled by dataset_prepared_path: and is often left blank in example YAMLs as this leads to a more robust solution that prevents unexpectedly reusing cached data.\nIf dataset_prepared_path: is left empty, when training, the processed dataset will be cached in a default path of ./last_run_prepared/, but will ignore anything already cached there. By explicitly setting dataset_prepared_path: ./last_run_prepared, the trainer will use whatever pre-processed data is in the cache.\nWhat are the edge cases? Let’s say you are writing a custom prompt strategy or using a user-defined prompt template. Because the trainer cannot readily detect these changes, we cannot change the calculated hash value for the pre-processed dataset. If you have dataset_prepared_path: ... set and change your prompt templating logic, it may not pick up the changes you made and you will be training over the old prompt." }, { - "objectID": "docs/multi-node.html", - "href": "docs/multi-node.html", - "title": "Multi Node", + "objectID": "docs/batch_vs_grad.html", + "href": "docs/batch_vs_grad.html", + "title": "Batch size vs Gradient accumulation", "section": "", - "text": "You will need to create a configuration for accelerate, either by using accelerate config and follow the instructions or you can use one of the preset below:\n~/.cache/huggingface/accelerate/default_config.yaml\nConfigure your model to use FSDP with for example:", + "text": "Gradient accumulation means accumulating gradients over several mini-batches and updating the model weights afterward. When the samples in each batch are diverse, this technique doesn’t significantly impact learning.\nThis method allows for effective training with larger effective batch sizes without needing proportionally larger memory. Here’s why:\n\nMemory Consumption with Batch Size: The primary reason increasing the batch size impacts memory is due to the storage requirements for intermediate activations. When you forward propagate a batch through a network, you have to store the activations at each layer for each sample in the batch, because these activations are used during backpropagation to compute gradients. Therefore, larger batches mean more activations, leading to greater GPU memory consumption.\nGradient Accumulation: With gradient accumulation, you’re effectively simulating a larger batch size by accumulating gradients over several smaller batches (or micro-batches). However, at any given time, you’re only forward and backward propagating a micro-batch. This means you only store activations for the micro-batch, not the full accumulated batch. As a result, you can simulate the effect of a larger batch size without the memory cost of storing activations for a large batch.\n\nExample 1: Micro batch size: 3 Gradient accumulation steps: 2 Number of GPUs: 3 Total batch size = 3 * 2 * 3 = 18\n| GPU 1 | GPU 2 | GPU 3 |\n|----------------|----------------|----------------|\n| S1, S2, S3 | S4, S5, S6 | S7, S8, S9 |\n| e1, e2, e3 | e4, e5, e6 | e7, e8, e9 |\n|----------------|----------------|----------------|\n| → (accumulate) | → (accumulate) | → (accumulate) |\n|----------------|----------------|----------------|\n| S10, S11, S12 | S13, S14, S15 | S16, S17, S18 |\n| e10, e11, e12 | e13, e14, e15 | e16, e17, e18 |\n|----------------|----------------|----------------|\n| → (apply) | → (apply) | → (apply) |\n\nAccumulated gradient for the weight w1 after the second iteration (considering all GPUs):\nTotal gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6 + e7 + e8 + e9 + e10 + e11 + e12 + e13 + e14 + e15 + e16 + e17 + e18\n\nWeight update for w1:\nw1_new = w1_old - learning rate x (Total gradient for w1 / 18)\nExample 2: Micro batch size: 2 Gradient accumulation steps: 1 Number of GPUs: 3 Total batch size = 2 * 1 * 3 = 6\n| GPU 1 | GPU 2 | GPU 3 |\n|-----------|-----------|-----------|\n| S1, S2 | S3, S4 | S5, S6 |\n| e1, e2 | e3, e4 | e5, e6 |\n|-----------|-----------|-----------|\n| → (apply) | → (apply) | → (apply) |\n\nAccumulated gradient for the weight w1 (considering all GPUs):\nTotal gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6\n\nWeight update for w1:\nw1_new = w1_old - learning rate × (Total gradient for w1 / 6)" + }, + { + "objectID": "docs/multimodal.html", + "href": "docs/multimodal.html", + "title": "MultiModal / Vision Language Models (BETA)", + "section": "", + "text": "MultiModal / Vision Language Models (BETA)\n\nSupported Models\n\nMllama, i.e. llama with vision models\n\n\n\nUsage\nCurrently multimodal support is limited and doesn’t have full feature parity. To finetune a multimodal Llama w/ LoRA, you’ll need to use the following in YAML in combination with the rest of the required hyperparams.\nbase_model: alpindale/Llama-3.2-11B-Vision-Instruct\nprocessor_type: AutoProcessor\nskip_prepare_dataset: true\n\nchat_template: llama3_2_vision\ndatasets:\n - path: HuggingFaceH4/llava-instruct-mix-vsft\n type: chat_template\n split: train[:1%]\n field_messages: messages\nremove_unused_columns: false\nsample_packing: false\n\n# only finetune the Language model, leave the vision model and vision tower frozen\nlora_target_modules: 'language_model.model.layers.[\\d]+.(mlp|cross_attn|self_attn).(up|down|gate|q|k|v|o)_proj'" + }, + { + "objectID": "docs/mac.html", + "href": "docs/mac.html", + "title": "Mac M-series", + "section": "", + "text": "Currently Axolotl on Mac is partially usable, many of the dependencies of Axolotl including Pytorch do not support MPS or have incomplete support.\nCurrent support:\n\nSupport for all models\nFull training of models\nLoRA training\nSample packing\nFP16 and BF16 (awaiting AMP support for MPS in Pytorch)\nTri-dao’s flash-attn (until it is supported use spd_attention as an alternative)\nxformers\nbitsandbytes (meaning no 4/8 bits loading and bnb optimizers)\nqlora\nDeepSpeed\n\nUntested: - FSDP", "crumbs": [ "How-To Guides", - "Multi Node" + "Mac M-series" ] }, - { - "objectID": "docs/multi-node.html#machine-configuration", - "href": "docs/multi-node.html#machine-configuration", - "title": "Multi Node", - "section": "Machine configuration", - "text": "Machine configuration\nOn each machine you need a copy of Axolotl, we suggest using the same commit to ensure compatibility.\nYou will also need to have the same configuration file for your model on each machine.\nOn the main machine only, make sure the port you set as main_process_port is open in TCP and reachable by other machines.\nAll you have to do now is launch using accelerate as you would usually do on each machine and voila, the processes will start once you have launched accelerate on every machine.", - "crumbs": [ - "How-To Guides", - "Multi Node" - ] - }, - { - "objectID": "docs/unsloth.html", - "href": "docs/unsloth.html", - "title": "Unsloth", - "section": "", - "text": "Overview\nUnsloth provides hand-written optimized kernels for LLM finetuning that slightly improve speed and VRAM over standard industry baselines.\n\n\nInstallation\nThe following will install the correct unsloth and extras from source.\npython scripts/unsloth_install.py | sh\n\n\nUsing unsloth w Axolotl\nAxolotl exposes a few configuration options to try out unsloth and get most of the performance gains.\nOur unsloth integration is currently limited to the following model architectures: - llama\nThese options are specific to LoRA finetuning and cannot be used for multi-GPU finetuning\nunsloth_lora_mlp: true\nunsloth_lora_qkv: true\nunsloth_lora_o: true\nThese options are composable and can be used with multi-gpu finetuning\nunsloth_cross_entropy_loss: true\nunsloth_rms_norm: true\nunsloth_rope: true\n\n\nLimitations\n\nSingle GPU only; e.g. no multi-gpu support\nNo deepspeed or FSDP support (requires multi-gpu)\nLoRA + QLoRA support only. No full fine tunes or fp8 support.\nLimited model architecture support. Llama, Phi, Gemma, Mistral only\nNo MoE support.", - "crumbs": [ - "How-To Guides", - "Unsloth" - ] - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html", - "href": "examples/colab-notebooks/colab-axolotl-example.html", - "title": "Setting up", - "section": "", - "text": "import torch\n# Check so there is a gpu available, a T4(free tier) is enough to run this notebook\nassert (torch.cuda.is_available()==True)\n!pip install --no-build-isolation axolotl[deepspeed]" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#hugging-face-login-optional", - "href": "examples/colab-notebooks/colab-axolotl-example.html#hugging-face-login-optional", - "title": "Setting up", - "section": "Hugging Face login (optional)", - "text": "Hugging Face login (optional)\n\nfrom huggingface_hub import notebook_login\nnotebook_login()" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#example-configuration", - "href": "examples/colab-notebooks/colab-axolotl-example.html#example-configuration", - "title": "Setting up", - "section": "Example configuration", - "text": "Example configuration\n\nimport yaml\n\nyaml_string = \"\"\"\nbase_model: NousResearch/Meta-Llama-3.1-8B\n\nload_in_8bit: false\nload_in_4bit: true\nstrict: false\n\ndatasets:\n - path: tatsu-lab/alpaca\n type: alpaca\ndataset_prepared_path: last_run_prepared\nval_set_size: 0.05\noutput_dir: ./outputs/lora-out\n\nsequence_len: 2048\nsample_packing: true\neval_sample_packing: true\npad_to_sequence_len: true\n\nadapter: qlora\nlora_model_dir:\nlora_r: 32\nlora_alpha: 16\nlora_dropout: 0.05\nlora_target_linear: true\nlora_fan_in_fan_out:\nlora_modules_to_save:\n - embed_tokens\n - lm_head\n\nwandb_project:\nwandb_entity:\nwandb_watch:\nwandb_name:\nwandb_log_model:\n\ngradient_accumulation_steps: 2\nmicro_batch_size: 1\nnum_epochs: 1\noptimizer: paged_adamw_8bit\nlr_scheduler: cosine\nlearning_rate: 2e-5\n\ntrain_on_inputs: false\ngroup_by_length: false\nbf16: auto\nfp16:\ntf32: false\n\ngradient_checkpointing: true\nearly_stopping_patience:\nresume_from_checkpoint:\nlogging_steps: 1\nxformers_attention:\nflash_attention: false\nsdp_attention: true\n\nwarmup_steps: 1\nmax_steps: 25\nevals_per_epoch: 1\neval_table_size:\nsaves_per_epoch: 1\ndebug:\ndeepspeed:\nweight_decay: 0.0\nfsdp:\nfsdp_config:\nspecial_tokens:\n pad_token: <|end_of_text|>\n\"\"\"\n\n\n# Convert the YAML string to a Python dictionary\nyaml_dict = yaml.safe_load(yaml_string)\n\n# Specify your file path\nfile_path = 'test_axolotl.yaml'\n\n# Write the YAML file\nwith open(file_path, 'w') as file:\n yaml.dump(yaml_dict, file)\n\nAbove we have a configuration file with base LLM model and datasets specified, among many other things. Axolotl can automatically detect whether the specified datasets are on HuggingFace repo or local machine.\nThe Axolotl configuration options encompass model and dataset selection, data pre-processing, and training. Let’s go through them line by line:\n\n“base model”: String value, specifies the underlying pre-trained LLM that will be used for finetuning\n\nNext we have options for model weights quantization. Quantization allows for reduction in occupied memory on GPUs.\n\n“load_in_8bit”: Boolean value, whether to quantize the model weights into 8-bit integer.\n“load_in_4bit”: Boolean value, whether to quantize the model weights into 4-bit integer.\n“strict”: Boolean value. If false, it allows for overriding established configuration options in the yaml file when executing in command-line interface.\n“datasets”: a list of dicts that contain path and type of data sets as well as other optional configurations where datasets are concerned. Supports multiple datasets.\n“val_set_size”: Either a float value less than one or an integer less than the total size of dataset. Sets the size of validation set from the whole dataset. If float, sets the proportion of the dataset assigned for validation. If integer, sets the direct size of validation set.\n“output_dir”: String value. Path of trained model.\n\nFor data preprocessing:\n\n“sequence_len”: Integer. Specifies the maximum sequence length of the input. Typically 2048 or less.\n“pad_to_sequence_len”: Boolean. Padding input to maximum sequence length.\n“sample_packing”: Boolean. Specifies whether to use multi-packing with block diagonal attention.\n“special_tokens”: Python dict, optional. Allows users to specify the additional special tokens to be ignored by the tokenizer.\n\nFor LoRA configuration and its hyperparamters:\n\n“adapter”: String. Either “lora” or “qlora”, depending on user’s choice.\n“lora_model_dir”: String, Optional. Path to directory that contains LoRA model, if there is already a trained LoRA model the user would like to use.\n“lora_r”: Integer. Refers to the rank of LoRA decomposition matrices. Higher value will reduce LoRA efficiency. Recommended to be set to 8.\n“lora_alpha”: Integer. Scale the weight matrices by \\(\\frac{\\text{lora_alpha}}{\\text{lora_r}}\\)Recommended to be fixed at 16.\n“lora_dropout”: Float that is 1 or less. The dropout probability of a lora layer.\n“lora_target_linear”: Boolean. If true, lora will target all linear modules in the transformers architecture.\n“lora_modules_to_save”: If you added new tokens to the tokenizer, you may need to save some LoRA modules because they need to know the new tokens.\n\nSee LoRA for detailed explanation of LoRA implementation.\nFor the training configurations:\n\n“gradient_accumulation_steps”: Integer. The number of steps over which to accumulate gradient for batch training. E.g. if 2, backprop is performed every two steps.\n“micro_batch_size”: Integer. Batch size per gpu / gradient_accumulation_steps\n“num_epochs”: Integer. Number of epochs. One epoch is when training has looped over every batch in the whole data set once.\n“optimizer”: The optimizer to use for the training.\n“learning_rate”: The learning rate.\n“lr_scheduler”: The learning rate scheduler to use for adjusting learning rate during training.\n“train_on_inputs”: Boolean. Whether to ignore or include the user’s prompt from the training labels.\n“group_by_length”: Boolean. Whether to group similarly sized data to minimize padding.\n“bf16”: Either “auto”, “true”, or “false”. Whether to use CUDA bf16 floating point format. If set to “auto”, will automatically apply bf16 should the gpu supports it.\n“fp16”: Optional. Specifies whether to use CUDA fp16. Automatically set to true if “bf16” is set to true. Otherwise false.\n“tf32”: Boolean. Whether to use CUDA tf32. Will override bf16.\n“gradient_checkpointing”: Boolean. Whether to use gradient checkpointing https://huggingface.co/docs/transformers/v4.18.0/en/performance#gradient-checkpointing\n“gradient_checkpointing_kwargs”: Python Dict. Fed into the trainer.\n“logging_steps”: Integer. Log training information over every specified number of steps.\n“flash_attention”: Boolean. Whether to use the flash attention mechanism.\n“sdp_attention”: Boolean. Whether to use the Scaled Dot Product attention mechanism (the attention mechanism in the original implementation of transformers.)\n“warmup_steps”: Integer. The number of pre-training steps where a very low learning rate is used.\n“evals_per_epoch”: Integer. Number of evaluations to be performed within one training epoch.\n“saves_per_epoch”: Integer. Number of times the model is saved in one training epoch.\n“weight_decay”: Positive Float. Sets the “strength” of weight decay (i.e. setting the coefficient of L2 regularization)\n\nThe above is but a snippet aiming to get users familiarized with the types of streamlined configuration options axolotl provides. For a full list of configuration options, see here\nTrain the model\n\n!accelerate launch -m axolotl.cli.train /content/test_axolotl.yaml\n\nPredict with trained model\n\n!accelerate launch -m axolotl.cli.inference /content/test_axolotl.yaml \\\n --lora_model_dir=\"./outputs/lora-out\" --gradio" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#deeper-dive", - "href": "examples/colab-notebooks/colab-axolotl-example.html#deeper-dive", - "title": "Setting up", - "section": "Deeper Dive", - "text": "Deeper Dive\nIt is also helpful to gain some familiarity over some of the core inner workings of axolotl" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#configuration-normalization", - "href": "examples/colab-notebooks/colab-axolotl-example.html#configuration-normalization", - "title": "Setting up", - "section": "Configuration Normalization", - "text": "Configuration Normalization\nAxolotl uses a custom Dict class, called DictDefault to store configurations specified in the yaml configuration file (into a Python variable named cfg). The definition for this custom Dict can be found in the utils/dict.py\nDictDefault is amended such that calling a missing key from it will result in a None return type. This is important because if some configuration options aren’t specified by the user, the None type allows Axolotl to perform boolean operations to determine the default settings for missing configurations. For more examples on how this is done, check out utils/config/init.py" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#loading-models-tokenizers-and-trainer", - "href": "examples/colab-notebooks/colab-axolotl-example.html#loading-models-tokenizers-and-trainer", - "title": "Setting up", - "section": "Loading Models, Tokenizers, and Trainer", - "text": "Loading Models, Tokenizers, and Trainer\nIf we inspect cli.train.py, we will find that most of the heavy lifting were done by the function train() which is itself imported from src/axolotl/train.py.\ntrain() takes care of loading the appropriate tokenizer and pre-trained model through load_model() and load_tokenizer() from src/axolotl/utils/models.py respectively.\nload_tokenizer() loads in the appropriate tokenizer given the desired model, as well as chat templates.\nModelLoader class follows after tokenizer has been selected. It will automatically discern the base model type, load in the desired model, as well as applying model-appropriate attention mechanism modifications (e.g. flash attention). Depending on which base model the user chooses in the configuration, ModelLoader will utilize the corresponding “attention hijacking” script. For example, if the user specified the base model to be NousResearch/Meta-Llama-3.1-8B, which is of llama type, and set flash_attn to True, ModelLoader will load in llama_attn_hijack_flash.py. For a list of supported attention hijacking, please refer to the directory /src/axolotl/monkeypatch/\nAnother important operation encompassed in train() is setting up the training that takes into account of user-specified traning configurations (e.g. num_epochs, optimizer) through the use of setup_trainer() from /src/axolotl/utils/trainer.py, which in turn relies on modules from /src/axolotl/core/trainer_builder.py. trainer_builder.py provides a list of trainer object options bespoke for the task type (Causal or Reinforcement learning (‘dpo’, ‘ipo’, ‘kto’) )" - }, - { - "objectID": "examples/colab-notebooks/colab-axolotl-example.html#monkey-patch", - "href": "examples/colab-notebooks/colab-axolotl-example.html#monkey-patch", - "title": "Setting up", - "section": "Monkey patch", - "text": "Monkey patch\nThe Monkey patch directory is where model architecture/optimization patching scripts are stored (these are modifications that are not implemented in the official releases, hence the name monkey patch). It includes attention jacking, ReLoRA, and unsloth optimization." - }, - { - "objectID": "TODO.html", - "href": "TODO.html", - "title": "todo list", - "section": "", - "text": "[] Validation of parameters for combinations that won’t work\n\n\n\n\nFSDP offload and gradient_checkpointing - https://github.com/pytorch/pytorch/issues/82203\nadamw_bnb_8bit doesn’t play well with FSDP offload" - }, - { - "objectID": "TODO.html#things-that-are-known-not-to-work", - "href": "TODO.html#things-that-are-known-not-to-work", - "title": "todo list", - "section": "", - "text": "FSDP offload and gradient_checkpointing - https://github.com/pytorch/pytorch/issues/82203\nadamw_bnb_8bit doesn’t play well with FSDP offload" - }, - { - "objectID": "src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html", - "href": "src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html", - "title": "Axolotl", - "section": "", - "text": "Acknowledgements\nPortions of this Cut Cross Entropy Software may utilize the following copyrighted material, the use of which is hereby acknowledged.\n\nPyTorch\nFrom PyTorch:\n\nCopyright (c) 2016- Facebook, Inc (Adam Paszke)\nCopyright (c) 2014- Facebook, Inc (Soumith Chintala)\nCopyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)\nCopyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)\nCopyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)\nCopyright (c) 2011-2013 NYU (Clement Farabet)\nCopyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston)\nCopyright (c) 2006 Idiap Research Institute (Samy Bengio)\nCopyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz)\n\nFrom Caffe2:\n\nCopyright (c) 2016-present, Facebook Inc. All rights reserved.\n\nAll contributions by Facebook:\nCopyright (c) 2016 Facebook Inc.\n\nAll contributions by Google:\nCopyright (c) 2015 Google Inc.\nAll rights reserved.\n\nAll contributions by Yangqing Jia:\nCopyright (c) 2015 Yangqing Jia\nAll rights reserved.\n\nAll contributions by Kakao Brain:\nCopyright 2019-2020 Kakao Brain\n\nAll contributions by Cruise LLC:\nCopyright (c) 2022 Cruise LLC.\nAll rights reserved.\n\nAll contributions by Arm:\nCopyright (c) 2021, 2023-2024 Arm Limited and/or its affiliates\n\nAll contributions from Caffe:\nCopyright(c) 2013, 2014, 2015, the respective contributors\nAll rights reserved.\n\nAll other contributions:\nCopyright(c) 2015, 2016 the respective contributors\nAll rights reserved.\n\nCaffe2 uses a copyright model similar to Caffe: each contributor holds\ncopyright over their contributions to Caffe2. The project versioning records\nall such contribution and copyright details. If a contributor wants to further\nmark their specific copyright on a particular contribution, they should\nindicate their copyright solely in the commit message of the change when it is\ncommitted.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\n3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories America\nand IDIAP Research Institute nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\nTriton\n/*\n* Copyright 2018-2020 Philippe Tillet\n* Copyright 2020-2022 OpenAI\n*\n* Permission is hereby granted, free of charge, to any person obtaining\n* a copy of this software and associated documentation files\n* (the \"Software\"), to deal in the Software without restriction,\n* including without limitation the rights to use, copy, modify, merge,\n* publish, distribute, sublicense, and/or sell copies of the Software,\n* and to permit persons to whom the Software is furnished to do so,\n* subject to the following conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nTransformers\nCopyright 2018- The Hugging Face team. All rights reserved.\n\n Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\nCopyright [yyyy] [name of copyright owner]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License." - }, - { - "objectID": "src/axolotl/integrations/LICENSE.html", - "href": "src/axolotl/integrations/LICENSE.html", - "title": "Axolotl", - "section": "", - "text": "AXOLOTL COMMUNITY LICENSE AGREEMENT\nThis Axolotl Community License Agreement (“Agreement”) is entered into by and between Axolotl AI Corp. (“Axolotl”) and any individual or entity (“Licensee”) who wishes to use the Software (as defined below) in accordance with the terms and conditions set forth in this Agreement.\n\nDefinitions 1.1 “Licensee” refers to any individual or entity who has obtained a copy of the Software under this Agreement. 1.2 “Plugin Integration” means independent integration software modules which may or may not be offered by Axolotl, which may be licensed separately by their respective authors and/or licensors. 1.3 “Software” refers to the specific sub-directory of the Axolotl, Inc. software located at https://github.com/axolotl-ai-cloud/axolotl/tree/main/src/axolotl/integrations and its subdirectories which permits Plugin Integrations to integrate with the Axolotl service.\nGrant of License 2.1 Axolotl hereby grants Licensee a worldwide, non-exclusive, royalty-free, license to use, copy, modify, merge, publish, distribute, sublicense, and/or otherwise exploit the Software, subject to the following conditions: - Licensee must comply with all the terms and conditions of this Agreement. - Licensee must include the original copyright notice and disclaimer of warranty in all copies or substantial portions of the Software. 2.2 Licensee may use the Software for any lawful purpose, except as restricted in Section 3.\nRestrictions 3.1 Licensee shall not use the Software for any activity that constitutes a commercial activity of offering for free or for sale any services, platform, or equivalent to third parties for the purposes of allowing such third parties to fine-tune artificial intelligence models. 3.2 Licensee shall not: - Use the Software for any illegal or unauthorized purpose. - Reverse engineer, decompile, or disassemble the Software. - Remove or modify any copyright, trademark, or other proprietary notices contained in the Software. - Use the Software in a way that could damage, disable, overburden, or impair the functionality of the Software or interfere with any third-party use of the Software. 3.3 Axolotl reserves the right to restrict certain Plugin Integrations for use with the Software. To the extent Licensee integrates a permitted, applicable Plugin Integration with the Software, Licensee shall comply with any additional terms and conditions imposed by the licensors of such Plugin Integration for use of such Plugin Integrations. Licensee shall contact Axolotl if it has questions about whether its use of the Software falls beyond the scope of this Agreement.\nIntellectual Property Rights 4.1 Axolotl and its contributors retain all intellectual property rights in and to the Software. Licensee acknowledges that this Agreement does not transfer any ownership rights or intellectual property rights to Licensee.\nDisclaimer of Warranty 5.1 THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nTermination 6.1 Axolotl may terminate this Agreement at any time if Licensee fails to comply with any of the terms and conditions set forth herein. Upon termination, Licensee shall cease all use of the Software and destroy any copies in its possession.\nGoverning Law 7.1 This Agreement shall be governed by and construed in accordance with the laws of the State of California, without regards to conflicts of laws provisions thereof.\nEntire Agreement 8.1 This Agreement constitutes the entire agreement between Axolotl and Licensee with respect to the subject matter hereof and supersedes all prior or contemporaneous understandings or agreements between the parties concerning the Software, whether written or oral. Axolotl may update the terms of this Agreement from time to time, and Licensee’s continued use of the Software after any such updates shall constitute acceptance of updated terms on a go-forward basis. Axolotl will use commercially reasonable efforts to provide Licensee notice of any material updates. By using the Software, Licensee acknowledges that it has read, understood, and agrees to be bound by the terms and conditions of this Agreement.\n\nThis Agreement was last updated on August 23, 2024." - }, { "objectID": "index.html", "href": "index.html", @@ -416,36 +328,179 @@ ] }, { - "objectID": "docs/mac.html", - "href": "docs/mac.html", - "title": "Mac M-series", + "objectID": "src/axolotl/integrations/LICENSE.html", + "href": "src/axolotl/integrations/LICENSE.html", + "title": "Axolotl", "section": "", - "text": "Currently Axolotl on Mac is partially usable, many of the dependencies of Axolotl including Pytorch do not support MPS or have incomplete support.\nCurrent support:\n\nSupport for all models\nFull training of models\nLoRA training\nSample packing\nFP16 and BF16 (awaiting AMP support for MPS in Pytorch)\nTri-dao’s flash-attn (until it is supported use spd_attention as an alternative)\nxformers\nbitsandbytes (meaning no 4/8 bits loading and bnb optimizers)\nqlora\nDeepSpeed\n\nUntested: - FSDP", + "text": "AXOLOTL COMMUNITY LICENSE AGREEMENT\nThis Axolotl Community License Agreement (“Agreement”) is entered into by and between Axolotl AI Corp. (“Axolotl”) and any individual or entity (“Licensee”) who wishes to use the Software (as defined below) in accordance with the terms and conditions set forth in this Agreement.\n\nDefinitions 1.1 “Licensee” refers to any individual or entity who has obtained a copy of the Software under this Agreement. 1.2 “Plugin Integration” means independent integration software modules which may or may not be offered by Axolotl, which may be licensed separately by their respective authors and/or licensors. 1.3 “Software” refers to the specific sub-directory of the Axolotl, Inc. software located at https://github.com/axolotl-ai-cloud/axolotl/tree/main/src/axolotl/integrations and its subdirectories which permits Plugin Integrations to integrate with the Axolotl service.\nGrant of License 2.1 Axolotl hereby grants Licensee a worldwide, non-exclusive, royalty-free, license to use, copy, modify, merge, publish, distribute, sublicense, and/or otherwise exploit the Software, subject to the following conditions: - Licensee must comply with all the terms and conditions of this Agreement. - Licensee must include the original copyright notice and disclaimer of warranty in all copies or substantial portions of the Software. 2.2 Licensee may use the Software for any lawful purpose, except as restricted in Section 3.\nRestrictions 3.1 Licensee shall not use the Software for any activity that constitutes a commercial activity of offering for free or for sale any services, platform, or equivalent to third parties for the purposes of allowing such third parties to fine-tune artificial intelligence models. 3.2 Licensee shall not: - Use the Software for any illegal or unauthorized purpose. - Reverse engineer, decompile, or disassemble the Software. - Remove or modify any copyright, trademark, or other proprietary notices contained in the Software. - Use the Software in a way that could damage, disable, overburden, or impair the functionality of the Software or interfere with any third-party use of the Software. 3.3 Axolotl reserves the right to restrict certain Plugin Integrations for use with the Software. To the extent Licensee integrates a permitted, applicable Plugin Integration with the Software, Licensee shall comply with any additional terms and conditions imposed by the licensors of such Plugin Integration for use of such Plugin Integrations. Licensee shall contact Axolotl if it has questions about whether its use of the Software falls beyond the scope of this Agreement.\nIntellectual Property Rights 4.1 Axolotl and its contributors retain all intellectual property rights in and to the Software. Licensee acknowledges that this Agreement does not transfer any ownership rights or intellectual property rights to Licensee.\nDisclaimer of Warranty 5.1 THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nTermination 6.1 Axolotl may terminate this Agreement at any time if Licensee fails to comply with any of the terms and conditions set forth herein. Upon termination, Licensee shall cease all use of the Software and destroy any copies in its possession.\nGoverning Law 7.1 This Agreement shall be governed by and construed in accordance with the laws of the State of California, without regards to conflicts of laws provisions thereof.\nEntire Agreement 8.1 This Agreement constitutes the entire agreement between Axolotl and Licensee with respect to the subject matter hereof and supersedes all prior or contemporaneous understandings or agreements between the parties concerning the Software, whether written or oral. Axolotl may update the terms of this Agreement from time to time, and Licensee’s continued use of the Software after any such updates shall constitute acceptance of updated terms on a go-forward basis. Axolotl will use commercially reasonable efforts to provide Licensee notice of any material updates. By using the Software, Licensee acknowledges that it has read, understood, and agrees to be bound by the terms and conditions of this Agreement.\n\nThis Agreement was last updated on August 23, 2024." + }, + { + "objectID": "src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html", + "href": "src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html", + "title": "Axolotl", + "section": "", + "text": "Acknowledgements\nPortions of this Cut Cross Entropy Software may utilize the following copyrighted material, the use of which is hereby acknowledged.\n\nPyTorch\nFrom PyTorch:\n\nCopyright (c) 2016- Facebook, Inc (Adam Paszke)\nCopyright (c) 2014- Facebook, Inc (Soumith Chintala)\nCopyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)\nCopyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)\nCopyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)\nCopyright (c) 2011-2013 NYU (Clement Farabet)\nCopyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston)\nCopyright (c) 2006 Idiap Research Institute (Samy Bengio)\nCopyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz)\n\nFrom Caffe2:\n\nCopyright (c) 2016-present, Facebook Inc. All rights reserved.\n\nAll contributions by Facebook:\nCopyright (c) 2016 Facebook Inc.\n\nAll contributions by Google:\nCopyright (c) 2015 Google Inc.\nAll rights reserved.\n\nAll contributions by Yangqing Jia:\nCopyright (c) 2015 Yangqing Jia\nAll rights reserved.\n\nAll contributions by Kakao Brain:\nCopyright 2019-2020 Kakao Brain\n\nAll contributions by Cruise LLC:\nCopyright (c) 2022 Cruise LLC.\nAll rights reserved.\n\nAll contributions by Arm:\nCopyright (c) 2021, 2023-2024 Arm Limited and/or its affiliates\n\nAll contributions from Caffe:\nCopyright(c) 2013, 2014, 2015, the respective contributors\nAll rights reserved.\n\nAll other contributions:\nCopyright(c) 2015, 2016 the respective contributors\nAll rights reserved.\n\nCaffe2 uses a copyright model similar to Caffe: each contributor holds\ncopyright over their contributions to Caffe2. The project versioning records\nall such contribution and copyright details. If a contributor wants to further\nmark their specific copyright on a particular contribution, they should\nindicate their copyright solely in the commit message of the change when it is\ncommitted.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\n3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories America\nand IDIAP Research Institute nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\nTriton\n/*\n* Copyright 2018-2020 Philippe Tillet\n* Copyright 2020-2022 OpenAI\n*\n* Permission is hereby granted, free of charge, to any person obtaining\n* a copy of this software and associated documentation files\n* (the \"Software\"), to deal in the Software without restriction,\n* including without limitation the rights to use, copy, modify, merge,\n* publish, distribute, sublicense, and/or sell copies of the Software,\n* and to permit persons to whom the Software is furnished to do so,\n* subject to the following conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nTransformers\nCopyright 2018- The Hugging Face team. All rights reserved.\n\n Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\nCopyright [yyyy] [name of copyright owner]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License." + }, + { + "objectID": "TODO.html", + "href": "TODO.html", + "title": "todo list", + "section": "", + "text": "[] Validation of parameters for combinations that won’t work\n\n\n\n\nFSDP offload and gradient_checkpointing - https://github.com/pytorch/pytorch/issues/82203\nadamw_bnb_8bit doesn’t play well with FSDP offload" + }, + { + "objectID": "TODO.html#things-that-are-known-not-to-work", + "href": "TODO.html#things-that-are-known-not-to-work", + "title": "todo list", + "section": "", + "text": "FSDP offload and gradient_checkpointing - https://github.com/pytorch/pytorch/issues/82203\nadamw_bnb_8bit doesn’t play well with FSDP offload" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html", + "href": "examples/colab-notebooks/colab-axolotl-example.html", + "title": "Setting up", + "section": "", + "text": "import torch\n# Check so there is a gpu available, a T4(free tier) is enough to run this notebook\nassert (torch.cuda.is_available()==True)\n!pip install --no-build-isolation axolotl[deepspeed]" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#hugging-face-login-optional", + "href": "examples/colab-notebooks/colab-axolotl-example.html#hugging-face-login-optional", + "title": "Setting up", + "section": "Hugging Face login (optional)", + "text": "Hugging Face login (optional)\n\nfrom huggingface_hub import notebook_login\nnotebook_login()" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#example-configuration", + "href": "examples/colab-notebooks/colab-axolotl-example.html#example-configuration", + "title": "Setting up", + "section": "Example configuration", + "text": "Example configuration\n\nimport yaml\n\nyaml_string = \"\"\"\nbase_model: NousResearch/Meta-Llama-3.1-8B\n\nload_in_8bit: false\nload_in_4bit: true\nstrict: false\n\ndatasets:\n - path: tatsu-lab/alpaca\n type: alpaca\ndataset_prepared_path: last_run_prepared\nval_set_size: 0.05\noutput_dir: ./outputs/lora-out\n\nsequence_len: 2048\nsample_packing: true\neval_sample_packing: true\npad_to_sequence_len: true\n\nadapter: qlora\nlora_model_dir:\nlora_r: 32\nlora_alpha: 16\nlora_dropout: 0.05\nlora_target_linear: true\nlora_fan_in_fan_out:\nlora_modules_to_save:\n - embed_tokens\n - lm_head\n\nwandb_project:\nwandb_entity:\nwandb_watch:\nwandb_name:\nwandb_log_model:\n\ngradient_accumulation_steps: 2\nmicro_batch_size: 1\nnum_epochs: 1\noptimizer: paged_adamw_8bit\nlr_scheduler: cosine\nlearning_rate: 2e-5\n\ntrain_on_inputs: false\ngroup_by_length: false\nbf16: auto\nfp16:\ntf32: false\n\ngradient_checkpointing: true\nearly_stopping_patience:\nresume_from_checkpoint:\nlogging_steps: 1\nxformers_attention:\nflash_attention: false\nsdp_attention: true\n\nwarmup_steps: 1\nmax_steps: 25\nevals_per_epoch: 1\neval_table_size:\nsaves_per_epoch: 1\ndebug:\ndeepspeed:\nweight_decay: 0.0\nfsdp:\nfsdp_config:\nspecial_tokens:\n pad_token: <|end_of_text|>\n\"\"\"\n\n\n# Convert the YAML string to a Python dictionary\nyaml_dict = yaml.safe_load(yaml_string)\n\n# Specify your file path\nfile_path = 'test_axolotl.yaml'\n\n# Write the YAML file\nwith open(file_path, 'w') as file:\n yaml.dump(yaml_dict, file)\n\nAbove we have a configuration file with base LLM model and datasets specified, among many other things. Axolotl can automatically detect whether the specified datasets are on HuggingFace repo or local machine.\nThe Axolotl configuration options encompass model and dataset selection, data pre-processing, and training. Let’s go through them line by line:\n\n“base model”: String value, specifies the underlying pre-trained LLM that will be used for finetuning\n\nNext we have options for model weights quantization. Quantization allows for reduction in occupied memory on GPUs.\n\n“load_in_8bit”: Boolean value, whether to quantize the model weights into 8-bit integer.\n“load_in_4bit”: Boolean value, whether to quantize the model weights into 4-bit integer.\n“strict”: Boolean value. If false, it allows for overriding established configuration options in the yaml file when executing in command-line interface.\n“datasets”: a list of dicts that contain path and type of data sets as well as other optional configurations where datasets are concerned. Supports multiple datasets.\n“val_set_size”: Either a float value less than one or an integer less than the total size of dataset. Sets the size of validation set from the whole dataset. If float, sets the proportion of the dataset assigned for validation. If integer, sets the direct size of validation set.\n“output_dir”: String value. Path of trained model.\n\nFor data preprocessing:\n\n“sequence_len”: Integer. Specifies the maximum sequence length of the input. Typically 2048 or less.\n“pad_to_sequence_len”: Boolean. Padding input to maximum sequence length.\n“sample_packing”: Boolean. Specifies whether to use multi-packing with block diagonal attention.\n“special_tokens”: Python dict, optional. Allows users to specify the additional special tokens to be ignored by the tokenizer.\n\nFor LoRA configuration and its hyperparamters:\n\n“adapter”: String. Either “lora” or “qlora”, depending on user’s choice.\n“lora_model_dir”: String, Optional. Path to directory that contains LoRA model, if there is already a trained LoRA model the user would like to use.\n“lora_r”: Integer. Refers to the rank of LoRA decomposition matrices. Higher value will reduce LoRA efficiency. Recommended to be set to 8.\n“lora_alpha”: Integer. Scale the weight matrices by \\(\\frac{\\text{lora_alpha}}{\\text{lora_r}}\\)Recommended to be fixed at 16.\n“lora_dropout”: Float that is 1 or less. The dropout probability of a lora layer.\n“lora_target_linear”: Boolean. If true, lora will target all linear modules in the transformers architecture.\n“lora_modules_to_save”: If you added new tokens to the tokenizer, you may need to save some LoRA modules because they need to know the new tokens.\n\nSee LoRA for detailed explanation of LoRA implementation.\nFor the training configurations:\n\n“gradient_accumulation_steps”: Integer. The number of steps over which to accumulate gradient for batch training. E.g. if 2, backprop is performed every two steps.\n“micro_batch_size”: Integer. Batch size per gpu / gradient_accumulation_steps\n“num_epochs”: Integer. Number of epochs. One epoch is when training has looped over every batch in the whole data set once.\n“optimizer”: The optimizer to use for the training.\n“learning_rate”: The learning rate.\n“lr_scheduler”: The learning rate scheduler to use for adjusting learning rate during training.\n“train_on_inputs”: Boolean. Whether to ignore or include the user’s prompt from the training labels.\n“group_by_length”: Boolean. Whether to group similarly sized data to minimize padding.\n“bf16”: Either “auto”, “true”, or “false”. Whether to use CUDA bf16 floating point format. If set to “auto”, will automatically apply bf16 should the gpu supports it.\n“fp16”: Optional. Specifies whether to use CUDA fp16. Automatically set to true if “bf16” is set to true. Otherwise false.\n“tf32”: Boolean. Whether to use CUDA tf32. Will override bf16.\n“gradient_checkpointing”: Boolean. Whether to use gradient checkpointing https://huggingface.co/docs/transformers/v4.18.0/en/performance#gradient-checkpointing\n“gradient_checkpointing_kwargs”: Python Dict. Fed into the trainer.\n“logging_steps”: Integer. Log training information over every specified number of steps.\n“flash_attention”: Boolean. Whether to use the flash attention mechanism.\n“sdp_attention”: Boolean. Whether to use the Scaled Dot Product attention mechanism (the attention mechanism in the original implementation of transformers.)\n“warmup_steps”: Integer. The number of pre-training steps where a very low learning rate is used.\n“evals_per_epoch”: Integer. Number of evaluations to be performed within one training epoch.\n“saves_per_epoch”: Integer. Number of times the model is saved in one training epoch.\n“weight_decay”: Positive Float. Sets the “strength” of weight decay (i.e. setting the coefficient of L2 regularization)\n\nThe above is but a snippet aiming to get users familiarized with the types of streamlined configuration options axolotl provides. For a full list of configuration options, see here\nTrain the model\n\n!accelerate launch -m axolotl.cli.train /content/test_axolotl.yaml\n\nPredict with trained model\n\n!accelerate launch -m axolotl.cli.inference /content/test_axolotl.yaml \\\n --lora_model_dir=\"./outputs/lora-out\" --gradio" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#deeper-dive", + "href": "examples/colab-notebooks/colab-axolotl-example.html#deeper-dive", + "title": "Setting up", + "section": "Deeper Dive", + "text": "Deeper Dive\nIt is also helpful to gain some familiarity over some of the core inner workings of axolotl" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#configuration-normalization", + "href": "examples/colab-notebooks/colab-axolotl-example.html#configuration-normalization", + "title": "Setting up", + "section": "Configuration Normalization", + "text": "Configuration Normalization\nAxolotl uses a custom Dict class, called DictDefault to store configurations specified in the yaml configuration file (into a Python variable named cfg). The definition for this custom Dict can be found in the utils/dict.py\nDictDefault is amended such that calling a missing key from it will result in a None return type. This is important because if some configuration options aren’t specified by the user, the None type allows Axolotl to perform boolean operations to determine the default settings for missing configurations. For more examples on how this is done, check out utils/config/init.py" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#loading-models-tokenizers-and-trainer", + "href": "examples/colab-notebooks/colab-axolotl-example.html#loading-models-tokenizers-and-trainer", + "title": "Setting up", + "section": "Loading Models, Tokenizers, and Trainer", + "text": "Loading Models, Tokenizers, and Trainer\nIf we inspect cli.train.py, we will find that most of the heavy lifting were done by the function train() which is itself imported from src/axolotl/train.py.\ntrain() takes care of loading the appropriate tokenizer and pre-trained model through load_model() and load_tokenizer() from src/axolotl/utils/models.py respectively.\nload_tokenizer() loads in the appropriate tokenizer given the desired model, as well as chat templates.\nModelLoader class follows after tokenizer has been selected. It will automatically discern the base model type, load in the desired model, as well as applying model-appropriate attention mechanism modifications (e.g. flash attention). Depending on which base model the user chooses in the configuration, ModelLoader will utilize the corresponding “attention hijacking” script. For example, if the user specified the base model to be NousResearch/Meta-Llama-3.1-8B, which is of llama type, and set flash_attn to True, ModelLoader will load in llama_attn_hijack_flash.py. For a list of supported attention hijacking, please refer to the directory /src/axolotl/monkeypatch/\nAnother important operation encompassed in train() is setting up the training that takes into account of user-specified traning configurations (e.g. num_epochs, optimizer) through the use of setup_trainer() from /src/axolotl/utils/trainer.py, which in turn relies on modules from /src/axolotl/core/trainer_builder.py. trainer_builder.py provides a list of trainer object options bespoke for the task type (Causal or Reinforcement learning (‘dpo’, ‘ipo’, ‘kto’) )" + }, + { + "objectID": "examples/colab-notebooks/colab-axolotl-example.html#monkey-patch", + "href": "examples/colab-notebooks/colab-axolotl-example.html#monkey-patch", + "title": "Setting up", + "section": "Monkey patch", + "text": "Monkey patch\nThe Monkey patch directory is where model architecture/optimization patching scripts are stored (these are modifications that are not implemented in the official releases, hence the name monkey patch). It includes attention jacking, ReLoRA, and unsloth optimization." + }, + { + "objectID": "docs/unsloth.html", + "href": "docs/unsloth.html", + "title": "Unsloth", + "section": "", + "text": "Overview\nUnsloth provides hand-written optimized kernels for LLM finetuning that slightly improve speed and VRAM over standard industry baselines.\n\n\nInstallation\nThe following will install the correct unsloth and extras from source.\npython scripts/unsloth_install.py | sh\n\n\nUsing unsloth w Axolotl\nAxolotl exposes a few configuration options to try out unsloth and get most of the performance gains.\nOur unsloth integration is currently limited to the following model architectures: - llama\nThese options are specific to LoRA finetuning and cannot be used for multi-GPU finetuning\nunsloth_lora_mlp: true\nunsloth_lora_qkv: true\nunsloth_lora_o: true\nThese options are composable and can be used with multi-gpu finetuning\nunsloth_cross_entropy_loss: true\nunsloth_rms_norm: true\nunsloth_rope: true\n\n\nLimitations\n\nSingle GPU only; e.g. no multi-gpu support\nNo deepspeed or FSDP support (requires multi-gpu)\nLoRA + QLoRA support only. No full fine tunes or fp8 support.\nLimited model architecture support. Llama, Phi, Gemma, Mistral only\nNo MoE support.", "crumbs": [ "How-To Guides", - "Mac M-series" + "Unsloth" ] }, { - "objectID": "docs/multimodal.html", - "href": "docs/multimodal.html", - "title": "MultiModal / Vision Language Models (BETA)", + "objectID": "docs/multi-node.html", + "href": "docs/multi-node.html", + "title": "Multi Node", "section": "", - "text": "MultiModal / Vision Language Models (BETA)\n\nSupported Models\n\nMllama, i.e. llama with vision models\n\n\n\nUsage\nCurrently multimodal support is limited and doesn’t have full feature parity. To finetune a multimodal Llama w/ LoRA, you’ll need to use the following in YAML in combination with the rest of the required hyperparams.\nbase_model: alpindale/Llama-3.2-11B-Vision-Instruct\nprocessor_type: AutoProcessor\nskip_prepare_dataset: true\n\nchat_template: llama3_2_vision\ndatasets:\n - path: HuggingFaceH4/llava-instruct-mix-vsft\n type: chat_template\n split: train[:1%]\n field_messages: messages\nremove_unused_columns: false\nsample_packing: false\n\n# only finetune the Language model, leave the vision model and vision tower frozen\nlora_target_modules: 'language_model.model.layers.[\\d]+.(mlp|cross_attn|self_attn).(up|down|gate|q|k|v|o)_proj'" + "text": "You will need to create a configuration for accelerate, either by using accelerate config and follow the instructions or you can use one of the preset below:\n~/.cache/huggingface/accelerate/default_config.yaml\nConfigure your model to use FSDP with for example:", + "crumbs": [ + "How-To Guides", + "Multi Node" + ] }, { - "objectID": "docs/batch_vs_grad.html", - "href": "docs/batch_vs_grad.html", - "title": "Batch size vs Gradient accumulation", - "section": "", - "text": "Gradient accumulation means accumulating gradients over several mini-batches and updating the model weights afterward. When the samples in each batch are diverse, this technique doesn’t significantly impact learning.\nThis method allows for effective training with larger effective batch sizes without needing proportionally larger memory. Here’s why:\n\nMemory Consumption with Batch Size: The primary reason increasing the batch size impacts memory is due to the storage requirements for intermediate activations. When you forward propagate a batch through a network, you have to store the activations at each layer for each sample in the batch, because these activations are used during backpropagation to compute gradients. Therefore, larger batches mean more activations, leading to greater GPU memory consumption.\nGradient Accumulation: With gradient accumulation, you’re effectively simulating a larger batch size by accumulating gradients over several smaller batches (or micro-batches). However, at any given time, you’re only forward and backward propagating a micro-batch. This means you only store activations for the micro-batch, not the full accumulated batch. As a result, you can simulate the effect of a larger batch size without the memory cost of storing activations for a large batch.\n\nExample 1: Micro batch size: 3 Gradient accumulation steps: 2 Number of GPUs: 3 Total batch size = 3 * 2 * 3 = 18\n| GPU 1 | GPU 2 | GPU 3 |\n|----------------|----------------|----------------|\n| S1, S2, S3 | S4, S5, S6 | S7, S8, S9 |\n| e1, e2, e3 | e4, e5, e6 | e7, e8, e9 |\n|----------------|----------------|----------------|\n| → (accumulate) | → (accumulate) | → (accumulate) |\n|----------------|----------------|----------------|\n| S10, S11, S12 | S13, S14, S15 | S16, S17, S18 |\n| e10, e11, e12 | e13, e14, e15 | e16, e17, e18 |\n|----------------|----------------|----------------|\n| → (apply) | → (apply) | → (apply) |\n\nAccumulated gradient for the weight w1 after the second iteration (considering all GPUs):\nTotal gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6 + e7 + e8 + e9 + e10 + e11 + e12 + e13 + e14 + e15 + e16 + e17 + e18\n\nWeight update for w1:\nw1_new = w1_old - learning rate x (Total gradient for w1 / 18)\nExample 2: Micro batch size: 2 Gradient accumulation steps: 1 Number of GPUs: 3 Total batch size = 2 * 1 * 3 = 6\n| GPU 1 | GPU 2 | GPU 3 |\n|-----------|-----------|-----------|\n| S1, S2 | S3, S4 | S5, S6 |\n| e1, e2 | e3, e4 | e5, e6 |\n|-----------|-----------|-----------|\n| → (apply) | → (apply) | → (apply) |\n\nAccumulated gradient for the weight w1 (considering all GPUs):\nTotal gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6\n\nWeight update for w1:\nw1_new = w1_old - learning rate × (Total gradient for w1 / 6)" + "objectID": "docs/multi-node.html#machine-configuration", + "href": "docs/multi-node.html#machine-configuration", + "title": "Multi Node", + "section": "Machine configuration", + "text": "Machine configuration\nOn each machine you need a copy of Axolotl, we suggest using the same commit to ensure compatibility.\nYou will also need to have the same configuration file for your model on each machine.\nOn the main machine only, make sure the port you set as main_process_port is open in TCP and reachable by other machines.\nAll you have to do now is launch using accelerate as you would usually do on each machine and voila, the processes will start once you have launched accelerate on every machine.", + "crumbs": [ + "How-To Guides", + "Multi Node" + ] }, { - "objectID": "docs/dataset_preprocessing.html", - "href": "docs/dataset_preprocessing.html", - "title": "Dataset Preprocessing", + "objectID": "docs/faq.html", + "href": "docs/faq.html", + "title": "FAQ", "section": "", - "text": "Dataset pre-processing is the step where Axolotl takes each dataset you’ve configured alongside the (dataset format)[../dataset-formats/] and prompt strategies to: - parse the dataset based on the dataset format - transform the dataset to how you would interact with the model based on the prompt strategy - tokenize the dataset based on the configured model & tokenizer - shuffle and merge multiple datasets together if using more than one\nThe processing of the datasets can happen one of two ways:\n\nBefore kicking off training by calling python -m axolotl.cli.preprocess /path/to/your.yaml --debug\nWhen training is started\n\nWhat are the benefits of pre-processing? When training interactively or for sweeps (e.g. you are restarting the trainer often), processing the datasets can oftentimes be frustratingly slow. Pre-processing will cache the tokenized/formatted datasets according to a hash of dependent training parameters so that it will intelligently pull from its cache when possible.\nThe path of the cache is controlled by dataset_prepared_path: and is often left blank in example YAMLs as this leads to a more robust solution that prevents unexpectedly reusing cached data.\nIf dataset_prepared_path: is left empty, when training, the processed dataset will be cached in a default path of ./last_run_prepared/, but will ignore anything already cached there. By explicitly setting dataset_prepared_path: ./last_run_prepared, the trainer will use whatever pre-processed data is in the cache.\nWhat are the edge cases? Let’s say you are writing a custom prompt strategy or using a user-defined prompt template. Because the trainer cannot readily detect these changes, we cannot change the calculated hash value for the pre-processed dataset. If you have dataset_prepared_path: ... set and change your prompt templating logic, it may not pick up the changes you made and you will be training over the old prompt." + "text": "Q: The trainer stopped and hasn’t progressed in several minutes.\n\nA: Usually an issue with the GPUs communicating with each other. See the NCCL doc\n\nQ: Exitcode -9\n\nA: This usually happens when you run out of system RAM.\n\nQ: Exitcode -7 while using deepspeed\n\nA: Try upgrading deepspeed w: pip install -U deepspeed\n\nQ: AttributeError: ‘DummyOptim’ object has no attribute ‘step’\n\nA: You may be using deepspeed with single gpu. Please don’t set deepspeed: in yaml or cli.", + "crumbs": [ + "FAQ" + ] + }, + { + "objectID": "docs/ray-integration.html", + "href": "docs/ray-integration.html", + "title": "Ray Train integration", + "section": "", + "text": "Axolotl supports using Ray as an alternative to accelerate for orchestrating training. This is especially useful for multi-node training since you only have to setup code and dependencies in a single node and launch training as if you were using a single node.\nWith the --use-ray CLI flag, Axolotl will use Ray Train’s TorchTrainer to run training.", + "crumbs": [ + "How-To Guides", + "Ray Train integration" + ] + }, + { + "objectID": "docs/ray-integration.html#ray-cluster-setup", + "href": "docs/ray-integration.html#ray-cluster-setup", + "title": "Ray Train integration", + "section": "Ray cluster setup", + "text": "Ray cluster setup\nA prerequisite using the Ray Train integration is to setup a Ray cluster on your desired node(s). For a detailed guide on how you can get started with ray clusters, check the official Ray docs here: https://docs.ray.io/en/latest/cluster/getting-started.html\nEvery Ray cluster has one head node and a set of worker nodes. The head node is just like any other worker node, but it also runs certain special processes related to scheduling and orchestration. Ray-enabled scripts are run on the head node and depending on the resources (number of CPUs, GPUs, etc) they request, will be scheduled to run certain tasks on the worker nodes. For more on key concepts behind a Ray cluster, you can refer this doc.", + "crumbs": [ + "How-To Guides", + "Ray Train integration" + ] + }, + { + "objectID": "docs/ray-integration.html#sanity-check", + "href": "docs/ray-integration.html#sanity-check", + "title": "Ray Train integration", + "section": "Sanity check", + "text": "Sanity check\nTo run a sanity check on whether your ray cluster is setup properly, execute the following on the head node:\nray status\nThe output should have a summary of your Ray cluster - list of all the nodes in your cluster, the number of CPUs and GPUs in your cluster, etc. For example, if you have a cluster with 1 CPU-only head node and 2 4xL40S worker nodes, the output can look like this:\nNode status\n---------------------------------------------------------------\nActive:\n 1 head\nIdle:\n 2 4xL40S:48CPU-384GB\nPending:\n (no pending nodes)\nRecent failures:\n (no failures)\n\nResources\n---------------------------------------------------------------\nUsage:\n 0.0/96.0 CPU\n 0.0/8.0 GPU\n 0B/800.00GiB memory\n 0B/229.57GiB object_store_memory\n\nDemands:\n (no resource demands)\nYou should also be able to see the same on the Ray dashboard.", + "crumbs": [ + "How-To Guides", + "Ray Train integration" + ] + }, + { + "objectID": "docs/ray-integration.html#configuring-training-with-ray-train", + "href": "docs/ray-integration.html#configuring-training-with-ray-train", + "title": "Ray Train integration", + "section": "Configuring training with Ray Train", + "text": "Configuring training with Ray Train\nYou can find an example configuration at configs/llama-3/lora-1b-ray.yaml.\nThe key parameters to note here are:\n...\nuse_ray: true\nray_num_workers: 4\n# optional\nresources_per_worker:\n GPU: 1\n...\n\nuse_ray: This is the flag that enables the Ray Train integration. You can either use the corresponding --use-ray flag in the CLI or set use_ray in the config file.\nray_num_workers: This is the number of workers/GPUs to use for training.\nresources_per_worker: This is the Ray resource request for each worker. This can be used to request a specific GPU type or a custom resource for each worker. For example, if your ray cluster has GPUs of different types, and you only want to use NVIDIA L40S GPUs, you can do\n\nresources_per_worker:\n accelerator_type:L40S: 0.001", + "crumbs": [ + "How-To Guides", + "Ray Train integration" + ] + }, + { + "objectID": "docs/ray-integration.html#launching-training", + "href": "docs/ray-integration.html#launching-training", + "title": "Ray Train integration", + "section": "Launching training", + "text": "Launching training\nYou can simply run the following command on the head node:\naxolotl train examples/llama-3/lora-1b-ray.yml --use-ray\nThis will launch training on the head node and workers will be scheduled automatically by Ray Train to run on the appropriate head or worker nodes.\nYou can also monitor training progress on the Ray dashboard.\nComing back to the example on a Ray cluster with 1 head node and 2 4xL40S worker nodes, let’s say you want to make use of all 8 GPUs. You would be able to just set ray_num_workers: 8 and run the previous command. The Cluster tab will show the following:\n\n\n\nRay dashboard", + "crumbs": [ + "How-To Guides", + "Ray Train integration" + ] }, { "objectID": "docs/fsdp_qlora.html", diff --git a/sitemap.xml b/sitemap.xml index f9065e73d..8926366cb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,126 +2,130 @@ https://axolotl-ai-cloud.github.io/axolotl/FAQS.html - 2025-01-29T05:08:44.746Z + 2025-01-29T05:10:30.204Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/stepwise_supervised.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/pretraining.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/tokenized.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/torchao.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.210Z https://axolotl-ai-cloud.github.io/axolotl/docs/reward_modelling.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.210Z https://axolotl-ai-cloud.github.io/axolotl/docs/input_output.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.209Z https://axolotl-ai-cloud.github.io/axolotl/docs/config.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/lr_groups.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.209Z https://axolotl-ai-cloud.github.io/axolotl/docs/debugging.html - 2025-01-29T05:08:44.747Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/faq.html - 2025-01-29T05:08:44.747Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/multi-node.html - 2025-01-29T05:08:44.749Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/unsloth.html - 2025-01-29T05:08:44.749Z - - - https://axolotl-ai-cloud.github.io/axolotl/examples/colab-notebooks/colab-axolotl-example.html - 2025-01-29T05:08:44.750Z - - - https://axolotl-ai-cloud.github.io/axolotl/TODO.html - 2025-01-29T05:08:44.746Z - - - https://axolotl-ai-cloud.github.io/axolotl/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html - 2025-01-29T05:08:44.763Z - - - https://axolotl-ai-cloud.github.io/axolotl/src/axolotl/integrations/LICENSE.html - 2025-01-29T05:08:44.763Z - - - https://axolotl-ai-cloud.github.io/axolotl/index.html - 2025-01-29T05:08:44.760Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/mac.html - 2025-01-29T05:08:44.749Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/multimodal.html - 2025-01-29T05:08:44.749Z - - - https://axolotl-ai-cloud.github.io/axolotl/docs/batch_vs_grad.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset_preprocessing.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/batch_vs_grad.html + 2025-01-29T05:10:30.206Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/multimodal.html + 2025-01-29T05:10:30.209Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/mac.html + 2025-01-29T05:10:30.209Z + + + https://axolotl-ai-cloud.github.io/axolotl/index.html + 2025-01-29T05:10:30.223Z + + + https://axolotl-ai-cloud.github.io/axolotl/src/axolotl/integrations/LICENSE.html + 2025-01-29T05:10:30.226Z + + + https://axolotl-ai-cloud.github.io/axolotl/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html + 2025-01-29T05:10:30.226Z + + + https://axolotl-ai-cloud.github.io/axolotl/TODO.html + 2025-01-29T05:10:30.204Z + + + https://axolotl-ai-cloud.github.io/axolotl/examples/colab-notebooks/colab-axolotl-example.html + 2025-01-29T05:10:30.210Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/unsloth.html + 2025-01-29T05:10:30.210Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/multi-node.html + 2025-01-29T05:10:30.209Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/faq.html + 2025-01-29T05:10:30.206Z + + + https://axolotl-ai-cloud.github.io/axolotl/docs/ray-integration.html + 2025-01-29T05:10:30.210Z https://axolotl-ai-cloud.github.io/axolotl/docs/fsdp_qlora.html - 2025-01-29T05:08:44.748Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/rlhf.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.210Z https://axolotl-ai-cloud.github.io/axolotl/docs/multipack.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.209Z https://axolotl-ai-cloud.github.io/axolotl/docs/nccl.html - 2025-01-29T05:08:44.749Z + 2025-01-29T05:10:30.210Z https://axolotl-ai-cloud.github.io/axolotl/docs/amd_hpc.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.205Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/template_free.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/inst_tune.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/index.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/conversation.html - 2025-01-29T05:08:44.747Z + 2025-01-29T05:10:30.206Z diff --git a/src/axolotl/integrations/LICENSE.html b/src/axolotl/integrations/LICENSE.html index e22db7249..453ecde07 100644 --- a/src/axolotl/integrations/LICENSE.html +++ b/src/axolotl/integrations/LICENSE.html @@ -181,6 +181,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + + diff --git a/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html b/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html index b3e97505e..3ac82371c 100644 --- a/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html +++ b/src/axolotl/integrations/cut_cross_entropy/ACKNOWLEDGEMENTS.html @@ -181,6 +181,12 @@ ul.task-list li input[type="checkbox"] { Training with AMD GPUs on HPC Systems + +