Transformers documentation
JEV
Model ini disumbangkan ke Hugging Face Transformers pada 2026-11-09.
JEV
Model keputusan, pipeline
decisiondanDecisionConfigbersifat eksperimental: API-nya dapat berubah kapan saja, tanpa masa transisi.
JEV adalah kepala keputusan yang memberi skor pada label token tunggal dengan lapisan linear di token terakhir prompt, dengan batas lunak seperti logit dari kepala model bahasa. JEV diperkenalkan oleh JEV dan juga digunakan oleh GEV.
JevForDecision adalah model dari checkpoint beserta head-nya, seperti ForCausalLM yang merupakan model beserta lm_head-nya. Ia membaca file yang disertakan checkpoint bersama head-nya, berdampingan dengan bobotnya (readout.safetensors dan decision_config.json untuk model keputusan vLLM, head.safetensors dan judge_config.json untuk JEV).
from transformers import pipeline
decide = pipeline("decision", model="autotrust/GEV-26B-Decide")
decide(
{
"state": "I was charged twice for my order and want a refund.",
"questions": {"refund": {"type": "noul", "instructions": "Is a refund requested?"}},
}
)Lihat pipeline keputusan untuk aset gambar.
Tanpa pipeline, model keputusan digunakan seperti generate: konfigurasi keputusan merender prompt untuk setiap pertanyaan (atau satu untuk semuanya) dengan template chat, decide memberikan skor pada opsi setiap pertanyaan, dan Question.answer mengubah skor menjadi jawaban:
from_pretrainedtidak memuat LoRA dari checkpoint yang menyimpannya di subfolder (decision_config.adapter, misalnyaadapter/untuk JEV). Pipeline memuatnya untuk Anda; tanpa pipeline, panggilload_adaptersendiri seperti di bawah, atau model akan menjawab dengan bobot dasar.
import torch
from transformers import AutoTokenizer, JevForDecision
repo = "autotrust/JEV-9B"
model = JevForDecision.from_pretrained(repo, dtype=torch.bfloat16, device_map="auto")
tokenizer, config = AutoTokenizer.from_pretrained(repo), model.decision_config # read from the checkpoint's files
if config.adapter: # JEV keeps its LoRA in a subfolder: `from_pretrained` doesn't load it, the pipeline does
model.load_adapter(repo, adapter_kwargs={"subfolder": config.adapter})
request = {
"state": "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?"},
"urgency": {"type": "score", "criteria": ["Can wait", "This week", "Today", "Now"]},
},
}
answers = {}
for inputs, questions in config.prepare_inputs(request, tokenizer):
scores = model.decide(**inputs, decision_questions=questions)
answers |= {q.name: q.answer(s.softmax(-1).tolist()) for q, s in zip(questions, scores)}Head yang sama membaca 255 kode jawaban dari pplx-decider dan d3, di mana backbone Qwen3.5 mereka memperhatikan seluruh prompt (is_causal=False dalam text_config dari JevForDecision mereka). Head mereka (readout.safetensors) dan pengaturan (decision_config.json) dibaca apa adanya, berdampingan dengan bobot mereka:
pipeline("decision", model="vllm-sr/d3")(request) # or perplexity-ai/pplx-decider-v1.1-27bJevConfig
kelas transformers.JevConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 4096num_verbalizers: int = 24offsets: dict[str, int] | None = Nonesoftcap: float | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinitializer_range: float = 0.02 )
Parameter
- hidden_size (
int, opsional, default4096) — Dimensi dari representasi tersembunyi. - num_verbalizers (
int, opsional, default 24) — Jumlah label satu token yang dinilai oleh head, untuk semua jenis pertanyaan. - offsets (
dict[str, int], opsional, default{"noul" -- 0, "score": 2, "choice": 8}): Baris label pertama untuk setiap tipe pertanyaan: opsi dari sebuah pertanyaan diberi skor berdasarkan baris mulai darioffsets[question.type], secara berurutan. - softcap (
float, opsional) — Soft cap dari skor,softcap * tanh(scores / softcap), seperti logits dari kepala model bahasa. - text_config (
dictatauPreTrainedConfig, opsional) — Konfigurasi dari model yang dibaca oleh head, yaituconfig.jsondari repo-nya. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari JevModel. Kelas ini digunakan untuk membuat instans model Jev sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari autotrust/JEV-9B
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import JevConfig, JevForDecision
>>> model = JevForDecision(JevConfig(hidden_size=4096))Konfigurasi keputusan dari checkpoint yang menyertakan kepala JEV di samping bobotnya, diambil dari file konfigurasinya.
JevForDecision
kelas transformers.JevForDecision
< source >( config: JevConfig )
Parameter
- config (JevConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
JEV (autotrust/JEV-9B): model dari repo-nya dan kepala keputusan, skor linear dari label token tunggal pada token sebelum <|mark|> dari setiap pertanyaan, dibatasi secara lunak seperti logits dari kepala model bahasa.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( input_ids: LongTensormarks: LongTensornum_options: LongTensorquestion_type_ids: LongTensor**kwargs )
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length)) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya. Apa itu input ID?Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- marks (
torch.LongTensordengan bentuk(num_marks,)) — Posisi yang dicatat oleh<|mark|>dari template keputusan: jumlah token dari prompt sebelum masing-masing tanda tersebut. - num_options (
torch.LongTensordengan bentuk(num_questions,)) — Jumlah opsi untuk setiap pertanyaan dalam prompt. - question_type_ids (
torch.LongTensordengan bentuk(num_questions,)) — Jenis setiap pertanyaan dalam prompt, sebagai indeksnya diQuestion.questions_types.
Metode forward JevForDecision menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.