Transformers documentation

Generasi

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

and get access to the augmented documentation experience

to get started

Generasi

Setiap framework memiliki metode generate untuk generasi teks yang diimplementasikan di kelas GenerationMixin masing-masing:

Anda dapat memparametrisasi metode generate dengan instance kelas GenerationConfig. Silakan merujuk ke kelas ini untuk daftar lengkap parameter generasi, yang mengontrol perilaku metode generasi.

Untuk mempelajari cara memeriksa konfigurasi generasi model, apa saja nilai defaultnya, cara mengubah parameter secara ad hoc, dan cara membuat serta menyimpan konfigurasi generasi yang dikustomisasi, silakan lihat panduan strategi generasi teks. Panduan ini juga menjelaskan cara menggunakan fitur terkait, seperti streaming token.

GenerationConfig

kelas transformers.GenerationConfig

< >

( **kwargs )

Parameter yang mengontrol panjang output

  • max_length (int, opsional) — max_new_tokens direkomendasikan untuk mengontrol berapa banyak token yang dihasilkan model. max_length tetap ada untuk kompatibilitas mundur.
  • max_new_tokens (int, opsional) — Jumlah maksimum token yang akan dihasilkan, mengabaikan jumlah token dalam prompt.
  • min_length (int, opsional) — Panjang minimum dari urutan yang akan dihasilkan. Bersesuaian dengan panjang prompt input + min_new_tokens. Efeknya ditimpa oleh min_new_tokens, jika juga disetel.
  • min_new_tokens (int, opsional) — Jumlah minimum token yang akan dihasilkan, mengabaikan jumlah token dalam prompt.
  • early_stopping (bool atau str, opsional) — Mengontrol kondisi penghentian untuk metode berbasis beam, seperti beam-search. Menerima nilai-nilai berikut: True, di mana generasi berhenti begitu ada num_beams kandidat lengkap; False, di mana heuristik diterapkan dan generasi berhenti ketika sangat tidak mungkin menemukan kandidat yang lebih baik; "never", di mana prosedur beam search hanya berhenti ketika tidak mungkin lagi ada kandidat yang lebih baik (algoritma beam search kanonik).
  • max_time (float, opsional) — Jumlah waktu maksimum yang Anda izinkan untuk komputasi berjalan, dalam satuan detik. generation akan tetap menyelesaikan pass saat ini setelah waktu yang dialokasikan telah terlewati.
  • stop_strings (str atau list[str], opsional) — String atau daftar string yang harus mengakhiri generasi jika model mengoutputkannya.

Parameter yang mengontrol strategi generasi yang digunakan

  • do_sample (bool) — Apakah akan menggunakan sampling; jika tidak, gunakan greedy decoding.
  • num_beams (int, opsional) — Jumlah beam untuk beam search. 1 berarti tidak ada beam search.
  • use_mtp — (bool): Apakah akan menggunakan Multi-Token Prediction (MTP) jika model mendukungnya.

Parameter yang mengontrol cache

  • use_cache (bool) — Apakah model harus menggunakan perhatian kunci/nilai terakhir yang lalu (jika berlaku untuk model) untuk mempercepat decoding.
  • cache_implementation (str, opsional) — Nama kelas cache yang akan diinstansiasi di generate, untuk decoding yang lebih cepat. Nilai yang mungkin adalah:

    Jika tidak ada yang ditentukan, kami akan menggunakan cache default untuk model (yang sering kali adalah DynamicCache). Lihat dokumentasi cache kami untuk informasi lebih lanjut.

  • cache_config (dict, opsional, default None) — Argumen yang digunakan dalam kelas cache key-value dapat diteruskan melalui cache_config.
  • max_cache_len (int, opsional) — Hanya digunakan dengan cache statis (cache_implementation diatur ke "static" atau "offloaded_static"). Menetapkan ukuran awal cache ke panjang ini alih-alih max_length dari panggilan saat ini. Atur sekali ke panggilan terbesar yang Anda perkirakan agar panggilan generate() berulang dengan prompt yang lebih panjang atau max_new_tokens yang lebih besar (hingga batas ini) dapat menggunakan ulang cache yang sama alih-alih memicu alokasi ulang dan kompilasi ulang torch.compile.

