Instructions to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-32B-Instruct") model = PeftModel.from_pretrained(base_model, "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1") - Transformers
How to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1
- SGLang
How to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1 with Docker Model Runner:
docker model run hf.co/Saravanankannan/Qwen-2.5-32B-RAFT-Finance-v1
Update README.md
Browse files
README.md
CHANGED
|
@@ -8,202 +8,92 @@ tags:
|
|
| 8 |
- sft
|
| 9 |
- transformers
|
| 10 |
- trl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
---
|
| 12 |
|
| 13 |
-
# Model Card for
|
| 14 |
-
|
| 15 |
-
<!-- Provide a quick summary of what the model is/does. -->
|
| 16 |
-
|
| 17 |
-
|
| 18 |
|
| 19 |
## Model Details
|
| 20 |
|
| 21 |
### Model Description
|
| 22 |
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
|
| 27 |
-
|
| 28 |
-
- **Funded by [optional]:** [More Information Needed]
|
| 29 |
-
- **Shared by [optional]:** [More Information Needed]
|
| 30 |
-
- **Model type:** [More Information Needed]
|
| 31 |
-
- **Language(s) (NLP):** [More Information Needed]
|
| 32 |
-
- **License:** [More Information Needed]
|
| 33 |
-
- **Finetuned from model [optional]:** [More Information Needed]
|
| 34 |
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
-
|
| 38 |
|
| 39 |
-
- **Repository:** [
|
| 40 |
-
- **Paper
|
| 41 |
-
- **Demo [optional]:** [More Information Needed]
|
| 42 |
|
| 43 |
## Uses
|
| 44 |
|
| 45 |
-
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
|
| 46 |
-
|
| 47 |
### Direct Use
|
| 48 |
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
### Downstream Use [optional]
|
| 54 |
-
|
| 55 |
-
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
|
| 56 |
-
|
| 57 |
-
[More Information Needed]
|
| 58 |
|
| 59 |
### Out-of-Scope Use
|
| 60 |
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
|
| 65 |
## Bias, Risks, and Limitations
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
[More Information Needed]
|
| 70 |
|
| 71 |
### Recommendations
|
| 72 |
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
|
| 76 |
|
| 77 |
## How to Get Started with the Model
|
| 78 |
|
| 79 |
-
Use the code below to get started with the model.
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
### Testing Data, Factors & Metrics
|
| 115 |
-
|
| 116 |
-
#### Testing Data
|
| 117 |
-
|
| 118 |
-
<!-- This should link to a Dataset Card if possible. -->
|
| 119 |
-
|
| 120 |
-
[More Information Needed]
|
| 121 |
-
|
| 122 |
-
#### Factors
|
| 123 |
-
|
| 124 |
-
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
|
| 125 |
-
|
| 126 |
-
[More Information Needed]
|
| 127 |
-
|
| 128 |
-
#### Metrics
|
| 129 |
-
|
| 130 |
-
<!-- These are the evaluation metrics being used, ideally with a description of why. -->
|
| 131 |
-
|
| 132 |
-
[More Information Needed]
|
| 133 |
-
|
| 134 |
-
### Results
|
| 135 |
-
|
| 136 |
-
[More Information Needed]
|
| 137 |
-
|
| 138 |
-
#### Summary
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
## Model Examination [optional]
|
| 143 |
-
|
| 144 |
-
<!-- Relevant interpretability work for the model goes here -->
|
| 145 |
-
|
| 146 |
-
[More Information Needed]
|
| 147 |
-
|
| 148 |
-
## Environmental Impact
|
| 149 |
-
|
| 150 |
-
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
|
| 151 |
-
|
| 152 |
-
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
|
| 153 |
-
|
| 154 |
-
- **Hardware Type:** [More Information Needed]
|
| 155 |
-
- **Hours used:** [More Information Needed]
|
| 156 |
-
- **Cloud Provider:** [More Information Needed]
|
| 157 |
-
- **Compute Region:** [More Information Needed]
|
| 158 |
-
- **Carbon Emitted:** [More Information Needed]
|
| 159 |
-
|
| 160 |
-
## Technical Specifications [optional]
|
| 161 |
-
|
| 162 |
-
### Model Architecture and Objective
|
| 163 |
-
|
| 164 |
-
[More Information Needed]
|
| 165 |
-
|
| 166 |
-
### Compute Infrastructure
|
| 167 |
-
|
| 168 |
-
[More Information Needed]
|
| 169 |
-
|
| 170 |
-
#### Hardware
|
| 171 |
-
|
| 172 |
-
[More Information Needed]
|
| 173 |
-
|
| 174 |
-
#### Software
|
| 175 |
-
|
| 176 |
-
[More Information Needed]
|
| 177 |
-
|
| 178 |
-
## Citation [optional]
|
| 179 |
-
|
| 180 |
-
<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
|
| 181 |
-
|
| 182 |
-
**BibTeX:**
|
| 183 |
-
|
| 184 |
-
[More Information Needed]
|
| 185 |
-
|
| 186 |
-
**APA:**
|
| 187 |
-
|
| 188 |
-
[More Information Needed]
|
| 189 |
-
|
| 190 |
-
## Glossary [optional]
|
| 191 |
-
|
| 192 |
-
<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
|
| 193 |
-
|
| 194 |
-
[More Information Needed]
|
| 195 |
-
|
| 196 |
-
## More Information [optional]
|
| 197 |
-
|
| 198 |
-
[More Information Needed]
|
| 199 |
-
|
| 200 |
-
## Model Card Authors [optional]
|
| 201 |
-
|
| 202 |
-
[More Information Needed]
|
| 203 |
-
|
| 204 |
-
## Model Card Contact
|
| 205 |
-
|
| 206 |
-
[More Information Needed]
|
| 207 |
-
### Framework versions
|
| 208 |
-
|
| 209 |
-
- PEFT 0.18.0
|
|
|
|
| 8 |
- sft
|
| 9 |
- transformers
|
| 10 |
- trl
|
| 11 |
+
- finance
|
| 12 |
+
- rag
|
| 13 |
+
- raft
|
| 14 |
+
license: mit
|
| 15 |
+
language:
|
| 16 |
+
- en
|
| 17 |
---
|
| 18 |
|
| 19 |
+
# Model Card for UnifiedQ-Finance-RAFT
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
## Model Details
|
| 22 |
|
| 23 |
### Model Description
|
| 24 |
|
| 25 |
+
**UnifiedQ-Finance-RAFT** is a specialized LoRA adapter for **Qwen 2.5 32B Instruct**, fine-tuned using the **RAFT (Retrieval-Augmented Fine-Tuning)** technique.
|
|
|
|
|
|
|
| 26 |
|
| 27 |
+
This model was trained to act as the reasoning engine for a quantitative finance RAG pipeline. It addresses the "distractor problem" in RAG systems by being explicitly trained to distinguish between relevant "oracle" documents and irrelevant "distractor" documents when answering complex options trading and risk management queries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
+
- **Developed by:** Rednote (UnifiedQ Project)
|
| 30 |
+
- **Model type:** LoRA Adapter (QLoRA 4-bit) for Causal LM
|
| 31 |
+
- **Language(s) (NLP):** English
|
| 32 |
+
- **License:** MIT
|
| 33 |
+
- **Finetuned from model:** [Qwen/Qwen2.5-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)
|
| 34 |
|
| 35 |
+
### Model Sources
|
| 36 |
|
| 37 |
+
- **Repository:** [Link to your Hugging Face Repo]
|
| 38 |
+
- **Paper (Technique):** [RAFT: Adapting Language Model to Domain Specific RAG](https://arxiv.org/abs/2403.10131)
|
|
|
|
| 39 |
|
| 40 |
## Uses
|
| 41 |
|
|
|
|
|
|
|
| 42 |
### Direct Use
|
| 43 |
|
| 44 |
+
This model is intended to be used **with a RAG system** (Retrieval-Augmented Generation). It expects a prompt format that includes retrieved context documents (some relevant, some irrelevant) and a user question. It excels at:
|
| 45 |
+
- Evaluation of options trading strategies.
|
| 46 |
+
- Quantitative risk management analysis.
|
| 47 |
+
- Filtering noise from retrieved financial documents.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
### Out-of-Scope Use
|
| 50 |
|
| 51 |
+
- General chat without context (it is specialized for document-based reasoning).
|
| 52 |
+
- Financial advice (this is a research/development tool, not a financial advisor).
|
| 53 |
+
- Usage without 4-bit quantization on consumer hardware (due to the 32B parameter size).
|
| 54 |
|
| 55 |
## Bias, Risks, and Limitations
|
| 56 |
|
| 57 |
+
The model is fine-tuned on specific financial domain data. It may hallucinate if provided with context documents that contain factually incorrect information (garbage in, garbage out). As a 32B model, it requires significant VRAM to run even with adapters.
|
|
|
|
|
|
|
| 58 |
|
| 59 |
### Recommendations
|
| 60 |
|
| 61 |
+
Users should verify all financial outputs against standard models or verifiable sources. This model should be used as an assistant to a human trader, not an autonomous agent.
|
|
|
|
|
|
|
| 62 |
|
| 63 |
## How to Get Started with the Model
|
| 64 |
|
| 65 |
+
Use the code below to get started with the model. Note that you must load the base model in 4-bit to fit on standard GPUs.
|
| 66 |
+
|
| 67 |
+
```python
|
| 68 |
+
import torch
|
| 69 |
+
from peft import PeftModel
|
| 70 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
|
| 71 |
+
|
| 72 |
+
# 1. Load Base Model (Qwen 2.5 32B)
|
| 73 |
+
base_model_id = "Qwen/Qwen2.5-32B-Instruct"
|
| 74 |
+
adapter_model_id = "Rednote/Qwen-2.5-32B-RAFT-UnifiedQ" # Replace with your actual HF path
|
| 75 |
+
|
| 76 |
+
bnb_config = BitsAndBytesConfig(
|
| 77 |
+
load_in_4bit=True,
|
| 78 |
+
bnb_4bit_quant_type="nf4",
|
| 79 |
+
bnb_4bit_compute_dtype=torch.bfloat16,
|
| 80 |
+
bnb_4bit_use_double_quant=True
|
| 81 |
+
)
|
| 82 |
+
|
| 83 |
+
# Load base model
|
| 84 |
+
base_model = AutoModelForCausalLM.from_pretrained(
|
| 85 |
+
base_model_id,
|
| 86 |
+
quantization_config=bnb_config,
|
| 87 |
+
device_map="auto",
|
| 88 |
+
trust_remote_code=True
|
| 89 |
+
)
|
| 90 |
+
|
| 91 |
+
# 2. Load the RAFT Adapter
|
| 92 |
+
model = PeftModel.from_pretrained(base_model, adapter_model_id)
|
| 93 |
+
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
|
| 94 |
+
|
| 95 |
+
# 3. Inference Example
|
| 96 |
+
prompt = "Context: [Doc 1]... [Doc 2]... \n\n Question: How do I hedge delta risk?"
|
| 97 |
+
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
|
| 98 |
+
outputs = model.generate(**inputs, max_new_tokens=200)
|
| 99 |
+
print(tokenizer.decode(outputs[0]))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|