Transformers documentation

Üretim

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

Üretim

Her framework, metin üretimi için kendi GenerationMixin sınıfında uygulanan bir generate yöntemine sahiptir:

generate metodunu bir GenerationConfig sınıfı örneğiyle parametreleyebilirsiniz. Üretim metodunun davranışını kontrol eden üretim parametrelerinin tam listesi için lütfen bu sınıfa başvurun.

Bir modelin üretim yapılandırmasını nasıl inceleyeceğinizi, varsayılanların neler olduğunu, parametrelerin ad hoc olarak nasıl değiştirileceğini ve özel bir üretim yapılandırmasının nasıl oluşturulup kaydedileceğini öğrenmek için metin üretim stratejileri kılavuzuna başvurun. Kılavuz, token akışı gibi ilgili özelliklerin nasıl kullanılacağını da açıklar.

GenerationConfig

sınıf transformers.GenerationConfig

< >

( **kwargs )

Çıktı uzunluğunu kontrol eden parametreler

  • max_length (int, isteğe bağlı) — Modelin kaç token üreteceğini kontrol etmek için max_new_tokens önerilir. max_length geriye dönük uyumluluk için korunmuştur.
  • max_new_tokens (int, isteğe bağlı) — İstekteki token sayısını göz ardı ederek üretilecek maksimum token sayısı.
  • min_length (int, isteğe bağlı) — Oluşturulacak dizinin minimum uzunluğu. Girdi istemcisinin uzunluğu + min_new_tokens değerine karşılık gelir. min_new_tokens de ayarlanmışsa, etkisi min_new_tokens tarafından geçersiz kılınır.
  • min_new_tokens (int, isteğe bağlı) — Komuttaki token sayısını göz ardı ederek üretilecek en az token sayısı.
  • early_stopping (bool veya str, isteğe bağlı) — Beam tabanlı yöntemlerin, örneğin beam-search'in durdurma koşulunu kontrol eder. Aşağıdaki değerleri kabul eder: True, üretim num_beams tam aday olduğu anda durur; False, bir heuristik uygulanır ve daha iyi adaylar bulma olasılığı çok düşük olduğunda üretim durur; "never", beam search prosedürü daha iyi adaylar olamayana kadar durmaz (kanonik beam search algoritması).
  • max_time (float, isteğe bağlı) — Hesaplamaya saniye cinsinden izin verdiğiniz maksimum süre. generation, ayrılan süre geçtikten sonra bile geçerli geçişi tamamlamaya devam eder.
  • stop_strings (str veya list[str], isteğe bağlı) — Model bunları üretirse üretimi sonlandırmak gereken bir dize veya dize listesi.

Kullanılan üretim stratejisini kontrol eden parametreler

  • do_sample (bool) — Örnekleme kullanılıp kullanılmayacağı; aksi takdirde açgözlü çözümleme (greedy decoding) kullanılır.
  • num_beams (int, isteğe bağlı) — Beam search için beam sayısı. 1, beam search kullanılmadığı anlamına gelir.
  • use_mtp — (bool): Model destekliyorsa Multi-Token Prediction (MTP) kullanılacak mı?

