|
--- |
|
tags: |
|
- autotrain |
|
- text-generation-inference |
|
- text-generation |
|
- peft |
|
library_name: transformers |
|
base_model: alexsherstinsky/Mistral-7B-v0.1-sharded |
|
widget: |
|
- messages: |
|
- role: user |
|
content: What is your favorite condiment? |
|
license: other |
|
--- |
|
|
|
# Model Trained Using AutoTrain |
|
|
|
This model was trained using AutoTrain. For more information, please visit [AutoTrain](https://hf.co/docs/autotrain). |
|
|
|
# Usage |
|
|
|
```python |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
model_path = "PATH_TO_THIS_REPO" |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_path) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_path, |
|
device_map="auto", |
|
torch_dtype='auto' |
|
).eval() |
|
|
|
# Prompt content: "hi" |
|
messages = [ |
|
{"role": "user", "content": "hi"} |
|
] |
|
|
|
input_ids = tokenizer.apply_chat_template(conversation=messages, tokenize=True, add_generation_prompt=True, return_tensors='pt') |
|
output_ids = model.generate(input_ids.to('cuda')) |
|
response = tokenizer.decode(output_ids[0][input_ids.shape[1]:], skip_special_tokens=True) |
|
|
|
# Model response: "Hello! How can I assist you today?" |
|
print(response) |
|
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
model_path = "alexsherstinsky/Mistral-7B-v0.1-sharded" |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_path) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_path, |
|
device_map="auto", |
|
torch_dtype='auto' |
|
).eval() |
|
|
|
# Input: Create a string of opposite features to the given input: Caucasian male, mid-30s, angular jawline with light stubble, prominent cheekbones, thin lips, sharp nose, narrow nose, sharp blue eyes, high forehead, receding hairline, sparse eyebrows. |
|
# Output: Rounded jawline, heavy beard, subtle cheekbones, full lips, rounded and broad nose, large, round and dark eyes, low hairline, thick eyebrows. |
|
|
|
# Input: Extract important facial and hair details from the description and give them in a comma-separated string. Suspect is a female, likely in her late 20s to early 30s, with a distinctly oval-shaped face. She possesses soft, rounded features, including full lips. Her nose is petite and slightly upturned and has almond-shaped eyes of a deep brown color with long, fluttery eyelashes. She has high cheekbones, and her skin is smooth, unblemished. She has expressive eyebrows, that are gently arched. |
|
# Output: Female, late 20s to early 30s, oval-shaped face, soft rounded features, full lips, petite and slightly upturned nose, almond-shaped deep brown eyes, long fluttery eyelashes, high cheekbones, smooth unblemished skin, expressive gently arched eyebrows. |
|
``` |
|
|
|
# Model Fine-tuning and Quantization |
|
|
|
This model has been fine-tuned for a specific focus on facial detail extraction. It has been fine-tuned and quantized to 4 bits using AutoTrain's advanced capabilities. Here's the code used for fine-tuning and quantization: |
|
|
|
``` python |
|
# Step 1: Setup Environment |
|
!pip install pandas autotrain-advanced -q |
|
!autotrain setup --update-torch |
|
|
|
# Step 2: Connect to HuggingFace for Model Upload |
|
|
|
from huggingface_hub import notebook_login |
|
notebook_login() |
|
|
|
# Step 3: Upload your dataset |
|
!mv finetune-llama-2/train.csv train.csv |
|
|
|
import pandas as pd |
|
df = pd.read_csv("train.csv") |
|
print(df.head()) |
|
|
|
# Step 4: Overview of AutoTrain command |
|
!autotrain llm --train --project-name mistral-7b-mj-finetuned \ |
|
--model alexsherstinsky/Mistral-7B-v0.1-sharded --data-path . \ |
|
--use-peft --quantization int4 --batch-size 2 --epochs 3 --trainer sft \ |
|
--target-modules q_proj,v_proj --push-to-hub --username replace_it --token replace_it \ |
|
--lr 2e-4 |
|
|
|
# Optionally check the available options |
|
!autotrain llm --help |
|
|
|
# Step 5: Completed ๐ |
|
# After the command above is completed your Model will be uploaded to Hugging Face. |
|
|
|
# Step 6: Inference Engine |
|
!pip install -q peft accelerate bitsandbytes safetensors |
|
|
|
import torch |
|
from peft import PeftModel |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import transformers |
|
|
|
adapters_name = "YasiruDEX/mistral-7b-mj-finetuned-face-feature-extraction" |
|
model_name = "mistralai/Mistral-7B-Instruct-v0.1" # or your preferred model |
|
|
|
device = "cuda" # the device to load the model onto |
|
|
|
bnb_config = transformers.BitsAndBytesConfig( |
|
load_in_4bit=True, |
|
bnb_4bit_use_double_quant=True, |
|
bnb_4bit_quant_type="nf4", |
|
bnb_4bit_compute_dtype=torch.bfloat16 |
|
) |
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, |
|
load_in_4bit=True, |
|
torch_dtype=torch.bfloat16, |
|
device_map='auto' |
|
) |
|
|
|
# Step 7: Peft Model Loading with upload model |
|
model = PeftModel.from_pretrained(model, adapters_name) |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
tokenizer.bos_token_id = 1 |
|
|
|
print(f"Successfully loaded the model {model_name} into memory") |
|
|
|
text = "[INST] Extract important facial and hair details from the description and give them in a comma separated string. Suspect is a female, likely in her late 20s to early 30s, with a distinctly oval-shaped face. She possesses soft, rounded features, including full lips. Her nose is petite and slightly upturned and has almond-shaped eyes of a deep brown color with long, fluttery eyelashes. She has high cheekbones, and her skin is smooth, unblemished. She has expressive eyebrows, that are gently arched. [/INST]" |
|
|
|
encoded = tokenizer(text, return_tensors="pt", add_special_tokens=False) |
|
model_input = encoded |
|
model.to(device) |
|
generated_ids = model.generate(**model_input, max_new_tokens=200, do_sample=True) |
|
decoded = tokenizer.batch_decode(generated_ids) |
|
print(decoded[0]) |
|
``` |
|
|
|
|
|
This additional information provides insights into the model's training process, including its fine-tuning and quantization steps. |
|
|