Buckets:

hf-doc-build/doc / diffusers /main /tr /api /models /omnigen_transformer.md
mishig's picture
|
download
raw
6.68 kB

OmniGenTransformer2DModel

OmniGen için görüntüler üretmek üzere çok modlu talimatları kabul eden bir Transformer modeli.

Makalenin özeti şudur:

Büyük Dil Modelleri'nin (LLM) ortaya çıkması, dil üretim görevlerini birleştirmiş ve insan-makine etkileşimini devrim niteliğinde dönüştürmüştür. Ancak görüntü üretimi alanında, tek bir çerçeve içinde çeşitli görevleri ele alabilen birleşik bir model büyük ölçüde keşfedilmemiştir. Bu çalışmada, birleşik görüntü üretimi için yeni bir difüzyon modeli olan OmniGen'i tanıtıyoruz. OmniGen, aşağıdaki özelliklerle karakterize edilir: 1) Birleştirme: OmniGen yalnızca metinden görüntüye üretim yeteneklerini sergilemekle kalmaz, aynı zamanda görüntü düzenleme, nesne odaklı üretim ve görsel koşullu üretim gibi çeşitli aşağı akış görevlerini de doğal olarak destekler. 2) Sadelik: OmniGen'in mimarisi son derece basitleştirilmiştir ve ek eklentilere olan ihtiyacı ortadan kaldırır. Ayrıca, mevcut difüzyon modellerine kıyasla daha kullanıcı dostudur ve ek ara adımlara ihtiyaç duymadan, talimatlar yoluyla karmaşık görevleri uçtan uca tamamlayabilir; bu da görüntü üretim iş akışını büyük ölçüde basitleştirir. 3) Bilgi Transferi: Birleşik bir biçimde öğrenmeden faydalanarak OmniGen, farklı görevler arasında bilgiyi etkili bir şekilde aktarır, görülmemiş görevleri ve alanları yönetir ve yeni yetenekler sergiler. Ayrıca modelin akıl yürütme yeteneklerini ve chain-of-thought mekanizmasının potansiyel uygulamalarını da inceliyoruz. Bu çalışma, genel amaçlı bir görüntü üretim modeli için ilk denemeyi temsil etmektedir ve gelecekteki ilerlemeleri teşvik etmek için kaynaklarımızı https://github.com/VectorSpaceLab/OmniGen adresinde yayınlayacağız.

import torch
from diffusers import OmniGenTransformer2DModel

transformer = OmniGenTransformer2DModel.from_pretrained("Shitao/OmniGen-v1-diffusers", subfolder="transformer", dtype=torch.bfloat16)

OmniGenTransformer2DModel[[diffusers.OmniGenTransformer2DModel]]

diffusers.OmniGenTransformer2DModel[[diffusers.OmniGenTransformer2DModel]]

diffusers.OmniGenTransformer2DModel(in_channels: int = 4, patch_size: int = 2, hidden_size: int = 3072, rms_norm_eps: float = 1e-05, num_attention_heads: int = 32, num_key_value_heads: int = 32, intermediate_size: int = 8192, num_layers: int = 32, pad_token_id: int = 32000, vocab_size: int = 32064, max_position_embeddings: int = 131072, original_max_position_embeddings: int = 4096, rope_base: int = 10000, rope_scaling: dict = None, pos_embed_max_size: int = 192, time_step_dim: int = 256, flip_sin_to_cos: bool = True, downscale_freq_shift: int = 0, timestep_activation_fn: str = 'silu')

Kaynak

Parametreler:

in_channels (int, varsayılan 4) : Girdideki kanal sayısı.

patch_size (int, varsayılan 2) : Yama gömme katmanında kullanılacak uzamsal yamaların boyutu.

hidden_size (int, varsayılan 3072) : Modeldeki gizli katmanların boyutluluğu.

rms_norm_eps (float, varsayılan 1e-5) : RMSNorm katmanı için Eps.

num_attention_heads (int, varsayılan 32) : Çok başlı dikkat için kullanılacak baş sayısı.

num_key_value_heads (int, varsayılan 32) : Çok başlı dikkat (multi-head attention) içinde anahtarlar ve değerler için kullanılacak baş sayısı.

intermediate_size (int, varsayılan 8192) : FeedForward katmanlarındaki gizli katmanın boyutu.

num_layers (int, varsayılan 32) : Kullanılacak transformer bloğu katman sayısı.

pad_token_id (int, varsayılan 32000) : Dolgu belirtecinin kimliği.

vocab_size (int, varsayılan 32064) : Gömme sözlüğünün sözlük boyutu.

rope_base (int, varsayılan 10000) : RoPE oluşturulurken kullanılacak varsayılan theta değeri.

rope_scaling (dict, isteğe bağlı) : RoPE ölçekleme katsayıları. short_factor ve long_factor içermelidir.

pos_embed_max_size (int, varsayılan 192) : Konumsal gömme (positional embeddings) boyutunun maksimum değeri.

time_step_dim (int, varsayılan 256) : Zaman adımları gömme çıktısının boyutu.

flip_sin_to_cos (bool, varsayılan True) : Adım gömme hazırlanırken konumsal gömmedeki sin ve cos değerlerinin tersine çevrilip çevrilmeyeceğini belirtir.

downscale_freq_shift (int, varsayılan 0) : Zaman adımları gömme işlemlerini küçültürken kullanılacak frekans kayması.

timestep_activation_fn (str, varsayılan silu) : Zaman adımları gömme (embeddings) için kullanılacak aktivasyon fonksiyonu.

OmniGen'de (https://huggingface.co/papers/2409.11340) tanıtılan Transformer modeli.

forward[[diffusers.OmniGenTransformer2DModel.forward]]

forward(hidden_states: Tensor, timestep: typing.Union[int, float, torch.FloatTensor], input_ids: Tensor, input_img_latents: list, input_image_sizes: dict, attention_mask: Tensor, position_ids: Tensor, return_dict: bool = True)

Kaynak

Parametreler:

hidden_states (torch.Tensor, şekli (batch_size, in_channels, height, width)) : Girdi hidden_states.

timestep (torch.LongTensor) : Gürültü azaltma adımını belirtmek için kullanılır.

input_ids (torch.Tensor) : Koşullama olarak kullanılan çok modlu metin token kimlikleri.

input_img_latents (list of torch.Tensor) : Koşullama olarak kullanılan giriş görüntülerinin list tipi latentleri.

input_image_sizes (dict, int anahtarlarından list of int değerlerine) : Örnek dizininden, koşullandırma dizisindeki girdi görsel gömme yerlerinin konumlarına eşleme.

attention_mask (torch.Tensor) : Birleşik çok modlu dizinin dikkat maskesi.

position_ids (torch.Tensor) : Konumsal gömme hesaplamalarında kullanılan konum kimlikleri.

return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine ~models.transformer_2d.Transformer2DModelOutput döndürülüp döndürülmediğini belirtir.

Dönüş: ~models.transformer_2d.Transformer2DModelOutput veya tuple

return_dict True ise, ~models.transformer_2d.Transformer2DModelOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

OmniGenTransformer2DModel ileri yöntemi.

Xet Storage Details

Size:
6.68 kB
·
Xet hash:
2c3792329a198bfd65de1cfd965cd160049cf287e51ff30d2441afd941d5e3d8

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.