Önbelleği kontrol eden parametreler

  • use_cache (bool) — Modelin, çözümlendirmeyi hızlandırmak için (modele uygulanabilirse) geçmiş son anahtar/değer dikkatlerini kullanıp kullanmayacağı.
  • cache_implementation (str, isteğe bağlı) — generate içinde örneklenmesi gereken önbellek sınıfının adı, generate, daha hızlı çözümleme için. Olası değerler şunlardır:

    Hiçbiri belirtilmezse, model için varsayılan önbellek kullanılır (bu genellikle DynamicCache'tir). Daha fazla bilgi için önbellek belgelerimize bakın.

  • cache_config (dict, isteğe bağlı, varsayılan None) — Anahtar-değer önbellek sınıfında kullanılan argümanlar cache_config üzerinden geçirilebilir.
  • max_cache_len (int, isteğe bağlı) — Yalnızca statik önbelleklerle kullanılır (cache_implementation değeri "static" veya "offloaded_static" olarak ayarlanmışsa). Önbelleği, mevcut çağrının max_length değeri yerine bu uzunluğa önceden boyutlandırır. Tekrarlanan generate() çağrılarında daha uzun bir istem veya daha büyük bir max_new_tokens (bu üst sınıra kadar) kullanıldığında yeniden tahsis ve torch.compile yeniden derlemesini tetiklemek yerine aynı önbelleğin yeniden kullanılabilmesi için, beklediğiniz en büyük çağrıya bir kez ayarlayın.

Model çıktı logit'lerinin manipülasyonu için parametreler

  • temperature (float, isteğe bağlı) — Sonraki token olasılıklarını modüle etmek için kullanılan değer. Bu değer, bir modelin generation_config.json dosyasında ayarlanır. Ayarlanmamışsa varsayılan değer 1.0'dır.
  • top_k (int, isteğe bağlı) — Top-k filtreleme için en yüksek olasılığa sahip kaç sözlük token'ının tutulacağı. Bu değer, modelin generation_config.json dosyasında ayarlanır. Ayarlanmamışsa varsayılan değer 50'dir.
  • top_p (float, isteğe bağlı) — float < 1 olarak ayarlanırsa, olasılıkları top_p veya daha yüksek bir toplamda birleşen en küçük en olası token kümesi üretim için korunur. Bu değer, bir modelin generation_config.json dosyasında ayarlanır. Ayarlanmamışsa, varsayılan değer 1.0'dır.
  • min_p (float, isteğe bağlı) — En olası token'ın olasılığına göre ölçeklendirilen minimum token olasılığı. 0 ile 1 arasında bir değer olmalıdır. Tipik değerler 0.01-0.2 aralığındadır ve top_p'nin 0.99-0.8 aralığında ayarlanmasına benzer bir seçicilik sağlar (normal top_p değerlerinin tersini kullanın).
  • top_h (float, isteğe bağlı) — Örnekleme sırasında dağılımın entropisinin ne kadarının korunduğunu kontrol eden entropi bütçe ölçekleme faktörü. 0 ile 1 arasında bir değer olmalıdır. Her adımda, jetonlar olasılığa göre sıralanır ve tam dağılımın entropisinin top_h katına eşit veya daha küçük yeniden normalize edilmiş entropiye sahip en küçük jeton öneki korunur. Daha küçük değerler (ör. 0.2–0.5) daha odaklı ve deterministik çıktılara yol açarken, 1.0'a yakın değerler daha fazla rastgelelik ve çeşitlilik sağlar. Tipik değerler 0.3–0.6 aralığındadır.
  • typical_p (float, isteğe bağlı) — Yerel tipiklik, kısmi olarak üretilmiş metin verildiğinde, bir sonraki hedef token'ı tahmin etmenin koşullu olasılığının, bir sonraki rastgele token'ı tahmin etmenin beklenen koşullu olasılığına ne kadar benzer olduğunu ölçer. float < 1 olarak ayarlanırsa, olasılıkları typical_p veya daha yüksek bir toplamda birleşen en küçük yerel olarak en tipik token kümesi üretim için korunur. Daha fazla ayrıntı için bu makaleye bakın.
  • epsilon_cutoff (float, isteğe bağlı) — 0 ile 1 arasında katı bir float değere ayarlanırsa, yalnızca koşullu olasılığı epsilon_cutoff değerinden büyük olan token'lar örneklenir. Makalede, modelin boyutuna bağlı olarak önerilen değerler 3e-4 ile 9e-4 arasında değişmektedir. Daha fazla ayrıntı için Truncation Sampling as Language Model Desmoothing başlıklı makaleye bakın.
  • eta_cutoff (float, isteğe bağlı) — Eta örneklemesi, yerel tipik örneklemesi ve epsilon örneklemesinin bir hibrididir. 0 ile 1 arasında katı bir float değere ayarlanırsa, bir token yalnızca eta_cutoff veya sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits))) değerlerinden birinden büyükse dikkate alınır. İkinci terim sezgisel olarak, sqrt(eta_cutoff) ile ölçeklendirilmiş beklenen sonraki token olasılığıdır. Makalede, modelin boyutuna bağlı olarak önerilen değerler 3e-4 ile 2e-3 arasında değişmektedir. Daha fazla ayrıntı için Truncation Sampling as Language Model Desmoothing başlıklı makaleye bakın.
  • repetition_penalty (float, isteğe bağlı) — Tekrar cezası parametresi. 1.0 ceza uygulanmadığı anlamına gelir. Daha fazla ayrıntı için bu makaleye bakın.
  • encoder_repetition_penalty (float, isteğe bağlı) — encoder_repetition_penalty parametresi. Orijinal girdide bulunmayan dizilere uygulanan üstel ceza. 1.0 ceza uygulanmadığı anlamına gelir.
  • length_penalty (float, isteğe bağlı) — Beam tabanlı üretimde kullanılan uzunluğa uygulanan üstel ceza. Bu ceza, sıra uzunluğuna üstel olarak uygulanır ve ardından sıra puanını bölmek için kullanılır. Puan, sıranın log olasılığı olduğu için (yani negatif), length_penalty > 0.0 daha uzun sıraları teşvik ederken, length_penalty < 0.0 daha kısa sıraları teşvik eder.
  • no_repeat_ngram_size (int, isteğe bağlı) — int > 0 olarak ayarlanırsa, bu boyuttaki tüm ngram'lar yalnızca bir kez oluşabilir.
  • bad_words_ids (list[list[int]], isteğe bağlı) — Üretilmesine izin verilmeyen token kimliklerinin listesi. Daha fazla belge ve örnek için NoBadWordsLogitsProcessor sınıfına bakın.
  • renormalize_logits (bool) — Tüm logits işleyicileri (özel olanlar dahil) uygulandıktan sonra logits’lerin yeniden normalize edilip edilmeyeceğini belirtir. Arama algoritmaları, skor logits’lerinin normalize edildiğini varsaydığından ancak bazı logits işleyicileri normalizasyonu bozduğundan, bu bayrağın True olarak ayarlanması şiddetle önerilir.
  • forced_bos_token_id (int, isteğe bağlı, varsayılan model.config.forced_bos_token_id) — decoder_start_token_id sonrasında ilk üretilen token olarak zorlanacak token'ın kimliği. İlk üretilen token'ın hedef dil token'ı olması gereken mBART gibi çok dilli modeller için faydalıdır.
  • 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) — Modelin olası nan ve inf çıktılarını, üretim yönteminin çökmesini önlemek için kaldırıp kaldırmayacağını belirtir. remove_invalid_values kullanmanın üretimi yavaşlatabileceğini unutmayın.
  • exponential_decay_length_penalty (tuple(int, float), isteğe bağlı) — Bu Tuple, belirli bir sayıda token üretildikten sonra üstel olarak artan bir uzunluk cezası ekler. Tuple şu öğelerden oluşmalıdır: (start_index, decay_factor) burada start_index cezanın başladığı yeri, decay_factor ise üstel azalma katsayısını temsil eder
  • suppress_tokens (list[int], isteğe bağlı) — Üretim sırasında bastırılacak tokenların listesi. SuppressTokens logit işlemcisi, bunların log olasılıklarını -inf olarak ayarlayarak örneklenmelerini engeller.
  • begin_suppress_tokens (list[int], isteğe bağlı) — Üretilen metnin başlangıcında bastırılacak tokenların listesi. SuppressBeginTokens logit işlemcisi, bu tokenların log olasılıklarını -inf olarak ayarlayarak örneklenmelerini engeller.
  • sequence_bias (dict[tuple[int], float], isteğe bağlı) — Bir token dizisini önyargı terimine eşleyen sözlük. Pozitif önyargılar, dizinin seçilme olasılığını artırırken, negatif önyargılar bunun tersini yapar. Daha fazla belge ve örnek için SequenceBiasLogitsProcessor sınıfına bakın.
  • token_healing (bool) — İstemlerin kuyruk tokenlarını uygun uzantılarıyla değiştirerek onarın. Bu, açgözlü tokenizasyon yanlılığından etkilenen istemlerde tamamlamaların kalitesini artırır.
  • guidance_scale (float, isteğe bağlı) — Sınıflandırıcı serbest yönlendirme (CFG) için yönlendirme ölçeği. CFG, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, modelin girdi istemine daha sıkı bağlı örnekler üretmesini teşvik eder, genellikle daha düşük kalite pahasına.
  • watermarking_config (BaseWatermarkingConfig veya dict, isteğe bağlı) — Model çıktılarını, rastgele seçilen “yeşil” token kümesine küçük bir önyargı ekleyerek filigran eklemek için kullanılan argümanlar. Daha fazla ayrıntı için SynthIDTextWatermarkingConfig ve WatermarkingConfig belgelerine bakın. Dict olarak geçirilirse, içsel olarak WatermarkingConfig nesnesine dönüştürülür.

