Buckets:
| # LLaDA2 | |
| [LLaDA2](https://huggingface.co/collections/inclusionAI/llada21), blok bazlı iteratif iyileştirme yoluyla metin üreten ayrık difüzyon dil modelleri ailesidir. Otoregresif token-token üretimine alternatif olarak LLaDA2, tamamen maskelenmiş bir diziden başlar ve birden fazla iyileştirme adımında tokenları güven düzeyine göre kademeli olarak maskesini kaldırır. | |
| ## Kullanım | |
| ```py | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| from diffusers import BlockRefinementScheduler, LLaDA2Pipeline | |
| model_id = "inclusionAI/LLaDA2.1-mini" | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_id, trust_remote_code=True, dtype=torch.bfloat16, device_map="auto" | |
| ) | |
| tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) | |
| scheduler = BlockRefinementScheduler() | |
| pipe = LLaDA2Pipeline(model=model, scheduler=scheduler, tokenizer=tokenizer) | |
| output = pipe( | |
| prompt="Write a short poem about the ocean.", | |
| gen_length=256, | |
| block_length=32, | |
| num_inference_steps=32, | |
| threshold=0.7, | |
| editing_threshold=0.5, | |
| max_post_steps=16, | |
| temperature=0.0, | |
| ) | |
| print(output.texts[0]) | |
| ``` | |
| ## Geri Çağrılar | |
| Callbacks, her iyileştirme adımının ardından çalışır. `callback_kwargs` içinde hangi tensörlerin yer alacağını seçmek için `callback_on_step_end_tensor_inputs` parametresini iletin. Mevcut uygulamada `block_x` (iyileştirilen dizi penceresi) ve `transfer_index` (maske doldurma onay maskesi) sağlanır; pencereyi değiştirmek için callback'den `{"block_x": ...}` döndürün. | |
| ```py | |
| def on_step_end(pipe, step, timestep, callback_kwargs): | |
| block_x = callback_kwargs["block_x"] | |
| # Inspect or modify `block_x` here. | |
| return {"block_x": block_x} | |
| out = pipe( | |
| prompt="Write a short poem.", | |
| callback_on_step_end=on_step_end, | |
| callback_on_step_end_tensor_inputs=["block_x"], | |
| ) | |
| ``` | |
| ## Önerilen parametreler | |
| LLaDA2.1 modelleri iki modu destekler: | |
| | Mod | `threshold` | `editing_threshold` | `max_post_steps` | | |
| |------|-------------|---------------------|------------------| | |
| | Kalite | 0.7 | 0.5 | 16 | | |
| | Hız | 0.5 | `None` | 16 | | |
| Post-mask düzenlemeyi kapatmak için `editing_threshold=None`, `0.0` veya negatif bir değer geçirin. | |
| LLaDA2.0 modelleri için düzenlemeyi devre dışı bırakmak için `editing_threshold=None` veya `0.0` geçirin. | |
| Tüm modeller için: `block_length=32`, `temperature=0.0`, `num_inference_steps=32`. | |
| ## LLaDA2Pipeline[[diffusers.LLaDA2Pipeline]] | |
| #### diffusers.LLaDA2Pipeline[[diffusers.LLaDA2Pipeline]] | |
| ```python | |
| diffusers.LLaDA2Pipeline(model: Any, scheduler: BlockRefinementScheduler, tokenizer: Any | None = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/llada2/pipeline_llada2.py#L59) | |
| LLaDA2 tarzı blok bazlı iteratif iyileştirme yoluyla ayrık difüzyon metin üretimi için pipeline. | |
| Bu pipeline, `mask_token_id` ile doldurulmuş bir şablon dizisini korur ve bunu bloklar halinde iyileştirir. Her iyileştirme adımında, aktif blok için aday token'lar örneklenir ve güvene dayalı olarak bir alt küme onaylanır. | |
| Modelin bir dikkat maskesi ve `position_ids` kabul etmesi ve `[batch, seq, vocab_size]` biçiminde logitler döndürmesi beklenir. | |
| #### __call__[[diffusers.LLaDA2Pipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] | None = None, messages: list[dict[str, str]] | None = None, input_ids: torch.LongTensor | None = None, attention_mask: torch.LongTensor | None = None, use_chat_template: bool = True, add_generation_prompt: bool = True, gen_length: int = 2048, block_length: int | None = None, num_inference_steps: int = 32, temperature: float = 0.0, top_p: float | None = None, top_k: int | None = None, sampling_method: str = 'multinomial', threshold: float = 0.7, editing_threshold: float | None = 0.5, max_post_steps: int = 16, minimal_topk: int = 1, eos_early_stop: bool = True, eos_token_id: int | None = None, mask_token_id: int | None = None, generator: torch.Generator | None = None, output_type: str = 'text', return_dict: bool = True, callback_on_step_end: Callable[[int, int, dict], None] | PipelineCallback | MultiPipelineCallbacks | None = None, callback_on_step_end_tensor_inputs: list[str] | None = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/llada2/pipeline_llada2.py#L242) | |
| **Parametreler:** | |
| prompt (`str` veya `List[str]`, *isteğe bağlı*) : İstek metni. `use_chat_template` `True` (varsayılan) olduğunda ve sohbet şablonu olan bir tokenizer mevcut olduğunda, istek, tokenizasyondan önce bir sohbet mesajına sarılır. | |
| messages (`List[Dict[str, str]]`, *isteğe bağlı*) : Kodlanacak sohbet mesajları (ör. `[{"role": "user", "content": "Hello"}]`). Verildiğinde `prompt` parametresine öncelik verir. `apply_chat_template` içeren bir tokenizer gerektirir. | |
| input_ids (`torch.LongTensor`, *isteğe bağlı*) : Ön işlenmiş girdi kimlikleri. `prompt` ve `messages` üzerinde önceliğe sahiptir. | |
| attention_mask (`torch.LongTensor`, *isteğe bağlı*) : `input_ids` biçimiyle eşleşen, token başına maske (geçerli istem tokenları için 1, dolgu için 0). Yalnızca `input_ids` sağlandığında kullanılır. Atlandığında (ve `input_ids` verildiğinde), tüm konumlar geçerli olarak kabul edilir. `prompt` / `messages` kullanılarak girdiler oluşturulduğunda, tokenizer'ın maskesi otomatik olarak aktarılır. | |
| use_chat_template (`bool`, varsayılan `True`) : İsteğin bir sohbet şablonuyla sarılıp sarılmayacağı. | |
| add_generation_prompt (`bool`, varsayılan `True`) : Sohbet şablonları kullanılırken üretim istemcinin eklenip eklenmeyeceğini belirtir. | |
| gen_length (`int`) : Üretilecek jeton sayısı. | |
| block_length (`int`, *isteğe bağlı*) : İnce ayar için blok boyutu. Verilmezse, zamanlayıcının yapılandırılmış `block_length` değeri kullanılır. | |
| num_inference_steps (`int`) : Blok başına iyileştirme adımı sayısı. | |
| temperature (`float`) : Örnekleme sıcaklığı. | |
| top_p (`float`, *isteğe bağlı*) : Nükleer örneklem kesme değeri. | |
| top_k (`int`, *isteğe bağlı*) : Top-k örneklemesi kesme noktası. | |
| sampling_method (`str`) : Örnekleme yöntemi (`auto`, `greedy`, `multinomial`). | |
| threshold (`float`) : Token'ların onaylanması için güven eşiği. | |
| editing_threshold (`float`, *isteğe bağlı*) : Zaten taahhüt edilmiş (mask olmayan) jetonların düzenlenmesi için güven eşiği. Pozitif olduğunda, bir blokta tüm mask jetonları çözüldükten sonra pipeline ince ayarı sürdürür: model, bu eşiğin üzerinde bir güvenle farklı bir jeton öngörürse, mevcut jeton değiştirilir. Düzenlemeyi devre dışı bırakmak için `None`, `0.0` veya negatif bir değer ayarlayın. Varsayılan değer `0.5`'tir. | |
| max_post_steps (`int`) : Bir blokta tüm mask jetonları çözümlendikten sonra uygulanacak ek iyileştirme iterasyonlarının maksimum sayısı. Yalnızca `editing_threshold` etkinleştirildiğinde kullanılır. Varsayılan değeri `16`'dır. | |
| minimal_topk (`int`) : Adım başına taahhüt edilecek minimum token sayısı. | |
| eos_early_stop (`bool`) : Bir blokta EOS taahhüt edildikten sonra durulup durulmayacağı. | |
| eos_token_id (`int`, *isteğe bağlı*) : Erken durdurma için kullanılacak EOS token kimliği. | |
| mask_token_id (`int`, *isteğe bağlı*) : Şablon için kullanılacak maske belirteç kimliği. | |
| generator (`torch.Generator`, *isteğe bağlı*) : Örnekleme için RNG. | |
| output_type (`str`, varsayılan `"text"`) : Çıktı biçimi. `"text"`, dizileri metinlere çözer (bir tokenizer gerektirir). `"seq"`, yalnızca ham token kimliği dizilerini döndürür. | |
| return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Bir tuple yerine [LLaDA2PipelineOutput](/docs/diffusers/main/tr/api/pipelines/llada2#diffusers.LLaDA2PipelineOutput) döndürülüp döndürülmemesi. | |
| callback_on_step_end (`Callable` veya `PipelineCallback`, *isteğe bağlı*) : İmzası `callback_on_step_end(self, step: int, timestep: int, callback_kwargs: Dict)` olan, her iyileştirme adımından sonra çalıştırılan geri çağrı. | |
| callback_on_step_end_tensor_inputs (`List[str]`, *isteğe bağlı*) : Geri çağrıya iletilecek Tensor anahtarları. İzin verilen anahtarlar: `block_x`, `transfer_index`, `editing_transfer_index`, `sampled_tokens`, `sampled_probs`, `active_block`. | |
| **Dönüş:** [LLaDA2PipelineOutput](/docs/diffusers/main/tr/api/pipelines/llada2#diffusers.LLaDA2PipelineOutput) veya `tuple` | |
| `return_dict` `True` ise [LLaDA2PipelineOutput](/docs/diffusers/main/tr/api/pipelines/llada2#diffusers.LLaDA2PipelineOutput) döndürülür, aksi takdirde ilk öğesi üretilen token kimlikleri (`torch.LongTensor`), ikinci öğesi ise çözümlenmiş metinler (`list[str]`) olan bir `tuple` döndürülür; `output_type` `"seq"` olduğunda ise `None` döndürülür. | |
| Blok bazlı iyileştirme ile metin üretin. | |
| Örnekler: | |
| ```python | |
| >>> import torch | |
| >>> from transformers import AutoModelForCausalLM, AutoTokenizer | |
| >>> from diffusers import BlockRefinementScheduler, LLaDA2Pipeline | |
| >>> model_id = "inclusionAI/LLaDA2.1-mini" | |
| >>> model = AutoModelForCausalLM.from_pretrained( | |
| ... model_id, trust_remote_code=True, dtype=torch.bfloat16, device_map="auto" | |
| ... ) | |
| >>> tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) | |
| >>> scheduler = BlockRefinementScheduler() | |
| >>> pipe = LLaDA2Pipeline(model=model, scheduler=scheduler, tokenizer=tokenizer) | |
| >>> output = pipe(prompt="What is the meaning of life?", gen_length=256) | |
| >>> print(output.texts[0]) | |
| ``` | |
| ## LLaDA2PipelineOutput[[diffusers.LLaDA2PipelineOutput]] | |
| #### diffusers.LLaDA2PipelineOutput[[diffusers.LLaDA2PipelineOutput]] | |
| ```python | |
| diffusers.LLaDA2PipelineOutput(sequences: torch.LongTensor, texts: list[str] | None = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/llada2/pipeline_llada2.py#L54) | |
Xet Storage Details
- Size:
- 9.96 kB
- Xet hash:
- 1413c4e8358fa6161ced85dea5b52b2662ee093efc0ef757003634134ef27ddb
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.