--- license: apache-2.0 tags: - text-generation-inference - finance - economics datasets: - Josephgflowers/Finance-Instruct-500k language: - en base_model: - unsloth/Meta-Llama-3.1-8B pipeline_tag: text-generation library_name: transformers --- # 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. ## Author & Opportunities Tarun Sai Goddu - Data Scientist at Jio Platforms Ltd (2+ years experience) | IIT Bombay Expertise: AI Agents • RAG Pipelines • Computer Vision • NLP • Speech Domain **Actively seeking opportunities** as an **ML Engineer II / Data Scientist II** where I can contribute to building scalable, production-ready AI/ML systems. **Reach me here:** - LinkedIn: [linkedin.com/in/tarunsaigoddu](https://www.linkedin.com/in/tarunsaigoddu) | Email: [tarunsaiaa@gmail.com](mailto:tarunsaiaa@gmail.com) - GitHub: [github.com/tarun7r](https://github.com/tarun7r) ## 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](https://huggingface.co/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](https://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](https://ollama.com/martain7r/finance-llama-8b) To run the FP16 version: ```bash 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): ```bash 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: ````bash pip install transformers torch ```` **Usage 🚀** **Transformers Pipeline** ````bash 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.** ### 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.