Overview

This model, tahamajs/llama-3.2-3b-instruct-bitcoin-analyst_best, is a fine-tuned version of Llama-3.2-3B-Instruct, a large language model. It has been specialized for Bitcoin analysis and cryptocurrency-related questions. The fine-tuning process, using QLoRA, aimed to improve the model's ability to provide accurate and contextually relevant information, effectively acting as a virtual Bitcoin analyst.

Usage

To use this model, you can load the fine-tuned adapter weights on top of the base model. This approach is memory-efficient as it only loads the small LoRA adapter weights, not the entire base model.

import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# Define the model IDs
base_model_id = "meta-llama/Llama-3.2-3B-Instruct"
peft_model_id = "tahamajs/llama-3.2-3b-instruct-bitcoin-analyst_best"

# Load the tokenizer
tokenizer = AutoTokenizer.from_pretrained(base_model_id)

# Load the base model with 4-bit quantization
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

base_model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    quantization_config=bnb_config,
    device_map="auto"
)

# Load the fine-tuned PEFT adapter
model = PeftModel.from_pretrained(base_model, peft_model_id)

# Example inference
prompt = "What is the Bitcoin halving and how does it affect the price?"
messages = [
    {"role": "user", "content": prompt}
]
input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

outputs = model.generate(input_ids=input_ids, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Training Details

This section summarizes the fine-tuning process.

  • Base Model: meta-llama/Llama-3.2-3B-Instruct
  • Dataset: tahamajs/bitcoin-llm-finetuning-dataset
  • Fine-Tuning Method: QLoRA (Quantized Low-Rank Adaptation)
  • Training Framework: trl.SFTTrainer with a custom data collator
  • Target Modules: q_proj, k_proj, v_proj, o_proj, gate_proj
  • Data Collator: A custom data collator was used to ensure that the loss is only calculated on the assistant's response, ignoring the user's prompt. This helps the model focus on learning to generate helpful responses.

⚙️ Hyperparameters

The following hyperparameters were used for fine-tuning:

Hyperparameter Value
num_train_epochs 1
per_device_train_batch_size 1
gradient_accumulation_steps 2
learning_rate 2e-5
optim paged_adamw_32bit
r (LoRA rank) 32
lora_alpha 32

Limitations and Biases

As a model fine-tuned on a specific dataset, it may have limitations:

  • Domain Specificity: The model's knowledge is primarily focused on Bitcoin and cryptocurrency. It may not perform as well on general knowledge tasks.
  • Data Cutoff: The model's knowledge is limited to the data it was trained on. It will not be aware of recent events or market changes that occurred after the dataset's creation.
  • Potential Biases: The model's responses may reflect biases present in the training data.

License

This model is licensed under the Apache 2.0 license, inherited from its base model.

A video about getting started with generative text and fine-tuning LLMs with Hugging Face is available here. http://googleusercontent.com/youtube_content/2

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for tahamajs/llama-3.2-3b-instruct-bitcoin-analyst

Finetuned
(561)
this model

Dataset used to train tahamajs/llama-3.2-3b-instruct-bitcoin-analyst