Transformers documentation

Cohere

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

Bu model, 2024-03-15 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.

FlashAttention SDPA Tensor parallelism

Cohere

Cohere Command-R, RAG (retrieval-augmented generation) ve harici API'ler ile araçları çağırma gibi uzun bağlam görevleri için tasarlanmış, 35B parametreli çok dilli büyük bir dil modelidir. Model, temellendirilmiş üretim (grounded generation) için özel olarak eğitilmiştir ve hem tek adımlı hem de çok adımlı araç kullanımını destekler. 128K token'lık bir bağlam uzunluğunu destekler.

Tüm orijinal Command-R checkpoint'lerini Command Models koleksiyonunda bulabilirsiniz.

Farklı dil görevlerine Cohere'yi nasıl uygulayacağınızla ilgili daha fazla örnek için sağ kenar çubuğundaki Cohere modellerine tıklayın.

Aşağıdaki örnek, Pipeline veya AutoModel ile ve komut satırından metin üretmenin nasıl yapılacağını göstermektedir.

Pipeline
AutoModel
transformers CLI
from transformers import pipeline


pipeline = pipeline(
    task="text-generation",
    model="CohereForAI/c4ai-command-r-v01",
    device=0
)
pipeline("Plants create energy through a process known as")

Quantization, ağırlıkları daha düşük bir hassasiyetle temsil ederek büyük modellerin bellek yükünü azaltır. Daha fazla kullanılabilir quantization backend'i için Quantization genel bakışına başvurun.

Aşağıdaki örnek, ağırlıkları 4-bite küçültmek için bitsandbytes kullanır.

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig


bnb_config = BitsAndBytesConfig(load_in_4bit=True)
tokenizer = AutoTokenizer.from_pretrained("CohereForAI/c4ai-command-r-v01")
model = AutoModelForCausalLM.from_pretrained("CohereForAI/c4ai-command-r-v01", device_map="auto", quantization_config=bnb_config, attn_implementation="sdpa")

# format message with the Command-R chat template
messages = [{"role": "user", "content": "How do plants make energy?"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
output = model.generate(
    input_ids,
    max_new_tokens=100,
    do_sample=True,
    temperature=0.3,
    cache_implementation="static",
)
print(tokenizer.decode(output[0], skip_special_tokens=True))

Modelin hangi token'lara dikkat edebildiğini ve edemediğini daha iyi anlamak için AttentionMaskVisualizer'ı kullanın.

from transformers.utils.attention_visualizer import AttentionMaskVisualizer


visualizer = AttentionMaskVisualizer("CohereForAI/c4ai-command-r-v01")
visualizer("Plants create energy through a process known as")

Notlar

CohereConfig

sınıf transformers.CohereConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 256000hidden_size: int = 8192intermediate_size: int = 22528logit_scale: float | None = 0.0625num_hidden_layers: int = 40num_attention_heads: int = 64num_key_value_heads: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 8192initializer_range: float = 0.02layer_norm_eps: float | None = 1e-05use_cache: bool = Truepad_token_id: int | None = 0bos_token_id: int | None = 5eos_token_id: int | list[int] | None = 255001tie_word_embeddings: bool = Truerope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int | None = 0.0use_qk_norm: bool | None = False )

Parametreler

  • vocab_size (int, isteğe bağlı, varsayılan 256000) — Modelin sözlük boyutu. input_ids tarafından temsil edilebilecek farklı token sayısını tanımlar.
  • hidden_size (int, isteğe bağlı, varsayılan 8192) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 22528) — MLP temsillerinin boyutu.
  • logit_scale (float, isteğe bağlı, varsayılan 0.0625) — Çıktı logit'leri için ölçekleme faktörü.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 40) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 64) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • num_key_value_heads (int, isteğe bağlı) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır. num_key_value_heads=num_attention_heads ise model Multi Head Attention (MHA) kullanır, num_key_value_heads=1 ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olarak num_attention_heads kullanılır.
  • hidden_act (str, isteğe bağlı, varsayılan silu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 8192) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • use_cache (bool, isteğe bağlı, varsayılan True) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızca config.is_decoder=True olduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir.
  • pad_token_id (int, isteğe bağlı, varsayılan 0) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı, varsayılan 5) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 255001) — Sözlükte akış sonu için kullanılan token kimliği.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan True) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve daha uzun max_position_embeddings ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
  • attention_bias (bool, isteğe bağlı, varsayılan False) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • use_qk_norm (bool, isteğe bağlı, varsayılan False) — Dikkat mekanizmasında sorgu-anahtar normalizasyonunun kullanılıp kullanılmayacağı.

