Downloads · 30 days
0
bhaskar-ruthvik/falcon7b-finance-tuned
falcon7b-finance-tuned is a machine learning model from bhaskar-ruthvik. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
This is a Falcon-7b model fine-tuned on finance data by using Parameter Efficient Fine-Tuning(PEFT) and Quantized Low-Rank Adapters. The data includes stock prices, transaction data, tweets about stocks and their sent…
Downloads · 30 days
0
Access
Public
Updated Jul 11, 2023
Repo size
37.8 MB
Likes
0
Public
Click a slice to open those files.
.bin18.9 MB · 67%
From the Hugging Face model README
This is a Falcon-7b model fine-tuned on finance data by using Parameter Efficient Fine-Tuning(PEFT) and Quantized Low-Rank Adapters. The data includes stock prices, transaction data, tweets about stocks and their sentiment analysis, frequently asked questions about the Finance industry.
The model was trained by using the built-in transformers trainer with max_steps set to 140 which is approximately equal to 4 epochs of training. The final step training loss was 0.49.
pip install -Uqqq pip --progress-bar off
pip install -qqq bitsandbytes==0.39.0 --progress-bar off
pip install -qqq torch==2.0.1 --progress-bar off
pip install -qqq -U git+https://github.com/huggingface/transformers.git@e03a9cc --progress-bar off
pip install -qqq -U git+https://github.com/huggingface/peft.git@42a184f
pip install -qqq -U git+https://github.com/huggingface/accelerate.git@c9fbb71 --progress-bar off
pip install -qqq datasets==2.12.0 --progress-bar off
pip install -qqq loralib==0.1.1 --progress-bar off
pip install -qqq einops==0.6.1 --progress-bar off
import json
import os
from pprint import pprint
import bitsandbytes as bnb
import pandas as pd
import torch
import torch.nn as nn
import transformers
from datasets import load_dataset
from huggingface_hub import notebook_login
from peft import (
LoraConfig,
PeftConfig,
PeftModel,
get_peft_model,
prepare_model_for_kbit_training,
)
from transformers import (
AutoConfig,
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig,
)
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
PEFT_MODEL = 'bhaskar-ruthvik/falcon7b-finance-tuned'
config = PeftConfig.from_pretrained(PEFT_MODEL)
model = AutoModelForCausalLM.from_pretrained(
config.base_model_name_or_path,
return_dict = True,
device_map = 'auto',
trust_remote_code = True,
load_in_8bit = True
)
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
tokenizer.pad_token = tokenizer.eos_token
model = PeftModel.from_pretrained(model,PEFT_MODEL)
generation_config = model.generation_config
generation_config.max_new_tokens = 200
generation_config.temperature = 0.7
generation_config.top_p = 0.7
generation_config.num_return_sequences = 1
generation_config.pad_token_id = tokenizer.eos_token_id
generation_config.eos_token_id = tokenizer.eos_token_id
def generate_response(question: str)->str:
prompt = f"""
<human>: {question}
<bot>:
""".strip()
encoding = tokenizer(prompt,return_tensors='pt').to(device)
with torch.inference_mode():
outputs = model.generate(input_ids=encoding.input_ids,
attention_mask = encoding.attention_mask,
generation_config = generation_config)
response = tokenizer.decode(outputs[0],skip_special_tokens=True)
assistant_start = "<bot>:"
response_start = response.find(assistant_start)
return response[response_start+ len(assistant_start) :].strip()
prompt = 'What is estate planning?'
print('%.300s' % generate_response(prompt))