generate'in çıktı değişkenlerini tanımlayan parametreler

  • num_return_sequences (int, isteğe bağlı) — Toplumdaki her öğe için bağımsız olarak hesaplanan ve döndürülen dizilerin sayısı.
  • output_attentions (bool) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • output_scores (bool) — Tahmin skorlarının döndürülüp döndürülmemesi. Daha fazla ayrıntı için döndürülen tensörler altındaki scores bölümüne bakın.
  • output_logits (bool) — İşlenmemiş tahmin logit puanlarının döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki logits bölümüne bakın.
  • return_dict_in_generate (bool) — Sadece üretilen diziyi döndürmek yerine bir ModelOutput döndürülüp döndürülmediğini belirtir. Üretim önbelleğinin döndürülmesi (use_cache True olduğunda) veya isteğe bağlı çıktıların (bkz. output_ ile başlayan bayraklar) döndürülmesi için bu bayrağın True olarak ayarlanması gerekir.

Üretim sırasında kullanılabilen özel jetonlar

  • pad_token_id (int, isteğe bağlı) — padding belirtecinin kimliği.
  • bos_token_id (int, isteğe bağlı) — dizinin başlangıcı belirtecinin kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı) — dizinin sonu belirtecinin kimliği. İsteğe bağlı olarak, birden fazla dizinin sonu belirtecini ayarlamak için bir liste kullanın.

Sadece encoder-decoder modellerine özgü üretim parametreleri

  • encoder_no_repeat_ngram_size (int, isteğe bağlı) — int > 0 olarak ayarlanırsa, encoder_input_ids içinde görülen bu boyuttaki tüm ngram'lar decoder_input_ids içinde görülemez.
  • decoder_start_token_id (int veya list[int], isteğe bağlı) — Bir kodlayıcı-çözücü modeli, bos ile farklı bir token ile çözümlemeye başlıyorsa, o token'ın kimliği veya batch_size uzunluğunda bir liste. Bir liste belirtmek, batch'teki her öğe için farklı başlangıç kimliklerini etkinleştirir (ör. bir batch içinde farklı hedef dillere sahip çok dilli modeller)