Bu, bir CohereModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Cohere modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, CohereForAI/c4ai-command-r-v01 modelinin yapılandırmasına benzer bir yapılandırma üretir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

>>> from transformers import CohereModel, CohereConfig

>>> # Initializing a Cohere model configuration
>>> configuration = CohereConfig()

>>> # Initializing a model from the Cohere configuration
>>> model = CohereModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

CohereTokenizer

sınıf transformers.CohereTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Noneerrors: str = 'replace'unk_token: str = '<UNK>'bos_token: str = '<BOS_TOKEN>'eos_token: str = '<|END_OF_TURN_TOKEN|>'pad_token: str = '<PAD>'cls_token: str = '<CLS>'sep_token: str = '<SEP>'mask_token: str = '<MASK_TOKEN>'use_default_system_prompt: bool = Falseadd_prefix_space: bool = False**kwargs )

Parametreler

  • vocab_file (str, isteğe bağlı) — Sözlük dosyasının yolu.
  • merges_file (str, isteğe bağlı) — Merges dosyasının yolu.
  • tokenizer_file (str, isteğe bağlı) — tokenizörün yüklenmesi için gereken her şeyi içeren tokenizers dosyası (genellikle .json uzantısına sahiptir).
  • clean_up_tokenization_spaces (bool, isteğe bağlı, varsayılan False) — Çözümleme sonrası boşlukları temizleyip temizlemeyeceğini belirtir. Temizleme işlemi, ek boşluklar gibi olası artefaktları kaldırmayı içerir.
  • unk_token (str veya tokenizers.AddedToken, isteğe bağlı, varsayılan "<UNK>") — Bilinmeyen token. Sözlükte yer almayan bir token, bir kimliğe dönüştürülemez ve bunun yerine bu token olarak ayarlanır.
  • bos_token (str veya tokenizers.AddedToken, isteğe bağlı, varsayılan "<BOS_TOKEN>") — Ön eğitim sırasında kullanılan dizinin başlangıç token'ı. Bir dizin sınıflandırıcı token'ı olarak kullanılabilir.
  • eos_token (str veya tokenizers.AddedToken, isteğe bağlı, varsayılan "<|END_OF_TURN_TOKEN|>") — Dizi sonu belirteci.
  • add_bos_token (bool, isteğe bağlı, varsayılan True) — Dizilerin başına bos_token eklenip eklenmeyeceği.
  • add_eos_token (bool, isteğe bağlı, varsayılan False) — Dizilerin sonuna eos_token eklenip eklenmeyeceği.
  • use_default_system_prompt (bool, isteğe bağlı, varsayılan False) — Cohere tokenizer için varsayılan sistem isteminin kullanılıp kullanılmayacağı.
  • add_prefix_space (bool, isteğe bağlı, varsayılan False) — Tokenizörün otomatik olarak bir önek boşluğu ekleyip eklemeyeceği
  • vocab (str, dict veya list, isteğe bağlı) — Özel sözlük. Sağlanmazsa, sözlük vocab_file'den yüklenir.
  • merges (str veya list[str], isteğe bağlı) — Özel birleştirmeler listesi. Sağlanmazsa, birleştirmeler merges_file içinden yüklenir.

Cohere tokenizer'ı oluşturun. Bayt düzeyinde Byte-Pair-Encoding tabanlıdır.

Bu, özellikle ByteFallback ve NFC normalizasyonunu kullanır.

>>> from transformers import AutoTokenizer

>>> tokenizer = AutoTokenizer.from_pretrained("CohereForAI/c4ai-command-r-v01")
>>> tokenizer.encode("Hello this is a test")
[5, 28339, 2075, 1801, 1671, 3282]

