Model Card for Finance-Llama-8B

This model is a fine-tuned version of unsloth/Meta-Llama-3.1-8B on the Josephgflowers/Finance-Instruct-500k dataset. It's designed for financial tasks, reasoning, and multi-turn conversations.

Key Features

  • Extensive Coverage: Trained on over 500,000 entries spanning financial QA, reasoning, sentiment analysis, topic classification, multilingual NER, and conversational AI.πŸ“š
  • Multi-Turn Conversations: Capable of rich dialogues emphasizing contextual understanding and reasoning.
  • Diverse Data Sources: Includes entries from Cinder, Sujet-Finance-Instruct-177k, Phinance Dataset, BAAI/IndustryInstruction_Finance-Economics, Josephgflowers/Financial-NER-NLP, and many other high-quality datasets.
  • Financial Specialization: Tailored for financial reasoning, question answering, entity recognition, sentiment analysis, and more.

Dataset Details πŸ’Ύ

Finance-Instruct-500k Dataset

Overview Finance-Instruct-500k is a comprehensive and meticulously curated dataset designed to train advanced language models for financial tasks, reasoning, and multi-turn conversations. Combining data from numerous high-quality financial datasets, this corpus provides over 500,000 entries, offering unparalleled depth and versatility for finance-related instruction tuning and fine-tuning.

The dataset includes content tailored for financial reasoning, question answering, entity recognition, sentiment analysis, address parsing, and multilingual natural language processing (NLP). Its diverse and deduplicated entries make it suitable for a wide range of financial AI applications, including domain-specific assistants, conversational agents, and information extraction systems.

Key Features of the Dataset

  • Extensive Coverage: Over 500,000 entries spanning financial QA, reasoning, sentiment analysis, topic classification, multilingual NER, and conversational AI.🌍
  • Multi-Turn Conversations: Rich dialogues emphasizing contextual understanding and reasoning.πŸ—£οΈ
  • Diverse Data Sources: Includes entries from Cinder, Sujet-Finance-Instruct-177k, Phinance Dataset, BAAI/IndustryInstruction_Finance-Economics, Josephgflowers/Financial-NER-NLP, and many other high-quality datasets. πŸ“–

CFA Level 1 Mock Exam Results

The CFA (Chartered Financial Analyst) exam is widely recognized as one of the most challenging professional certifications in the financial industry, typically requiring over 1000 hours of study across all three levels. The evaluation concept for the CFA Level 1 mock exam was inspired by the work on mukaj/Llama-3.1-Hawkish-8B. Below is a comparison of different models on a sample Level 1 CFA Mock Exam, demonstrating how Finance-Llama-8B performs on the exam. The same prompt was used for all models. The results presented are approximated and have been tested across multiple mock exam papers to ensure consistency. A sample mock exam with a comparison to other models is shown below.

CFA Level 1 GPT-4o-mini (%) Finance-Llama-8B (%) Meta-Llama Instruct 8B (%) Meta-Llama Instruct 70B (%)
Ethical and Professional Standards 80 76 56 68
Quantitative Methods 74 73 64 85
Economics 69 74 59 59
Financial Reporting 81 77 67 71
Corporate Finance 82 71 51 80
Equity Investments 53 67 43 66
Fixed Income 80 72 29 51
Derivatives 54 72 34 35
Alternative Investments 100 89 74 100
Portfolio Management 85 75 52 100
Weighted Average 75 73 53 70
Result PASS PASS FAIL PASS

The mock exams are designed to challenge candidates with varying levels of difficulty, reflecting the rigorous nature of the CFA Level 1 exam. Pass rates for these mock exams typically range from 64% to 72%, with an average pass rate of around 67%. This average is notably higher than the 12-year average Minimum Passing Score (MPS) of 65% for all CFA years, indicating the effectiveness of the preparation materials. For more detailed insights, visit 300hours.com/cfa-passing-score.

Usage

Ollama

You can also use this model with Ollama. Pre-built GGUF versions (FP16 and Q4_K_M) are available at: ollama.com/martain7r/finance-llama-8b

To run the FP16 version:

ollama run martain7r/finance-llama-8b:fp16

To run the Q4_K_M quantized version (smaller and faster, with a slight trade-off in quality):

ollama run martain7r/finance-llama-8b:q4_k_m

This model can be used with the transformers library pipeline for text generation.

First, make sure you have the transformers and torch libraries installed:

pip install transformers torch

Usage πŸš€ Transformers Pipeline

from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
import torch

# Alternative memory-efficient loading options without bitsandbytes

model_id = "tarun7r/Finance-Llama-8B"

print("Loading model with memory optimizations...")