Yalnızca asistan üretimi için geçerli üretim parametreleri

  • is_assistant (bool) — Modelin bir asistan (taslak) modeli olup olmadığı.
  • num_assistant_tokens (int, isteğe bağlı) — Her yinelemede hedef model tarafından kontrol edilmeden önce asistan modelinin üreteceği spekülatif token sayısını tanımlar. num_assistant_tokens için daha yüksek değerler, üretimi daha spekülatif hale getirir: Asistan modelinin performansı yüksekse daha büyük hızlanmalar elde edilebilir, asistan modelinin çok fazla düzeltme gerektirmesi durumunda ise daha düşük hızlanmalar elde edilir.
  • num_assistant_tokens_schedule (str, isteğe bağlı) — Çıkarım sırasında en fazla asistan jetonunun ne zaman değiştirileceğini tanımlar.
    • "heuristic": Tüm spekülatif jetonlar doğruysa num_assistant_tokens değerini 2 artırın, aksi halde 1 azaltın. num_assistant_tokens değeri, aynı asistan modeliyle yapılan birden çok üretim çağrısı boyunca kalıcıdır.
    • "heuristic_transient": "heuristic" ile aynıdır ancak num_assistant_tokens, her üretim çağrısından sonra başlangıç değerine sıfırlanır.
    • "constant": num_assistant_tokens üretim sırasında değiştirilmez
  • assistant_confidence_threshold (float, isteğe bağlı) — Asistan modelinin güven eşiği. Asistan modelinin mevcut token için tahminine olan güveni bu eşiğin altındaysa, asistan modeli spekülatif token sayısına (num_assistant_tokens ile tanımlanan) henüz ulaşılmamış olsa bile mevcut token üretim iterasyonunu durdurur. Asistanın güven eşiği, gereksiz taslak ve hedef ileri geçişlerinin sayısını azaltmak amacıyla spekülatif iterasyonlar boyunca, yanlış negatiflerden kaçınmaya yönelik bir eğilimle ayarlanır. assistant_confidence_threshold değeri, aynı asistan modeliyle yapılan birden fazla üretim çağrısı boyunca kalıcıdır. Bu, Dynamic Speculation Lookahead Accelerates Speculative Decoding of Large Language Models https://huggingface.co/papers/2405.04304 makalesindeki dinamik spekülasyon ileri bakışının denetimsiz bir versiyonudur.
  • prompt_lookup_num_tokens (int, isteğe bağlı) — Aday jeton olarak çıkarılacak jeton sayısı.
  • max_matching_ngram_size (int, isteğe bağlı) — İstemde eşleştirme için dikkate alınacak en büyük ngram boyutu. Verilmezse varsayılan olarak 2'dir.
  • assistant_early_exit(int, optional) — Pozitif bir tamsayı olarak ayarlanırsa, modelin erken çıkışı (early exit) bir asistan olarak kullanılacaktır. Yalnızca erken çıkışı destekleyen modellerle (yani ara katmanlardan gelen logits'lerin LM head tarafından yorumlanabildiği modeller) kullanılabilir.
  • assistant_lookbehind(int, optional) — Pozitif bir tamsayı olarak ayarlanırsa, yeniden kodlama süreci, token'ları doğru şekilde hizalamak için son assistant_lookbehind asistan token'larını da dikkate alır. Yalnızca spekülatif çözümlendirmede farklı tokenizörler kullanılırken kullanılabilir. Daha fazla ayrıntı için bu blog'a bakın.
  • target_lookbehind(int, isteğe bağlı) — Pozitif bir tam sayı olarak ayarlanırsa, yeniden kodlama süreci, token'ları doğru şekilde hizalamak için son target_lookbehind hedef token'larını da dikkate alır. Yalnızca spekülatif çözümlendirmede farklı tokenizörler kullanılırken kullanılabilir. Daha fazla ayrıntı için bu blog yazısına bakın.
  • assistant_ensemble_weight (float, isteğe bağlı) — Spekülatif çözümlendirmede statik ensemble doğrulamasını etkinleştirir. (0.0, 1.0) aralığında bir değere ayarlanırsa, doğrulayıcı tokenları p_target yerine w * p_target + (1 - w) * q_draft karışımına karşı kabul eder; böylece kontrollü bir dağılımsal sapma pahasına daha yüksek bir kabul oranı elde edilir. Varsayılan değer None'dir ve bu, çözümlendirmenin kayıpsız kalmasını sağlar. Asistan modelin logit döndürmesini gerektirdiğinden, prompt lookup çözümlendirmesiyle uyumlu değildir.
  • speculation_type (str, isteğe bağlı) — İstenen spekülasyon türü. Kabul edilen değerler dflash.

Performans ve derleme ile ilgili parametreler

  • compile_config (CompileConfig, isteğe bağlı) — Derlenebilir bir önbellek kullanılıyorsa, bu, generate'nin daha hızlı çıkarım için ileri geçişi nasıl compile edeceğini kontrol eder.
  • disable_compile (bool) — İleri geçişin otomatik derlenmesini devre dışı bırakıp bırakmayacağı. Otomatik derleme, derlenebilir bir önbellek kullanılması dahil olmak üzere belirli kriterler karşılandığında gerçekleşir. Bu bayrağı kullanma ihtiyacı hissederseniz lütfen bir sorun (issue) açın.

Bir üretim görevi için yapılandırmayı tutan sınıf. Bir generate çağrısı, metin-çözücü, metinden-metine, konuşmadan-metine ve görüden-metine modeller için aşağıdaki üretim yöntemlerini destekler:

  • num_beams=1 ve do_sample=False ise greedy decoding
  • num_beams=1 ve do_sample=True ise multinomial sampling
  • num_beams>1 ve do_sample=False ise beam-search decoding
  • num_beams>1 ve do_sample=True ise beam-search multinomial sampling
  • assistant_model veya prompt_lookup_num_tokens .generate() fonksiyonuna geçiriliyorsa assisted decoding

Çözme stratejileri hakkında daha fazla bilgi için metin oluşturma stratejileri kılavuzuna bakın.

Bu bayrakların büyük bir kısmı, üretimin logitlerini veya durdurma kriterlerini kontrol eder. Olası manipülasyonların tam açıklaması ve kullanım örnekleri için generate ile ilgili sınıfları kontrol etmeyi unutmayın.

Not: Hâlâ None olan yapılandırma alanları, üretim döngüsü sırasında GenerationConfig._get_default_generation_params() tarafından geçersiz kılınır. Bu alanlar için farklı değerler kullanmak istiyorsanız, bunları üretim yapılandırmasında açıkça belirlemeye özen gösterin.

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

Parametreler

  • pretrained_model_name (str veya os.PathLike) — Bunlardan biri olabilir:
    • bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir model yapılandırmasının model kimliği.
    • save_pretrained() yöntemi kullanılarak bir yapılandırma dosyası kaydedilen bir dizinin yolunu, örneğin ./my_model_directory/.
  • config_file_name (str veya os.PathLike, isteğe bağlı, varsayılan "generation_config.json") — pretrained_model_name içinden yüklenecek üretim yapılandırma JSON dosyasının adı.
  • cache_dir (str veya os.PathLike, isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alınacağı dizinin yolu.
  • force_download (bool, isteğe bağlı, varsayılan False) — Yapılandırma dosyalarının (yeniden) indirilmesini zorlayıp mevcut ise önbellekteki sürümlerin üzerine yazılmasını belirtir.
  • proxies (dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örn. {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.
  • token (str veya bool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise veya belirtilmezse, hf auth login çalıştırıldığında oluşturulan jeton ( ~/.huggingface içinde saklanır) kullanılır.
  • revision (str, isteğe bağlı, varsayılan olarak "main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir, bu nedenle revision git tarafından izin verilen herhangi bir tanımlayıcı olabilir.

    Hub'da oluşturduğunuz bir çekme isteğini test etmek için revision="refs/pr/<pr_number>" parametresini iletebilirsiniz.

  • return_unused_kwargs (bool, isteğe bağlı, varsayılan olarak False) — eğer False, ise bu fonksiyon yalnızca son yapılandırma nesnesini döndürür.

    True ise, bu fonksiyon unused_kwargs'nın yapılandırma öznitelikleri olmayan anahtar/değer çiftlerinden oluşan bir sözlük olduğu Tuple(config, unused_kwargs) döndürür; yani kwargs'nın config'yi güncellemek için kullanılmamış ve aksi halde yok sayılan kısmıdır.

  • subfolder (str, isteğe bağlı, varsayılan "") — İlgili dosyalar huggingface.co üzerindeki model deposunun bir alt klasöründe konumlanıyorsa, klasör adını burada belirleyebilirsiniz.
  • kwargs (dict[str, Any], isteğe bağlı) — kwargs içindeki yapılandırma öznitelikleri olan anahtarların değerleri, yüklenen değerlerin üzerine yazmak için kullanılır. Anahtarı yapılandırma özniteliği olmayan anahtar/değer çiftleriyle ilgili davranış, return_unused_kwargs anahtar parametresi tarafından kontrol edilir.

Dönüş değeri

GenerationConfig

Bu önceden eğitilmiş modelden örneklenen yapılandırma nesnesi.

Bir üretim yapılandırma dosyasından GenerationConfig örneği oluşturun.

Örnekler:

>>> 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

Parametreler

  • model_config (PreTrainedConfig | dict) — Oluşturma yapılandırmasını örneklemek için kullanılacak model yapılandırması.

Dönüş değeri

GenerationConfig

Bu parametrelerden örneklenen yapılandırma nesnesi.

Bir PreTrainedConfig nesnesinden bir GenerationConfig örnekler. Bu işlev, üretim parametreleri içerebilen eski PreTrainedConfig nesnelerini bağımsız bir GenerationConfig nesnesine dönüştürmek için kullanışlıdır.

save_pretrained

< >

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

Parametreler

  • save_directory (str veya os.PathLike) — Yapılandırma JSON dosyasının kaydedileceği dizin (varsa oluşturulur).
  • config_file_name (str veya os.PathLike, isteğe bağlı, varsayılan "generation_config.json") — save_directory içinde kaydedilecek üretim yapılandırma JSON dosyasının adı.
  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyu repo_id ile belirtebilirsiniz (varsayılan olarak ad alanınızdaki save_directory adını kullanır).
  • kwargs (dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.

Bir nesil yapılandırma nesnesini, from_pretrained() sınıf yöntemiyle yeniden yüklenebilmesi için save_directory dizinine kaydedin.

güncelle

< >

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

Parametreler

  • defaults_only (bool, isteğe bağlı, varsayılan False) — Yapılandırmadaki tüm anahtarların kwargs ile mi yoksa yalnızca None (yani varsayılan değer) olarak ayarlananların mı güncelleneceğini belirtir.
  • allow_custom_entries (bool, isteğe bağlı, varsayılan False) — Mevcut yapılandırmada bulunmuyorsa, kwargs ile özel girdilerin yapılandırmaya eklenmesine izin verilip verilmeyeceğini belirtir.
  • kwargs (dict[str, Any]) — Bu sınıfı geçici olarak güncellemek için nitelikler sözlüğü.

Dönüş değeri

dict[str, Any]

Örneği güncellemek için kullanılmayan tüm anahtar-değer çiftlerini içeren sözlük.

Bu sınıf örneğinin özniteliklerini, kwargs içindeki öznitelikler mevcut özniteliklerle eşleşiyorsa günceller ve kullanılmayan tüm kwargs'ları döndürür.

doğrula

< >

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

Parametreler

  • strict (bool) — True ise, tespit edilen herhangi bir sorun için bir istisna fırlatılır. False ise, sorunlar yalnızca günlüğe kaydedilir.
  • user_set_attributes (set[str], isteğe bağlı) — Çağıranın açıkça sağladığı öznitelik adları. Sağlandığında, çakışan bayrak kombinasyonlarına (ör. do_sample=False iken yalnızca örneklemeye ait bayrakların ayarlanması) ilişkin “küçük sorun” uyarıları, yalnızca çakışan bayrak bu kümede yer alıyorsa tetiklenir — bu da değerin modelin varsayılan generation_config.json dosyasından devralınması durumunda gürültülü uyarıları önler. None olduğunda, ayarlanmış tüm öznitelikler kullanıcı tarafından ayarlanmış olarak kabul edilir (doğrudan validate() çağrıları için geriye dönük uyumlu davranış).

GenerationConfig örneğinin öznitelik değerlerini doğrular. Yalnızca yapılandırma örneğinden tespit edilebilecek hatalı parametrelendirmelerin varlığında istisnalar fırlatır.

Burada doğrulanmayan bazı parametrelerin, üretim uzunluğuyla ilgili parametreler gibi diğer girdilere ve/veya modele bağlı olabileceğinden, generate çalışma zamanında doğrulanmasının en iyi sonuçları vereceğini unutmayın.

get_generation_mode

< >

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

Parametreler

  • assistant_model (PreTrainedModel, isteğe bağlı) — Yardımcı üretim için kullanılacak asistan modeli. Ayarlanırsa, üretim modu yardımcı üretim olacaktır.

Dönüş değeri

GenerationMode

Örnek tarafından tetiklenen üretim modu.

GenerationConfig örneğinin tetiklediği üretim modunu döndürür.

GenerationMixin

sınıf transformers.GenerationMixin

< >

( )

Model sınıflarında karışım (mixin) olarak kullanılacak, otoregresif metin üretimi için tüm işlevleri içeren bir sınıf. Bu sınıftan türetme, modelin başlatma sırasında bir GenerationConfig yüklemesi veya transformers CI'de generate-ile ilgili testlerin çalıştırılmasını sağlama gibi üretimle ilgili özel davranışlara sahip olmasına neden olur.

Bir model sınıfı, generate gibi yöntemlerin çağrılmasını etkinleştirmek için veya GenerationMixin'e doğrudan veya dolaylı olarak bağımlı, generate gibi herkese açık yöntemlerle yaklaşık olarak aynı arayüze sahip özel bir generate yöntemi tanımladığında GenerationMixin'den devralmalıdır. Üç örnek:

  • LlamaForCausalLM, mixin içindeki generate ve diğer genel yöntemlerin çağrılabilmesini sağlamak için GenerationMixin'den devralmalıdır;
  • BlipForQuestionAnswering, GenerationMixin.generate ile yaklaşık olarak aynı arayüze sahip özel bir generate yöntemine sahiptir (birkaç ek argümanı ve aynı çıktısı vardır). Bu fonksiyon ayrıca, iç bir model aracılığıyla dolaylı olarak GenerationMixin.generate çağrısını yapar. Bu nedenle, BlipForQuestionAnswering, kod tabanımızdaki tüm üretimle ilgili otomasyondan yararlanmak için GenerationMixin sınıfından devralmalıdır;
  • BarkModel özel bir generate yöntemine sahiptir ve iç modellerinden biri GenerationMixin.generate çağrısı yapar. Ancak, generate yöntemi GenerationMixin.generate ile aynı arayüzü paylaşmaz. Bu durumda, generate arayüzünü bozduğu için BarkModel, GenerationMixin sınıfından miras almamalıdır.

Sınıf, şunlar için kullanılabilen generate() yöntemini sunar:

  • num_beams=1 ve do_sample=False ise greedy decoding
  • num_beams=1 ve do_sample=True ise multinomial sampling
  • num_beams>1 ve do_sample=False ise beam-search decoding
  • num_beams>1 ve do_sample=True ise beam-search multinomial sampling
  • assistant_model veya prompt_lookup_num_tokens .generate() fonksiyonuna geçiriliyorsa assisted decoding

Çözme stratejileri hakkında daha fazla bilgi için metin oluşturma stratejileri kılavuzuna bakın.

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

Parametreler

  • inputs (torch.Tensor, modağa göre değişen şekle sahip, isteğe bağlı) — Üretim için istem olarak veya kodlayıcıya model girdisi olarak kullanılan dizi. None ise yöntem bunu bos_token_id ve 1 parti boyutu ile başlatır. Sadece çözücü modeller için inputs input_ids biçiminde olmalıdır. Kodlayıcı-çözücü modeller için inputs, input_ids, input_values, input_features veya pixel_values'den herhangi birini temsil edebilir.
  • generation_config (GenerationConfig, isteğe bağlı) — Üretim çağrısı için temel parametrelendirme olarak kullanılacak üretim yapılandırması. **kwargs generate'e aktarılan ve generation_config öznitelikleriyle eşleşenler bunları geçersiz kılar. generation_config sağlanmazsa, varsayılanı kullanılır; bunun yükleme önceliği şöyledir: 1) varsa generation_config.json model dosyasından; 2) model yapılandırmasından. Belirtilmeyen parametrelerin GenerationConfig'in varsayılan değerlerini devralacağını ve üretimi parametrelendirmek için bunların belgelerinin kontrol edilmesi gerektiğini lütfen unutmayın.
  • logits_processor (LogitsProcessorList, isteğe bağlı) — Argümanlardan ve üretim yapılandırmasından oluşturulan varsayılan logits işleyicilerini tamamlayan özel logits işleyicileri. Argümanlarla veya bir üretim yapılandırmasıyla zaten oluşturulmuş bir logits işleyicisi geçirilirse bir hata fırlatılır. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • stopping_criteria (StoppingCriteriaList, isteğe bağlı) — Argümanlardan ve bir generation config'ten oluşturulan varsayılan durdurma kriterlerini tamamlayan özel durdurma kriterleri. Argümanlarla veya bir generation config ile zaten oluşturulmuş bir durdurma kriteri geçirilirse bir hata fırlatılır. Durdurma kriteriniz scores girdisine bağlıysa, generate fonksiyonuna return_dict_in_generate=True, output_scores=True parametrelerini geçirdiğinizden emin olun. Bu özellik ileri düzey kullanıcılar için tasarlanmıştır.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], isteğe bağlı) — Sağlanırsa, bu fonksiyon her adımda beam search'i yalnızca izin verilen tokenlara kısıtlar. Sağlanmazsa hiçbir kısıtlama uygulanmaz. Bu fonksiyon 2 argüman alır: batch kimliği batch_id ve input_ids. Batch kimliği batch_id ve daha önce üretilen tokenlar inputs_ids koşullarına bağlı olarak, bir sonraki üretim adımı için izin verilen tokenların listesini döndürmelidir. Bu argüman, Autoregressive Entity Retrieval makalesinde anlatıldığı gibi, önekle (prefix) koşullu kısıtlı üretim için faydalıdır.
  • synced_gpus (bool, isteğe bağlı) — max_length değerine ulaşılana kadar while döngüsünün çalışmaya devam edip etmeyeceğini belirler. Aksi belirtilmedikçe, birden fazla GPU ile FullyShardedDataParallel veya DeepSpeed ZeRO Stage 3 kullanılıyorsa, bir GPU diğer GPU'lar bitirmeden önce üretimi tamamlarsa ölü kilitlenmeyi (deadlock) önlemek için bu bayrak True olarak ayarlanır. Aksi halde varsayılan değer False'tir.
  • assistant_model (PreTrainedModel, isteğe bağlı) — Üretimi hızlandırmak için kullanılabilen bir asistan modeli. Asistan modelin, tam olarak aynı tokenizer'a sahip olması gerekir. Hızlandırma, asistan model ile aday token'ları tahmin etmenin, generate çağrısını yaptığınız modelle üretim çalıştırmaktan çok daha hızlı olması durumunda elde edilir. Bu nedenle asistan modelin çok daha küçük olması gerekir.
  • streamer (BaseStreamer, isteğe bağlı) — Üretilen dizilerin akışını sağlamak için kullanılacak Streamer nesnesi. Üretilen jetonlar streamer.put(token_ids) üzerinden geçirilir ve akışın herhangi bir sonraki işlenmesinden streamer sorumludur.
  • negative_prompt_ids (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — CFG gibi bazı işlemciler için gereken negatif prompt. Batch boyutu, girdi batch boyutuyla eşleşmelidir. Bu deneysel bir özelliktir ve gelecekteki sürümlerde kırıcı API değişikliklerine tabi olabilir.
  • negative_prompt_attention_mask (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — negative_prompt_ids için attention_mask.
  • custom_generate (str veya Callable, isteğe bağlı) — Aşağıdakilerden biri:
    • str (Hugging Face Hub deposu adı): standart generate yöntemi yerine, o depodaki custom_generate/generate.py dosyasında tanımlanan özel generate işlevini çalıştırır. Depo, üretim mantığını tamamen değiştirir ve dönüş tipi farklı olabilir.
    • str (yerel depo yolu): yukarıdakiyle aynı ancak yerel bir yoldan. Yerel dizinler de yerel custom_generate/generate.py çalıştırıldığı için trust_remote_code=True gerektirir.
    • Callable: generate, standart girdi hazırlama adımlarını gerçekleştirdikten sonra, çözümleme döngüsünü çalıştırmak için sağlanan çağrılabiliri (callable) çağırır. Daha fazla bilgi için belgelere bakın.
  • kwargs (dict[str, Any], isteğe bağlı) — generation_config için ad hoc parametrelendirme ve/veya modelin forward fonksiyonuna iletilecek ek model-özel kwargs'lar. Model bir encoder-decoder modeli ise, encoder'a özgü kwargs'lar öneklenmemeli ve decoder'a özgü kwargs'lar decoder_ önekiyle başlamalıdır.

Dönüş değeri

ModelOutput veya torch.LongTensor

Bir ModelOutput (return_dict_in_generate=True ise veya config.return_dict_in_generate=True olduğunda) ya da bir torch.LongTensor.

Model bir encoder-decoder modeli değilse (model.config.is_encoder_decoder=False), olası ModelOutput türleri şunlardır:

Model bir kodlayıcı-çözücü modeli (model.config.is_encoder_decoder=True) ise olası ModelOutput türleri şunlardır:

Dil modelleme başlığına sahip modeller için token kimliği dizileri üretir.

Çoğu üretim kontrol parametresi, generation_config içinde ayarlanır; bu parametre geçirilmezse, modelin varsayılan üretim yapılandırması kullanılır. generation_config içindeki herhangi bir değeri, generate() fonksiyonuna ilgili parametreleri geçirerek geçersiz kılabilirsiniz, örneğin .generate(inputs, num_beams=4, do_sample=True).

Üretim stratejileri ve kod örneklerinin genel bakışı için şu kılavuza göz atın.

compute_transition_scores

< >

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

Parametreler

  • sequences (torch.LongTensor) — Oluşturulan diziler. İkinci boyut (sequence_length), max_length'a eşittir veya tüm toplamlar eos_token_id nedeniyle erken bittiyse daha kısadır.
  • scores (tuple(torch.FloatTensor)) — Her üretim adımında sözlükteki her token için geçiş skorları. Bu beam'de daha önce üretilen tokenların log softmax'ine koşullu token log olasılıklarından oluşan beam geçiş skorları. En fazla max_new_tokens öğe içeren (her üretilen token için bir öğe), her tensörün şekli (batch_size*num_beams, config.vocab_size) olan torch.FloatTensor demeti.
  • beam_indices (torch.LongTensor, isteğe bağlı) — Her üretim adımında üretilen token kimliğinin beam indeksleri. Şekli (batch_size*num_return_sequences, sequence_length) olan bir torch.LongTensor. Yalnızca üretim sırasında num_beams>1 ise gereklidir.
  • normalize_logits (bool, isteğe bağlı, varsayılan False) — Logitlerin normalize edilip edilmeyeceği (eski nedenlerden ötürü normalize edilmemiş olabilir).

Dönüş değeri

torch.Tensor

Geçiş skorlarını (logit'leri) içeren, (batch_size*num_return_sequences, sequence_length) biçiminde bir torch.Tensor

Üretim puanları (ve beam search kullanıldıysa beam indeksleri) verildiğinde dizilerin geçiş puanlarını hesaplar. Bu, üretim sırasında seçilen jetonların puanlarını hızlı bir şekilde elde etmek için kullanışlı bir yöntemdir.

Örnekler:

>>> 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

sınıf transformers.ContinuousMixin

< >

( )

Modellerin sürekli toplama (continuous batching) yeteneklerini eklemesi için karışım (mixin) sınıfı. Sürekli toplamanın üç giriş noktası vardır:

  • Sürekli toplu işleme (continuous batching) için asıl giriş noktası olan init_continuous_batching
  • Kendisi init_continuous_batching etrafında bir sarmalayıcı olan continuous_batching_context_manager
  • Aslında continuous_batching_context_manager etrafında bir sarmalayıcı olan generate_batch

Bunlar bu sırada tanımlanır. Bu üç giriş noktasından herhangi birinde yapılan herhangi bir değişiklik, diğer ikisinde de yansıtılmalıdır.

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 )

Sürekli toplu işleme (continuous batching) yöneticisini güvenli bir şekilde kullanmak için bir bağlam yöneticisi. Argümanlar, init_continuous_batching ile benzerdir, ancak şunlar hariç:

  • block: yönetici durdurulurken iş parçacığının (thread) engellenip engellenmeyeceğini belirtir. Varsayılan değer True'dur.
  • timeout: iş parçacığının durması için beklenmesi gereken maksimum süre. Varsayılan değer None (zaman aşımı yok).
  • warmup: çalıştırılmadan önce en büyük boyutlarda CUDA grafiklerini önceden yakalamak için kullanılıp kullanılmayacağı. Varsayılan değer True'dur.

destroy_cached_continuous_batching_manager

< >

( )

Önbelleğe alınmış sürekli toplu işleme yöneticisini yok edin ve GPU kaynaklarını serbest bırakın.

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]

Parametreler

  • inputs — Girdi token dizilerinin (istemlerin) listesi
  • generation_config — İsteğe bağlı üretim yapılandırması
  • continuous_batching_config — İsteğe bağlı sürekli toplama yapılandırması
  • record_timestamps — true olarak ayarlanırsa, istekler için üretilen her token için bir zaman damgası eklenir
  • progress_bar — true olarak ayarlanırsa, bir ilerleme çubuğu görüntülenir
  • persistent_manager — üretim tamamlandıktan sonra yöneticinin kalıcı olarak saklanıp saklanmayacağı. Varsayılan değer False'tur.
  • warmup — istekleri işlemeden önce CUDA grafiklerinin önceden yakalanıp yakalanmayacağı. Varsayılan değer True'dur.

Dönüş değeri

dict[str, GenerationOutput]

istek kimliklerinden GenerationOutput nesnelerine bir sözlük

Sürekli toplama (continuous batching) kullanarak bir istek (prompt) grubu için diziler (sequences) oluşturun.

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

Parametreler

  • generation_config — İsteğe bağlı bir üretim yapılandırması, bir CompileConfig nesnesi içerebilir
  • continuous_batching_config — İsteğe bağlı sürekli toplama yapılandırması
  • workload_hints — Varsayılan değerler için sürekli toplu işleme yöneticisinin daha iyi kararlar vermesine yardımcı olmak için isteğe bağlı WorkloadHints

Dönüş değeri

ContinuousBatchingManager

İstekleri eklemek ve sonuçları almak için yönetici örneği.

Sürekli toplu işleme (continuous batching) çıkarımı için bir yönetici başlatın.

ContinuousBatchingManager

sınıf transformers.ContinuousBatchingManager

< >

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

Üretim isteklerinin sürekli toplu işlenmesini (continuous batching) yöneten yönetici. Üretim isteklerini göndermek, sonuçları almak ve arka plandaki üretim iş parçacığını yönetmek için bir kullanıcı arayüzü sağlar. Bu sınıf doğrudan oluşturulmamalı, bunun yerine aşağıdaki giriş noktalarından biri (tümü ContinuousMixin karışımının yöntemleri) üzerinden oluşturulmalıdır:

  • 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

Parametreler

  • input_ids — İstem olarak kullanılacak girdi belirteç kimlikleri
  • request_id — İsteğe bağlı özel istek kimliği (None ise otomatik oluşturulur)
  • max_new_tokens — Üretilecek yeni tokenların maksimum sayısı
  • streaming — Üretilen token'ların akış olarak iletilip iletilmeyeceği
  • record_timestamps — Üretilen her token için zaman damgalarının kaydedilip kaydedilmeyeceği
  • eos_token_id — Sıra sonu belirteç kimliği (ID)
  • logit_processor_kwargs — logits işleyicisi için anahtar kelime argümanları.

Dönüş değeri

str | None

Süreç bir TP sürücüsü ise istek kimliği, aksi halde None.

Kuyruğa yeni bir üretim isteği ekler. Süreç bir TP sürücüsü değilse bu işlem bir işe yaramaz (no-op).

add_requests

< >

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

add_request işlemlerini toplu olarak yürütmek ve kimliklerini döndürmek için yardımcı işlev. Daha fazla ayrıntı için belgelerini kontrol edin.

cancel_request

< >

( request_id: str )

Bir isteği kimliğiyle iptal edin. Bu, bir TP sürücüsü olmayan bir süreçten çağrılırsa hiçbir şey yapmaz: yalnızca TP sürücü süreçleri yöneticiyle etkileşime girer.

destroy

< >

( )

Yöneticiyi sonlandırın ve dağıtık kaynakları serbest bırakın. Birden fazla kez çağrılması güvenlidir. Bu çağrının ardından yönetici yeniden başlatılamaz.

get_result

< >

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

Çıktı kuyruğundan bir sonuç alınır. Bir kimlik (ID) sağlanırsa, eşleşen ilk istek döndürülür. Bir zaman aşımı (timeout) sağlanırsa, zaman aşımı (saniye cinsinden) sonrasında None döndürülür.

is_running

< >

( )

Arka plan üretim iş parçacığı başlatılmışsa ve hâlâ aktifse True döndürür.

birleştir

< >

( stop_trigger_time: floattimeout: float | None = None )

Arka plan iş parçacığının bitmesini bekleyin. Wait, timeout (saniye cinsinden) argümanı kullanılarak sınırlandırılabilir.

duraklat

< >

( )

Üretim döngüsünü duraklatan bir bağlam yöneticisi; çağıran iş parçacığının modeli kullanmasına, tipik olarak onu yerinde güncellemesine olanak tanır. İş parçacığı, döngü duraklatıldığında yalnızca bu bağlama girer ve çıkışta döngü, önbelleğini ve işlenmekte olan isteklerini koruyarak yeniden başlar: hiçbir şey boşaltılmaz ve hiçbir istek kaybolmaz. Birden fazla iş parçacığı aynı anda duraklatmayı tutabilir ve döngü, son iş parçacığı çıktığında yeniden başlar. TP açıksa, tüm sıraların bu bağlama girmesi gerekir; aksi takdirde diğer sıralar sonsuza kadar bekler.

register_result_handler

< >

( request_id: strcallback: Callable )

Parametreler

  • request_id (str) — Çıktıları almak için istek kimliği.
  • callback (callable) — Her sonuç için bir GenerationOutput ile çağrılır.

Sonuç teslimi (akışkan veya akışkan olmayan) için bir geri bildirim kaydedin.

Geri çağrı, bu istek için her sonuç üretildiğinde call_soon_threadsafe aracılığıyla olay döngüsünde (event loop) çağrılır. Akış (streaming) isteklerinde bu her jeton için; akış dışı isteklerde yalnızca tamamlanma anında gerçekleşir. İşleyici, istek bittiğinde otomatik olarak temizlenir.

request_id_iter

< >

( request_id: str )

Belirli bir istek kimliğiyle eşleşen sonuçların üzerinden yinele (engelleyici).

Yeniden kuyruğa alma ile paylaşılan çıktı kuyruğunu kullanır. Yüksek eşzamanlılıkta sunum için bunun yerine register_result_handler kullanın.

başlat

< >

( )

Arka plan üretim iş parçacığını başlatın.

durdur

< >

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

Arka plan üretim iş parçacığını durdurur. block bayrağı True olarak ayarlanırsa, bu yöntem iş parçacığının durması için en fazla timeout saniye (None, zaman aşımı olmadığını belirtir) bekler. keep_for_next_session bayrağı True olarak ayarlanırsa, yönetici gelecekteki kullanım için modelde önbelleğe alınır. hard_stop bayrağı ayarlanırsa, arka plan üretim iş parçacığı derhal durdurulur ve bekleyen istekler başarısız sayılır.

switch_to_cb_friendly_attn

< >

( model: ProtoPretrainedModelauto_switch_to_flash: bool = True )

attn uygulamasını CB ile uyumlu olan bir uygulamaya değiştirin. auto_switch_to_flash True ise ve attn uygulaması SDPA veya eager ise, destekleniyorsa ve kullanılabilirse flash'a da geçin.

ısınma

< >

( )

Dummy batch'ler çalıştırılarak varlen ve decode yolları için CUDA grafiklerini önceden yakalayın. Batch işleyicisi henüz başlatılmadıysa başlatır.

Zamanlayıcı

sınıf transformers.generation.Scheduler

< >

( cache: PagedAttentionCachesafety_margin: floatmax_requests_per_batch: int )

Sürekli toplu işlemci içinde istekleri zamanlamak için soyut temel sınıf. Zamanlayıcılar, isteklerin bekleme kuyruğuna eklendiği andan işleme için zamanlanana kadar olan yaşam döngüsünü yönetir. Farklı zamanlayıcılar, istekleri önceliklendirme ve toplu işleme için farklı stratejiler uygular.

add_waiting_request

< >

( state: RequestState )

Bekleme listesine bir istek ekler.

clear_cancelled_requests

< >

( )

İptal edilen tüm istekleri aktif ve bekleme kuyruklarından kaldırın.

finish_request

< >

( request_id: str )

Bir isteğin işlenmesini tamamlar ve ona ayrılmış önbellek bloklarını serbest bırakır. Bu yöntem, bir istek üretimi tamamladığında veya bir hata ile karşılaştığında çağrılır.

get_active_request_static_outputs

< >

( request_id: str )

Aktif bir istek için üretilen tokenları alır.

has_pending_requests

< >

( )

İşlenecek hazır isteklerin olup olmadığını kontrol eder.

request_is_cancelled

< >

( request_id: str )

Bir isteğin iptal edilip edilmediğini veya kaldırılıp kaldırılmadığını kontrol eder.

sıfırla

< >

( )

Yeni bir üretim döngüsü için zamanlayıcı durumunu sıfırlayın.

schedule_batch

< >

( token_budget: intcache_budget: int )

Mevcut token ve önbellek bütçelerine göre sonraki parti için istekleri zamanlar. Bu yöntem, bütçeleri ve zamanlayıcının önceliklendirme kurallarını dikkate alarak mevcut partide işlenecek istekleri seçer. token_budget, bir partide işlenebilecek maksimum token sayısını, cache_budget ise bir partide okunabilecek maksimum KV önbellek girdisi sayısını belirtir. Zamanlanmış istek listesini “FutureRequestState” biçiminde, decode hızlı yolunun kullanılıp kullanılamayacağını gösteren bir boolean, toplam sorgu token sayısı ve okunan maksimum kv token sayısını döndürür.

set_request_cancellation

< >

( request_id: str )

İptal isteğini işaretler.

FIFOScheduler

sınıf transformers.generation.FIFOScheduler

< >

( cache: PagedAttentionCachesafety_margin: float | Nonemax_requests_per_batch: int )

Bu zamanlayıcı, istekleri geldikleri sırada işler; bu da çözümleme isteklerinin ön işleme isteklerine göre öncelikli olduğu anlamına gelir.

PrefillFirstScheduler

sınıf transformers.generation.PrefillFirstScheduler

< >

( cache: PagedAttentionCachesafety_margin: float | Nonemax_requests_per_batch: int )

Bölünmüş prefill isteklerini çözümleme isteklerine göre önceliklendiren zamanlayıcı. Bu zamanlayıcı, yeni çözümleme istekleri işlenmeden önce bölünmüş prefill isteklerinin (kısmen işlenmiş istemlerin devamı olan istekler) tamamlanmasını sağlar.

Update on GitHub