Transformers documentation

JEV

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2026-11-09.

JEV

Model keputusan, pipeline decision dan DecisionConfig bersifat 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_pretrained tidak memuat LoRA dari checkpoint yang menyimpannya di subfolder (decision_config.adapter, misalnya adapter/ untuk JEV). Pipeline memuatnya untuk Anda; tanpa pipeline, panggil load_adapter sendiri 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-27b

JevConfig

kelas transformers.JevConfig

< >

( 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, default 4096) — 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 dari offsets[question.type], secara berurutan.
  • softcap (float, opsional) — Soft cap dari skor, softcap * tanh(scores / softcap), seperti logits dari kepala model bahasa.
  • text_config (dict atau PreTrainedConfig, opsional) — Konfigurasi dari model yang dibaca oleh head, yaitu config.json dari repo-nya.
  • initializer_range (float, opsional, defaultnya 0.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))

decision_config

< >

( head_configs: dicttext_config: dict )

Konfigurasi keputusan dari checkpoint yang menyertakan kepala JEV di samping bobotnya, diambil dari file konfigurasinya.

JevForDecision

kelas transformers.JevForDecision

< >

( 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

< >

( input_ids: LongTensormarks: LongTensornum_options: LongTensorquestion_type_ids: LongTensor**kwargs )

Parameter

  • input_ids (torch.LongTensor dengan 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.

    Apa itu input ID?

  • marks (torch.LongTensor dengan bentuk (num_marks,)) — Posisi yang dicatat oleh <|mark|> dari template keputusan: jumlah token dari prompt sebelum masing-masing tanda tersebut.
  • num_options (torch.LongTensor dengan bentuk (num_questions,)) — Jumlah opsi untuk setiap pertanyaan dalam prompt.
  • question_type_ids (torch.LongTensor dengan bentuk (num_questions,)) — Jenis setiap pertanyaan dalam prompt, sebagai indeksnya di Question.questions_types.

Metode forward JevForDecision menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

Update on GitHub