# Option 1: Use FP16 (half precision) - reduces memory by ~50%
try:
    print("Trying FP16 loading...")
    model = AutoModelForCausalLM.from_pretrained(
        model_id,
        torch_dtype=torch.float16,  # Half precision
        device_map="auto",          # Automatic device placement
        low_cpu_mem_usage=True,     # Efficient CPU memory usage during loading
        trust_remote_code=True
    )
    print("βœ“ Model loaded with FP16")
    
except Exception as e:
    print(f"FP16 loading failed: {e}")
    
    # Option 2: CPU offloading - some layers on GPU, some on CPU
    try:
        print("Trying CPU offloading...")
        model = AutoModelForCausalLM.from_pretrained(
            model_id,
            torch_dtype=torch.float16,
            device_map="balanced",      # Balance between GPU and CPU
            low_cpu_mem_usage=True,
            trust_remote_code=True
        )
        print("βœ“ Model loaded with CPU offloading")
        
    except Exception as e:
        print(f"CPU offloading failed: {e}")
        
        # Option 3: Full CPU loading as fallback
        print("Loading on CPU...")
        model = AutoModelForCausalLM.from_pretrained(
            model_id,
            torch_dtype=torch.float16,
            device_map="cpu",
            low_cpu_mem_usage=True,
            trust_remote_code=True
        )
        print("βœ“ Model loaded on CPU")

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id)
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

# Create pipeline
generator = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer
)

print("βœ“ Pipeline created successfully!")


# Your existing prompt code
finance_prompt_template = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
{}

### Input:
{}

### Response:
"""

# Update the system prompt to provide a more detailed description of the chatbot's role
messages = [
    {"role": "system", "content": "You are a highly knowledgeable finance chatbot. Your purpose is to provide accurate, insightful, and actionable financial advice to users, tailored to their specific needs and contexts."},
    {"role": "user", "content": "What strategies can an individual investor use to diversify their portfolio effectively in a volatile market?"},
]

# Update the generator call to use the messages
prompt = "\n".join([f"{msg['role'].capitalize()}: {msg['content']}" for msg in messages])

print("\n--- Generating Response ---")

try:
    outputs = generator(
        prompt,
        #max_new_tokens=250,         # Reduced for memory efficiency
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
        pad_token_id=tokenizer.eos_token_id,
        # Memory efficient generation settings
        num_beams=1,                # No beam search to save memory
        early_stopping=True,
        use_cache=True
    )
    
    # Extract response
    generated_text = outputs[0]['generated_text']
    response_start = generated_text.rfind("### Response:")
    if response_start != -1:
        response = generated_text[response_start + len("### Response:"):].strip()
        print("\n--- Response ---")
        print(response)
    else:
        print(generated_text)
        
    # Clean up GPU memory after generation
    if torch.cuda.is_available():
        torch.cuda.empty_cache()
        
except Exception as e:
    print(f"Generation error: {e}")

Citation πŸ“Œ

@misc{tarun7r/Finance-Llama-8B,
  author    = {tarun7r},
  title     = {tarun7r/Finance-Llama-8B: A Llama 3.1 8B Model Fine-tuned on Josephgflowers/Finance-Instruct-500k},
  year      = {2025},
  publisher = {Hugging Face},
  journal   = {Hugging Face Model Hub},
  howpublished = {\url{https://huggingface.co/tarun7r/Finance-Llama-8B}}
}

Disclaimer & Intended Uses

Model & License

This model is an experimental research implementation based on Meta's LLaMA 3.1 architecture and is governed by the LLaMA 3.1 community license terms, with additional restrictions as outlined below. It is designed for academic and research purposes to explore the influence of financial data in training language models. Users are advised that this model is experimental and should be used at their own risk, with full responsibility for any implementation or application. This model is not a financial advisor and should not be used for financial decision-making.

Permitted Use

  • This model is intended solely for academic and research purposes.
  • It should not be used in production environments or for real-world financial applications.
  • It is not intended for financial decision-making, investment advice, or any form of advisory use.

Liability & Responsibility

The creators of this model:

  • Accept no responsibility for any use of the model, including any financial losses or damages incurred.
  • Provide no warranties or guarantees regarding its performance, accuracy, or reliability.
  • Make no claims about the suitability of the model for any specific purpose.

Intellectual Property & Attribution

  • All findings and opinions expressed are solely those of the authors.
  • This model is not endorsed by or affiliated with Meta, the CFA Institute, or any other institutions.
  • All trademarks and intellectual property rights belong to their respective owners.
Downloads last month
2,497
Safetensors
Model size
8.03B params
Tensor type
F16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for tarun7r/Finance-Llama-8B

Finetuned
(244)
this model
Quantizations
1 model

Dataset used to train tarun7r/Finance-Llama-8B