Downloads · 30 days
13
2% of all-time downloads
Solshine/jais-adapted-7b-chat-Natural-Farmer-lora-tuned-model-full
jais-adapted-7b-chat-Natural-Farmer-lora-tuned-model-full is a text generation model from Solshine. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
- Developed by: Solshine (Caleb DeLeeuw) - License: apache-2.0 - Finetuned from model : inceptionai/jais-adapted-7b-chat - Dataset: CopyleftCultivars/Natural-Farming-Real-QandA-Conversations-Q1-2024-Update (Real world…
Downloads · 30 days
13
2% of all-time downloads
All-time downloads
603
Public
Parameters
7.2B
4.4 GB on disk
Likes
4
Public
Click a slice to open those files.
.safetensors4.4 GB · 100%
How the weights are stored.
U86.7B · 93%
From the Hugging Face model README
V4 (best training loss curve of unsloth configs tested) of LORA adapter trained, merged into this full merged model: Solshine/jais-adapted-7b-chat-Natural-Farmer-lora-only-V4
Training Logs: ==((====))== Unsloth - 2x faster free finetuning | Num GPUs = 1 \ /| Num examples = 169 | Num Epochs = 2 O^O/ _/ \ Batch size per device = 2 | Gradient Accumulation steps = 4 \ / Total batch size = 8 | Total steps = 38 "-____-" Number of trainable parameters = 39,976,960 [38/38 03:29, Epoch 1/2] Step Training Loss 1 2.286800 2 2.205600 3 2.201700 4 2.158100 5 2.021100 6 1.820200 7 1.822500 8 1.565700 9 1.335700 10 1.225900 11 1.081000 12 0.947700 13 0.828600 14 0.830200 15 0.796300 16 0.781200 17 0.781600 18 0.815000 19 0.741400 20 0.847600 21 0.736600 22 0.714300 23 0.706400 24 0.752800 25 0.684600 26 0.647800 27 0.775300 28 0.613800 29 0.679500 30 0.752900 31 0.589800 32 0.729400 33 0.549500 34 0.638500 35 0.609500 36 0.632200 37 0.686400 38 0.724200
Merged model (printing trainable parameters; pytorch) readout: '''
LlamaForCausalLM(
(model): LlamaModel(
(embed_tokens): Embedding(64000, 4096)
(layers): ModuleList(
(0-31): 32 x LlamaDecoderLayer(
(self_attn): LlamaSdpaAttention(
(q_proj): Linear4bit(in_features=4096, out_features=4096, bias=False)
(k_proj): Linear4bit(in_features=4096, out_features=4096, bias=False)
(v_proj): Linear4bit(in_features=4096, out_features=4096, bias=False)
(o_proj): Linear4bit(in_features=4096, out_features=4096, bias=False)
(rotary_emb): LlamaRotaryEmbedding()
)
(mlp): LlamaMLP(
(gate_proj): Linear4bit(in_features=4096, out_features=11008, bias=False)
(up_proj): Linear4bit(in_features=4096, out_features=11008, bias=False)
(down_proj): Linear4bit(in_features=11008, out_features=4096, bias=False)
(act_fn): SiLU()
)
(input_layernorm): LlamaRMSNorm((4096,), eps=1e-05)
(post_attention_layernorm): LlamaRMSNorm((4096,), eps=1e-05)
)
)
(norm): LlamaRMSNorm((4096,), eps=1e-05)
(rotary_emb): LlamaRotaryEmbedding()
)
(lm_head): Linear(in_features=4096, out_features=64000, bias=False)
)
'''
This llama model was trained 2x faster with Unsloth and Huggingface's TRL library.
'''
!pip install transformers peft huggingface_hub bitsandbytes accelerate
import os import torch from huggingface_hub import login from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel from google.colab import userdata
HF_TOKEN = userdata.get('HF_TOKEN') if HF_TOKEN is None: raise ValueError("HF_TOKEN not found in Colab secrets. Please set it up.")
login(token=HF_TOKEN)
BASE_MODEL_NAME = "inceptionai/jais-adapted-7b-chat" LORA_MODEL_NAME = "Solshine/jais-adapted-7b-chat-Natural-Farmer-lora-only-V4" MERGED_MODEL_NAME = "Solshine/jais-adapted-7b-chat-Natural-Farmer-lora-merged-full"
def get_device_map(model_size): if torch.cuda.is_available(): gpu_memory = torch.cuda.get_device_properties(0).total_memory / 1024**3 # Convert to GB if gpu_memory > model_size: return "auto" else: return { "": torch.device("cpu"), "lm_head": torch.device("cuda:0"), "model.embed_tokens": torch.device("cuda:0"), "model.norm": torch.device("cuda:0"), "model.layers.0": torch.device("cuda:0"), } return "cpu"
from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16 )
print("Downloading and loading the base model...") base_model = AutoModelForCausalLM.from_pretrained( BASE_MODEL_NAME, quantization_config=bnb_config, device_map="auto", torch_dtype=torch.float16, low_cpu_mem_usage=True, offload_folder="offload", offload_state_dict=True, )
if hasattr(base_model, 'gradient_checkpointing_enable'): base_model.gradient_checkpointing_enable() elif hasattr(base_model, 'model') and hasattr(base_model.model, 'gradient_checkpointing_enable'): base_model.model.gradient_checkpointing_enable()
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL_NAME)
print("Downloading and loading the LORA adapter...") lora_model = PeftModel.from_pretrained(base_model, LORA_MODEL_NAME, device_map=device_map)
print("Merging the base model with the LORA adapter...") merged_model = lora_model.merge_and_unload()
print("Saving the merged model locally...") merged_model.save_pretrained("./merged_model", safe_serialization=True) tokenizer.save_pretrained("./merged_model")
print("Pushing the merged model to Hugging Face Hub...") merged_model.push_to_hub(MERGED_MODEL_NAME, use_auth_token=HF_TOKEN) tokenizer.push_to_hub(MERGED_MODEL_NAME, use_auth_token=HF_TOKEN)
print("Process completed successfully!")
'''