Parameter untuk memanipulasi logits output model

  • temperature (float, opsional) — Nilai yang digunakan untuk memodulasi probabilitas token berikutnya. Nilai ini diatur dalam file generation_config.json model. Jika tidak diatur, nilai defaultnya adalah 1.0
  • top_k (int, opsional) — Jumlah token kosakata dengan probabilitas tertinggi yang dipertahankan untuk penyaringan top-k. Nilai ini diatur dalam file generation_config.json model. Jika tidak diatur, nilai defaultnya adalah 50.
  • top_p (float, opsional) — Jika diatur ke float < 1, hanya kumpulan token paling probabel terkecil dengan probabilitas yang berjumlah top_p atau lebih tinggi yang dipertahankan untuk generasi. Nilai ini diatur dalam file generation_config.json model. Jika tidak diatur, nilai default adalah 1.0
  • min_p (float, opsional) — Probabilitas minimum token, yang akan diskalakan oleh probabilitas token yang paling mungkin. Nilainya harus berada di antara 0 dan 1. Nilai tipikal berada dalam rentang 0,01-0,2, dengan selektivitas yang sebanding dengan pengaturan top_p dalam rentang 0,99-0,8 (gunakan kebalikan dari nilai top_p normal).
  • top_h (float, opsional) — Faktor penskalaan anggaran entropi, yang mengontrol seberapa besar entropi distribusi yang dipertahankan saat pengambilan sampel. Harus berupa nilai antara 0 dan 1. Pada setiap langkah, token diurutkan berdasarkan probabilitas, dan prefiks token terkecil yang dipertahankan adalah yang entropi ternormalisasi ulang-nya kurang dari atau sama dengan top_h kali entropi dari distribusi penuh. Nilai yang lebih kecil (misalnya, 0,2–0,5) menghasilkan output yang lebih fokus dan deterministik, sedangkan nilai yang mendekati 1,0 memungkinkan lebih banyak keacakan dan keberagaman. Nilai tipikal berada dalam rentang 0,3–0,6.
  • typical_p (float, opsional) — Ukuran tipikalitas lokal mengukur seberapa mirip probabilitas kondisional untuk memprediksi token target berikutnya dengan probabilitas kondisional yang diharapkan untuk memprediksi token acak berikutnya, mengingat teks parsial yang sudah dihasilkan. Jika diatur ke float < 1, himpunan terkecil dari token-token yang paling tipikal secara lokal dengan probabilitas yang berjumlah typical_p atau lebih tinggi akan dipertahankan untuk generasi. Lihat makalah ini untuk detail lebih lanjut.
  • epsilon_cutoff (float, opsional) — Jika diatur ke float yang benar-benar berada di antara 0 dan 1, hanya token dengan probabilitas kondisional yang lebih besar dari epsilon_cutoff yang akan diambil sampelnya. Dalam makalah, nilai yang disarankan berkisar dari 3e-4 hingga 9e-4, tergantung pada ukuran model. Lihat Truncation Sampling as Language Model Desmoothing untuk detail lebih lanjut.
  • eta_cutoff (float, opsional) — Sampling eta adalah hibrida dari sampling tipikal lokal dan sampling epsilon. Jika diatur ke float yang benar-benar berada di antara 0 dan 1, sebuah token hanya dipertimbangkan jika nilainya lebih besar dari eta_cutoff atau sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits))). Istilah terakhir secara intuitif adalah probabilitas token berikutnya yang diharapkan, yang diskalakan dengan sqrt(eta_cutoff). Dalam makalahnya, nilai yang disarankan berkisar dari 3e-4 hingga 2e-3, tergantung pada ukuran model. Lihat Truncation Sampling as Language Model Desmoothing untuk detail lebih lanjut.
  • repetition_penalty (float, opsional) — Parameter untuk penalti pengulangan. 1.0 berarti tidak ada penalti. Lihat makalah ini untuk detail lebih lanjut.
  • encoder_repetition_penalty (float, opsional) — Parameter untuk encoder_repetition_penalty. Denda eksponensial untuk urutan yang tidak ada di input asli. 1.0 berarti tidak ada denda.
  • length_penalty (float, opsional) — Hukuman eksponensial terhadap panjang yang digunakan dengan generasi berbasis beam. Hukuman ini diterapkan sebagai eksponen terhadap panjang urutan, yang kemudian digunakan untuk membagi skor urutan. Karena skor adalah kemungkinan log dari urutan (yaitu negatif), length_penalty > 0.0 mendorong urutan yang lebih panjang, sedangkan length_penalty < 0.0 mendorong urutan yang lebih pendek.
  • no_repeat_ngram_size (int, opsional) — Jika diatur ke int > 0, semua ngram dengan ukuran tersebut hanya dapat muncul sekali.
  • bad_words_ids (list[list[int]], opsional) — Daftar dari daftar id token yang tidak diizinkan untuk dihasilkan. Periksa NoBadWordsLogitsProcessor untuk dokumentasi dan contoh lebih lanjut.
  • renormalize_logits (bool) — Apakah logits akan dinormalisasi ulang setelah semua logits processors diterapkan (termasuk yang kustom). Sangat disarankan untuk mengatur flag ini ke True karena algoritma pencarian mengasumsikan bahwa skor logits telah dinormalisasi, tetapi beberapa logit processors dapat merusak normalisasi tersebut.
  • forced_bos_token_id (int, opsional, defaultnya model.config.forced_bos_token_id) — ID token yang dipaksa sebagai token pertama yang dihasilkan setelah decoder_start_token_id. Berguna untuk model multibahasa seperti mBART di mana token pertama yang dihasilkan harus berupa token bahasa target.
  • forced_eos_token_id (int or list[int], *optional*, defaults to model.config.forced_eos_token_id) -- The id of the token to force as the last generated token when max_length` is reached. Optionally, use a list to set multiple end-of-sequence tokens.
  • remove_invalid_values (bool) — Apakah akan menghapus kemungkinan output nan dan inf dari model untuk mencegah metode generasi mengalami crash. Perhatikan bahwa penggunaan remove_invalid_values dapat memperlambat generasi.
  • exponential_decay_length_penalty (tuple(int, float), opsional) — Tuple ini menambahkan penalti panjang yang meningkat secara eksponensial, setelah sejumlah token tertentu telah dihasilkan. Tuple tersebut harus terdiri dari: (start_index, decay_factor) di mana start_index menunjukkan di mana penalti dimulai dan decay_factor mewakili faktor peluruhan eksponensial
  • suppress_tokens (list[int], opsional) — Daftar token yang akan ditekan saat generasi. Logit processor SuppressTokens akan mengatur log prob mereka menjadi -inf sehingga tidak diambil sampel.
  • begin_suppress_tokens (list[int], opsional) — Daftar token yang akan ditekan di awal generasi. Prosesor logit SuppressBeginTokens akan mengatur probabilitas log mereka menjadi -inf sehingga tidak diambil sampel.
  • sequence_bias (dict[tuple[int], float], opsional)) — Kamus yang memetakan urutan token ke istilah bias-nya. Bias positif meningkatkan peluang urutan tersebut dipilih, sedangkan bias negatif melakukan kebalikannya. Periksa SequenceBiasLogitsProcessor untuk dokumentasi dan contoh lebih lanjut.
  • token_healing (bool) — Memperbaiki token ekor pada prompt dengan menggantinya dengan ekstensi yang sesuai. Hal ini meningkatkan kualitas penyelesaian untuk prompt yang terpengaruh oleh bias tokenisasi serakah.
  • guidance_scale (float, opsional) — Skala panduan untuk classifier free guidance (CFG). CFG diaktifkan dengan mengatur guidance_scale > 1. Skala panduan yang lebih tinggi mendorong model untuk menghasilkan sampel yang lebih erat kaitannya dengan prompt input, biasanya dengan mengorbankan kualitas yang lebih buruk.
  • watermarking_config (BaseWatermarkingConfig atau dict, opsional) — Argumen yang digunakan untuk memberi watermark pada keluaran model dengan menambahkan bias kecil pada himpunan token “green” yang dipilih secara acak. Lihat dokumentasi SynthIDTextWatermarkingConfig dan WatermarkingConfig untuk detail lebih lanjut. Jika diteruskan sebagai Dict, akan dikonversi menjadi WatermarkingConfig secara internal.

Parameter yang mendefinisikan variabel keluaran dari generate

  • num_return_sequences (int, opsional) — Jumlah urutan yang dikembalikan dan dihitung secara independen untuk setiap elemen dalam batch.
  • output_attentions (bool) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_scores (bool) — Apakah skor prediksi akan dikembalikan atau tidak. Lihat scores di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_logits (bool) — Apakah akan mengembalikan skor logit prediksi yang belum diproses. Lihat logits di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict_in_generate (bool) — Apakah akan mengembalikan ModelOutput, alih-alih hanya mengembalikan urutan yang dihasilkan. Flag ini harus disetel ke True untuk mengembalikan cache generasi (ketika use_cache adalah True) atau output opsional (lihat flag yang diawali dengan output_)

Token khusus yang dapat digunakan saat proses generasi

  • pad_token_id (int, opsional) — ID dari token padding.
  • bos_token_id (int, opsional) — ID dari token awal-sekuens.
  • eos_token_id (Union[int, list[int]], opsional) — ID dari token end-of-sequence. Secara opsional, gunakan daftar untuk mengatur beberapa token end-of-sequence.

Parameter generasi yang hanya ada pada model encoder-decoder

  • encoder_no_repeat_ngram_size (int, opsional) — Jika diatur ke int > 0, semua ngram dengan ukuran tersebut yang muncul di encoder_input_ids tidak dapat muncul di decoder_input_ids.
  • decoder_start_token_id (int atau list[int], opsional) — Jika model encoder-decoder memulai decoding dengan token yang berbeda dari bos, id token tersebut atau daftar dengan panjang batch_size. Menunjukkan daftar memungkinkan id awal yang berbeda untuk setiap elemen dalam batch (contohnya model multibahasa dengan bahasa target yang berbeda dalam satu batch)

Parameter generasi yang khusus untuk generasi asisten

  • is_assistant (bool) — Apakah model tersebut adalah model asisten (draft).
  • num_assistant_tokens (int, opsional) — Menentukan jumlah token spekulatif yang akan dihasilkan oleh model asisten sebelum diperiksa oleh model target pada setiap iterasi. Nilai num_assistant_tokens yang lebih tinggi membuat generasi menjadi lebih spekulatif : Jika model asisten memiliki performa yang baik, percepatan yang lebih besar dapat dicapai; jika model asisten memerlukan banyak koreksi, percepatan yang lebih rendah akan dicapai.
  • num_assistant_tokens_schedule (str, opsional) — Menentukan jadwal perubahan token asisten maksimum selama inferensi.
    • "heuristic": Ketika semua token spekulatif benar, tingkatkan num_assistant_tokens sebesar 2, selain itu kurangi sebesar 1. Nilai num_assistant_tokens bersifat persisten di antara beberapa panggilan generasi dengan model asisten yang sama.
    • "heuristic_transient": Sama seperti "heuristic" tetapi num_assistant_tokens direset ke nilai awalnya setelah setiap panggilan generasi.
    • "constant": num_assistant_tokens tetap tidak berubah selama proses generasi
  • assistant_confidence_threshold (float, opsional) — Ambang batas kepercayaan untuk model asisten. Jika tingkat kepercayaan model asisten terhadap prediksinya untuk token saat ini lebih rendah dari ambang batas ini, model asisten akan menghentikan iterasi generasi token saat ini, bahkan jika jumlah token spekulatif (didefinisikan oleh num_assistant_tokens) belum tercapai. Ambang batas kepercayaan asisten disesuaikan sepanjang iterasi spekulatif untuk mengurangi jumlah forward pass draft dan target yang tidak perlu, dengan bias untuk menghindari false negative. Nilai assistant_confidence_threshold bersifat persisten di antara beberapa panggilan generasi dengan model asisten yang sama. Ini adalah versi tanpa supervisi dari dynamic speculation lookahead dari Dynamic Speculation Lookahead Accelerates Speculative Decoding of Large Language Models https://huggingface.co/papers/2405.04304.
  • prompt_lookup_num_tokens (int, opsional) — Jumlah token yang akan dioutput sebagai token kandidat.
  • max_matching_ngram_size (int, opsional) — Ukuran ngram maksimum yang dipertimbangkan untuk pencocokan dalam prompt. Bawaan adalah 2 jika tidak diberikan.
  • assistant_early_exit(int, optional) — Jika diset ke bilangan bulat positif, early exit dari model akan digunakan sebagai asisten. Hanya dapat digunakan dengan model yang mendukung early exit (yaitu model di mana logits dari lapisan antara dapat diinterpretasikan oleh LM head).
  • assistant_lookbehind(int, optional) — Jika diset ke bilangan bulat positif, proses re-encoding akan mempertimbangkan assistant_lookbehind token asisten terakhir untuk menyelaraskan token dengan benar. Hanya dapat digunakan dengan tokenizer yang berbeda dalam speculative decoding. Lihat blog ini untuk detail lebih lanjut.
  • target_lookbehind(int, opsional) — Jika diset ke bilangan bulat positif, proses re-encoding akan mempertimbangkan target_lookbehind token target terakhir untuk menyelaraskan token dengan benar. Hanya dapat digunakan dengan tokenizer yang berbeda dalam speculative decoding. Lihat blog ini untuk detail lebih lanjut.
  • assistant_ensemble_weight (float, opsional) — Mengaktifkan verifikasi ensemble statis dalam speculative decoding. Jika diatur ke nilai dalam (0.0, 1.0), verifier menerima token terhadap campuran w * p_target + (1 - w) * q_draft alih-alih p_target, menukar bias distribusi yang terkendali untuk tingkat penerimaan yang lebih tinggi. Default adalah None, yang menjaga decoding tetap lossless. Memerlukan model asisten untuk mengembalikan logits, sehingga tidak kompatibel dengan prompt lookup decoding.
  • speculation_type (str, opsional) — Jenis spekulasi yang diminta. Nilai yang diterima adalah dflash.

Parameter terkait performa dan kompilasi

  • compile_config (CompileConfig, opsional) — Jika menggunakan cache yang dapat dikompilasi, ini mengontrol bagaimana generate akan compile jalur maju (forward pass) untuk inferensi yang lebih cepat.
  • disable_compile (bool) — Apakah akan menonaktifkan kompilasi otomatis dari forward pass. Kompilasi otomatis terjadi ketika kriteria tertentu terpenuhi, termasuk penggunaan cache yang dapat dikompilasi. Silakan buka issue jika Anda menemukan kebutuhan untuk menggunakan flag ini.

Kelas yang menyimpan konfigurasi untuk tugas generasi. Panggilan generate mendukung metode generasi berikut untuk model text-decoder, text-to-text, speech-to-text, dan vision-to-text:

  • greedy decoding jika num_beams=1 dan do_sample=False
  • multinomial sampling jika num_beams=1 dan do_sample=True
  • dekoding beam-search jika num_beams>1 dan do_sample=False
  • beam-search multinomial sampling jika num_beams>1 dan do_sample=True
  • assisted decoding jika assistant_model atau prompt_lookup_num_tokens diteruskan ke .generate()

Untuk mempelajari lebih lanjut tentang strategi decoding, lihat panduan strategi generasi teks.

Sejumlah besar flag ini mengontrol logits atau kriteria penghentian dari generasi. Pastikan Anda memeriksa kelas terkait generate untuk deskripsi lengkap tentang manipulasi yang mungkin, serta contoh penggunaannya.

Catatan: field konfigurasi yang masih None akan ditimpa oleh GenerationConfig._get_default_generation_params() selama loop generasi. Jika Anda ingin menggunakan nilai yang berbeda untuk field-field ini, pastikan untuk menyetelnya secara eksplisit dalam konfigurasi generasi.

from_pretrained

< >

( pretrained_model_name: str | os.PathLikeconfig_file_name: str | os.PathLike | None = Nonecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → GenerationConfig

Parameter

  • pretrained_model_name (str atau os.PathLike) — Ini bisa berupa:
    • sebuah string, model id dari konfigurasi model pretrained yang dihosting di dalam repo model di huggingface.co.
    • path ke direktori yang berisi file konfigurasi yang disimpan menggunakan metode save_pretrained(), misalnya ./my_model_directory/.
  • config_file_name (str atau os.PathLike, opsional, defaultnya "generation_config.json") — Nama file konfigurasi generasi JSON yang akan dimuat dari pretrained_model_name.
  • cache_dir (str atau os.PathLike, opsional) — Path ke direktori tempat konfigurasi model pretrained yang diunduh harus di-cache jika cache standar tidak digunakan.
  • force_download (bool, opsional, default False) — Apakah akan memaksa (mengunduh ulang) file konfigurasi dan menimpa versi yang di-cache jika sudah ada.
  • proxies (dict[str, str], opsional) — Kamus server proxy untuk digunakan berdasarkan protokol atau endpoint, misalnya {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan.
  • token (str atau bool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika True, atau tidak ditentukan, akan menggunakan token yang dihasilkan saat menjalankan hf auth login (disimpan di ~/.huggingface).
  • revision (str, opsional, default ke "main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, atau commit id, karena kami menggunakan sistem berbasis git untuk menyimpan model dan artefak lainnya di huggingface.co, jadi revision bisa berupa identifikasi apa pun yang diizinkan oleh git.

    Untuk menguji pull request yang Anda buat di Hub, Anda dapat meneruskan revision="refs/pr/<pr_number>".

  • return_unused_kwargs (bool, opsional, defaultnya False) — Jika False, maka fungsi ini hanya mengembalikan objek konfigurasi akhir.

    Jika True, maka fungsi ini mengembalikan Tuple(config, unused_kwargs) di mana unused_kwargs adalah kamus yang terdiri dari pasangan kunci/nilai yang kuncinya bukan atribut konfigurasi: yaitu, bagian dari kwargs yang tidak digunakan untuk memperbarui config dan diabaikan.

  • subfolder (str, opsional, defaultnya "") — Jika file yang relevan berada di dalam subfolder dari repo model di huggingface.co, Anda dapat menentukan nama folder di sini.
  • kwargs (dict[str, Any], opsional) — Nilai dalam kwargs untuk kunci mana pun yang merupakan atribut konfigurasi akan digunakan untuk menimpa nilai yang dimuat. Perilaku terkait pasangan kunci/nilai yang kuncinya bukan atribut konfigurasi dikendalikan oleh parameter kata kunci return_unused_kwargs.

Mengembalikan

GenerationConfig

Objek konfigurasi yang diinstansiasi dari model pretrained ini.

Instansiasi GenerationConfig dari file konfigurasi generasi.

Contoh:

>>> from transformers import GenerationConfig

>>> # Download configuration from huggingface.co and cache.
>>> generation_config = GenerationConfig.from_pretrained("openai-community/gpt2")

>>> # E.g. config was saved using *save_pretrained('./test/saved_model/')*
>>> generation_config.save_pretrained("./test/saved_model/")
>>> generation_config = GenerationConfig.from_pretrained("./test/saved_model/")

>>> # You can also specify configuration names to your generation configuration file
>>> generation_config.save_pretrained("./test/saved_model/", config_file_name="my_configuration.json")
>>> generation_config = GenerationConfig.from_pretrained("./test/saved_model/", "my_configuration.json")

>>> # If you'd like to try a minor variation to an existing configuration, you can also pass generation
>>> # arguments to `.from_pretrained()`. Be mindful that typos and unused arguments will be ignored
>>> generation_config, unused_kwargs = GenerationConfig.from_pretrained(
...     "openai-community/gpt2", top_k=1, foo=False, do_sample=True, return_unused_kwargs=True
... )
>>> generation_config.top_k
1

>>> unused_kwargs
{'foo': False}

from_model_config

< >

( model_config: typing.Union[ForwardRef('PreTrainedConfig'), dict] ) → GenerationConfig

Parameter

  • model_config (PreTrainedConfig | dict) — Konfigurasi model yang akan digunakan untuk menginstansiasi konfigurasi generasi.

Mengembalikan

GenerationConfig

Objek konfigurasi yang diinstansiasi dari parameter tersebut.

Membuat instans GenerationConfig dari PreTrainedConfig. Fungsi ini berguna untuk mengonversi objek PreTrainedConfig lama, yang mungkin berisi parameter generasi, menjadi GenerationConfig yang berdiri sendiri.

save_pretrained

< >

( save_directory: str | os.PathLikeconfig_file_name: str | os.PathLike | None = Nonepush_to_hub: bool = False**kwargs )

Parameter

  • save_directory (str atau os.PathLike) — Direktori tempat file konfigurasi JSON akan disimpan (akan dibuat jika belum ada).
  • config_file_name (str atau os.PathLike, opsional, default "generation_config.json") — Nama file JSON konfigurasi generasi yang akan disimpan di save_directory.
  • push_to_hub (bool, opsional, default False) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju dengan repo_id (defaultnya adalah nama save_directory di namespace Anda).
  • kwargs (dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().

Simpan objek konfigurasi generasi ke direktori save_directory agar dapat dimuat ulang menggunakan metode kelas from_pretrained().

perbarui

< >

( defaults_only = Falseallow_custom_entries = False**kwargs ) → dict[str, Any]

Parameter

  • defaults_only (bool, opsional, defaultnya False) — Apakah akan memperbarui semua kunci dalam config dengan kwargs atau hanya yang diset ke None (yaitu nilai default).
  • allow_custom_entries (bool, opsional, defaultnya False) — Apakah mengizinkan pembaruan entri kustom ke dalam konfigurasi dengan kwargs jika tidak ada di konfigurasi saat ini.
  • kwargs (dict[str, Any]) — Kamus atribut untuk memperbarui kelas ini secara sementara.

Mengembalikan

dict[str, Any]

Dictionary yang berisi semua pasangan kunci-nilai yang tidak digunakan untuk memperbarui instance.

Memperbarui atribut dari instance kelas ini dengan atribut dari kwargs jika cocok dengan atribut yang sudah ada, dan mengembalikan semua kwargs yang tidak terpakai.

validate

< >

( strict = Falseuser_set_attributes: set[str] | None = None )

Parameter

  • strict (bool) — Jika True, lempar pengecualian untuk setiap masalah yang ditemukan. Jika False, hanya catat masalah.
  • user_set_attributes (set[str], opsional) — Nama-nama atribut yang secara eksplisit disediakan oleh pemanggil. Ketika disediakan, peringatan “masalah kecil” tentang kombinasi bendera yang saling bertentangan (misalnya bendera khusus sampling disetel sedangkan do_sample=False) hanya muncul jika bendera yang bertentangan tersebut ada dalam set ini — menghindari peringatan yang berisik ketika nilainya diwarisi dari generation_config.json bawaan model. Ketika None, semua atribut yang disetel dianggap disetel oleh pengguna (perilaku yang kompatibel mundur untuk panggilan validate() langsung).

Memvalidasi nilai atribut dari instans GenerationConfig. Membuang pengecualian jika terdapat parameterisasi yang dapat dideteksi sebagai salah hanya dari instans konfigurasi.

Perhatikan bahwa beberapa parameter yang tidak divalidasi di sini sebaiknya divalidasi pada saat runtime generate, karena parameter tersebut mungkin bergantung pada input lain dan/atau model, seperti parameter yang berkaitan dengan panjang generasi.

get_generation_mode

< >

( assistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = None ) → GenerationMode

Parameter

  • assistant_model (PreTrainedModel, opsional) — Model asisten yang akan digunakan untuk generasi terbantu. Jika diset, mode generasi akan menjadi generasi terbantu.

Mengembalikan

GenerationMode

Mode generasi yang dipicu oleh instance.

Mengembalikan mode generasi yang dipicu oleh instans GenerationConfig.

GenerationMixin

kelas transformers.GenerationMixin

< >

( )

Kelas yang berisi semua fungsi untuk generasi teks auto-regresif, digunakan sebagai mixin dalam kelas model. Mengwarisi dari kelas ini menyebabkan model memiliki perilaku khusus terkait generasi, seperti memuat GenerationConfig pada waktu inisialisasi atau memastikan pengujian terkait generate dijalankan di CI transformers.

Kelas model harus mewarisi dari GenerationMixin untuk memungkinkan pemanggilan metode seperti generate, atau ketika telah mendefinisikan metode generate kustom yang bergantung pada GenerationMixin, baik secara langsung maupun tidak langsung, yang secara umum berbagi antarmuka yang sama untuk metode publik seperti generate. Tiga contoh:

  • LlamaForCausalLM harus mewarisi dari GenerationMixin untuk memungkinkan pemanggilan generate dan metode publik lainnya dalam mixin;
  • BlipForQuestionAnswering memiliki metode generate khusus yang secara aproximatif berbagi antarmuka yang sama dengan GenerationMixin.generate (memiliki beberapa argumen tambahan, dan output yang sama). Fungsi tersebut juga memanggil GenerationMixin.generate secara tidak langsung, melalui model internal. Dengan demikian, BlipForQuestionAnswering seharusnya mewarisi dari GenerationMixin untuk mendapatkan manfaat dari semua otomasi terkait generasi di basis kode kami;
  • BarkModel memiliki metode generate khusus dan salah satu model internalnya memanggil GenerationMixin.generate. Namun, generate miliknya tidak berbagi antarmuka yang sama dengan GenerationMixin.generate. Dalam kasus ini, BarkModel TIDAK seharusnya mewarisi dari GenerationMixin, karena hal itu merusak antarmuka generate.

Kelas ini mengekspos generate(), yang dapat digunakan untuk:

  • greedy decoding jika num_beams=1 dan do_sample=False
  • multinomial sampling jika num_beams=1 dan do_sample=True
  • dekoding beam-search jika num_beams>1 dan do_sample=False
  • beam-search multinomial sampling jika num_beams>1 dan do_sample=True
  • assisted decoding jika assistant_model atau prompt_lookup_num_tokens diteruskan ke .generate()

Untuk mempelajari lebih lanjut tentang strategi decoding, lihat panduan strategi generasi teks.

generate

< >

( inputs: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonelogits_processor: transformers.generation.logits_process.LogitsProcessorList | None = Nonestopping_criteria: transformers.generation.stopping_criteria.StoppingCriteriaList | None = Noneprefix_allowed_tokens_fn: collections.abc.Callable[[int, torch.Tensor], list[int]] | None = Nonesynced_gpus: bool | None = Noneassistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = Nonestreamer: typing.Optional[ForwardRef('BaseStreamer')] = Nonenegative_prompt_ids: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonecustom_generate: str | collections.abc.Callable | None = None**kwargs ) → ModelOutput or torch.LongTensor

Parameter

  • inputs (torch.Tensor dengan bentuk yang bervariasi tergantung pada modalitas, opsional) — Urutan yang digunakan sebagai prompt untuk generasi atau sebagai input model ke encoder. Jika None, metode ini menginisialisasinya dengan bos_token_id dan ukuran batch 1. Untuk model decoder-only, inputs harus dalam format input_ids. Untuk model encoder-decoder, inputs dapat mewakili salah satu dari input_ids, input_values, input_features, atau pixel_values.
  • generation_config (GenerationConfig, opsional) — Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi. **kwargs yang diteruskan ke generate dan cocok dengan atribut dari generation_config akan menimpanya. Jika generation_config tidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file model generation_config.json, jika ada; 2) dari konfigurasi model. Perhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari GenerationConfig, yang dokumentasinya harus diperiksa untuk memparametrisasi generasi.
  • logits_processor (LogitsProcessorList, opsional) — Prosesor logits kustom yang melengkapi prosesornya logits default yang dibangun dari argumen dan konfigurasi generasi. Jika prosesornya logits yang sudah dibuat dengan argumen atau konfigurasi generasi dilewatkan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut.
  • stopping_criteria (StoppingCriteriaList, opsional) — Kriteria penghentian kustom yang melengkapi kriteria penghentian default yang dibangun dari argumen dan konfigurasi generasi. Jika kriteria penghentian yang di-pass sudah dibuat dengan argumen atau konfigurasi generasi, sebuah error akan dilempar. Jika kriteria penghentian Anda bergantung pada input scores, pastikan Anda meng-pass return_dict_in_generate=True, output_scores=True ke generate. Fitur ini ditujukan untuk pengguna tingkat lanjut.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], opsional) — Jika disediakan, fungsi ini membatasi pencarian beam hanya pada token yang diizinkan di setiap langkah. Jika tidak disediakan, tidak ada batasan yang diterapkan. Fungsi ini mengambil 2 argumen: ID batch batch_id dan input_ids. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batch batch_id dan token yang sebelumnya dihasilkan inputs_ids. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam Autoregressive Entity Retrieval.
  • synced_gpus (bool, opsional) — Apakah akan terus menjalankan loop while hingga max_length. Kecuali di-override, flag ini akan diset ke True jika menggunakan FullyShardedDataParallel atau DeepSpeed ZeRO Stage 3 dengan beberapa GPU untuk menghindari deadlock jika satu GPU selesai menghasilkan sebelum GPU lainnya. Jika tidak, defaultnya adalah False.
  • assistant_model (PreTrainedModel, opsional) — Model asisten yang dapat digunakan untuk mempercepat generasi. Model asisten harus memiliki tokenizer yang persis sama. Percepatan tercapai ketika memprediksi token kandidat dengan model asisten jauh lebih cepat daripada menjalankan generasi dengan model yang Anda panggil generate dari. Oleh karena itu, model asisten harus jauh lebih kecil.
  • streamer (BaseStreamer, opsional) — Objek yang akan digunakan untuk streaming urutan yang dihasilkan. Token yang dihasilkan diteruskan melalui streamer.put(token_ids) dan objek tersebut bertanggung jawab untuk pemrosesan lebih lanjut.
  • negative_prompt_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Prompt negatif yang diperlukan oleh beberapa prosesor seperti CFG. Ukuran batch harus sesuai dengan ukuran batch input. Ini adalah fitur eksperimental, yang dapat mengalami perubahan API yang merusak (breaking changes) pada versi mendatang.
  • negative_prompt_attention_mask (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Attention_mask untuk negative_prompt_ids.
  • custom_generate (str atau Callable, opsional) — Salah satu dari berikut ini:
    • str (nama repositori Hugging Face Hub): menjalankan fungsi generate kustom yang didefinisikan di custom_generate/generate.py pada repositori tersebut, bukan metode generate standar. Repositori ini sepenuhnya menggantikan logika generasi, dan tipe pengembaliannya dapat berbeda.
    • str (jalur repositori lokal): sama seperti di atas tetapi dari jalur lokal. Direktori lokal juga memerlukan trust_remote_code=True karena custom_generate/generate.py lokal dieksekusi.
    • Callable: generate akan melakukan langkah-langkah persiapan input yang biasa, lalu memanggil callable yang diberikan untuk menjalankan loop decoding. Untuk informasi lebih lanjut, lihat dokumentasinya.
  • kwargs (dict[str, Any], opsional) — Parametrisasi ad hoc untuk generation_config dan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsi forward dari model. Jika model tersebut adalah model encoder-decoder, kwargs spesifik encoder tidak boleh diberi awalan dan kwargs spesifik decoder harus diberi awalan decoder_.

Mengembalikan

ModelOutput atau torch.LongTensor

Sebuah ModelOutput (jika return_dict_in_generate=True atau ketika config.return_dict_in_generate=True) atau sebuah torch.LongTensor.

Jika model bukan model encoder-decoder (model.config.is_encoder_decoder=False), tipe ModelOutput yang mungkin adalah:

Jika model adalah model encoder-decoder (model.config.is_encoder_decoder=True), tipe ModelOutput yang mungkin adalah:

Membuat rangkaian id token untuk model dengan kepala pemodelan bahasa.

Sebagian besar parameter pengendali generasi diatur di generation_config yang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpa generation_config mana pun dengan meneruskan parameter yang sesuai ke generate(), misalnya .generate(inputs, num_beams=4, do_sample=True).

Untuk ringkasan strategi generasi dan contoh kode, lihat panduan berikut.

compute_transition_scores

< >

( sequences: Tensorscores: tuplebeam_indices: typing.Optional[torch.Tensor] = Nonenormalize_logits: bool = False ) → torch.Tensor

Parameter

  • sequences (torch.LongTensor) — Urutan yang dihasilkan. Dimensi kedua (sequence_length) sama dengan max_length atau lebih pendek jika semua batch selesai lebih awal karena eos_token_id.
  • scores (tuple(torch.Tensor)) — Skor transisi untuk setiap token kosakata pada setiap langkah generasi. Skor transisi beam yang terdiri dari log probabilitas token yang dikondisikan pada log softmax dari token yang sebelumnya dihasilkan dalam beam ini. Tuple dari torch.Tensor dengan hingga max_new_tokens elemen (satu elemen untuk setiap token yang dihasilkan), dengan setiap tensor berbentuk (batch_size*num_beams, config.vocab_size).
  • beam_indices (torch.LongTensor, opsional) — Indeks beam dari id token yang dihasilkan pada setiap langkah generasi. torch.LongTensor dengan bentuk (batch_size*num_return_sequences, sequence_length). Hanya diperlukan jika num_beams>1 pada saat generate.
  • normalize_logits (bool, opsional, default False) — Apakah logits akan dinormalisasi (yang, karena alasan legacy, mungkin belum dinormalisasi).

Mengembalikan

torch.Tensor

torch.Tensor dengan bentuk (batch_size*num_return_sequences, sequence_length) yang berisi skor transisi (logits)

Menghitung skor transisi dari sekuens yang diberikan berdasarkan skor generasi (dan indeks beam, jika beam search digunakan). Ini adalah metode yang praktis untuk dengan cepat memperoleh skor dari token yang dipilih pada saat generasi.

Contoh:

>>> from transformers import GPT2Tokenizer, AutoModelForCausalLM
>>> import numpy as np

>>> tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
>>> model = AutoModelForCausalLM.from_pretrained("openai-community/gpt2")
>>> tokenizer.pad_token_id = tokenizer.eos_token_id
>>> inputs = tokenizer(["Today is"], return_tensors="pt")

>>> # Example 1: Print the scores for each token generated with Greedy Search
>>> outputs = model.generate(**inputs, max_new_tokens=5, return_dict_in_generate=True, output_scores=True)
>>> transition_scores = model.compute_transition_scores(
...     outputs.sequences, outputs.scores, normalize_logits=True
... )
>>> # input_length is the length of the input prompt for decoder-only models, like the GPT family, and 1 for
>>> # encoder-decoder models, like BART or T5.
>>> input_length = 1 if model.config.is_encoder_decoder else inputs.input_ids.shape[1]
>>> generated_tokens = outputs.sequences[:, input_length:]
>>> for tok, score in zip(generated_tokens[0], transition_scores[0]):
...     # | token | token string | log probability | probability
...     print(f"| {tok:5d} | {tokenizer.decode(tok):8s} | {score.numpy():.3f} | {np.exp(score.numpy()):.2%}")
|   262 |  the     | -1.414 | 24.33%
|  1110 |  day     | -2.609 | 7.36%
|   618 |  when    | -2.010 | 13.40%
|   356 |  we      | -1.859 | 15.58%
|   460 |  can     | -2.508 | 8.14%

>>> # Example 2: Reconstruct the sequence scores from Beam Search
>>> outputs = model.generate(
...     **inputs,
...     max_new_tokens=5,
...     num_beams=4,
...     num_return_sequences=4,
...     return_dict_in_generate=True,
...     output_scores=True,
... )
>>> transition_scores = model.compute_transition_scores(
...     outputs.sequences, outputs.scores, outputs.beam_indices, normalize_logits=False
... )
>>> # If you sum the generated tokens' scores and apply the length penalty, you'll get the sequence scores.
>>> # Tip 1: recomputing the scores is only guaranteed to match with `normalize_logits=False`. Depending on the
>>> # use case, you might want to recompute it with `normalize_logits=True`.
>>> # Tip 2: the output length does NOT include the input length
>>> output_length = np.sum(transition_scores.numpy() < 0, axis=1)
>>> length_penalty = model.generation_config.length_penalty
>>> reconstructed_scores = transition_scores.sum(axis=1) / (output_length**length_penalty)
>>> print(np.allclose(outputs.sequences_scores, reconstructed_scores))
True

ContinuousMixin

kelas transformers.ContinuousMixin

< >

( )

Kelas Mixin untuk model guna menambahkan kemampuan continuous batching. Continuous batching memiliki tiga titik masuk:

  • init_continuous_batching, yang merupakan titik masuk sebenarnya untuk continuous batching
  • continuous_batching_context_manager, yang sendiri merupakan pembungkus di sekitar init_continuous_batching
  • generate_batch, yang sebenarnya adalah pembungkus di sekitar continuous_batching_context_manager

Mereka didefinisikan dalam urutan ini. Setiap perubahan yang dilakukan pada salah satu dari tiga titik masuk tersebut harus tercermin pada dua titik masuk lainnya.

continuous_batching_context_manager

< >

( generation_config: transformers.generation.configuration_utils.GenerationConfig | None = Noneblock: bool = Truetimeout: float | None = Nonecontinuous_batching_config: transformers.generation.configuration_utils.ContinuousBatchingConfig | None = Nonepersistent_manager: bool = Falsewarmup: bool = Trueworkload_hints: transformers.generation.continuous_batching.utils.WorkloadHints | None = None )

Manajer konteks untuk menggunakan manajer continuous batching dengan aman. Argumennya mirip dengan argumen init_continuous_batching, kecuali untuk:

  • block: apakah akan memblokir thread saat menghentikan manager. Default adalah True.
  • timeout: waktu maksimum untuk menunggu thread berhenti. Default adalah None (tanpa timeout).
  • warmup: apakah akan pre-capture CUDA graphs pada ukuran terbesar sebelum menjalankan. Default adalah True.

destroy_cached_continuous_batching_manager

< >

( )

Hancurkan manajer continuous batching yang di-cache dan bebaskan sumber daya GPU.

generate_batch

< >

( inputs: listgeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonecontinuous_batching_config: transformers.generation.configuration_utils.ContinuousBatchingConfig | None = Nonerecord_timestamps: bool = Falseprogress_bar: bool = Falsepersistent_manager: bool = Falsewarmup: bool = True**kwargs ) → dict[str, GenerationOutput]

Parameter

  • inputs — Daftar urutan token input (prompt)
  • generation_config — Konfigurasi generasi opsional
  • continuous_batching_config — Konfigurasi continuous batching opsional
  • record_timestamps — Jika diatur ke true, permintaan akan memiliki timestamp untuk setiap token yang dihasilkan
  • progress_bar — Jika diatur ke true, bilah kemajuan akan ditampilkan
  • persistent_manager — apakah manager akan dipertahankan setelah generasi selesai. Default adalah False.
  • warmup — apakah akan pre-capture CUDA graphs sebelum memproses permintaan. Default adalah True.

Mengembalikan

dict[str, GenerationOutput]

kamus dari id permintaan ke objek GenerationOutput

Generate sequences untuk batch prompt menggunakan continuous batching.

init_continuous_batching

< >

( generation_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonecontinuous_batching_config: transformers.generation.configuration_utils.ContinuousBatchingConfig | None = Noneworkload_hints: transformers.generation.continuous_batching.utils.WorkloadHints | None = None ) → ContinuousBatchingManager

Parameter

  • generation_config — Konfigurasi generasi opsional, yang dapat berisi objek CompileConfig
  • continuous_batching_config — Konfigurasi continuous batching opsional
  • workload_hints — WorkloadHints opsional untuk membantu continuous batching manager membuat keputusan yang lebih baik untuk nilai default

Mengembalikan

ContinuousBatchingManager

Instans manager untuk menambahkan permintaan dan mengambil hasil.

Inisialisasi manajer untuk inferensi pengelompokan berkelanjutan.

ContinuousBatchingManager

kelas transformers.ContinuousBatchingManager

< >

( model: ProtoPretrainedModelgeneration_config: GenerationConfigcontinuous_batching_config: ContinuousBatchingConfigworkload_hints: transformers.generation.continuous_batching.utils.WorkloadHints | None = None )

Manajer untuk menangani pengelompokan berkelanjutan (continuous batching) permintaan generasi. Kelas ini menyediakan antarmuka pengguna untuk mengirimkan permintaan generasi, mengambil hasil, dan mengelola thread generasi latar belakang. Kelas ini tidak boleh dibuat secara langsung, melainkan melalui salah satu titik masuk berikut (semua merupakan metode dari mixin ContinuousMixin):

  • init_continuous_batching
  • continuous_batching_context_manager
  • generate_batch

add_request

< >

( input_ids: listrequest_id: str | None = Nonemax_new_tokens: int | None = Nonestreaming: bool = Falserecord_timestamps: bool = Falseeos_token_id: int | list[int] | None = None**logit_processor_kwargs: Any ) → str | None

Parameter

  • input_ids — ID token input yang digunakan sebagai prompt
  • request_id — ID permintaan kustom opsional (dibuat secara otomatis jika None)
  • max_new_tokens — Jumlah maksimum token baru yang akan dihasilkan
  • streaming — Whether to stream tokens as they’re generated
  • record_timestamps — Apakah akan merekam timestamp untuk setiap token yang dihasilkan
  • eos_token_id — ID token akhir-sekuens
  • logit_processor_kwargs — Argumen kata kunci untuk logits processor.

Mengembalikan

str | None

ID permintaan jika proses adalah driver TP, None selain itu.

Tambahkan permintaan generasi baru ke antrean. Jika proses tersebut bukan driver TP, ini tidak melakukan apa-apa.

add_requests

< >

( inputs: listmax_new_tokens: int | None = Nonestreaming: bool = Falserecord_timestamps: bool = False**logit_processor_kwargs: Any )

Fungsi utilitas untuk mem-batch add_request dan mengembalikan ID-nya. Periksa dokumentasinya untuk detail lebih lanjut.

cancel_request

< >

( request_id: str )

Batalkan permintaan berdasarkan ID-nya. Jika ini dipanggil dari proses yang bukan driver TP, ini tidak melakukan apa-apa: hanya proses driver TP yang berinteraksi dengan manajer.

destroy

< >

( )

Akhiri manager dan lepaskan sumber daya terdistribusi. Aman untuk dipanggil beberapa kali. Setelah memanggil ini, manager tidak dapat dimulai ulang.

get_result

< >

( request_id: str | None = Nonetimeout: float | None = None )

Ambil satu hasil dari antrean keluaran. Jika ID diberikan, mengembalikan permintaan yang cocok pertama. Jika timeout diberikan, mengembalikan None setelah timeout (dalam detik).

is_running

< >

( )

Mengembalikan True jika thread generasi latar belakang telah dimulai dan masih aktif.

join

< >

( stop_trigger_time: floattimeout: float | None = None )

Tunggu hingga thread latar belakang selesai. Wait dapat dibatasi menggunakan argumen timeout (dalam detik).

jeda

< >

( )

Manajer konteks yang menjeda loop generasi, sehingga thread pemanggil dapat menggunakan model, biasanya untuk memperbaruinya di tempat. Thread hanya masuk ke konteks ini setelah loop dijeda, dan loop dilanjutkan saat keluar, dengan mempertahankan cache dan permintaan yang sedang diproses: tidak ada yang dikuras dan tidak ada permintaan yang hilang. Beberapa thread dapat menahan jeda secara bersamaan, dan loop dilanjutkan setelah yang terakhir keluar. Jika TP aktif, semua rank harus masuk ke konteks ini, jika tidak rank lain akan menggantung selamanya.

register_result_handler

< >

( request_id: strcallback: Callable )

Parameter

  • request_id (str) — ID permintaan untuk menerima output.
  • callback (callable) — Dipanggil dengan GenerationOutput untuk setiap hasil.

Daftarkan callback untuk pengiriman hasil (streaming atau non-streaming).

Callback dipanggil pada event loop melalui call_soon_threadsafe setiap kali hasil dihasilkan untuk permintaan ini. Untuk permintaan streaming, hal ini terjadi pada setiap token; untuk non-streaming, hanya pada saat selesai. Handler dibersihkan secara otomatis ketika permintaan selesai.

request_id_iter

< >

( request_id: str )

Iterasi hasil yang cocok dengan id permintaan tertentu (blocking).

Menggunakan antrean output bersama dengan requeue. Untuk penyajian dengan konkurensi tinggi, gunakan register_result_handler sebagai gantinya.

mulai

< >

( )

Mulai thread generasi latar belakang.

berhenti

< >

( block: bool = Truetimeout: float | None = Nonekeep_for_next_session: bool = Falsehard_stop: bool = False )

Hentikan thread generasi latar belakang. Jika flag block diset ke True, maka metode ini menunggu thread berhenti selama waktu maksimum timeout detik (None berarti tanpa batas waktu). Jika flag keep_for_next_session diset ke True, maka manager di-cache pada model untuk penggunaan di masa depan. Jika flag hard_stop diset, thread generasi latar belakang akan dihentikan segera dan permintaan yang tertunda akan gagal.

switch_to_cb_friendly_attn

< >

( model: ProtoPretrainedModelauto_switch_to_flash: bool = True )

Ganti implementasi attn menjadi yang kompatibel dengan CB. Jika auto_switch_to_flash bernilai True, dan implementasi attn adalah SDPA atau eager, juga beralih ke flash jika didukung dan tersedia.

warmup

< >

( )

Graf CUDA pra-capture untuk jalur varlen dan decode dengan menjalankan batch dummy. Menginisialisasi pemroses batch jika belum dilakukan.

Penjadwal

kelas transformers.generation.Scheduler

< >

( cache: PagedAttentionCachesafety_margin: floatmax_requests_per_batch: int )

Kelas basis abstrak untuk menjadwalkan permintaan dalam pemroses batch kontinu. Penjadwal mengelola siklus hidup permintaan dari saat ditambahkan ke antrean tunggu hingga dijadwalkan untuk diproses. Penjadwal yang berbeda menerapkan strategi yang berbeda untuk memprioritaskan dan membundel permintaan.

add_waiting_request

< >

( state: RequestState )

Menambahkan permintaan ke daftar tunggu.

clear_cancelled_requests

< >

( )

Hapus semua permintaan yang dibatalkan dari antrean aktif dan menunggu.

finish_request

< >

( request_id: str )

Menyelesaikan pemrosesan permintaan dan membebaskan blok cache yang dialokasikannya. Metode ini dipanggil ketika permintaan telah selesai menghasilkan atau mengalami kesalahan.

get_active_request_static_outputs

< >

( request_id: str )

Mendapatkan token yang dihasilkan untuk permintaan yang aktif.

has_pending_requests

< >

( )

Memeriksa apakah ada permintaan yang siap diproses.

request_is_cancelled

< >

( request_id: str )

Memeriksa apakah permintaan telah dibatalkan atau dihapus.

reset

< >

( )

Reset status scheduler untuk loop generasi baru.

schedule_batch

< >

( token_budget: intcache_budget: int )

Merencanakan permintaan untuk batch berikutnya berdasarkan anggaran token dan cache yang tersedia. Metode ini memilih permintaan mana yang harus diproses dalam batch saat ini, dengan mempertimbangkan anggaran dan aturan prioritas penjadwal. token_budget adalah jumlah maksimum token yang dapat diproses dalam satu batch, dan cache_budget adalah jumlah maksimum entri cache KV yang dapat dibaca dalam satu batch. Mengembalikan daftar permintaan terjadwal dalam bentuk “FutureRequestState”, nilai boolean yang menunjukkan apakah jalur cepat decode dapat digunakan, jumlah total token query, dan jumlah maksimum token kv yang dibaca.

set_request_cancellation

< >

( request_id: str )

Menandai permintaan pembatalan.

FIFOScheduler

kelas transformers.generation.FIFOScheduler

< >

( cache: PagedAttentionCachesafety_margin: float | Nonemax_requests_per_batch: int )

Penjadwal ini memproses permintaan sesuai urutan kedatangannya, yang berarti permintaan decoding memiliki prioritas lebih tinggi daripada permintaan prefilling.

PrefillFirstScheduler

kelas transformers.generation.PrefillFirstScheduler

< >

( cache: PagedAttentionCachesafety_margin: float | Nonemax_requests_per_batch: int )

Scheduler yang memprioritaskan permintaan prefill terpecah di atas permintaan decoding. Scheduler ini memastikan bahwa permintaan prefill terpecah (yang merupakan kelanjutan dari prompt yang diproses sebagian) diselesaikan sebelum memproses permintaan decoding baru.

Update on GitHub