Arakandar / README.md
Timothyemmanuel's picture
Update README.md
3cf17cb verified
|
Raw History Blame Contribute Delete
3.51 kB
---
base_model: Qwen2
license: apache-2.0
language:
- en
pipeline_tag: text-generation
library_name: transformers
tags:
- financial-analysis
- market-research
- causal-lm
---
# Arakandar 3B Base
Arakandar is a purpose-built local market research assistant. This repository
contains the 3B causal-language-model base used by Arakandar. It is designed to
explain structured market evidence supplied by the application, not to act as
an autonomous trading system.
## Model role
The Arakandar application combines this language model with a deterministic
LightGBM signal model and purpose-built tools:
```text
market data -> technical features -> LightGBM signal -> Arakandar explanation
-> news sentiment and analyst workflow
```
LightGBM remains authoritative for `BUY`, `HOLD`, or `SELL`. Arakandar should
only explain the supplied signal, market values, news evidence, workflow, and
memory. It must not invent prices, news, probabilities, or trades.
This repository contains the base model. The Arakandar conversation
specialization is distributed separately as a LoRA adapter. Load the base model
first, then attach the adapter.
## Base model details
- Architecture: Arakandar 3B causal language model
- Parameters: approximately 3.1B
- Layers: 36
- Attention: grouped-query attention, 16 query heads and 2 key/value heads
- Context window: 32,768 tokens
- Format: Transformers and SafeTensors
- Upstream base: public open-weight foundation adapted for Arakandar
Review the applicable license before redistributing this model publicly.
## Requirements
```text
transformers>=4.45,<5
torch>=2.4
accelerate>=1.0
peft>=0.13 # required only when loading the LoRA adapter
```
An NVIDIA GPU with approximately 10-12 GB of VRAM is recommended for practical
inference. CPU inference is possible but substantially slower. The model should
be loaded once at service startup, not once per request.
## Load the base model
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Timothyemmanuel/Arakandar"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
torch_dtype="auto",
)
messages = [
{
"role": "system",
"content": (
"You are Arakandar, a grounded market research assistant. "
"Use only the supplied evidence. The deterministic signal is authoritative."
),
},
{
"role": "user",
"content": (
"Ticker BBCA.JK. Close 6300. RSI14 43.7. MACD difference -39.47. "
"Deterministic signal HOLD with 67% confidence. Explain the evidence."
),
},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
answer = tokenizer.decode(
outputs[0][inputs["input_ids"].shape[1]:],
skip_special_tokens=True,
)
print(answer.strip())
```
## Load the Arakandar LoRA adapter
The specialized adapter is stored separately, for example:
```text
Timothyemmanuel/Arakandar
```
```python
from peft import PeftModel
adapter_id = "Timothyemmanuel/Arakandar"
model = PeftModel.from_pretrained(model, adapter_id, is_trainable=False)
```
## References
- [Transformers documentation](https://huggingface.co/docs/transformers)
- [PEFT documentation](https://huggingface.co/docs/peft)