bos_token veya eos_token değerlerini değiştirmek istiyorsanız, bunları modelin başlatılması sırasında belirtmekten veya işlemin doğru şekilde yapılmasını sağlamak için tokenizer.update_post_processor() çağrısını yapmaktan emin olun (aksi takdirde kodlanmış bir dizinin ilk ve son token değerleri doğru olmayacaktır). Daha fazla ayrıntı için [post-processors] (https://huggingface.co/docs/tokenizers/api/post-processors) belgesine göz atın.

Bu davranışın etrafından dolaşmak için bu tokenizer'ı örneklerken add_prefix_space=True parametresini geçebilirsiniz, ancak model bu şekilde ön eğitilmediğinden performans düşüşüne yol açabilir.

is_split_into_words=True ile kullanıldığında, bu tokenizer'ın add_prefix_space=True ile örneklenmesi gerekir.

Bu tokenizer, ana yöntemlerin çoğunu içeren TokenizersBackend sınıfından devralır. Kullanıcıların bu yöntemlerle ilgili daha fazla bilgi için bu üst sınıfa başvurması gerekir.

apply_grounded_generation_template

< >

( conversation: listdocuments: listcitation_mode: typing.Literal['fast', 'accurate'] = 'accurate'**kwargs ) → str

Parametreler

  • conversation (list[dict[str, str]]) — Şu ana kadarki sohbet geçmişini temsil eden, “role” ve “content” anahtarlarına sahip sözlüklerden oluşan bir liste.
  • documents (list[dict[str, str]]) — Üretiminizi temellendirmek için belgeleri veya araç çıktıları temsil eden sözlüklerden oluşan bir liste. Bir belge, anahtarın açıklayıcı olması gereken, string'ten string'e eşlemeye sahip yarı yapılandırılmış bir sözlüktür. Yaygın alanlar url, title, snippet vb. şeklindedir ve istemciye (prompt) işlenir.
  • citation_mode — “accurate” (modelin önce bir yanıt üretmesini, ardından bu yanıtı alıntı aralıkları ekleyerek yeniden yazmasını sağlar) veya “fast” (modelin alıntıları doğrudan içeren bir yanıt üretmesini sağlar). İlkinde alıntılar daha yüksek kalitededir, ikincisi ise üretilmesi gereken token sayısını azaltır.
  • add_generation_prompt (bool, isteğe bağlı) — İstemin, asistan mesajının başlangıcını gösteren token(lar) ile bitirilip bitirilmeyeceğini belirtir. Bu, modelden bir yanıt üretmek istediğinizde kullanışlıdır. Bu argümanın herhangi bir etki yaratabilmesi için, sohbet şablonuna aktarılacağı ve şablon tarafından desteklenmesi gerektiğini unutmayın.
  • tokenize (bool, varsayılan True) — Çıktının tokenize edilip edilmeyeceği. False ise çıktı bir dize olacaktır.
  • padding (bool, varsayılan False) — Dizilerin maksimum uzunluğa doldurulup doldurulmayacağını belirtir. tokenize False ise etkisi yoktur.
  • truncation (bool, varsayılan False) — Dizilerin maksimum uzunlukta kırpılıp kırpılmayacağını belirtir. tokenize False ise etkisi yoktur.
  • max_length (int, isteğe bağlı) — Doldurma veya kısaltma için kullanılacak maksimum uzunluk (token cinsinden). tokenize False ise etkisi yoktur. Belirtilmezse, tokenizer'ın max_length özniteliği varsayılan olarak kullanılır.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. tokenize False ise etkisi yoktur. False. Kabul edilen değerler:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • return_dict (bool, isteğe bağlı, varsayılan False) — Adlandırılmış çıktıları içeren bir sözlük döndürülüp döndürülmeyeceğini belirtir. tokenize False ise etkisi yoktur.
  • **tokenizer_kwargs — Tokenizöre iletilecek ek kwargs.

Dönüş değeri

str

Render edilmiş bir prompt dizgesi. ya da tokenize=True ise: list[int]: Şu ana kadar tokenize edilmiş sohbeti, kontrol token'ları dahil olmak üzere temsil eden token kimlikleri listesi. Bu çıktı, doğrudan veya generate() gibi yöntemler aracılığıyla modele iletmeye hazırdır.

Bir Command-R temelli üretim (aka RAG) istemci oluşturun.

İşlendikten sonra, istem modelden, sağlanan belgelere dayalı olarak alıntı içeren bir yanıt üretmesini ister.

Kavramsal olarak bu, apply_chat_format ile aynı şekilde çalışır ancak ek olarak documents ve citation_mode parametrelerini alır.

"role" ve "content" anahtarlarına sahip sözlük listesini ve modelin yanıtını dayandırmak için kullanacağı belge listesini bir istemci (prompt) dizesine veya token kimliği listesine dönüştürür. Bu yöntem, sınıf düzeyinde belirtilen tokenizer'ın grounded_generation_template şablonunu kullanır. Varsayılan şablonu grounded_generation_template anahtar kelimesiyle (kwarg) geçersiz kılabilirsiniz ancak sonuçlarınızın kalitesi azalabilir.

Örnekler:

>> tokenizer = CohereTokenizer.from_pretrained('CohereForAI/c4ai-command-r-v01')

>> # define documents:
>> documents = [
    { "title": "Tall penguins", "text": "Emperor penguins are the tallest." },
    { "title": "Penguin habitats", "text": "Emperor penguins only live in Antarctica."}
]
>> # define a conversation:
>> conversation = [
    {"role": "user", "content": "What's the biggest penguin in the world?"}
]
>> # render the prompt, ready for user to inspect, or for input into the model:
>> grounded_generation_prompt = tokenizer.apply_grounded_generation_template(conversation, documents=documents, tokenize=False, add_generation_prompt=True)
>> print(grounded_generation_prompt)
>> inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors='pt')
>> outputs = model.generate(inputs, max_new_tokens=128)
>> print(tokenizer.decode(outputs[0]))

