Home

Awesome

<div align="center"> <img align="center" width="30%" alt="image" src="https://github.com/AI4Finance-Foundation/FinGPT/assets/31713746/e0371951-1ce1-488e-aa25-0992dafcc139"> </div>

FinGPT: Open-Source Financial Large Language Models

Downloads Downloads Python 3.8 PyPI License

<div align="center"> <img align="center" src=figs/logo_transparent_background.png width="40%"/> </div>

Let us not expect Wall Street to open-source LLMs or open APIs, due to FinTech institutes' internal regulations and policies.

Blueprint of FinGPT

https://huggingface.co/FinGPT

Visitors

What's New:

Why FinGPT?

1). Finance is highly dynamic. BloombergGPT trained an LLM using a mixture of finance data and general-purpose data, which took about 53 days, at a cost of around $3M). It is costly to retrain an LLM model like BloombergGPT every month or every week, thus lightweight adaptation is highly favorable. FinGPT can be fine-tuned swiftly to incorporate new data (the cost falls significantly, less than $300 per fine-tuning).

2). Democratizing Internet-scale financial data is critical, say allowing timely updates of the model (monthly or weekly updates) using an automatic data curation pipeline. BloombergGPT has privileged data access and APIs, while FinGPT presents a more accessible alternative. It prioritizes lightweight adaptation, leveraging the best available open-source LLMs.

3). The key technology is "RLHF (Reinforcement learning from human feedback)", which is missing in BloombergGPT. RLHF enables an LLM model to learn individual preferences (risk-aversion level, investing habits, personalized robo-advisor, etc.), which is the "secret" ingredient of ChatGPT and GPT4.

Milestone of AI Robo-Advisor: FinGPT-Forecaster

Try the latest released FinGPT-Forecaster demo at our HuggingFace Space

The dataset for FinGPT-Forecaster: https://huggingface.co/datasets/FinGPT/fingpt-forecaster-dow30-202305-202405

demo_interface

Enter the following inputs:

  1. ticker symbol (e.g. AAPL, MSFT, NVDA)
  2. the day from which you want the prediction to happen (yyyy-mm-dd)
  3. the number of past weeks where market news are retrieved
  4. whether to add the latest basic financials as additional information

Click Submit! And you'll be responded with a well-rounded analysis of the company and a prediction for next week's stock price movement!

For detailed and more customized implementation, please refer to FinGPT-Forecaster

FinGPT Demos:

Current State-of-the-arts for Financial Sentiment Analysis

Instruction Tuning Datasets and Models

The datasets we used, and the multi-task financial LLM models are available at https://huggingface.co/FinGPT

Our Code

DatasetsTrain RowsTest RowsDescription
fingpt-sentiment-train76.8KN/ASentiment Analysis Training Instructions
fingpt-finred27.6k5.11kFinancial Relation Extraction Instructions
fingpt-headline82.2k20.5kFinancial Headline Analysis Instructions
fingpt-ner51198Financial Named-Entity Recognition Instructions
fingpt-fiqa_qa17.1kN/AFinancial Q&A Instructions
fingpt-fineval1.06k265Chinese Multiple-Choice Questions Instructions

Multi-task financial LLMs Models:

  demo_tasks = [
      'Financial Sentiment Analysis',
      'Financial Relation Extraction',
      'Financial Headline Classification',
      'Financial Named Entity Recognition',]
  demo_inputs = [
      "Glaxo's ViiV Healthcare Signs China Manufacturing Deal With Desano",
      "Apple Inc. Chief Executive Steve Jobs sought to soothe investor concerns about his health on Monday, saying his weight loss was caused by a hormone imbalance that is relatively simple to treat.",
      'gold trades in red in early trade; eyes near-term range at rs 28,300-28,600',
      'This LOAN AND SECURITY AGREEMENT dated January 27 , 1999 , between SILICON VALLEY BANK (" Bank "), a California - chartered bank with its principal place of business at 3003 Tasman Drive , Santa Clara , California 95054 with a loan production office located at 40 William St ., Ste .',]
  demo_instructions = [
      'What is the sentiment of this news? Please choose an answer from {negative/neutral/positive}.',
      'Given phrases that describe the relationship between two words/phrases as options, extract the word/phrase pair and the corresponding lexical relationship between them from the input text. The output format should be "relation1: word1, word2; relation2: word3, word4". Options: product/material produced, manufacturer, distributed by, industry, position held, original broadcaster, owned by, founded by, distribution format, headquarters location, stock exchange, currency, parent organization, chief executive officer, director/manager, owner of, operator, member of, employer, chairperson, platform, subsidiary, legal form, publisher, developer, brand, business division, location of formation, creator.',
      'Does the news headline talk about price going up? Please choose an answer from {Yes/No}.',
      'Please extract entities and their types from the input sentence, entity types should be chosen from {person/organization/location}.',]
