TRL documentation

Veri Yardımcıları

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

and get access to the augmented documentation experience

to get started

Veri Yardımcıları

is_conversational

trl.is_conversational

< >

( example: dict[str, typing.Any] ) → bool

Parametreler

  • example (dict[str, Any]) — Bir veri setinin tek bir veri girişi. Örnek, veri seti türüne bağlı olarak farklı anahtarlara sahip olabilir.

Dönüş değeri

bool

Veriler bir konuşma formatındaysa True, aksi takdirde False.

Örneğin konuşma formatında olup olmadığını kontrol edin.

Örnekler:

>>> example = {"prompt": [{"role": "user", "content": "What color is the sky?"}]}
>>> is_conversational(example)
True

>>> example = {"prompt": "The sky is"}
>>> is_conversational(example)
False

maybe_convert_to_chatml

trl.maybe_convert_to_chatml

< >

( example: dict[str, list] ) → dict[str, list]

Parametreler

  • example (dict[str, list]) — Mesaj listesini içeren tek bir veri girişi.

Dönüş değeri

dict[str, list]

ChatML stiline yeniden biçimlendirilmiş örnek.

Alanları from ve value olan bir sohbet veri setini ChatML formatına dönüştürün.

Bu fonksiyon, konuşma verilerini OpenAI'nin ChatML biçimiyle uyumlu hale getirmek için değiştirir:

  • Mesaj sözlüklerinde "from" anahtarını "role" ile değiştirir.
  • Mesaj sözlüklerinde "value" anahtarını "content" ile değiştirir.
  • Tutarlılık için "conversations" adını ChatML ile uyumlu olacak şekilde "messages" olarak değiştirir.

Örnek:

>>> from trl import maybe_convert_to_chatml

>>> example = {
...     "conversations": [
...         {"from": "user", "value": "What color is the sky?"},
...         {"from": "assistant", "value": "It is blue."},
...     ]
... }
>>> maybe_convert_to_chatml(example)
{'messages': [{'role': 'user', 'content': 'What color is the sky?'},
              {'role': 'assistant', 'content': 'It is blue.'}]}

extract_prompt

trl.extract_prompt

< >

( example: dict[str, collections.abc.Sequence] ) → dict[str, list]

Parametreler

  • example (dict[str, list]) — Tercih veri setindeki tek bir veri girdisini temsil eden sözlük. "chosen" ve "rejected" anahtarlarını içermelidir; her bir değerin içeriği konuşma tabanlı veya standart (str) olabilir.

Dönüş değeri

dict[str, list]

Şu içeriğe sahip bir sözlük:

  • "prompt": “chosen” ve “rejected” tamamlamalar arasındaki en uzun ortak önek.
  • "chosen": “chosen” tamamlamanın, istem çıkarıldıktan sonra kalan kısmı.
  • "rejected": “rejected” tamamlamanın, prompt çıkarıldıktan sonra kalan kısmı.

Bir tercih veri örneğinden, hem seçilen hem de reddedilen tamamlamalar içinde örtük olarak bulunan ortak istemciyi (prompt) çıkarır.

Fonksiyon, “chosen” ve “rejected” tamamlamaları arasındaki konuşma turlarının en uzun ortak dizisini (önek) belirler ve bunu prompt olarak çıkarır. Ardından bu promptu ilgili “chosen” ve “rejected” tamamlamalarından kaldırır.

Örnekler:

>>> example = {
...     "chosen": [
...         {"role": "user", "content": "What color is the sky?"},
...         {"role": "assistant", "content": "It is blue."},
...     ],
...     "rejected": [
...         {"role": "user", "content": "What color is the sky?"},
...         {"role": "assistant", "content": "It is green."},
...     ],
... }
>>> extract_prompt(example)
{'prompt': [{'role': 'user', 'content': 'What color is the sky?'}],
 'chosen': [{'role': 'assistant', 'content': 'It is blue.'}],
 'rejected': [{'role': 'assistant', 'content': 'It is green.'}]}

Veya Dataset'in map yöntemiyle:

>>> from trl import extract_prompt
>>> from datasets import Dataset

>>> dataset_dict = {
...     "chosen": [
...         [
...             {"role": "user", "content": "What color is the sky?"},
...             {"role": "assistant", "content": "It is blue."},
...         ],
...         [
...             {"role": "user", "content": "Where is the sun?"},
...             {"role": "assistant", "content": "In the sky."},
...         ],
...     ],
...     "rejected": [
...         [
...             {"role": "user", "content": "What color is the sky?"},
...             {"role": "assistant", "content": "It is green."},
...         ],
...         [
...             {"role": "user", "content": "Where is the sun?"},
...             {"role": "assistant", "content": "In the sea."},
...         ],
...     ],
... }
>>> dataset = Dataset.from_dict(dataset_dict)
>>> dataset = dataset.map(extract_prompt)
>>> dataset[0]
{'prompt': [{'role': 'user', 'content': 'What color is the sky?'}],
 'chosen': [{'role': 'assistant', 'content': 'It is blue.'}],
 'rejected': [{'role': 'assistant', 'content': 'It is green.'}]}

unpair_preference_dataset

trl.unpair_preference_dataset

< >

( dataset: typing.Union[~DatasetType, ~IterableDatasetType]**map_kwargs )

Parametreler

  • dataset (Dataset veya DatasetDict veya IterableDataset veya IterableDatasetDict) — Eşleştirilmeyecek tercih verisi kümesi. Veri kümesinin "chosen", "rejected" ve isteğe bağlı olarak "prompt" sütunları olmalıdır.
  • **map_kwargs (dict, isteğe bağlı) — Tercihleri eşleştirmede (unpairing) veri setinin map yöntemine iletilecek ek anahtar kelime argümanları.

Bir tercih veri setini eşleştirmeden ayırın.

Çıktı, "prompt", "completion" ve "label" ile birlikte her seçilen ve reddedilen satır için çoğaltılan ek sütunları içerir.

Örnek:

>>> from datasets import Dataset

>>> dataset_dict = {
...     "prompt": ["The sky is", "The sun is"],
...     "chosen": [" blue.", "in the sky."],
...     "rejected": [" green.", " in the sea."],
... }
>>> dataset = Dataset.from_dict(dataset_dict)
>>> dataset = unpair_preference_dataset(dataset)
>>> dataset
Dataset({
    features: ['prompt', 'completion', 'label'],
    num_rows: 4
})

>>> dataset[0]
{'prompt': 'The sky is', 'completion': ' blue.', 'label': True}
Update on GitHub