apply_tool_use_template

< >

( conversation: listtools: list**kwargs ) → str

Parametreler

  • conversation (list[dict[str, str]]) — Şu ana kadarki sohbet geçmişini temsil eden, “role” ve “content” anahtarlarına sahip sözlüklerden oluşan bir liste.
  • tools (list[Dict]) — modelin seçim yapması için prompt'a yerleştirilecek araçların listesi. Docstring'in alt kısmında bir örnek bulunabilir. Biçim şu şekilde olmalıdır:
    • name (str): Çağrılacak aracın adı. Geçerli adlar yalnızca a-z, A-Z, 0-9 ve _ karakterlerini içerir ve rakamla başlayamaz.
    • description (str): Aracın ne yaptığını açıklayan açıklama; model, fonksiyonu ne zaman ve nasıl çağıracağına karar vermek için bu açıklamayı kullanır.
    • parametretanımları (list[Dict]): Aracın girdi parametreleri. Anahtarı parametrenin adı, değeri ise parametre spesifikasyonu olan bir sözlük kabul eder. Geçerli parametre adları yalnızca a-z, A-Z, 0-9 karakterlerini içerir ve bir rakamla başlayamaz. Parametre spesifikasyonları aşağıdaki gibidir:
      • description (str): Parametrenin açıklaması.
      • type (str): parametrenin türü - 'str', 'bool' gibi python yerleşik veri türleri için en etkilidir
      • required: boolean: Parametrenin her zaman mevcut olup olmadığını (zorunlu) belirtir. Varsayılan olarak zorunlu değildir.
  • add_generation_prompt (bool, isteğe bağlı) — İstemin, asistan mesajının başlangıcını gösteren token(lar) ile bitirilip bitirilmeyeceğini belirtir. Bu, modelden bir yanıt üretmek istediğinizde kullanışlıdır. Bu argümanın herhangi bir etki yaratabilmesi için, sohbet şablonuna aktarılacağı ve şablon tarafından desteklenmesi gerektiğini unutmayın.
  • tokenize (bool, varsayılan True) — Çıktının tokenize edilip edilmeyeceği. False ise çıktı bir dize olacaktır.
  • padding (bool, varsayılan False) — Dizilerin maksimum uzunluğa doldurulup doldurulmayacağını belirtir. tokenize False ise etkisi yoktur.
  • truncation (bool, varsayılan False) — Dizilerin maksimum uzunlukta kırpılıp kırpılmayacağını belirtir. tokenize False ise etkisi yoktur.
  • max_length (int, isteğe bağlı) — Doldurma veya kısaltma için kullanılacak maksimum uzunluk (token cinsinden). tokenize False ise etkisi yoktur. Belirtilmezse, tokenizer'ın max_length özniteliği varsayılan olarak kullanılır.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. tokenize False ise etkisi yoktur. False. Kabul edilen değerler:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • return_dict (bool, isteğe bağlı, varsayılan False) — Adlandırılmış çıktıları içeren bir sözlük döndürülüp döndürülmeyeceğini belirtir. tokenize False ise etkisi yoktur.
  • **tokenizer_kwargs — Tokenizöre iletilecek ek kwargs.