ModelsDescriptionFunction
fingpt-mt_llama2-7b_loraFine-tuned Llama2-7b model with LoRAMulti-Task
fingpt-mt_falcon-7b_loraFine-tuned falcon-7b model with LoRAMulti-Task
fingpt-mt_bloom-7b1_loraFine-tuned bloom-7b1 model with LoRAMulti-Task
fingpt-mt_mpt-7b_loraFine-tuned mpt-7b model with LoRAMulti-Task
fingpt-mt_chatglm2-6b_loraFine-tuned chatglm-6b model with LoRAMulti-Task
fingpt-mt_qwen-7b_loraFine-tuned qwen-7b model with LoRAMulti-Task
fingpt-sentiment_llama2-13b_loraFine-tuned llama2-13b model with LoRASingle-Task
fingpt-forecaster_dow30_llama2-7b_loraFine-tuned llama2-7b model with LoRASingle-Task

Tutorials

[Training] Beginner’s Guide to FinGPT: Training with LoRA and ChatGLM2–6B One Notebook, $10 GPU

Understanding FinGPT: An Educational Blog Series

FinGPT Ecosystem

FinGPT embraces a full-stack framework for FinLLMs with five layers:

  1. Data source layer: This layer assures comprehensive market coverage, addressing the temporal sensitivity of financial data through real-time information capture.
  2. Data engineering layer: Primed for real-time NLP data processing, this layer tackles the inherent challenges of high temporal sensitivity and low signal-to-noise ratio in financial data.
  3. LLMs layer: Focusing on a range of fine-tuning methodologies such as LoRA, this layer mitigates the highly dynamic nature of financial data, ensuring the model’s relevance and accuracy.
  4. Task layer: This layer is responsible for executing fundamental tasks. These tasks serve as the benchmarks for performance evaluations and cross-comparisons in the realm of FinLLMs
  5. Application layer: Showcasing practical applications and demos, this layer highlights the potential capability of FinGPT in the financial sector.
<div align="center"> <img align="center" src=figs/FinGPT_framework_20240301.png> </div> <div align="center"> <img align="center" src=figs/FinGPT_RAG_framework.png> </div> <div align="center"> <img align="center" src=figs/FinGPT_FinNLP_data_source.png> </div> <div align="center"> <img align="center" src=figs/FinGPT_Benchmark_20231110.png> </div>

Open-Source Base Model used in the LLMs layer of FinGPT

Base ModelPretraining TokensContext LengthModel AdvantagesModel SizeExperiment ResultsApplications
Llama-22 Trillion4096Llama-2 excels on English-based market datallama-2-7b and Llama-2-13bllama-2 consistently shows superior fine-tuning resultsFinancial Sentiment Analysis, Robo-Advisor
Falcon1,500B2048Maintains high-quality results while being more resource-efficientfalcon-7bGood for English market dataFinancial Sentiment Analysis
MPT1T2048MPT models can be trained with high throughput efficiency and stable convergencempt-7bGood for English market dataFinancial Sentiment Analysis
Bloom366B2048World’s largest open multilingual language modelbloom-7b1Good for English market dataFinancial Sentiment Analysis
ChatGLM21.4T32KExceptional capability for Chinese language expressionchatglm2-6bShows prowess for Chinese market dataFinancial Sentiment Analysis, Financial Report Summary
Qwen2.2T8kFast response and high accuracyqwen-7bEffective for Chinese market dataFinancial Sentiment Analysis
InternLM1.8T8kCan flexibly and independently construct workflowsinternlm-7bEffective for Chinese market dataFinancial Sentiment Analysis

All Thanks To Our Contributors :

<a href="https://github.com/AI4Finance-Foundation/FinGPT/graphs/contributors"> <img src="https://contrib.rocks/image?repo=AI4Finance-Foundation/FinGPT" /> </a>

News

ChatGPT at AI4Finance

Introductory

The Journey of Open AI GPT models. GPT models explained. Open AI's GPT-1, GPT-2, GPT-3.

(Financial) Big Data

Interesting Demos

ChatGPT for FinTech

ChatGPT Trading Bot

