transformers pytorch safetensors rwkv text-generation finance en dataset:gbharti/finance-alpaca arxiv:2305.13048 arxiv:2307.08621 arxiv:2302.10866 license:apache-2.0 autotrain_compatible endpoints_compatible region:us
---
license: apache-2.0
datasets:
- gbharti/finance-alpaca
language:
- en
library_name: transformers
tags:
- finance
widget:
- text: >-
    user: Hypothetical, can taxes ever cause a net loss on otherwise-profitable stocks?

    bot:
  example_title: Hypothetical
- text: >-
    user: What are some signs that the stock market might crash?

    bot:
  example_title: Question 2
- text: >-
    user: Where should I be investing my money?

    bot:
  example_title: Question
- text: >-
    user: Is this headline positive or negative? Headline: Australian Tycoon
    Forrest Shuts Nickel Mines After Prices Crash.

    bot:
  example_title: Sentiment analysis
- text: >-
    user: Aluminum price per KG is 50$. Forecast max: +1$ min:+0.3$. What should
    be the current price of aluminum?

    bot:
  example_title: Forecast
---

# Fin-RWKV: Attention Free Financal Expert (WIP)
Fin-RWKV is a cutting-edge, attention-free model designed specifically for financial analysis and prediction. Developed as part of a MindsDB Hackathon, this model leverages the simplicity and efficiency of the RWKV architecture to process financial data, providing insights and forecasts with remarkable accuracy. Fin-RWKV is tailored for professionals and enthusiasts in the finance sector who seek to integrate advanced deep learning techniques into their financial analyses.

## Use Cases
- Sentiment analysis
- Forecast
- Product Pricing

## Features
- Attention-Free Architecture: Utilizes the RWKV (Recurrent Weighted Kernel-based) model, which bypasses the complexity of attention mechanisms while maintaining high performance.
- Lower Costs: 10x to over a 100x+ lower inference cost, 2x to 10x lower training cost
- Tinyyyy: Lightweight enough to run on CPUs in real-time bypassing the GPU - and is able to run on your laptop today
- Finance-Specific Training: Trained on the gbharti/finance-alpaca dataset, ensuring that the model is finely tuned for financial data analysis.
- Transformers Library Integration: Built on the popular 'transformers' library, ensuring easy integration with existing ML pipelines and applications.

## How to use
```py
from transformers import AutoTokenizer, AutoModelForCausalLM, StoppingCriteria, StoppingCriteriaList, TextIteratorStreamer
from threading import Thread
import torch

tokenizer = AutoTokenizer.from_pretrained("umuthopeyildirim/fin-rwkv-1b5")
model = AutoModelForCausalLM.from_pretrained("umuthopeyildirim/fin-rwkv-1b5")

prompt = "user: Is this headline positive or negative? Headline: Australian Tycoon Forrest Shuts Nickel Mines After Prices Crash\nbot:"

# Tokenize the input
input_ids = tokenizer.encode(prompt, return_tensors="pt")

# Generate a response
output = model.generate(input_ids, max_length=333, num_return_sequences=1)

# Decode the output
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)

print(generated_text)
```

## Competing Against
| Name          | Param Count | Cost | Inference Cost |
|---------------|-------------|------|----------------|
| Fin-RWKV | 1B5 | $3 | Free on  HuggingFace 🤗 & Low-End CPU |
| [BloombergGPT](https://www.bloomberg.com/company/press/bloomberggpt-50-billion-parameter-llm-tuned-finance/) | 50 Billion | $1.3 million | Enterprise GPUs |
| [FinGPT](https://huggingface.co/FinGPT) | 7 Bilion | $302.4 | Consumer GPUs |


| Architecture | Status | Compute Efficiency | Largest Model | Trained Token | Link |
|--------------|--------|--------------------|---------------|---------------|------|
| (Fin)RWKV | In Production | O ( N ) | 14B | 500B++ (the pile+) | [Paper](https://arxiv.org/abs/2305.13048) |
| Ret Net (Microsoft) | Research | O ( N ) | 6.7B | 100B (mixed) | [Paper](https://arxiv.org/abs/2307.08621) |
| State Space (Stanford) | Prototype | O ( Log N ) | 355M | 15B (the pile, subset) | [Paper](https://arxiv.org/abs/2302.10866) |
| Liquid (MIT) | Research | - | <1M | - | [Paper](https://arxiv.org/abs/2302.10866) |
| Transformer Architecture (included for contrasting reference) | In Production | O ( N^2 ) | 800B (est) | 13T++ (est) | - |

<img src="https://cdn-uploads.huggingface.co/production/uploads/631ea4247beada30465fa606/7vAOYsXH1vhTyh22o6jYB.png" width="500" alt="Inference computational cost vs. Number of tokens">

## Stats for nerds
### Training Config
- n_epoch: 100
- epoch_save_frequency: 10
- batch_size: 5
- ctx_len: 2000
- T_MAX: 384
- RWKV_FLOAT_MODE: fp16
- RWKV_DEEPSPEED: 0 

### Loss
<img src="https://cdn-uploads.huggingface.co/production/uploads/631ea4247beada30465fa606/NvPKCBlbVhiVeeMpUAv2C.png" width="500" alt="Loss">

_Note: Needs more data and training, testing purposes only. Not recomended for production level deployment._
[Presentation](https://docs.google.com/presentation/d/1vNQ8Y5wwR0WXlO60fsXjkru5R9I0ZgykTmgag0B3Ato/edit?usp=sharing)