d3-nano / README.md
ArthurZ's picture
ArthurZ HF Staff
JEV head of the answer-code readout
83ed7f2 verified
|
Raw History Blame Contribute Delete
2.69 kB
---
license: apache-2.0
base_model: vllm-sr/d3-nano
pipeline_tag: zero-shot-classification
library_name: transformers
tags: [decision-model, system-one]
---
# d3-nano for 🤗 Transformers
The 255-way answer-code readout of [vllm-sr/d3-nano](https://huggingface.co/vllm-sr/d3-nano) as a JEV decision head, for the `decision`
pipeline. This repo holds the readout, the tokenizer and the prompt; the backbone loads from the original repo,
with bidirectional full attention as it was trained.
## Questions
Each question is answered with a probability for every option: `noul` (yes/no), `choice` and `score`.
```python
from transformers import pipeline
decide = pipeline("decision", model="ArthurZ/d3-nano")
answers = decide(
{
"state": {"customer": "Lena", "message": "I was charged twice for my order and I want my money back today."},
"questions": {
"refund": {"type": "noul", "instructions": "Does the customer ask for a refund?"},
"tone": {"type": "choice", "instructions": "What is the tone?", "criteria": {"calm": "Polite", "angry": None}},
"urgency": {"type": "score", "instructions": "How urgent is it?", "criteria": ["Can wait", "This week", "Today", "Now"]},
},
}
)
answers["refund"]["noul"] # probability of true
answers["tone"]["choice"], answers["tone"]["probabilities"]
answers["urgency"]["score"] # expected level, 0 to 3
```
## Same questions, new states
A bare state is asked the questions of the last request, or the ones given up front:
```python
decide = pipeline(
"decision",
model="ArthurZ/d3-nano",
questions={"spam": {"type": "noul", "instructions": "Is this spam?"}},
)
decide("WIN A FREE IPHONE!!! click here to claim your prize")
decide("Hi! The parcel arrived, thanks a lot.")
```
## Images
Images are `assets`, as in the System One API: a placeholder in the state is replaced with its image. An asset is a
PIL image, a path, a URL or `{"type": "image", "format": "png", "data_base64": ...}`.
```python
decide(
{
"state": "The customer sent photo-1 and asks if the product is damaged.",
"assets": {"photo-1": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"},
"questions": {"damaged": {"type": "noul", "instructions": "Is the product in the photo damaged?"}},
}
)
```
Converted with
[`convert_decider_to_hf.py`](https://github.com/huggingface/transformers/blob/main/src/transformers/models/jev/convert_decider_to_hf.py).
Its prompts are token-for-token those of the original code (`decision_test.json`), except that control tokens written
in a request are escaped instead of read as such.