<!--- **(Fast and accurate) Sentiment Analysis** GPT-3 can help study customer surveys, social media tweets from customers/users. Tweets + [Tweet Classifier](https://platform.openai.com/playground/p/default-tweet-classifier?model=text-davinci-003) + [Advanced Tweet Classifier](https://platform.openai.com/playground/p/default-adv-tweet-classifier?model=text-davinci-003) Financial News + [Algorithmic Trading using Sentiment Analysis on News Articles](https://towardsdatascience.com/https-towardsdatascience-com-algorithmic-trading-using-sentiment-analysis-on-news-articles-83db77966704) + [Accessing Historical Financial News Headlines with Python](https://python.plainenglish.io/access-historical-financial-news-headlines-with-python-be1b8faaea9f) **PromptNet** Analogy to ImageNet and WordNet, it is critical to build a PromptNet. + [Awesome_Prompting_Papers_in_Computer_Vision](https://github.com/ttengwang/Awesome_Prompting_Papers_in_Computer_Vision) + [OpenPrompt](https://github.com/thunlp/OpenPrompt) + [promptsource](https://github.com/bigscience-workshop/promptsource) **Robo-advisor** **Coding-tutor** + [Hey, ChatGPT! Explain FinRL code to me!](https://medium.com/@ai4finance/hey-chatgpt-explain-finrl-code-to-me-6a91d612296f) **Blogs about ChatGPT for FinTech** ## ChatGPT APIs Prompting as a new programming paradigm! + [Towards Data Science] [GPT-3: Creative Potential of NLP](https://towardsdatascience.com/gpt-3-creative-potential-of-nlp-d5ccae16c1ab) + [YouTube video] [OpenAI GPT-3 - Prompt Engineering For Financial NLP](https://www.youtube.com/watch?v=Nl2Cdbao5Ws) + [OpenAI API for GPT-3](https://platform.openai.com/docs/models/gpt-3) + [ChatGPT-wrapper: python and shell](https://github.com/mmabrouk/chatgpt-wrapper) + [OpenAI Examples Library](https://platform.openai.com/examples) + [GPT-3 Sandbox (Github)](https://github.com/shreyashankar/gpt3-sandbox) Enable users to create cool web demos using OpenAI GPT-3 API. + [Exploring the Capabilities of the ChatGPT API: A Beginner’s Guide](https://levelup.gitconnected.com/exploring-the-capabilities-of-the-chatgpt-api-a-beginners-guide-e9089d49961f) + [Reverse engineered ChatGPT API](https://github.com/acheong08/ChatGPT) **Prompting programming** ## ChatGPT relatives: [A Release Timeline](https://github.com/osanseviero/ml_timeline) of many LLMs. [PaLM](https://arxiv.org/abs/2204.02311) [Chincella](https://arxiv.org/abs/2203.15556) Interesting evaluations: + [RLHF for pretraining](https://arxiv.org/abs/2302.08582) + [Compare ChatGPT with GPT3.5](https://arxiv.org/pdf/2302.06476.pdf) + [Is ChatGPT A Good Translator? A Preliminary Study](https://arxiv.org/pdf/2301.08745.pdf) + [A Multitask, Multilingual, Multimodal Evaluation of ChatGPT on Reasoning, Hallucination, and Interactivity](https://arxiv.org/pdf/2302.04023.pdf) [YouTube video] [Physics Solution: ChatGPT vs. Google](https://www.youtube.com/watch?v=x4dIx9VYQoM) --->

Citing FinGPT

@article{yang2023fingpt,
  title={FinGPT: Open-Source Financial Large Language Models},
  author={Yang, Hongyang and Liu, Xiao-Yang and Wang, Christina Dan},
  journal={FinLLM Symposium at IJCAI 2023},
  year={2023}
}
@article{zhang2023instructfingpt,
      title={Instruct-FinGPT: Financial Sentiment Analysis by Instruction Tuning of General-Purpose Large Language Models}, 
      author={Boyu Zhang and Hongyang Yang and Xiao-Yang Liu},
      journal={FinLLM Symposium at IJCAI 2023},
      year={2023}
}
@article{zhang2023fingptrag,
  title={Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language Models},
  author={Zhang, Boyu and Yang, Hongyang and Zhou, tianyu and Babar, Ali and Liu, Xiao-Yang},
 journal = {ACM International Conference on AI in Finance (ICAIF)},
  year={2023}
}

@article{wang2023fingptbenchmark,
  title={FinGPT: Instruction Tuning Benchmark for Open-Source Large Language Models in Financial Datasets},
  author={Wang, Neng and Yang, Hongyang and Wang, Christina Dan},
  journal={NeurIPS Workshop on Instruction Tuning and Instruction Following},
  year={2023}
}
@article{2023finnlp,
  title={Data-centric FinGPT: Democratizing Internet-scale Data for Financial Large Language Models},
  author={Liu, Xiao-Yang and Wang, Guoxuan and Yang, Hongyang and Zha, Daochen},
  journal={NeurIPS Workshop on Instruction Tuning and Instruction Following},
  year={2023}
}

<div align="center"> <a href="https://finllm.github.io/workshop/#/fcb" target="_blank"> <img align="center" src=figs/fingpt_best_presentation.png width="65%"> </div>

LICENSE

MIT License

Disclaimer: We are sharing codes for academic purposes under the MIT education license. Nothing herein is financial advice, and NOT a recommendation to trade real money. Please use common sense and always first consult a professional before trading or investing.