CoolFace
Modelpublic

isaacchung/llama3-8B-hotpotqa-raft

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes14downloads
Model Card

Model Card for Model ID

<!-- Provide a quick summary of what the model is/does. --> Finetuned Llama3-8B-Instruct model on https://huggingface.co/datasets/isaacchung/hotpotqa-dev-raft-subset.

Model Details

Model Description

<!-- Provide a longer summary of what this model is. -->

This is the model card of a ๐Ÿค— transformers model that has been pushed on the Hub. This model card has been automatically generated.

  • โ€”Developed by: Isaac Chung <!-- - Funded by [optional]: [More Information Needed] --> <!-- - Shared by [optional]: [More Information Needed] --> <!-- - Model type: [More Information Needed] -->
  • โ€”Language(s) (NLP): [English]
  • โ€”License: [Apache 2.0]
  • โ€”Finetuned from model [optional]: meta-llama/Meta-Llama-3-8B-Instruct

<!-- ### Model Sources [optional] -->

<!-- Provide the basic links for the model. -->

<!-- - Repository: [More Information Needed]

  • โ€”Paper [optional]: [More Information Needed]
  • โ€”Demo [optional]: [More Information Needed] -->

<!-- ## Uses -->

<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->

<!-- ### Direct Use -->

<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->

<!-- [More Information Needed] -->

<!-- ### Downstream Use [optional] -->

<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->

<!-- [More Information Needed] -->

<!-- ### Out-of-Scope Use -->

<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->

<!-- [More Information Needed] -->

<!-- ## Bias, Risks, and Limitations -->

<!-- This section is meant to convey both technical and sociotechnical limitations. -->

<!-- [More Information Needed] -->

<!-- ### Recommendations -->

<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->

<!-- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. -->

How to Get Started with the Model

Use the code below to get started with the model.

python
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("isaacchung/llama3-8B-hotpotqa-raft")
model = AutoModelForCausalLM.from_pretrained("isaacchung/llama3-8B-hotpotqa-raft")

<!-- [More Information Needed] -->

Training Details

Training Data

<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. --> https://huggingface.co/datasets/isaacchung/hotpotqa-dev-raft-subset

<!-- [More Information Needed] -->

Training Procedure

<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->

<!-- #### Preprocessing [optional] -->

<!-- [More Information Needed] -->

Training Hyperparameters

<!-- - Training regime: [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->

Model loaded:

python
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    attn_implementation="flash_attention_2",
    torch_dtype=torch.bfloat16,
    quantization_config=bnb_config
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
tokenizer.padding_side = 'right' # to prevent warnings

Training params:

python
# LoRA config based on QLoRA paper & Sebastian Raschka experiment
peft_config = LoraConfig(
        lora_alpha=128,
        lora_dropout=0.05,
        r=256,
        bias="none",
        target_modules="all-linear",
        task_type="CAUSAL_LM",
)

args = TrainingArguments(
    num_train_epochs=3,                     # number of training epochs
    per_device_train_batch_size=3,          # batch size per device during training
    gradient_accumulation_steps=2,          # number of steps before performing a backward/update pass
    gradient_checkpointing=True,            # use gradient checkpointing to save memory
    optim="adamw_torch_fused",              # use fused adamw optimizer
    logging_steps=10,                       # log every 10 steps
    save_strategy="epoch",                  # save checkpoint every epoch
    learning_rate=2e-4,                     # learning rate, based on QLoRA paper
    bf16=True,                              # use bfloat16 precision
    tf32=True,                              # use tf32 precision
    max_grad_norm=0.3,                      # max gradient norm based on QLoRA paper
    warmup_ratio=0.03,                      # warmup ratio based on QLoRA paper
    lr_scheduler_type="constant",           # use constant learning rate scheduler
)

max_seq_length = 3072 # max sequence length for model and packing of the dataset
 
trainer = SFTTrainer(
    model=model,
    args=args,
    train_dataset=dataset,
    peft_config=peft_config,
    max_seq_length=max_seq_length,
    tokenizer=tokenizer,
    packing=True,
    dataset_kwargs={
        "add_special_tokens": False,  # We template with special tokens
        "append_concat_token": False, # No need to add additional separator token
    }
)
Speeds, Sizes, Times [optional]

<!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->

  • โ€”train_runtime: 1148.4436
  • โ€”trainsamplesper_second: 0.392
  • โ€”trainstepsper_second: 0.065
  • โ€”train_loss: 0.5639963404337565
  • โ€”epoch: 3.0
Training Loss
{'loss': 1.0092, 'grad_norm': 0.27965569496154785, 'learning_rate': 0.0002, 'epoch': 0.4}                                   
{'loss': 0.695, 'grad_norm': 0.17789314687252045, 'learning_rate': 0.0002, 'epoch': 0.8}
{'loss': 0.6747, 'grad_norm': 0.13655725121498108, 'learning_rate': 0.0002, 'epoch': 1.2}                                   
{'loss': 0.508, 'grad_norm': 0.14653471112251282, 'learning_rate': 0.0002, 'epoch': 1.6}                                    
{'loss': 0.4961, 'grad_norm': 0.14873674511909485, 'learning_rate': 0.0002, 'epoch': 2.0}                                   
{'loss': 0.3509, 'grad_norm': 0.1657964587211609, 'learning_rate': 0.0002, 'epoch': 2.4}                                    
{'loss': 0.3321, 'grad_norm': 0.1634644716978073, 'learning_rate': 0.0002, 'epoch': 2.8} 

<!-- ## Evaluation -->

<!-- This section describes the evaluation protocols and provides the results. -->

<!-- ### Testing Data, Factors & Metrics -->

<!-- #### Testing Data -->

<!-- This should link to a Dataset Card if possible. -->

<!-- [More Information Needed] -->

<!-- #### Factors -->

<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->

<!-- [More Information Needed] -->

<!-- #### Metrics -->

<!-- These are the evaluation metrics being used, ideally with a description of why. -->

<!-- [More Information Needed] -->

<!-- ### Results -->

<!-- [More Information Needed] -->

<!-- #### Summary -->

<!-- ## Model Examination [optional] -->

<!-- Relevant interpretability work for the model goes here -->

<!-- [More Information Needed] -->

<!-- ## Environmental Impact -->

<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->

<!-- Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).

  • โ€”Hardware Type: [More Information Needed]
  • โ€”Hours used: [More Information Needed]
  • โ€”Cloud Provider: [More Information Needed]
  • โ€”Compute Region: [More Information Needed]
  • โ€”Carbon Emitted: [More Information Needed] -->

Technical Specifications [optional]

<!-- ### Model Architecture and Objective -->

<!-- [More Information Needed] -->

Compute Infrastructure

<!-- [More Information Needed] -->

Hardware
  • โ€”1x NVIDIA RTX 6000 Ada

<!-- #### Software

[More Information Needed]

Citation [optional]

<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->

<!-- BibTeX:

[More Information Needed]

APA:

[More Information Needed]

Glossary [optional] -->

<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->

<!-- [More Information Needed] -->

<!-- ## More Information [optional]

[More Information Needed]

Model Card Authors [optional]

[More Information Needed] -->

Model Card Contact

Isaac Chung