Dönüş değeri

str

Render edilmiş bir prompt dizgesi. ya da tokenize=True ise: list[int]: Şu ana kadar tokenize edilmiş sohbeti, kontrol token'ları dahil olmak üzere temsil eden token kimlikleri listesi. Bu çıktı, doğrudan veya generate() gibi yöntemler aracılığıyla modele iletmeye hazırdır.

Command-R araç kullanımını için bir istem oluşturun.

İşlendikten sonra, istem modelden, kullanıcının taleplerini yerine getirmeye yardımcı olmak için kullanıcı tarafından sağlanan bir araç kümesi üzerinde gerçekleştirilecek eylemlerin bir listesini üretmesini ister.

Kavramsal olarak bu, apply_chat_format ile aynı şekilde çalışır ancak ek bir tools parametresi alır.

"role" ve "content" anahtarlarına sahip sözlüklerden oluşan bir liste biçimindeki sohbeti ve modelin kullanabileceği araçların listesini bir istemci (prompt) dizesine veya token kimlikleri listesine dönüştürür. Bu yöntem, sınıf düzeyinde belirtilen tokenizer'ın default_tool_use_template şablonunu kullanır. Varsayılan şablonu tool_use_template anahtar kelimesiyle (kwarg) geçersiz kılabilirsiniz ancak sonuçlarınızın kalitesi azalabilir.

Örnekler:

>> tokenizer = CohereTokenizer.from_pretrained("CohereForAI/c4ai-command-r-v01")
>> tools = [
    {
        "name": "internet_search",
        "description": "Returns a list of relevant document snippets for a textual query retrieved from the internet",
        "parameter_definitions": {
            "query": {
                "description": "Query to search the internet with",
                "type": "str",
                "required": True,
            }
        },
    },
    {
        "name": "directly_answer",
        "description": "Calls a standard (un-augmented) AI chatbot to generate a response given the conversation history",
        "parameter_definitions": {},
    },
]
>> conversation = [
    {"role": "user", "content": "What's the biggest penguin in the world?"},
]
>> # Render the prompt, ready for user to inspect, or for input into the model
>> prompt = tokenizer.apply_tool_use_template(conversation, tools=tools, tokenize=False, add_generation_prompt=True)
>> print(prompt)
>> inputs = tokenizer.encode(grounded_generation_prompt, add_special_tokens=False, return_tensors='pt')
>> outputs = model.generate(inputs, max_new_tokens=128)
>> print(tokenizer.decode(outputs[0]))
[
    {
        "tool_name": "internet_search",
        "parameters": {
            "query": "biggest penguin in the world"
        }
    }
]

CohereModel

sınıf transformers.CohereModel

< >

( config: CohereConfig )

Parametreler

  • config (CohereConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel head olmadan ham gizli durumları (hidden-states) üreten çıplak Cohere Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

BaseModelOutputWithPast veya tuple(torch.FloatTensor)

A BaseModelOutputWithPast veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (CohereConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

CohereModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

CohereForCausalLM

sınıf transformers.CohereForCausalLM

< >

( config: CohereConfig )

Parametreler

  • config (CohereConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Nedensel dil modellemesi için Cohere Modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).
  • logits_to_keep (Union[int, torch.Tensor], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

Dönüş değeri

CausalLMOutputWithPast veya tuple(torch.FloatTensor)

CausalLMOutputWithPast veya torch.FloatTensor bir demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (CohereConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

CohereForCausalLM forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).

  • logits (torch.FloatTensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>> from transformers import AutoTokenizer, CohereForCausalLM

>> model = CohereForCausalLM.from_pretrained("CohereForAI/c4ai-command-r-v01")
>> tokenizer = AutoTokenizer.from_pretrained("CohereForAI/c4ai-command-r-v01")

>> prompt = "Hey, are you conscious? Can you talk to me?"
>> inputs = tokenizer(prompt, return_tensors="pt")

>> # Generate
>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."
Update on GitHub