Трансформаторы 4.37 Китайская документация (53)
Трансформаторы 4.37 Китайская документация (53)

原文:huggingface.co/docs/transformers

Qwen2

исходный текст:huggingface.co/docs/transformers/v4.37.2/en/model_doc/qwen2

Обзор

Qwen2 — это новая серия крупномасштабных языковых моделей, запущенная командой Qwen. Ранее мы выпустили серию Qwen, включая Qwen-72B, Qwen-1.8B, Qwen-VL, Qwen-Audio и т. д.

Детали модели

Qwen2 — это семейство языковых моделей декодеров разных размеров. Для каждого размера мы выпускаем модель базового языка и согласованную модель чата. Он основан на архитектуре Transformer и включает в себя активацию SwiGLU, смещение внимания QKV, внимание к групповым запросам, внимание к скользящему окну, полное смешивание внимания и т. д. Кроме того, у нас есть улучшенный токенизатор, который адаптируется к множеству естественных языков и кодов.

Советы по использованию

Qwen2-7B-betaиQwen2-7B-Chat-betaМожетсуществоватьHuggingface HubНайдено на

Следующий,Мы покажем, какиспользоватьQwen2-7B-Chat-betaделать выводы。пожалуйста, обрати внимание,У нас есть разговоры в формате ChatML.,существуют В этой демо-версии,Мы показали, как эксплуатироватьapply_chat_templateПриходитьвыполнитьэтот глазиз。

Язык кода:javascript
копировать
>>> from transformers import AutoModelForCausalLM, AutoTokenizer
>>> device = "cuda" # the device to load the model onto

>>> model = AutoModelForCausalLM.from_pretrained("Qwen2/Qwen2-7B-Chat-beta", device_map="auto")
>>> tokenizer = AutoTokenizer.from_pretrained("Qwen2/Qwen2-7B-Chat-beta")

>>> prompt = "Give me a short introduction to large language model."

>>> messages = [{"role": "user", "content": prompt}]

>>> text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

>>> model_inputs = tokenizer([text], return_tensors="pt").to(device)

>>> generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=512, do_sample=True)

>>> generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]

>>> response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

Qwen2Config

class transformers.Qwen2Config

<Приходить源>

Язык кода:javascript
копировать
( vocab_size = 151936 hidden_size = 4096 intermediate_size = 22016 num_hidden_layers = 32 num_attention_heads = 32 num_key_value_heads = 32 hidden_act = 'silu' max_position_embeddings = 32768 initializer_range = 0.02 rms_norm_eps = 1e-06 use_cache = True tie_word_embeddings = False rope_theta = 10000.0 use_sliding_window = False sliding_window = 4096 max_window_layers = 28 attention_dropout = 0.0 **kwargs )

параметр

  • vocab_sizeint,Необязательный,По умолчанию 151936)— Qwen2 Моделиз словаря. звоню определено Qwen2Model Количество различных токенов, которые могут быть представлены.
  • hidden_sizeint,Необязательный,По умолчанию 4096)— Скройте размеры представления.
  • intermediate_sizeint,Необязательный,По умолчанию 22016)— MLP Представленные размеры.
  • num_hidden_layersint,Необязательный,По умолчанию 32)— Transformer Количество скрытых слоев в кодировщике.
  • num_attention_headsint,Необязательный,По умолчанию 32)— Transformer Количество головок внимания на уровень внимания в кодере.
  • num_key_value_headsint,Необязательный,По умолчанию 32)— Здесь используется длявыполнить Grouped Query Attention из key_value головаизколичество。еслиnum_key_value_heads=num_attention_heads,Модель Воляиспользовать Multi Head Attention(MHA),еслиnum_key_value_heads=1,Модель Воляиспользовать Multi Query Внимание (MQA), иначе будет использоваться ГКА. Преобразование контрольной точки с несколькими головками в GQA Время контрольно-пропускного пункта,Каждый групповой ключ и заголовок значения должны быть созданы путем объединения средних значений.,чтобы включить среднее значение всех необработанных заголовков в группе. Для более подробной информации,пожалуйста, проверьтеэта статья。еслиеще нетобозначение,Воля По умолчанию32
  • hidden_actstrилиfunction,Необязательный,По умолчанию"silu") — из Нелинейная функция активации (функция или строка) в декодере.
  • max_position_embeddingsint,Необязательный,По умолчанию 32768)— Модель может использовать максимальную длину последовательности.
  • initializer_rangefloat,Необязательный,По умолчанию 0.02)— используется для инициализации всех весовых матриц из truncated_normal_initializer из стандартного отклонения.
  • rms_norm_epsfloat,Необязательный,По умолчанию 1e-06)— rms Слой нормализациииспользование epsilon。
  • use_cachebool,Необязательный,По умолчаниюTrue)— Модель должна появиться последней из ключа/значения внимания (не все модели используются).толькосуществоватьconfig.is_decoder=Trueсвязанный со временем。
  • tie_word_embeddingsbool,Необязательный,По умолчаниюFalse)— Модель встраивания входных и выходных слов должна быть связана.
  • rope_thetafloat,Необязательный,По умолчанию 10000.0)— RoPE Вставить из фундаментального периода.
  • use_sliding_windowbool,Необязательный,По умолчаниюFalse)— Использовать ли внимание скользящего окна.
  • sliding_windowint,Необязательный,По умолчанию 4096)— Размер окна скользящего окна «Внимание» (SWA). Если не указано, По умолчанию4096
  • max_window_layers (int, Необязательный, По умолчанию 28) — использовать Слои SWA (Sliding Window Attention). Первый этажиспользовать SWA, при этом тописпользуйте все внимание.
  • attention_dropout (float, Необязательный, По умолчанию 0.0) — Вероятность внимания из коэффициента отбрасывания.

Это класс конфигурации, используемый для хранения Qwen2Model из Конфигурация。этоиспользуется дляв соответствии указать экземпляр параметра один Qwen2 Модель, определяет архитектуру модели. Создание экземпляра конфигурации со значениями по умолчанию приведет к чему-то вроде Qwen2-7B-beta Qwen/Qwen2-7B-betaиз Конфигурация。

Объекты конфигурации наследуются от PretrainedConfig и могут использоваться для управления выводом модели. Прочтите документацию по PretrainedConfig для получения дополнительной информации.

Язык кода:javascript
копировать
>>> from transformers import Qwen2Model, Qwen2Config

>>> # Initializing a Qwen2 style configuration
>>> configuration = Qwen2Config()

>>> # Initializing a model from the Qwen2-7B style configuration
>>> model = Qwen2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Qwen2Tokenizer

class transformers.Qwen2Tokenizer

<Приходить源>

Язык кода:javascript
копировать
( vocab_file merges_file errors = 'replace' unk_token = '<|endoftext|>' bos_token = None eos_token = '<|endoftext|>' pad_token = '<|endoftext|>' clean_up_tokenization_spaces = False split_special_tokens = False **kwargs )

параметр

  • vocab_file (str) — Словарный файл по пути.
  • merges_file (str) — Объединить файл по пути.
  • errors (str, Необязательный, По умолчанию"replace") — Декодированные байты UTF-8 следовать, когдаизпример。Проверятьbytes.decodeдля получения дополнительной информации。
  • unk_tokenstr,optional,По умолчанию"<|endoftext|>")–неизвестный токен。Нет в глоссариииз Токен не может быть конвертирован в ID вместо этого установлен на токен.
  • bos_tokenstr,Необязательный)–тег последовательностииз开голова。дискомфортиспользуется для этого маркера.
  • eos_tokenstr,optional,По умолчанию"<|endoftext|>")–конец последовательностиотметка.
  • pad_tokenstr,optional,По умолчанию"<|endoftext|>")–используется для заполнения токенов, например, при пакетной обработке последовательностей разной длины.
  • clean_up_tokenization_spaces (bool, Необязательный, По умолчаниюFalse) — Модельда должна очищать существование добавления из пробелов при разделении входного текста во время сегментации слов. Не подходит для этого токенизатора, поскольку при токенизации не добавляются пробелы.
  • split_special_tokenbool,optional,По умолчаниюFalse)–существовать В процессе токенизациида Если особенныйотметка.Поведение по умолчаниюда Не разделяйте специальныеотметка.это означает,если<|endoftext|>даeos_token,ноtokenizer.tokenize("<|endoftext|>") = ['<|endoftext|>']。нетно,еслиsplit_special_tokens=True,ноtokenizer.tokenize("<|endoftext|>")Воля被赋予[''<'', ''|'', ''endo'', ''ft'', ''ext'', ''|'', ''>'']。Этот аргумент в настоящее время поддерживает только“медленный”токенизатор。

Создайте токенизатор Qwen2. Кодирование на основе пар байтов на уровне байта.

Как и GPT2Tokenizer, этот токенизатор обучен рассматривать пробелы как часть токена, поэтому слово будет

Может кодироваться по-разному, когда в начале предложения (без пробелов) или нет:

Язык кода:javascript
копировать
>>> from transformers import Qwen2Tokenizer

>>> tokenizer = Qwen2Tokenizer.from_pretrained("Qwen/Qwen-tokenizer")
>>> tokenizer("Hello world")["input_ids"]
[9707, 1879]

>>> tokenizer(" Hello world")["input_ids"]
[21927, 1879]

Это ожидаемо.

Вам не следует использовать GPT2Tokenizer, поскольку у него другие правила предварительной токенизации.

Этот токенизатор наследует от PreTrainedTokenizer и содержит большинство основных методов. Пользователям следует обратиться к этому суперклассу для получения дополнительной информации об этих методах.

save_vocabulary

<Приходить源>

Язык кода:javascript
копировать
( save_directory: str filename_prefix: Optional = None )

Qwen2TokenizerFast

class transformers.Qwen2TokenizerFast

<Приходить源>

Язык кода:javascript
копировать
( vocab_file = None merges_file = None tokenizer_file = None unk_token = '<|endoftext|>' bos_token = None eos_token = '<|endoftext|>' pad_token = '<|endoftext|>' **kwargs )

параметр

  • vocab_file (str, Необязательный) — Словарный файл по пути.
  • merges_file (str, Необязательный) — Объединить файл по пути.
  • tokenizer_file (str, Необязательный) — Содержит все, что необходимо для загрузки токенизатора.извсесодержаниеизtokenizersдокументизпуть(обычно имеют.json расширение).
  • unk_tokenstr,optional,По умолчанию"<|endoftext|>")–неизвестный токен。Нет в глоссариииз Токен не может быть конвертирован в ID вместо этого установлен на токен.дискомфортиспользуется для этого маркера.
  • bos_tokenstr,Необязательный)–тег последовательностииз开голова。дискомфортиспользуется для этого маркера.
  • eos_tokenstr,optional,По умолчанию"<|endoftext|>")–конец последовательностиотметка.
  • pad_tokenstr,optional,По умолчанию"<|endoftext|>")–используется для заполнения токенов, например, при пакетной обработке последовательностей разной длины.

Создание «быстрого» Qwen2 Токенизатор (разработчик HuggingFace изtokenizersподдержка библиотеки)。На основе кодирования пары байтов на уровне байтов.。

Как и GPT2Tokenizer, этот токенизатор обучен рассматривать пробелы как часть токена, поэтому слово будет

Может кодироваться по-разному, когда в начале предложения (без пробелов) или нет:

Язык кода:javascript
копировать
>>> from transformers import Qwen2TokenizerFast

>>> tokenizer = Qwen2TokenizerFast.from_pretrained("Qwen/Qwen-tokenizer")
>>> tokenizer("Hello world")["input_ids"]
[9707, 1879]

>>> tokenizer(" Hello world")["input_ids"]
[21927, 1879]

Это ожидаемо.

Этот токенизатор наследует от PreTrainedTokenizerFast, который содержит большинство основных методов. Пользователям следует обратиться к этому суперклассу для получения дополнительной информации об этих методах.

Qwen2Model

class transformers.Qwen2Model

<Приходить源>

Язык кода:javascript
копировать
( config: Qwen2Config )

параметр

  • config(Qwen2Config)—Модель Конфигурациядобрый,Содержит все параметры модели. Инициализация файла конфигурации использовать не загружает ассоциацию модели из весов,только загрузка Конфигурация。Проверять from_pretrained() для загрузки весов модели. конфигурация — Qwen2Config

Голая модель Qwen2 выводит необработанные скрытые состояния без конкретных заголовков. Эта модель наследует от PreTrainedModel. Ознакомьтесь с документацией по суперклассу, чтобы увидеть общие методы, реализованные библиотекой для всех моделей (например, загрузка или сохранение, настройка встраивания входных данных, обрезка заголовков и т. д.).

Эта модель до сих пор PyTorch torch.nn.Module子добрый。Воля其используется как обычный PyTorch модуль и обратитесь к PyTorch Документация по всем вопросам, связанным с общим использованием и поведением.

Зависит отconfig.num_hidden_layersКомпозиция слоевиз Transformer декодер。каждый уровеньдаодинQwen2DecoderLayer

forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: LongTensor = None attention_mask: Optional = None position_ids: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )

параметр

  • input_ids(Форма(batch_size, sequence_length)изtorch.LongTensor)—词汇表серединавходитьтег последовательностиизиндекс。по умолчанию情况下Воляпренебрегатьнаполнение。 Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 что такое ввод ID?
  • attention_mask(Форма(batch_size, sequence_length)изtorch.Tensor,Необязательный)—используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。выбиратьсуществовать[0, 1]серединаизмаскаценить:
    • 1 Указывает, что он не «замаскирован» и не отмечен,
    • 0 значит "накрыться" изотметкой.

    Что такое маска внимания? Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 еслииспользоватьpast_key_values,Необязательный择тольковходитьнаконецизdecoder_input_ids(Видетьpast_key_values)。 еслиты想要更改наполнение行为,тебе следует прочитатьmodeling_opt._prepare_decoder_attention_maskив соответствии Измените в соответствии с вашими потребностями. Дополнительная информация о политике по умолчанию из,Видетьбумагасерединаиздиаграмма 1。

    • 1 Указывает на то, что голова не «покрыта»,
    • 0 Указывает на то, что голова «покрыта».
  • position_ids(Форма(batch_size, sequence_length)изtorch.LongTensor,Необязательный)—每个входитьтег последовательностисуществовать Расположение Встроитьсерединаиз Расположениеиндекс。существоватьобъем[0, config.n_positions - 1]серединавыбирать。 что такое местоположение ID?
  • past_key_valuesCacheилиtuple(tuple(torch.FloatTensor)),Необязательный)—Предварительное вычисление скрытых состояний (ключи и значения в блоках самообслуживания и блоках перекрестного внимания), которые можно использовать для ускоряет последовательное декодирование.Обычно это включает в себя Модельсуществоватьпредыдущий этап декодированиявозвращатьсяизpast_key_values,когдаuse_cache=Trueилиconfig.use_cache=Trueчас。 Допускаются два формата:
    • один Cache Пример;
    • Длинаconfig.n_layersизкортежизкортеж(torch.FloatTensor),每个кортеж有 2 个Форма(batch_size, num_heads, sequence_length, embed_size_per_head)из Тензор。Это также известно как традиционный формат кэша.。

    Модель Волявыходи Тот же вводизформат кэша。если没有передачаpast_key_values,но Волявозвращаться Традицияформат кэша。 еслииспользоватьpast_key_values,用户Можетвыбиратьтольковходитьнаконецизinput_ids(即不Воля其过去из键ценить状态提供给этот Модельиз Вон те)из Форма(batch_size, 1)из Тензор,Вместода Форма(batch_size, sequence_length)извсеinput_ids

  • inputs_embeds(Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensor,Необязательный)—Необязательный择直接передача Встроитьвыражать,Вместодапередачаinput_ids。еслиты想要更多控制нравиться何Воляinput_idsиндекс Преобразовать в связанный вектор,Вместо внутреннего внедрения матрицы поиска,тогда это полезно.
  • use_cachebool,Необязательный)— еслиустановлен наTrue,Волявозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentionsbool,Необязательный)— данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,Видетьвозвращаться Тензор下изattentions
  • output_hidden_statesbool,Необязательный)— данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,Видетьвозвращаться Тензор下изhidden_states
  • return_dictbool,Необязательный)— данетвозвращаться ModelOutput вместо обычного кортежа.

Qwen2Model из прямого метода,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

Qwen2ForCausalLM

class transformers.Qwen2ForCausalLM

<Приходить源>

Язык кода:javascript
копировать
( config )
forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: LongTensor = None attention_mask: Optional = None position_ids: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.CausalLMOutputWithPast or tuple(torch.FloatTensor)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtorch.LongTensor)— Введите тег последовательности существуизиндекс в словарь. По умолчанию заполнение игнорируется. Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 что такое ввод ID?
  • attention_mask(Форма(batch_size, sequence_length)изtorch.Tensor,Необязательный)— используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценить选существовать[0, 1]между:
    • Для немаскированных из отмеченных как 1,
    • За маскировку отмечен как 0。

    Что такое маска внимания? Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 еслииспользоватьpast_key_values,Необязательный择тольковходитьнаконецизdecoder_input_ids(Видетьpast_key_values)。 если要更改наполнение行为,тебе следует прочитатьmodeling_opt._prepare_decoder_attention_maskив соответствии с Необходимо изменить。О политике по умолчаниюиз Дополнительная информация,Видетьбумагасерединаиздиаграмма 1。

    • 1 выражатьголова部еще нет被masked,
    • 0 выражатьголова部被masked
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 每个входитьтег последовательностисуществовать Расположение Встроитьсерединаиз Расположениеиндекс。выбиратьобъем为[0, config.n_positions - 1]。 что такое местоположение ID?
  • past_key_values (Cacheилиtuple(tuple(torch.FloatTensor)), optional) — Предварительное вычисление скрытых состояний (ключи и значения в блоках самообслуживания и блоках перекрестного внимания), которые можно использовать для ускоряет последовательное декодирование.Обычно это включает в себя Модельсуществоватьдекодированиеизпредыдущий этапвозвращатьсяизpast_key_values,когдаuse_cache=Trueилиconfig.use_cache=Trueчас。 Допускаются два формата:
    • один Cache Пример;
    • Длинаconfig.n_layersизtuple(torch.FloatTensor)кортеж,每个кортеж有 2 个Форма(batch_size, num_heads, sequence_length, embed_size_per_head)из Тензор。Это также известно как традиционный формат кэша.。

    Модель Волявыходи Тот же вводизформат кэша。если没有передачаpast_key_values,Волявозвращаться Традицияформат кэша。 еслииспользовать Понятноpast_key_values,用户Можетвыбиратьтольковходитьнаконецизinput_ids(Вон те没有Воля其过去键ценить状态提供给этот Модельиз)из Форма(batch_size, 1)из Тензор,Вместодавсе Форма(batch_size, sequence_length)изinput_ids

  • inputs_embeds (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) —Необязательныйземля,Вы можете передать встроенное представление напрямую.Вместодапередачаinput_ids。еслиты想要更多控制нравиться何Воляinput_idsиндекс Преобразовать в связанный вектор,это будет очень полезно,Вместо внутреннего внедрения матрицы поиска。
  • use_cache (bool, optional) — еслиустановлен наTrue,Волявозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentions (bool, optional) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,Видетьвозвращаться Тензор下изattentions
  • output_hidden_states (bool, optional) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,Видетьвозвращаться Тензор下изhidden_states
  • return_dict (bool, optional) — данетвозвращатьсяодин ModelOutput А не даодин обычные кортежи. параметр — labels (torch.LongTensor of shape (batch_size, sequence_length), optional): используется длявычислитьмаска Потеря языкового моделированияиз Этикетка。индексдолженсуществовать[0, ..., config.vocab_size]или-100(Видетьinput_idsдокумент)。индексустановлен на-100изотметка Воля被пренебрегать(маска),损失тольковычислить具有Этикеткасуществовать[0, ..., config.vocab_size]серединаизотметка.

возвращаться

transformers.modeling_outputs.CausalLMOutputWithPast илиtuple(torch.FloatTensor)

один transformers.modeling_outputs.CausalLMOutputWithPast илиодинtorch.FloatTensorкортеж(еслипередача Понятноreturn_dict=Falseилиconfig.return_dict=False)Содержит различные элементы,Зависит от Конфигурации (Qwen2Config) и ввода.

  • loss (torch.FloatTensor of shape (1,), optional, returned when labels is provided) — Потеря языкового моделирования (используется для 下один знак предсказания).
  • logits(Форма(batch_size, sequence_length, config.vocab_size)изtorch.FloatTensor)- Глава моделирования языка с прогнозной оценкой (SoftMax Перед каждой словарной оценкой выставляется балл).
  • past_key_valuestuple(tuple(torch.FloatTensor)),Необязательный,когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться)- Длинаconfig.n_layersизtuple(torch.FloatTensor)кортеж,每个кортеж有 2 个Форма(batch_size, num_heads, sequence_length, embed_size_per_head)из Тензор。 Содержит заранее рассчитанные скрытые состояния (ключи и значения из блока внимания), которые можно использовать для加速顺序декодирование(请Видетьpast_key_valuesвходить)。
  • hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(если Модель Имеет встроенный слой,но为Встроитьизвыход+каждый слойизвыход)。 Модельсуществовать Каждый слой выводит скрытое состояние и необязательный исходный вывод внедрения.
  • attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 во внимании softmax После этого из внимания вес, используется для вычисляет средневзвешенное значение из в голове самообслуживания.

Qwen2ForCausalLM — прямой метод,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Поскольку первый отвечает за выполнение этапов предварительной и последующей обработки.,Последний молча их игнорирует.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, Qwen2ForCausalLM

>>> model = Qwen2ForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS)
>>> tokenizer = AutoTokenizer.from_pretrained(PATH_TO_CONVERTED_TOKENIZER)

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

Qwen2ForSequenceClassification

class transformers.Qwen2ForSequenceClassification

<Приходить源>

Язык кода:javascript
копировать
( config )

параметр

  • config(Qwen2Config)- Модельиз Все параметры Модель Конфигурация категории. Использование инициализации файла конфигурации не загружает ассоциацию модели с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.

Трансформатор модели Qwen2 с заголовком классификации последовательностей (линейный уровень) сверху.

Qwen2ForSequenceClassification использовать Последний один знак классифицируется так же, как и другие причинные модели (например, ГПТ-2).

Зависит от того, что он классифицирует последний токен,因этот需要知道наконецодинотметкаиз Расположение。еслисуществовать Конфигурациясередина定义Понятноpad_token_id,но会找到每行середина不даотметка заполненияизнаконецодинотметка.еслиеще нет定义pad_token_id,но会简单земля取每行批次серединаизнаконецодинценить。Зависит от Всуществоватьпередачаinputs_embedsВместодаinput_idsчас无法猜测отметка заполнения,Таким образом, выполняется та же операция (берём последнее одно значение в пакете для каждой строки).

Эта модель наследует от PreTrainedModel. Ознакомьтесь с документацией суперкласса, чтобы узнать об общих методах, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, настройка встраивания входных данных, обрезка заголовков и т. д.).

Эта модель также PyTorch torch.nn.Module子добрый。Воля其используется как обычный PyTorch модуль и обратитесь к PyTorch Документация со всей соответствующей информацией об общем использовании и поведении.

forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: LongTensor = None attention_mask: Optional = None position_ids: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )

параметр

  • input_idstorch.LongTensor,Форма(batch_size, sequence_length))- Введите тег последовательности изиндекс в словарь. По умолчанию заполнение игнорируется, если оно предусмотрено. Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 что такое ввод ID?
  • attention_masktorch.Tensor,Форма(batch_size, sequence_length),Необязательный)- избегать对отметка заполненияиндексвнимание руководстваизмаска。маскаценитьвыбиратьсуществовать[0, 1]середина:
    • 1 выражатьотметкадаБез маски,
    • 0 выражатьмаскаизотметка.

    Что такое маска внимания? Можно использовать AutoTokenizer Получите индекс. Для получения дополнительной информации см. Функция PreTrainedTokenizer.encode() PreTrainedTokenizer.call()。 еслииспользовать Понятноpast_key_values,но Необязательный择тольковходитьнаконецизdecoder_input_ids(请Видетьpast_key_values)。 если要更改наполнение行为,тебе следует прочитатьmodeling_opt._prepare_decoder_attention_maskив соответствии с Необходимо изменить。О политике по умолчаниюиз Дополнительная информация,Видетьбумагасерединаиздиаграмма 1。

    • 1 выражатьголова部даБез маски,
    • 0 выражатьголова部дамаска
  • position_idstorch.LongTensor,Форма(batch_size, sequence_length),Необязательный)- входитьтег последовательностисуществовать Расположение Встроитьсерединаиз Расположениеиндекс。существоватьобъем[0, config.n_positions - 1]серединавыбирать。 что такое местоположение ID?
  • past_key_valuesCacheилиtuple(tuple(torch.FloatTensor)),Необязательный)- Предварительное вычисление скрытых состояний (ключи и значения в блоках самообслуживания и блоках перекрестного внимания), которые можно использовать для ускоряет последовательное декодирование.Обычно это включает в себя Модельсуществоватьдекодированиеизпредыдущий этапвозвращатьсяизpast_key_values,когдаuse_cache=Trueилиconfig.use_cache=Trueчас。 Допускаются два формата:
    • один Cache Пример;
    • кортежtuple(torch.FloatTensor)из Длинаconfig.n_layers,每个кортеж有 2 个Форма(batch_size, num_heads, sequence_length, embed_size_per_head)из Тензор。Это также известно как традицияизформат кэша。

    Модель Волявыходи Тот же вводизформат кэша。если没有передачаpast_key_values,но Волявозвращаться Традицияизформат кэша。 еслииспользовать Понятноpast_key_values,用户Можетвыбиратьтольковходитьнаконецизinput_ids(即Вон те没有Воляэто们из过去键ценить状态提供给Должен Модельизвходить)из Форма(batch_size, 1),Вместода Форма(batch_size, sequence_length)извсеinput_ids

  • inputs_embedstorch.FloatTensor,Форма(batch_size, sequence_length, hidden_size),Необязательный)-Необязательныйземля,Вы можете передать встроенное представление напрямую.,Вместодапередачаinput_ids。еслиты希望更多земля控制нравиться何Воляinput_idsиндекс Преобразовать в связанный вектор,Вместо даиспользовать Модель внутренняя из встроенной матрицы поиска,это будет очень полезно。
  • use_cachebool,Необязательный)- еслиустановлен наTrue,Волявозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(请Видетьpast_key_values)。
  • output_attentions (bool, optional) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,Видетьвозвращаться Тензорсерединаизattentions
  • output_hidden_states (bool, optional) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,Видетьвозвращаться Тензорсерединаизhidden_states
  • return_dict (bool, optional) — данетвозвращатьсяодин ModelOutput Вместо даодин обычный из кортежа.
  • labels (torch.LongTensor of shape (batch_size,), optional) — используется длявычислитьпоследовательность分добрый/регрессионная потеряиз Этикетка。индексотвечатьсуществовать[0, ..., config.num_labels - 1]объем内。еслиconfig.num_labels == 1,Затем рассчитайте потери регрессии (среднеквадратичные потери),еслиconfig.num_labels > 1,Затем рассчитайте потерю классификации (перекрестную энтропию).

Qwen2ForSequenceClassification из прямого метода,покрытый__call__специальный метод。

Хотя прямой проход из метода требует существования, эта функция определена внутри,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет обрабатывать этапы обработки до и после запуска.,Последний будет молча их игнорировать.

RAG

исходный текст:huggingface.co/docs/transformers/v4.37.2/en/model_doc/rag

Обзор

Модели с расширенным поиском («RAG») сочетают в себе возможности предварительно обученных моделей плотного поиска (DPR) и моделей последовательного поиска. Модель RAG извлекает документ, передает его в модель seq2seq и выполняет маргинализацию для получения выходных данных. Модули извлечения и seq2seq инициализируются на основе предварительно обученной модели и совместно настраиваются таким образом, чтобы как извлечение, так и генерация могли быть адаптированы к последующим задачам.

基ВбумагаRetrieval-Augmented Generation for Knowledge-Intensive NLP Tasks by Patrick Lewis, Ethan Perez, Aleksandara Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela。

Краткое содержание статьи следующее:

Уже доказано,Большой предварительно обученный язык Модельсуществовать, на котором хранятся фактические знания.,И они достигли самых современных результатов при точной настройке на последующие задачи обработки естественного языка. Однако,Их способность получать доступ к знаниям и точно манипулировать ими остается ограниченной.,Поэтому существуют на наукоемких задачах,Их производительность отстает от архитектуры, ориентированной на конкретные задачи. также,Предоставление источников для принятия ими решений и обновление их мировых знаний остается открытым для исследовательских вопросов. Наличие дифференцируемого механизма доступа к явно не параметризованной модели предварительного обучения может решить эту проблему.,但迄今为止толькоиспользуется для задач по добыче и переработке были исследованы. Мы исследовали использование дляRetrival Augmented Generation (RAG) из Универсального рецепта тонкой настройки — Эти модели сочетают в себе предварительно обученную изпараметрическую и непараметрическую память для генерации языка. мы представили RAG Модель, которая параметризовала память, была предварительной тренировкой seq2seq Модель непараметризованной памяти в Википедии на основе индекса плотных векторов, доступ к которой осуществляется через предварительно обученные нейронные ретриверы. Мы сравнили два RAG Формула, один тип дасуществовать всю сгенерированную последовательность с теми же условиями из поискового параграфа, другой тип Можно использовать Каждая отметка из отдельного абзаца. Мы настраиваем и оцениваем наше существование по широкому спектру наукоемких задач обработки естественного языка и достигаем самых современных результатов в трех задачах ответа на вопросы в открытой области, превосходя параметр seq2seq Модели и архитектуры поиска и извлечения данных для конкретных задач. Для задач генерации языка находим RAG Модель генерирует более сложные только параметры seq2seq Базовый уровень — более конкретный, разнообразный и основанный на фактах язык.

этот Модель Зависит отola13способствовать。

Советы по использованию

Модели с расширенным поиском («RAG») сочетают в себе возможности предварительно обученных моделей плотного поиска (DPR) и моделей Seq2Seq. Модель RAG извлекает документ, передает его в модель seq2seq и выполняет маргинализацию для получения выходных данных. Модули извлечения и seq2seq инициализируются на основе предварительно обученной модели и совместно настраиваются таким образом, чтобы как извлечение, так и генерация могли быть адаптированы к последующим задачам.

RagConfig

class transformers.RagConfig

< source >

Язык кода:javascript
копировать
( vocab_size = None is_encoder_decoder = True prefix = None bos_token_id = None pad_token_id = None eos_token_id = None decoder_start_token_id = None title_sep = ' / ' doc_sep = ' // ' n_docs = 5 max_combined_length = 300 retrieval_vector_size = 768 retrieval_batch_size = 8 dataset = 'wiki_dpr' dataset_split = 'train' index_name = 'compressed' index_path = None passages_path = None use_dummy_dataset = False reduce_loss = False label_smoothing = 0.0 do_deduplication = True exclude_bos_score = False do_marginalize = False output_retrieved = False use_cache = True forced_eos_token_id = None **kwargs )

параметр

  • title_sep (str, Необязательный, По умолчанию" / ") — звоню RagRetriever из разделителя при вставке заголовка и извлечении текста документа.
  • doc_sep (str, Необязательный, По умолчанию" // ") — звоню RagRetriever При вставке разделитель существования из извлекается между текстом документа и исходным вводом.
  • n_docs (int, Необязательный, По умолчанию 5) — Количество документов, которые необходимо получить.
  • max_combined_length (int, Необязательный, По умолчанию 300) — __call__()возвращатьсяизконтекстуализациявходитьизмаксимальная длина。
  • retrieval_vector_size (int, Необязательный, По умолчанию 768) — Зависит от RagRetriever индексирование встраивания документа из измерения.
  • retrieval_batch_size (int, Необязательный, По умолчанию 8) — Получить размер партии, определяемый как количество упаковок, выпущенных одновременно. faiss индексиз количества запросов RagRetriever。
  • dataset (str, Необязательный, По умолчанию"wiki_dpr") — существовать HuggingFace Datasets серединаиндекс Набор данныхиз Набор данных标识符(использоватьdatasets.list_datasets()列出все Может用Набор данныхи ID)。
  • dataset_split (str, Необязательный, По умолчанию"train") — 要加载изdatasetизкоторые раскололи。
  • index_name (str, Необязательный, По умолчанию"compressed") — иdatasetассоциацияизиндексизиндексимя。Можетсуществовать"legacy""exact"и"compressed"между进行выбирать。
  • index_path (str, Необязательный) — Сериализация на диске faiss путь индексизации.
  • passages_path (str, Необязательный) — и faiss индекссовместимыйизтекстовый абзацизпуть。еслииспользоватьLegacyIndex,тогда требуется.
  • use_dummy_dataset (bool, Необязательный, По умолчаниюFalse) — данет加载Зависит отdatasetобозначениеиз Набор данныхиз“виртуальный”Варианты。
  • label_smoothing (float, Необязательный, По умолчанию 0.0) — толькосуществоватьreturn_lossустановлен наTrueсвязанный со временем。控制损失вычислитьсередина Этикетка平滑изepsilonпараметрценить。еслиустановлен на 0, сглаживание меток не выполняется.
  • do_marginalize (bool, Необязательный, По умолчаниюFalse) — если为True,нопроходитьиспользоватьtorch.nn.functional.log_softmax对вседокументиз logits Маргинализировать.
  • reduce_loss (bool, Необязательный, По умолчаниюFalse) — данетиспользоватьtorch.Tensor.sumСокращение операций NLL потеря.
  • do_deduplication (bool, Необязательный, По умолчаниюTrue) — данет对给定входитьиз不同上下文документиз Создать для дедупликации。еслисуществоватьиспользовать分布式后端进行训练часиспользовать,必须Воля其установлен наFalse
  • exclude_bos_score (bool, Необязательный, По умолчаниюFalse) — существования, следует ли игнорировать при расчете убытков BOS отметка.
  • output_retrieved(bool, Необязательный, По умолчаниюFalse) — еслиустановлен наTrue,новозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Проверятьвозвращатьсяиз Тензор以获取更多Подробности。
  • use_cache (bool, Необязательный, По умолчаниюTrue) — Модель должна появиться последней из ключа/значения внимания (не все модели используются).
  • forced_eos_token_id (int, Необязательный) — когда达到max_lengthчас,要强制какнаконецгенерироватьизотметкаизотметка ID。通常установлен наeos_token_id

RagConfig 存储ПонятноRagModelиз Конфигурация。Конфигурация Объекты наследуются от PretrainedConfig, который можно использовать для управления выводом модели. Читать из PretrainedConfig документацию для получения дополнительной информации.

from_question_encoder_generator_configs

<Приходить源>

Язык кода:javascript
копировать
( question_encoder_config: PretrainedConfig generator_config: PretrainedConfig **kwargs ) → export const metadata = 'undefined';EncoderDecoderConfig

возвращаться

EncoderDecoderConfig

Конфигурация экземпляра объекта

Создайте один экземпляр EncoderDecoderConfig (или производный класс) из предварительно обученных моделей кодировщика Модель Конфигурация и декодера Модель Конфигурация.

RagTokenizer

class transformers.RagTokenizer

<Приходить源>

Язык кода:javascript
копировать
( question_encoder generator )

Конкретный выход тряпки

class transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput

<Приходить源>

Язык кода:javascript
копировать
( loss: Optional = None logits: FloatTensor = None doc_scores: FloatTensor = None past_key_values: Optional = None retrieved_doc_embeds: Optional = None retrieved_doc_ids: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None question_encoder_last_hidden_state: Optional = None question_enc_hidden_states: Optional = None question_enc_attentions: Optional = None generator_enc_last_hidden_state: Optional = None generator_enc_hidden_states: Optional = None generator_enc_attentions: Optional = None generator_dec_hidden_states: Optional = None generator_dec_attentions: Optional = None generator_cross_attentions: Optional = None )

параметр

  • loss (torch.FloatTensor of shape (1,), optional, когда提供labelsчасвозвращаться) — Языковое моделирование потери.
  • logits (torch.FloatTensor of shape (batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Оценка возможна для каждого словесного тега, существующего во всех документах. Маргинализировать.
  • doc_scores (torch.FloatTensor of shape (batch_size, config.n_docs)) — получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。
  • past_key_values (List[torch.FloatTensor], optional, когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться) — Длинаconfig.n_layersизtorch.FloatTensorсписок,每个Тензориз Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для加速顺序декодирование(Видетьpast_key_valuesвходить)。
  • retrieved_doc_embeds (torch.FloatTensor of shape (batch_size, config.n_docs, hidden_size), optional, когдаoutput_retrieved=Trueчасвозвращаться) — ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids (torch.LongTensor of shape (batch_size, config.n_docs), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Сканер извлек встроенный документ из индекса.
  • context_input_ids (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики изinput_idsПостобработка для получения входных данных id。
  • context_attention_mask (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики изinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — Кодер задачи модели суммирует выходные данные последнего слоя последовательности скрытых состояний.
  • question_enc_hidden_states (tuple(torch.FloatTensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж。 Каждый уровень кодировщика проблемы выводит скрытые состояния и исходные выходные данные внедрения.
  • question_enc_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_states (tuple(torch.FloatTensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж。 Скрытые состояния каждого уровня кодировщика генератора и исходный вывод внедрения.
  • generator_enc_attentions (tuple(torch.FloatTensor), Необязательный, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_states (tuple(torch.FloatTensor), Необязательный, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Декодер генератора существует на каждом уровне, выводит скрытое состояние и исходный вывод внедрения.
  • generator_dec_attentions (tuple(torch.FloatTensor), Необязательный, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_cross_attentions (tuple(torch.FloatTensor), Необязательный, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов перекрестного внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение перекрестного внимания голов.

Базовый класс для выходных данных модели расширенной маргинализации ретривера.

class transformers.models.rag.modeling_rag.RetrievAugLMOutput

<Приходить源>

Язык кода:javascript
копировать
( logits: FloatTensor = None doc_scores: FloatTensor = None past_key_values: Optional = None retrieved_doc_embeds: Optional = None retrieved_doc_ids: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None question_encoder_last_hidden_state: Optional = None question_enc_hidden_states: Optional = None question_enc_attentions: Optional = None generator_enc_last_hidden_state: Optional = None generator_enc_hidden_states: Optional = None generator_enc_attentions: Optional = None generator_dec_hidden_states: Optional = None generator_dec_attentions: Optional = None generator_cross_attentions: Optional = None )

параметр

  • logits (torch.FloatTensor,Форма(batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Оценка возможна для каждого словесного тега, существующего во всех документах. Маргинализировать.
  • doc_scores (torch.FloatTensor,Форма(batch_size, config.n_docs)) — 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。
  • past_key_values (List[torch.FloatTensor], Необязательный, когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться) — Длинаconfig.n_layersизtorch.FloatTensorсписок,每个Тензориз Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для加速顺序декодирование(Видетьpast_key_valuesвходить)。
  • retrieved_doc_embeds (torch.FloatTensor,Форма(batch_size, config.n_docs, hidden_size),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids (torch.LongTensor,Форма(batch_size, config.n_docs),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Сканер извлек встроенный документ из индекса.
  • context_input_ids (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — от Поискдокументиретриверизкодер вопросовinput_idsПостобработка для получения входных данных id。
  • context_attention_mask (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — от Поискдокументиретриверизкодер вопросовinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state (torch.FloatTensor,Форма(batch_size, sequence_length, hidden_size),optional) — Последний уровень кодировщика проблемы из скрытой последовательности состояний Модельиз агрегирует выходные данные.
  • question_enc_hidden_states (tuple(torch.FloatTensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер задачи состоит из выходных данных каждого слоя из скрытых состояний плюс исходный вывод внедрения.
  • question_enc_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state (torch.FloatTensor,Форма(batch_size, sequence_length, hidden_size),optional) — Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_states (tuple(torch.FloatTensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор существует выводит каждое скрытое состояние плюс начальный вывод внедрения.
  • generator_enc_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_states (tuple(torch.FloatTensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Декодер генератора выводит каждое скрытое состояние плюс начальный вывод внедрения.
  • generator_dec_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_cross_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов перекрестного внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение перекрестного внимания голов.

RagRetriever

class transformers.RagRetriever

< source >

Язык кода:javascript
копировать
( config question_encoder_tokenizer generator_tokenizer index = None init_retrieval = True )

параметр

  • config(RagConfig)— используется для RAG Модельиз Retriever из Конфигурация。Содержит инструкции по сборкеIndexизпараметр。ты Можно использоватьconfig.index_name="custom"загрузить себяиз Настроить Набор данных,или ВОЗиспользовать Набор данных库серединаизодинспецификацияиз Набор данных(по умолчанию)Напримерconfig.index_name="wiki_dpr"
  • question_encoder_tokenizer(PreTrainedTokenizer)— используется для проблемы токенизации из токенизатора. Он использует Для решения проблемы декодирования используйте генератор токенизаторов.
  • generator_tokenizer(PreTrainedTokenizer)— используется для RagModel Генераторная часть токенизатора.
  • indexIndex,Дополнительно, По умолчанию Конфигурациясередина定义изиндекс)— Если указано, использовать этот индекс вместо даисполь зовать Конфигурация строит изиндекс

Ретривер для получения документов из векторных запросов. Он извлекает вложения документов, а также их содержимое и форматирует их для использования RagModel.

Пример:

Язык кода:javascript
копировать
>>> # To load the default "wiki_dpr" dataset with 21M passages from wikipedia (index name is 'compressed' or 'exact')
>>> from transformers import RagRetriever

>>> retriever = RagRetriever.from_pretrained(
...     "facebook/dpr-ctx_encoder-single-nq-base", dataset="wiki_dpr", index_name="compressed"
... )

>>> # To load your own indexed dataset built with the datasets library. More info on how to build the indexed dataset in examples/rag/use_own_knowledge_dataset.py
>>> from transformers import RagRetriever

>>> dataset = (
...     ...
... )  # dataset must be a datasets.Datasets object with columns "title", "text" and "embeddings", and it must have a faiss index
>>> retriever = RagRetriever.from_pretrained("facebook/dpr-ctx_encoder-single-nq-base", indexed_dataset=dataset)

>>> # To load your own indexed dataset built with the datasets library that was saved on disk. More info in examples/rag/use_own_knowledge_dataset.py
>>> from transformers import RagRetriever

>>> dataset_path = "path/to/my/dataset"  # dataset saved via *dataset.save_to_disk(...)*
>>> index_path = "path/to/my/index.faiss"  # faiss index saved via *dataset.get_index("embeddings").save(...)*
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/dpr-ctx_encoder-single-nq-base",
...     index_name="custom",
...     passages_path=dataset_path,
...     index_path=index_path,
... )

>>> # To load the legacy index built originally for Rag's paper
>>> from transformers import RagRetriever

>>> retriever = RagRetriever.from_pretrained("facebook/dpr-ctx_encoder-single-nq-base", index_name="legacy")
init_retrieval

< source >

Язык кода:javascript
копировать
( )

Функция инициализации поиска. Загрузите индекс в память.

postprocess_docs

< source >

Язык кода:javascript
копировать
( docs input_strings prefix n_docs return_tensors = None ) → export const metadata = 'undefined';tuple(tensors)

параметр

  • docsdict)— из полученного документа.
  • input_stringsstr)— Зависит отpreprocess_queryдекодированиеизвходить字符串。
  • prefixstr)— из префикса, добавляемого в начало каждого ввода, обычно и на основе T5 из Модель Вместеиспользовать。

возвращаться

tuple(tensors)

одинсодержит два элементаизкортеж:контекстуализацияизinput_idsиодинсовместимыйизattention_mask

Постобработкаполученизdocsи Воляэто们иinput_stringsкомбинация。

retrieve

< source >

Язык кода:javascript
копировать
( question_hidden_states: ndarray n_docs: int ) → export const metadata = 'undefined';Tuple[np.ndarray, np.ndarray, List[dict]]

параметр

  • question_hidden_states(Форма(batch_size, vector_size)изnp.ndarray)— Необходимо получить пакет векторов запроса.
  • n_docsint)— Количество документов, полученных за один запрос.

возвращаться

Tuple[np.ndarray, np.ndarray, List[dict]]

один содержит следующий кортеж объектов:

  • retrieved_doc_embeds(Форма(batch_size, n_docs, dim)изnp.ndarray)— Извлечение документов из извлечения вложений для каждого запроса.
  • doc_ids(Форма(batch_size, n_docs)изnp.ndarray)— индекссередина文dociz id
  • doc_dictsList[dict]):за запросизretrieved_doc_embedsПример。

为обозначениеизquestion_hidden_statesПоискдокумент。

PytorchHide Pytorch content

RagModel

class transformers.RagModel

< source >

Язык кода:javascript
копировать
( config: Optional = None question_encoder: Optional = None generator: Optional = None retriever: Optional = None **kwargs )

параметр

  • config(RagConfig)— Содержит все категории Модельпараметриз Модель Конфигурация. Инициализация файла использования конфигурации не загружает модель, связанную с весами, а только конфигурацию. Проверять from_pretrained() Метод загрузки весов моделей.
  • question_encoder(PreTrainedModel)— иretrieverинкапсуляцияиз faiss Индекс совместим с моделью кодировщика.
  • generator(PreTrainedModel)— используется как RAG Генератор в архитектуре seq2seq Модель。
  • retriever(RagRetriever)— один класс ретривера, инкапсулирующий один faiss индекс,используется для Получает текущий ввод из контекстного документа.

RagModel из прямого методапокрытый__call__специальный метод。

Хотя шаг прямого распространения требует существования, определенного в этой функции,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

RAG даодин seq2seq Модель,Он содержит два основных компонента: один кодер вопросов и один генератор. существуют во время прямого распространения,Кодировщик вопросов Ouruse кодирует входные данные.,и передать его программе извлечения для извлечения соответствующих документов из контекста. Эти документы затем добавляются во входные данные. Таким образом, контекстуализированные входные данные передаются генератору.

кодер вопросов МожетдалюбойавтокодированиеМодель,Лучший вариант DPRQuestionEncoder,генерировать器Можетдалюбойseq2seqМодель,Лучше всего BartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever Выполните сквозную генерацию,也Можетиретриверизвыход结合существовать多个步骤серединаиспользовать—Видеть Пример以获取更多Подробности。Должен МодельсовместимыйлюбойавтокодированиеМоделькакquestion_encoder,любой带有语言Модельголоваизseq2seqМоделькакgenerator。Уже протестированоиспользовать DPRQuestionEncoder какquestion_encoder,а также BartForConditionalGeneration или T5ForConditionalGeneration какgenerator

Эта модель наследует от PreTrainedModel。Проверять超добрыйдокумент以获取库为все Модельвыполнитьизобщий метод(Напримерскачатьилидержать、Настройте встраивание ввода、Обрезать голову и т. д.).

Эта модель также PyTorch torch.nn.Module子добрый。Воля其используется как обычный PyTorch модуль и обратитесь к PyTorch Документация для всей информации об общем использовании и поведении.

forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: Optional = None attention_mask: Optional = None encoder_outputs: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None past_key_values: Optional = None doc_scores: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None output_retrieved: Optional = None n_docs: Optional = None ) → export const metadata = 'undefined';transformers.models.rag.modeling_rag.RetrievAugLMOutput or tuple(torch.FloatTensor)

параметр

  • input_ids(Форма(batch_size,sequence_length)изtorch.LongTensor)—Введите тег последовательности изиндекс в словарь. Рэг Конфиг используется для инициализирует Модель, указывает генератор использования, а также указывает совместимый токенизатор генератора. использовать Этот класс токенизатора получает индекс. что такое ввод ID?
  • attention_mask(Форма(batch_size,sequence_length)изtorch.Tensor,Необязательный)—избегать对отметка заполненияиндексвнимание руководстваизмаска。выбиратьизмаскаценитьсуществовать[0, 1]середина:
    • 对Веще нет被maskedизотметка,Значение – 1,
    • 对В被maskedизотметка,Значение равно 0.

    Что такое маска внимания?

  • encoder_outputstuple(tuple(torch.FloatTensor),Необязательный)—Кортеж включает в себя(generator_enc_last_hidden_state,Необязательныйgenerator_enc_hidden_states,Необязательныйgenerator_enc_attentions)。Форма(batch_size,n_docs * sequence_length,hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование过程середина Зависит от(RagModel)Модельиспользовать。
  • decoder_input_ids (torch.LongTensor,Форма(batch_size, target_sequence_length),Необязательный) — Предусмотрено для задач сборки. По умолчаниюNone,в соответствии с использованием RAG Пример из Генератор Модельиз Описание Сборка.
  • decoder_attention_mask (torch.BoolTensor,Форма(batch_size, target_sequence_length),Необязательный) — Поведение по умолчанию:генерироватьодинпренебрегатьdecoder_input_idsсерединаотметка заполненияиз Тензор。причина и следствиемаска也Воляпо умолчаниюиспользовать。
  • past_key_values (tuple(tuple(torch.FloatTensor))) — Кортеж содержит два элемента: RAG. Модельизencoder_outputs(Видетьencoder_outputs)и基础генерировать器изpast_key_values。Можетиспользуется для Ускорить декодирование。существоватьдекодирование期间,past_key_valuesсуществовать(RagTokenForGeneration)Модельсерединаиспользовать。
  • doc_scores (torch.FloatTensor,Форма(batch_size, config.n_docs)) — 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Для получения дополнительной информации,См. примеры.
  • context_input_ids (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики изinput_idsПостобработкаизвходить ID。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • context_attention_mask (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики изinput_idsПостобработкаизвнимательностьмаска。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cache (bool,Необязательный,По умолчаниюTrue) — еслиустановлен наTrue,новозвращатьсяpast_key_values键ценить状态,Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentions (bool,Необязательный) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращаться Тензорсерединаизattentions
  • output_hidden_states (bool,Необязательный) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращаться Тензорсерединаизhidden_states
  • output_retrieved(bool, Необязательный) — данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • n_docs (int,Необязательный,По умолчанию`config.n_docs“) — Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.

возвращатьсяценить

transformers.models.rag.modeling_rag.RetrievAugLMOutput или tuple(torch.FloatTensor)

один transformers.models.rag.modeling_rag.RetrievAugLMOutput илиодинtorch.FloatTensorкортеж(еслипередача Понятноreturn_dict=Falseилиconfig.return_dict=Falseчас)Содержит различные элементы,Зависит от Конфигурации (RagConfig) и ввода.

  • logits (torch.FloatTensor,Форма(batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Эта оценка может быть снижена во всех документах для каждого существующего словарного токена.
  • doc_scorestorch.FloatTensor,Форма(batch_size, config.n_docs))— 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。
  • past_key_valuesList[torch.FloatTensor],Необязательный,когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться)— Длинаconfig.n_layersизtorch.FloatTensorсписок,每个Тензор Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для ускоряет последовательное декодирование.
  • retrieved_doc_embedstorch.FloatTensor,Форма(batch_size, config.n_docs, hidden_size),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Зависит отретривер Поискиз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_idstorch.LongTensor,Форма(batch_size, config.n_docs),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Сканер извлекает внедренные документы из индекса.
  • context_input_idstorch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Извлечение документов и выдача кодировщиков из input_ids Постобработка для получения входных данных id。
  • context_attention_masktorch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Извлечение документов и выдача кодировщиков изinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_statetorch.FloatTensor,Форма(batch_size, sequence_length, hidden_size),Необязательный)— Кодер задачи модели выводит последовательность скрытых состояний последнего слоя.
  • question_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер проблемы существует, выводит скрытое состояние плюс исходные выходные данные внедрения для каждого слоя.
  • question_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_statetorch.FloatTensor,Форма(batch_size, sequence_length, hidden_size),Необязательный)— Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор существует, выводит скрытое состояние плюс исходные выходные данные внедрения для каждого слоя.
  • generator_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Генератор-декодер существует добавляет исходный вывод внедрения к скрытым состояниям каждого слоя.
  • generator_dec_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_cross_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов перекрестного внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение перекрестного внимания голов.

RagModel из прямого метода,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет обрабатывать этапы обработки до и после запуска.,Последний будет молча их игнорировать.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, RagRetriever, RagModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-base")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-base", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagModel.from_pretrained("facebook/rag-token-base", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> outputs = model(input_ids=inputs["input_ids"])

RagSequenceForGeneration

class transformers.RagSequenceForGeneration

<Приходить源>

Язык кода:javascript
копировать
( config: Optional = None question_encoder: Optional = None generator: Optional = None retriever: Optional = None **kwargs )

параметр

  • config(RagConfig)- С Моделью все параметры Модель Конфигурация категорий. Инициализация файла конфигурации использовать не будет загружать модели, связанные с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.
  • question_encoder(PreTrainedModel)- иретриверинкапсуляцияиз faiss Индекс совместим с моделью кодировщика.
  • generator(PreTrainedModel)- существовать RAG 架构серединаиспользуется какгенерировать器из seq2seq Модель。
  • ретривер(RagRetriever)- один инкапсулированный faiss Используется безиндексная поисковая система. для Получает текущий ввод из контекстного документа.

RagSequenceForGeneration из метода Forward,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет обрабатывать этапы обработки до и после запуска.,Последний будет молча их игнорировать.

Реализация модели RAG-последовательности. Он выполняет маргинализацию, специфичную для RAG-последовательности, при прямом проходе.

RAG даодин seq2seq Модель,Инкапсулирует два основных компонента: один кодер вопросов и один генератор. существовать во время прохода вперед,Кодировщик вопросов Ouruse кодирует входные данные.,и Воля其передача给ретриверизвлечь соответствующиеиз上下文документ。然后Волядокумент添加到входить之前。такизконтекстуализациявходить被передача给генерировать器。

кодер вопросов Можетдалюбойавтоматическое кодированиеМодель,Лучший вариант DPRQuestionEncoder,генерировать器Можетдалюбойseq2seqМодель,Лучше всего BartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever Выполните сквозную генерацию,илииретриверизвыход结合использоватьнесколько шагов—Проверять更多Подробностииз Пример。Должен Модельсовместимыйлюбойавтоматическое кодированиеМоделькакquestion_encoder,любой带有语言Модельголоваизseq2seqМоделькакgenerator。Уже протестированоиспользовать DPRQuestionEncoder какquestion_encoder,а также BartForConditionalGeneration или T5ForConditionalGeneration какgenerator

Эта модель наследует от PreTrainedModel。检查超добрыйдокумент以获取库为все Модельвыполнитьизобщий метод(Напримерскачатьилидержать、Настройте встраивание ввода、Обрезать голову и т. д.).

Эта модель также PyTorch torch.nn.Moduleиз子добрый。Воля其используется как обычный PyTorch модуль и обратитесь к PyTorch Документация со всей соответствующей информацией об общем использовании и поведении.

forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: Optional = None attention_mask: Optional = None encoder_outputs: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None past_key_values: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None doc_scores: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None output_retrieved: Optional = None exclude_bos_score: Optional = None reduce_loss: Optional = None labels: Optional = None n_docs: Optional = None **kwargs ) → export const metadata = 'undefined';transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput or tuple(torch.FloatTensor)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtorch.LongTensor)— Введите тег последовательности существуизиндекс в словарь. Рэг Конфиг используется для инициализирует Модель, указывает генератор использования, а также указывает совместимый токенизатор генератора. использовать Этот класс токенизатора получает индекс. что такое ввод ID?
  • attention_mask(Форма(batch_size, sequence_length)изtorch.Tensor,Необязательный)— используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценитьвыбиратьсуществовать[0, 1]середина:
    • За то, что "замаскирован" отмечен как 1,
    • 对В被maskedТерятьизотметка.

    Что такое маска внимания?

  • encoder_outputstuple(tuple(torch.FloatTensor),Необязательный)— Кортеж включает в себя(generator_enc_last_hidden_state,Необязательныйgenerator_enc_hidden_states,Необязательныйgenerator_enc_attentions)。Форма(batch_size, n_docs * sequence_length, hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование期间Зависит от(RagModel)Модельиспользовать。
  • decoder_input_ids(Форма(batch_size, target_sequence_length)изtorch.LongTensor,Необязательный)— используется для генерирует задачи. По умолчаниюNone,в соответствии с использованием RAG Пример создания инструкций по построению модели.
  • decoder_attention_mask(Форма(batch_size, target_sequence_length)изtorch.BoolTensor,Необязательный)— Поведение по умолчанию:генерироватьодинпренебрегатьdecoder_input_idsсерединаотметка заполненияиз Тензор。причина и следствиемаска也Воляпо умолчаниюиспользовать。
  • past_key_valuestuple(tuple(torch.FloatTensor)))— Кортеж содержит два элемента: RAG. Модельизencoder_outputs(Видетьencoder_outputs)и底层генерировать器изpast_key_values。Можетиспользуется для Ускорить декодирование。past_key_valuesсуществоватьдекодирование期间Зависит от(RagTokenForGeneration)Модельиспользовать。
  • doc_scores(Форма(batch_size, config.n_docs)изtorch.FloatTensor)- 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Для получения дополнительной информации,См. примеры.
  • context_input_idstorch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и задач из кодировщикаinput_idsПостобработка для получения входных данных ID。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cachebool,Необязательный,По умолчаниюTrue)- еслиустановлен наTrue,новозвращатьсяpast_key_values键ценить状态,Можетиспользуется для Ускорить декодирование(请Видетьpast_key_values)。
  • output_attentions(布尔ценить,Необязательный)- данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращатьсяиз Тензорсерединаизattentions
  • output_hidden_states(布尔ценить,Необязательный)- данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращатьсяиз Тензорсерединаизhidden_states
  • output_retrieved(布尔ценить,Необязательный)- данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • n_docsint,Необязательный,По умолчаниюconfig.n_docs)- Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.
  • exclude_bos_score(布尔ценить,Необязательный)- толькосуществоватьпередача Понятноlabelsсвязанный со временем。если为True,существоватьвычислить损失час Воляпренебрегать BOS Оценка по баллам.
  • reduce_lossbool,Необязательный)- толькосуществоватьпередача Понятноlabelsсвязанный со временем。если为True,ноиспользоватьtorch.Tensor.sumСокращение операций NLL потеря.
  • kwargsDict[str, any],Дополнительно, По умолчанию*{})- Словарь Legacy, Модель Можно использоватьgenerate()*функция。

возвращаться

transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput илиtuple(torch.FloatTensor)

один transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput илиодинtorch.FloatTensorкортеж(еслипередача Понятноreturn_dict=Falseилиconfig.return_dict=Falseчас)Содержит различные элементы,Это зависит от Конфигурации (RagConfig) и ввода.

  • loss(Форма(1,)изtorch.FloatTensor,Необязательный,когда提供labelsчасвозвращаться)- Языковое моделирование потери.
  • logits(Форма(batch_size, sequence_length, config.vocab_size)изtorch.FloatTensor)- Языковое моделирование головы с прогнозированием оценок. Эта оценка может быть снижена во всех документах для каждого существующего словарного токена.
  • doc_scores(Форма(batch_size, config.n_docs)изtorch.FloatTensor)- 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。
  • past_key_valuesList[torch.FloatTensor],Необязательный,когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться)- Длинаconfig.n_layersизtorch.FloatTensorсписок,每个Тензор Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для加速顺序декодирование(Видетьpast_key_valuesвходить)。
  • retrieved_doc_embeds(Форма(batch_size, config.n_docs, hidden_size)изtorch.FloatTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids(Форма(batch_size, config.n_docs)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Сканер извлек встроенный документ из индекса.
  • context_input_ids(Форма(batch_size * config.n_docs, config.max_combined_length)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и ввода кодировщика вопросов из id Постобработка для получения входных данных id。
  • context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensor,Необязательный)- Последний уровень кодировщика проблемы из скрытой последовательности состояний, Модельиз вывода пула.
  • question_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьвыход,одиниспользуется для каждого слоя вывода). Каждый уровень кодировщика проблемы выводит скрытое состояние и исходный вывод внедрения.
  • question_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensor,Необязательный)- Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор существует на каждом уровне, выводит скрытое состояние и исходный вывод внедрения.
  • generator_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьвыход,одиниспользуется для каждого слоя вывода). Генератор-декодер состоит из выходов скрытых состояний плюс начальный вывод внедрения.
  • generator_dec_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 генератор декодера из внимания softmax После этого из внимания вес, используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_cross_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов перекрестного внимания, во внимании softmax послеиспользовать,используется для вычисляет средневзвешенное значение перекрестного внимания голов.

RagSequenceForGeneration из метода Forward,покрытый__call__специальный метод。

Хотя прямой проход из рецепта требует существования, эта функция определена в,но долженсуществовать Позвонил после этогоModuleПример,Вместо этого,Поскольку первый отвечает за выполнение этапов предварительной и последующей обработки.,Последний молча их игнорирует.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, RagRetriever, RagSequenceForGeneration
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-sequence-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-sequence-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagSequenceForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> targets = tokenizer(text_target="In Paris, there are 10 million people.", return_tensors="pt")
>>> input_ids = inputs["input_ids"]
>>> labels = targets["input_ids"]
>>> outputs = model(input_ids=input_ids, labels=labels)

>>> # or use retriever separately
>>> model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", use_dummy_dataset=True)
>>> # 1\. Encode
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2\. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.detach().numpy(), return_tensors="pt")
>>> doc_scores = torch.bmm(
...     question_hidden_states.unsqueeze(1), docs_dict["retrieved_doc_embeds"].float().transpose(1, 2)
... ).squeeze(1)
>>> # 3\. Forward to generator
>>> outputs = model(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=labels,
... )

generate

<Приходить源>

Язык кода:javascript
копировать
( input_ids: Optional = None attention_mask: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None doc_scores: Optional = None do_deduplication: Optional = None num_return_sequences: Optional = None num_beams: Optional = None n_docs: Optional = None **model_kwargs ) → export const metadata = 'undefined';torch.LongTensor of shape (batch_size * num_return_sequences, sequence_length)

параметр

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — используется какгенерировать提示изпоследовательность。еслиеще нетпередачаinput_ids,но必须提供context_input_ids
  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — избегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценитьвыбиратьсуществовать[0, 1]середина:
    • Для немаскированных из отмеченных как 1,
    • Для маскированных из помечено как 0。

    Что такое маска внимания?

  • context_input_ids (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length), optional, существоватьoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщика input_ids от Постобработка для получения входных данных ID。
  • context_attention_mask (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length), optional, существоватьoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsпройтипостобработка для полученияизвнимательностьмаска。 если Модельеще нетинициализация为retrieverилиеще нет给出input_ids,но必须существовать前向передачасередина提供context_input_idsиcontext_attention_mask。это们Зависит от__call__()возвращаться。
  • doc_scores (torch.FloatTensor of shape (batch_size, config.n_docs)) — 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。 если Модельеще нетинициализация为retrieverилиеще нет给出input_ids,но必须существовать前向передачасередина提供doc_scoresdoc_scoresЗависит от__call__()возвращаться。
  • do_deduplication (bool, optional) — данет对给定входитьиз不同上下文документиз Создать для дедупликации。еслисуществоватьиспользовать分布式后端进行训练часиспользовать,必须Воля其установлен наFalse
  • num_return_sequences(int, optional, По умолчанию 1) — Каждый элемент партии рассчитывается независимо, начинает последовательность из количества. пожалуйста, обрати внимание,Это неда我们передача给generatorизgenerate()функцияизценить,其середина我们Воляnum_return_sequencesустановлен наnum_beams
  • num_beams (int, optional, defaults to 1) — Beam search из beam количество. 1 значит нет beam search。
  • n_docsint,Необязательный,По умолчаниюconfig.n_docs)- Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.
  • kwargsDict[str, Any],Необязательный)- Экстра из kwargs будет передано generate()。

возвращаться

Форма(batch_size * num_return_sequences, sequence_length)изtorch.LongTensor

генерироватьизпоследовательность。второе измерение(последовательность长度)要么等Вmax_length,要么есливсе批次Зависит от Вeos_token_idи завершено заранее,Оно должно быть короче.

RAG Последовательность декодируется «тщательно». Прочтите документацию по генерированию() для получения дополнительной информации о том, как настроить другие генерируемые входные данные.

RagTokenForGeneration

class transformers.RagTokenForGeneration

<Приходить源>

Язык кода:javascript
копировать
( config: Optional = None question_encoder: Optional = None generator: Optional = None retriever: Optional = None **kwargs )

параметр

  • config(RagConfig)- С Моделью все параметры Модель Конфигурация категорий. Использование инициализации файла конфигурации не загружает ассоциацию модели с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.
  • question_encoder(PreTrainedModel)- иretrieverинкапсуляцияиз faiss Индекс совместим с моделью кодировщика.
  • generator(PreTrainedModel)- существовать RAG 架构серединаиспользуется какгенерировать器из seq2seq Модель。
  • retriever(RagRetriever)- Инкапсулированный один faiss Используется безиндексная поисковая система. для Получает текущий ввод из контекстного документа.

Прямой метод RagTokenForGeneration,крышка__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет обрабатывать этапы обработки до и после запуска.,Последний будет молча их игнорировать.

RAG-token Модельвыполнить. Он существует и выполняется в прямом проходе RAG-token Специфическая маргинализация.

RAG даодин seq2seq Модель,Инкапсулирует два основных компонента: один кодер вопросов и один генератор. существовать во время прохода вперед,Кодировщик вопросов Ouruse кодирует входные данные.,и Воля其передача给ретриверизвлечь соответствующиеиз上下文документ。然后Волядокумент添加到входитьсередина。такизконтекстуализациявходить被передача给генерировать器。

кодер вопросов Можетдалюбойавтоматическое кодированиеМодель,Лучший вариант DPRQuestionEncoder,генерировать器Можетдалюбойseq2seqМодель,Лучше всего BartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever Выполните сквозную генерацию,Также возможно объединить выходные данные ретривера в несколько этапов — подробнее.,请Видеть Пример。Должен Модельилюбойавтоматическое кодированиеМодельсовместимый,какquestion_encoder,а такжелюбой带有语言Модельголоваизseq2seqМодель,какgenerator。ужеиспользовать DPRQuestionEncoder какquestion_encoder,а также BartForConditionalGeneration или T5ForConditionalGeneration какgeneratorтест。

Эта модель наследует от PreTrainedModel。检查超добрыйдокумент以Понятно解库为все Модельвыполнитьизобщий метод(Напримерскачатьилидержать,Настройте встраивание ввода,Обрезать голову и т. д.).

Модель по-прежнему PyTorch torch.nn.Module子добрый。Воля其используется как обычный PyTorch модуль и обратитесь к PyTorch Документация со всей соответствующей информацией об общем использовании и поведении.

forward

<Приходить源>

Язык кода:javascript
копировать
( input_ids: Optional = None attention_mask: Optional = None encoder_outputs: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None past_key_values: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None doc_scores: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None output_retrieved: Optional = None do_marginalize: Optional = None reduce_loss: Optional = None labels: Optional = None n_docs: Optional = None **kwargs ) → export const metadata = 'undefined';transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput or tuple(torch.FloatTensor)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtorch.LongTensor)- Введите тег последовательности изиндекс в словарь. Рэг Конфиг используется для инициализирует Модель, указывает генератор использования, а также указывает совместимый токенизатор генератора. используйте этот класс токенизатора для получения индекса. что такое ввод ID?
  • attention_mask(Форма(batch_size, sequence_length)изtorch.Tensor,Необязательный)- используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。выбиратьсуществовать[0, 1]серединаизмаскаценить:
    • 1 выражатьне прикрытизотметка,
    • 0 выражатьприкрытыйизотметка.

    Что такое маска внимания?

  • encoder_outputstuple(tuple(torch.FloatTensor),Необязательный)- Кортеж включает в себя(generator_enc_last_hidden_state,Необязательныйgenerator_enc_hidden_states,Необязательныйgenerator_enc_attentions)。Форма(batch_size, n_docs * sequence_length, hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование期间,Зависит от(RagModel)Модельиспользовать。
  • decoder_input_ids(Форма(batch_size, target_sequence_length)изtorch.LongTensor,Необязательный)- используется для генерирует задачи. По умолчаниюNone,в соответствии с использованиемгенерировать器Модельитыиз RAG Пример сборки инструкции.
  • decoder_attention_mask(Форма(batch_size, target_sequence_length)изtorch.BoolTensor,Необязательный)- Поведение по умолчанию:генерироватьодинпренебрегатьdecoder_input_idsсерединаотметка заполненияиз Тензор。причина и следствиемаска也Воляпо умолчаниюиспользовать。
  • past_key_valuestuple(tuple(torch.FloatTensor)))- Кортеж содержит два элемента: RAG. Модельизencoder_outputs(Видетьencoder_outputs)и基础генерировать器изpast_key_values。Можетиспользуется для Ускорить декодирование。существоватьдекодирование期间,past_key_valuesсуществовать(RagTokenForGeneration)Модельсерединаиспользовать。
  • doc_scores (torch.FloatTensor of shape (batch_size, config.n_docs)) — получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Для получения дополнительной информации,См. примеры.
  • context_input_ids (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length), Необязательный, когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsот Постобработка для получения входных данных ID。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • context_attention_mask (torch.LongTensor of shape (batch_size * config.n_docs, config.max_combined_length),Необязательный, когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsпройтипостобработка для полученияизвнимательностьмаска。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cache (bool, Необязательный, По умолчаниюTrue) — еслиустановлен наTrue,новозвращатьсяpast_key_values键ценить状态,Можетиспользуется для Ускорить декодирование(请Видетьpast_key_values)。
  • output_attentions (bool, Необязательный) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изattentions
  • output_hidden_states (bool, Необязательный) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изhidden_states
  • output_retrieved(bool, Необязательный) — данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • n_docs (int, Необязательный, По умолчанию`config.n_docs“) — Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.
  • do_marginalize (bool, Необязательный) — если为True,нопроходитьиспользоватьtorch.nn.functional.log_softmax对вседокумент Маргинализировать.
  • reduce_loss (bool, Необязательный) — толькосуществоватьпередача Понятноlabelsсвязанный со временем。если为True,ноиспользоватьtorch.Tensor.sumСокращение операций NLL потеря.
  • kwargs (Dict[str, any], Дополнительно, По умолчанию*{}) — Словарь Legacy, Модель Можно использоватьgenerate()*функция。

возвращаться

transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput или tuple(torch.FloatTensor)

один transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput илиодинtorch.FloatTensorкортеж(еслипередача Понятноreturn_dict=Falseиликогдаconfig.return_dict=Falseчас)включатьв соответствии СКонфигурация (RagConfig) и ввод различаются в зависимости от различных элементов.

  • loss (torch.FloatTensor of shape (1,), Необязательный, когда提供labelsчасвозвращаться) — Языковое моделирование потери.
  • logits (torch.FloatTensor of shape (batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Оценка возможна для каждого словесного тега, существующего на всех документах. Маргинализировать.
  • doc_scores (torch.FloatTensor of shape (batch_size, config.n_docs)) — получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。
  • past_key_valuesList[torch.FloatTensor],Необязательный,когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться)- Длинаconfig.n_layersизtorch.FloatTensorсписок,每个Тензор Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для ускоряет последовательное декодирование.
  • retrieved_doc_embeds(Форма(batch_size, config.n_docs, hidden_size)изtorch.FloatTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids(Форма(batch_size, config.n_docs)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Сканер извлек встроенный документ из индекса.
  • context_input_ids(Форма(batch_size * config.n_docs, config.max_combined_length)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и ввода кодировщика вопросов из id от Постобработка для получения входных данных id。
  • context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtorch.LongTensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)- Получение документов и задач из кодировщикаinput_idsпройтипостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensor,Необязательный)- Последний уровень кодировщика задач выводит последовательность скрытых состояний и сводный вывод Моделииз.
  • question_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер задачи состоит из выходных данных каждого слоя из скрытых состояний плюс исходный вывод внедрения.
  • question_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый слойодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensor,Необязательный)- Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор существует выводит каждое скрытое состояние плюс начальный вывод внедрения.
  • generator_enc_attentionstuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)- Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый слойодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_statestuple(torch.FloatTensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)- Форма(batch_size, sequence_length, hidden_size)изtorch.FloatTensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Генератор-декодер выводит каждое скрытое состояние и исходный вывод внедрения.
  • generator_dec_attentions (tuple(torch.FloatTensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_cross_attentions (tuple(torch.FloatTensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtorch.FloatTensorкортеж(каждый этажодин)。 Генератор декодера весов перекрестного внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение перекрестного внимания голов.

RagTokenForGeneration из метода пересылки,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, RagRetriever, RagTokenForGeneration
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> targets = tokenizer(text_target="In Paris, there are 10 million people.", return_tensors="pt")
>>> input_ids = inputs["input_ids"]
>>> labels = targets["input_ids"]
>>> outputs = model(input_ids=input_ids, labels=labels)

>>> # or use retriever separately
>>> model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", use_dummy_dataset=True)
>>> # 1\. Encode
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2\. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.detach().numpy(), return_tensors="pt")
>>> doc_scores = torch.bmm(
...     question_hidden_states.unsqueeze(1), docs_dict["retrieved_doc_embeds"].float().transpose(1, 2)
... ).squeeze(1)
>>> # 3\. Forward to generator
>>> outputs = model(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=labels,
... )

>>> # or directly generate
>>> generated = model.generate(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
... )
>>> generated_string = tokenizer.batch_decode(generated, skip_special_tokens=True)
generate

<Приходить源>

Язык кода:javascript
копировать
( input_ids: Optional = None attention_mask: Optional = None context_input_ids: Optional = None context_attention_mask: Optional = None doc_scores: Optional = None n_docs: Optional = None generation_config: Optional = None prefix_allowed_tokens_fn: Callable = None logits_processor: Optional = [] stopping_criteria: Optional = [] **kwargs ) → export const metadata = 'undefined';torch.LongTensor of shape (batch_size * num_return_sequences, sequence_length)

параметр

  • input_ids (torch.LongTensor,Форма(batch_size, sequence_length),Необязательный) — используется какгенерировать提示изпоследовательность。еслиеще нетпередачаinput_ids,но必须提供context_input_ids
  • attention_mask (torch.Tensor,Форма(batch_size, sequence_length),Необязательный) — используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценить选существовать[0, 1]между:
    • 1 выражатьне прикрытизотметка,
    • 0 выражатьприкрытыйизотметка.

    Что такое маска внимания?

  • context_input_ids (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsПостобработка для получения входных данных ID。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • context_attention_mask (torch.LongTensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • doc_scores (torch.FloatTensor,Форма(batch_size, config.n_docs)) — получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • n_docs (int,Необязательный,По умолчаниюconfig.n_docs) — Количество документов, которые необходимо получить, и/или количество документов, для которых необходимо сгенерировать ответы.
  • generation_config (~generation.GenerationConfig, optional) — используется какгенерировать调用из Базовыйпараметризменятьизгенерировать Конфигурация。передача给генерироватьиз**kwargsсоответствоватьgeneration_configизсвойство Волякрышкаэто们。еслиеще нет提供generation_config,Воляиспользоватьпо умолчанию Конфигурация,Его приоритет загрузки следующий:1)отgeneration_config.jsonМодельдокументсередина,Если сохранение существует; 2) из ​​Модель Конфигурация. пожалуйста, обрати внимание,еще нетобозначениеизпараметр Воля继承 GenerationConfig по умолчанию его документацию следует проверить на предмет параметризации сборки.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], List[int]], optional) — Если эта функция предусмотрена, она будет beam Поиск ограничен, разрешается только изотметка. Если не указано, ограничение не применяется. Эта функция принимает 2 个параметрinputs_idsи批次 IDbatch_id。это必须возвращатьсяодинсписок,который содержит теги разрешения шагов следующего поколения,состояниеда先前генерироватьизотметкаinputs_idsи批次 IDbatch_id。этотпараметр对В受前缀约束изгенерировать很有用,нравитьсяАвторегрессионное извлечение объектовсередина所述。
  • logits_processor (LogitsProcessorList, optional) — Настроить logits Процессор, дополненный по умолчанию, строится из параметра и Модель Конфигурация. logits процессор. Если пройти из logit Ошибка выдается, если процессор уже создан.
  • stopping_criteria (StoppingCriteriaList, optional) — Настроить стандарт остановки, дополняющий стандарт остановки по умолчанию, созданный на основе параметра и Модели Конфигурация. Ошибка возникает, если критерий обгона из остановки уже создан.
  • kwargs (Dict[str, Any], optional) — generate_configизидентификацияпараметризменятьи/или Воля转发到Модельизforwardфункцияиздругой Модельидентификация kwargs。

возвращаться

Форма(batch_size * num_return_sequences, sequence_length)изtorch.LongTensor

генерироватьизпоследовательность。второе измерение(sequence_length)要么等Вmax_length,要么есливсе批次Зависит от Вeos_token_idи завершено заранее,Оно должно быть короче.

выполнить Понятно RAG Маркировка декодирования.

TensorFlow скрывает содержимое TensorFlow

TFRagModel

class transformers.TFRagModel

<Приходить源>

Язык кода:javascript
копировать
( config: Optional[PretrainedConfig] = None question_encoder: Optional[TFPreTrainedModel] = None generator: Optional[TFPreTrainedModel] = None retriever: Optional[RagRetriever] = None load_weight_prefix: Optional[str] = None **kwargs )

параметр

  • config (RagConfig) — Содержит все категории Модельпараметриз Модель Конфигурация. Инициализация файла конфигурации использовать не будет загружать модели, связанные с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.
  • question_encoder (TFPreTrainedModel) — иretrieverинкапсуляцияиз faiss Индекс совместим с моделью кодировщика.
  • generator (TFPreTrainedModel) — существовать RAG 架构серединаиспользуется какгенерировать器из seq2seq Модель。
  • retriever (RagRetriever) — инкапсуляция Понятноиспользуется для Получить текущий контекстный документ ввода faiss класс индексиз-ретривера.

TFRagModel из прямого метода,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

RAG даодин последовательность к последовательности Модель,Содержит два основных компонента: один кодер вопросов и один генератор. существовать во время прохода вперед,Кодировщик вопросов Ouruse кодирует входные данные.,и Воля其передача给ретриверизвлечь соответствующиеиз上下文документ。然后Воля这些документ添加到входить之前。такизконтекстуализациявходить被передача给генерировать器。

кодер вопросов Можетдалюбойавтоматическое кодированиеМодель,Лучший TFDPRQuestionEncoder,генерировать器Можетдалюбойseq2seqМодель,Лучше всего использовать TFBartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever Выполните сквозную генерациюинициализация,или ВОЗиретриверизвыход结合существовать多个步骤серединаиспользовать—Видеть更多Подробностииз Пример。Должен Модельсовместимыйлюбойавтоматическое кодированиеМоделькакquestion_encoder,а такжелюбой带有语言Модельголоваизseq2seqМоделькакgenerator。Уже протестированоиспользовать TFDPRQuestionEncoder какquestion_encoderи TFBartForConditionalGeneration какgenerator

Эта модель наследует от TFPreTrainedModel. Посмотреть документацию по суперклассу,Понятно解库为其все Модельвыполнитьизобщий метод(Напримерскачатьилидержать、Настройте встраивание ввода、Обрезать голову и т. д.).

Эта модель такжеодин Tensorflow tf.keras.Model子добрый。Воля其используется как обычныйиз TF 2.0 Keras модель и ссылка TF 2.0 Документация со всей соответствующей информацией об общем использовании и поведении.

Эта модель в настоящее время полностью поддерживается только в активном режиме и не может быть экспортирована в формате SavedModel.

call

< source >

Язык кода:javascript
копировать
( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None encoder_outputs: np.ndarray | tf.Tensor | None = None decoder_input_ids: np.ndarray | tf.Tensor | None = None decoder_attention_mask: np.ndarray | tf.Tensor | None = None past_key_values: Tuple[Tuple[Union[np.ndarray, tf.Tensor]]] | None = None doc_scores: np.ndarray | tf.Tensor | None = None context_input_ids: np.ndarray | tf.Tensor | None = None context_attention_mask: np.ndarray | tf.Tensor | None = None use_cache: bool | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None output_retrieved: bool | None = None n_docs: int | None = None return_dict: bool | None = None training: bool = False **kwargs ) → export const metadata = 'undefined';transformers.models.rag.modeling_tf_rag.TFRetrievAugLMOutput or tuple(tf.Tensor)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtf.Tensor) — Введите тег последовательности изиндекс в словарь. используется дляинициализация Модельиз RagConfig Указывает генератор использования, а также указывает совместимый токенизатор генератора. использовать Этот класс токенизатора получает индекс.
  • attention_mask(Форма(batch_size, sequence_length)изtf.Tensor,Необязательный) — используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。выбиратьизмаскаценить为[0, 1]
    • 1 Указывает, что он не «замаскирован» (маскирован) из отмеченных,
    • За "замаскированную" изотметку.

    Что такое маска внимания?

  • encoder_outputs(кортеж(кортеж(tf.Tensor)изформа,Необязательный) — кортеж Зависит от(generator_enc_last_hidden_state,Необязательныйgenerator_enc_hidden_states,Необязательныйgenerator_enc_attentions)композиция。Форма(batch_size, n_docs * sequence_length, hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование过程середина Зависит от(TFRagModel)Модельиспользовать。
  • decoder_input_ids(Форма(batch_size, target_sequence_length)изtf.Tensor,Необязательный) — используется для генерирует задачи. По умолчаниюNone,в соответствии сты正существоватьиспользоватьиз RAG Пример генератора Модельиз инструкция по сборке.
  • decoder_attention_mask(Форма(batch_size, target_sequence_length)изtorch.BoolTensor,Необязательный)- Поведение по умолчанию:генерироватьодин Тензор,пренебрегатьdecoder_input_idsсерединаизнаполнениеотметка.причина и следствиемаска也Воляпо умолчаниюиспользовать。
  • past_key_valuestuple(tuple(tf.Tensor)))- Кортеж содержит два элемента: RAG. Модельизencoder_outputs(Видетьencoder_outputs)и基础генерировать器изpast_key_values。Можетиспользуется для Ускорить декодирование。существоватьдекодирование期间,past_key_valuesсуществовать(RagTokenForGeneration)Модельсерединаиспользовать。
  • doc_scores(Форма(batch_size, config.n_docs)изtf.Tensor)- 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Для получения дополнительной информации,См. примеры.
  • context_input_ids(Форма(batch_size * config.n_docs, config.max_combined_length)изtf.Tensor,Необязательный,существоватьoutput_retrieved=Trueчасвозвращаться)- Получить документы и выдать кодировщики изinput_idsПостобработкаизвходить ID。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtf.Tensor,Необязательный,существоватьoutput_retrieved=Trueчасвозвращаться):Получить документы и выдать кодировщики изinput_idsПостобработкаизвнимательностьмаска。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cachebool,Необязательный,По умолчаниюTrue)- еслиустановлен наTrue,Волявозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentionsbool,Необязательный)- данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изattentions
  • output_hidden_statesbool,Необязательный)- данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изhidden_states
  • output_retrievedbool,Необязательный)- данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • return_dictbool,Необязательный)- данетвозвращатьсяTFRetrievAugLMOutputвместо обычного кортежа.
  • n_docsint,Необязательный,По умолчаниюconfig.n_docs)- Количество документов, которые необходимо получить, и/или количество документов, для которых необходимо сгенерировать ответы.

возвращаться

transformers.models.rag.modeling_tf_rag.TFRetrievAugLMOutputилиtuple(tf.Tensor)

одинtransformers.models.rag.modeling_tf_rag.TFRetrievAugLMOutputилиодинtf.Tensorкортеж(еслипередача Понятноreturn_dict=Falseиликогдаconfig.return_dict=Falseчас),включатьв соответствии СКонфигурация (RagConfig) и ввод различаются в зависимости от различных элементов.

  • logits(Форма(batch_size, sequence_length, config.vocab_size)изtf.Tensor)- Языковое моделирование головы с прогнозированием оценок. Эта оценка может быть снижена во всех документах для каждого существующего словарного токена.
  • past_key_valuesList[tf.Tensor],Необязательный,когдапередачаuse_cache=Trueиликогдаconfig.use_cache=Trueчасвозвращаться)- Длинаconfig.n_layersизtf.Tensorсписок,每个Тензориз Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит декодер заранее вычисленных скрытых состояний (ключей и значений в блоке внимания), доступных используется. для ускоряет последовательное декодирование.
  • doc_scores (tf.Tensor,Форма(batch_size, config.n_docs)) — 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。
  • retrieved_doc_embeds (tf.Tensor,Форма(batch_size, config.n_docs, hidden_size),optional,когдаoutput_retrieved=Trueчасвозвращаться) — ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids (tf.Tensor,Форма(batch_size, config.n_docs),optional,когдаoutput_retrieved=Trueчасвозвращаться) — Сканер извлек встроенный документ из индекса.
  • context_input_ids (tf.Tensor,Форма(batch_size * config.n_docs, config.max_combined_length),optional,когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и ввода кодировщика вопросов из ids Постобработка для получения входных данных ids。
  • context_attention_mask (tf.Tensor,Форма(batch_size * config.n_docs, config.max_combined_length),optional,когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state (tf.Tensor,Форма(batch_size, sequence_length, hidden_size),optional) — Проблема с выводом пула кодировщиков. Модель последнего слоя из последовательности скрытых состояний.
  • question_enc_hidden_states (tuple(tf.Tensor),optional,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Каждый уровень кодировщика проблемы выводит скрытое состояние и исходный вывод внедрения.
  • question_enc_attentions (tuple(tf.Tensor),optional,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state (tf.Tensor,Форма(batch_size, sequence_length, hidden_size),optional) — Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_states (tuple(tf.Tensor),optional,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор существует на каждом уровне, выводит скрытое состояние и исходный вывод внедрения.
  • generator_enc_attentions (tuple(tf.Tensor),optional,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_states (tuple(tf.Tensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Декодер генератора существует на каждом уровне, выводит скрытое состояние и исходный вывод внедрения.
  • generator_dec_attentions (tuple(tf.Tensor),optional,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.

TFRagModel из прямого метода,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, RagRetriever, TFRagModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-base")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-base", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = TFRagModel.from_pretrained("facebook/rag-token-base", retriever=retriever, from_pt=True)

>>> input_dict = tokenizer.prepare_seq2seq_batch(
...     "How many people live in Paris?", "In Paris, there are 10 million people.", return_tensors="tf"
... )
>>> input_ids = input_dict["input_ids"]
>>> outputs = model(input_ids)

TFRagSequenceForGeneration

class transformers.TFRagSequenceForGeneration

<Приходить源>

Язык кода:javascript
копировать
( config: Optional[PretrainedConfig] = None question_encoder: Optional[TFPreTrainedModel] = None generator: Optional[TFPreTrainedModel] = None retriever: Optional[RagRetriever] = None **kwargs )

параметр

  • config (RagConfig) — Категория Модель Конфигурация содержит все параметры в Моделииз. Инициализация файла конфигурации использовать не будет загружать модели, связанные с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.
  • question_encoder (TFPreTrainedModel) — иretrieverинкапсуляцияиз faiss Индекс совместим с моделью кодировщика.
  • generator (TFPreTrainedModel) — используется как RAG Генератор в архитектурепоследовательность за последовательностью Модель。
  • retriever (RagRetriever) — один класс ретривера, инкапсулирующий один faiss индекс,используется для Получает текущий ввод из контекстного документа.

TFRagSequenceForGeneration из метода Forward,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

TF Реализация модели RAG-последовательности. Он выполняет маргинализацию, специфичную для RAG-последовательности, при прямом проходе.

RAG даодин последовательность к последовательности Модель,Инкапсулирует два основных компонента: один кодер вопросов и один генератор. существовать во время прохода вперед,Кодировщик вопросов Ouruse кодирует входные данные.,и Воля其передача给ретриверизвлечь соответствующиеиз上下文документ。然后Волядокумент添加到входитьсередина。такизконтекстуализациявходить被передача给генерировать器。

кодер вопросов Можетдалюбойавтоматическое кодированиеМодель,Лучший TFDPRQuestionEncoder,генерировать器Можетдалюбойпоследовательность за последовательностьюМодель,Лучше всего использовать TFBartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever Выполните сквозную генерацию,也Можетиретриверизвыходкомбинациясуществовать多个步骤серединаиспользовать—Проверять更多Подробностииз Пример。Должен Модельсовместимыйлюбойавтоматическое кодированиеМоделькакquestion_encoder,совместимыйлюбой带有语言Модельголоваизпоследовательность за последовательностьюМоделькакgenerator。Уже протестированоиспользовать TFDPRQuestionEncoder какquestion_encoderи TFBartForConditionalGeneration какgenerator

Эта модель наследует от TFPreTrainedModel. Посмотреть документацию по суперклассу以获取库为все Модельвыполнитьизобщий метод(нравитьсяскачатьилидержать、Настройте встраивание ввода、Обрезать голову и т. д.).

Эта модель также даодин Tensorflow tf.keras.Model子добрый。Воля其используется как обычныйиз TF 2.0 Keras модель и ссылка TF 2.0 Документация, необходимая для получения, а также общее использование и поведение, связанные со всем содержанием.

Эта модель в настоящее время находится в разработке и сейчас полностью поддерживает только немедленный режим и не может быть экспортирована в формате SavedModel.

call

<Приходить源>

Язык кода:javascript
копировать
( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None decoder_input_ids: np.ndarray | tf.Tensor | None = None decoder_attention_mask: np.ndarray | tf.Tensor | None = None encoder_outputs: np.ndarray | tf.Tensor | None = None past_key_values: Optional[Tuple[Tuple[Union[np.ndarray, tf.Tensor]]]] = None doc_scores: np.ndarray | tf.Tensor | None = None context_input_ids: np.ndarray | tf.Tensor | None = None context_attention_mask: np.ndarray | tf.Tensor | None = None use_cache: Optional[bool] = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None output_retrieved: Optional[bool] = None n_docs: Optional[int] = None exclude_bos_score: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None reduce_loss: Optional[bool] = None return_dict: Optional[bool] = None training: bool = False **kwargs ) → export const metadata = 'undefined';transformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutput or tuple(tf.Tensor)

параметр

  • input_ids (tf.Tensorиз Форма(batch_size, sequence_length)) — Введите тег последовательности изиндекс в словарь. Рэг Конфиг используется для инициализирует Модель, указывает генератор использования, а также определяет совместимость с токенизатором генератора. использовать Этот класс токенизатора получает эти индексы.
  • attention_mask (tf.Tensorиз Форма(batch_size, sequence_length),Необязательный) — избегать对отметка заполненияиндексвнимание руководстваизмаска。выбиратьсуществовать[0, 1]серединаизмаскаценить:
    • 对Веще нет被maskedизотметка为 1,
    • 对В被maskedизотметка为 0。

    Что такое маска внимания?

  • encoder_outputs (tuple(tuple(tf.Tensor), Необязательный) — Кортеж включает в себя(generator_enc_last_hidden_state, Необязательный: generator_enc_hidden_states, Необязательный: generator_enc_attentions)。Форма(batch_size, n_docs * sequence_length, hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование期间,Зависит от(TFRagModel)Модельиспользовать。
  • decoder_input_ids (tf.Tensorиз Форма(batch_size, target_sequence_length),Необязательный) — используется для генерирует задачи. По умолчаниюNone,в соответствии с использованием RAG Пример из Генератор Модельиз Описание Сборка.
  • decoder_attention_mask (torch.BoolTensorиз Форма(batch_size, target_sequence_length),Необязательный) — Поведение по умолчанию: генерироватьодинпренебрегатьdecoder_input_idsсерединаотметка заполненияиз Тензор。причина и следствиемаска也Воляпо умолчаниюиспользовать。
  • past_key_values (tuple(tuple(tf.Tensor))) — Кортеж включает в себя RAG Модельизencoder_outputs(Видетьencoder_outputs)и底层генерировать器изpast_key_valuesдва элемента。Можетиспользуется для Ускорить декодирование。существоватьдекодирование期间,past_key_valuesсуществовать(RagTokenForGeneration)Модельсерединаиспользовать。
  • doc_scores (tf.Tensorиз Форма(batch_size, config.n_docs)) — 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетинициализация为retriever,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Подробнее См. примеры.
  • context_input_ids (tf.Tensorиз Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsПостобработка для получения входных данных ID。 если Модельеще нетинициализация为retriever,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。context_attention_mask (tf.Tensorиз Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться): Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。 если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cache (bool, optional, По умолчаниюTrue) — еслиустановлен наTrue,новозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentions (bool, optional) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изattentions
  • output_hidden_states (bool, optional) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращатьсяиз Тензор下изhidden_states
  • output_retrieved(bool, optional) — данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • return_dict (bool, optional) — данетвозвращатьсяTFRetrievAugLMOutputвместо обычного кортежа.
  • n_docs (int, optional, По умолчанию`config.n_docs“) — Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.
  • exclude_bos_score (bool, optional) — толькосуществоватьпередачаlabelsсвязанный со временем。если为True,носуществоватьвычислить损失часпренебрегать BOS Марка из дроби.
  • labels (tf.Tensor or np.ndarray of shape (batch_size, sequence_length), optional) — в соответствии с Rag-Sequence Формула модели рассчитывает потери классификации перекрестной энтропии по тегам. связанный Rag-Sequence чиновникиз Подробности,请Видетьarxiv.org/pdf/2005.11401.pdf第 2.1 Фестиваль。индексотвечатьсуществовать[0, ..., config.vocab_size - 1]объем内。
  • reduce_loss (bool, optional) — толькосуществоватьпередачаlabelsсвязанный со временем。если为True,ноиспользоватьtf.Tensor.sumСокращение операций NLL потеря.
  • kwargs (Dict[str, any], optional, По умолчанию*{}) — Словарь Legacy, Модель Можно использоватьgenerate()*функция所需。

возвращаться

transformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutputилиtuple(tf.Tensor)

одинtransformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutputилиодинtf.Tensorкортеж(еслипередача Понятноreturn_dict=Falseиликогдаconfig.return_dict=Falseчас)Включатьв соответствии с Конфигурация (RagConfig) и ввод различных элементов.

  • loss (tf.Tensor of shape (1,), optional, когда提供labelsчасвозвращаться) — Языковое моделирование потери.
  • logits (tf.Tensor of shape (batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Эта оценка может быть снижена во всех документах для каждого существующего словарного токена.
  • past_key_values (List[tf.Tensor], optional, returned when use_cache=True is passed or when config.use_cache=True) — Длинаconfig.n_layersизtf.Tensorсписок,每个Тензориз Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит предварительно вычисленные из скрытых состояний (из ключей и значений в декодере внимании块середина)изtf.Tensor,Можетиспользуется для加速顺序декодирование(请Видетьpast_key_valuesвходить)。
  • doc_scores (tf.Tensor of shape (batch_size, config.n_docs)) — получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Фракция。
  • retrieved_doc_embeds (tf.Tensor of shape (batch_size, config.n_docs, hidden_size), optional, returned when output_retrieved=True) — ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids (tf.Tensor (int32) of shape (batch_size, config.n_docs), optional, returned when output_retrieved=True) — Зависит от Сканер извлекает внедренные документы из индекса.
  • context_input_idstf.Tensor(int32)Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Получение документов и задач из кодировщика input_ids Постобработка для получения входных данных id。
  • context_attention_masktf.Tensor(int32)Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtf.Tensor,Необязательный)— Последний уровень кодировщика задачи объединяет скрытую последовательность состояний Модельиз и выводит ее.
  • question_enc_hidden_statestuple(tf.Tensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодировщик задачи состоит из выходных данных каждого слоя плюс начального вывода внедрения из скрытого состояния.
  • question_enc_attentionstuple(tf.Tensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtf.Tensor,Необязательный)— Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_statestuple(tf.Tensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер-генератор состоит из выходных данных каждого слоя плюс начального вывода внедрения из скрытого состояния.
  • generator_enc_attentionstuple(tf.Tensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_statestuple(tf.Tensor),Необязательный,когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Декодер генератора состоит из выходных данных каждого слоя плюс начального вывода внедрения из скрытого состояния.
  • generator_dec_attentionstuple(tf.Tensor),Необязательный,когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.

TFRagSequenceForGeneration из метода Forward,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

Пример:

Язык кода:javascript
копировать
>>> from transformers import AutoTokenizer, RagRetriever, TFRagSequenceForGeneration

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-sequence-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-sequence-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = TFRagSequenceForGeneration.from_pretrained(
...     "facebook/rag-sequence-nq", retriever=retriever, from_pt=True
... )

>>> input_dict = tokenizer.prepare_seq2seq_batch(
...     "How many people live in Paris?", "In Paris, there are 10 million people.", return_tensors="tf"
... )
>>> outputs = model(input_dict, output_retrieved=True)

>>> # or use retriever separately
>>> # 1\. Encode
>>> input_ids = input_dict["input_ids"]
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2\. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.numpy(), return_tensors="tf")
>>> doc_scores = tf.squeeze(
...     tf.matmul(
...         tf.expand_dims(question_hidden_states, axis=1), docs_dict["retrieved_doc_embeds"], transpose_b=True
...     ),
...     axis=1,
... )
>>> # 3\. Forward to generator
>>> outputs = model(
...     inputs=None,
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=input_dict["labels"],
... )

>>> # or directly generate
>>> generated = model.generate(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
... )
>>> generated_string = tokenizer.batch_decode(generated, skip_special_tokens=True)
generate

<Приходить源>

Язык кода:javascript
копировать
( input_ids: TFModelInputType | None = None attention_mask: tf.Tensor | None = None context_input_ids = None context_attention_mask = None doc_scores = None do_deduplication = None num_return_sequences = None num_beams = None n_docs = None **model_kwargs ) → export const metadata = 'undefined';tf.Tensor of shape (batch_size * num_return_sequences, sequence_length)

параметр

  • input_ids (tf.Tensor,Форма(batch_size, sequence_length),Необязательный) — используется какгенерировать提示изпоследовательность。еслиеще нетпередачаinput_ids,но必须提供context_input_ids
  • attention_mask (tf.Tensor,Форма(batch_size, sequence_length),Необязательный) — используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценитьвыбиратьсуществовать[0, 1]объем内:- 1 выражатьРазблокированоизотметка,- 0 выражатьЗаблокированоизотметка.Что такое маска внимания?
  • context_input_ids (tf.Tensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики из input_ids Постобработка для получения входных данных ID。
  • context_attention_mask (tf.Tensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,когдаoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики из input_ids постобработка для полученияизвнимательностьмаска。если Модельеще нетиспользоватьretrieverинициализацияилиеще нет提供input_ids,но必须существовать前向передачасередина提供context_input_idsиcontext_attention_mask。это们Зависит от__call__()возвращаться。
  • doc_scores (tf.Tensor,Форма(batch_size, config.n_docs)) — Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетиспользоватьretrieverинициализацияилиеще нет提供input_ids,но必须существовать前向передачасередина提供doc_scoresdoc_scoresЗависит от__call__()возвращаться。
  • do_deduplication (bool, Необязательный) — данет对给定входитьиз不同上下文документ Создать для дедупликации。еслисуществоватьиспользовать分布式后端进行训练час,必须Воля其установлен наFalse
  • num_return_sequences(int, Необязательный,По умолчанию 1) — Каждый элемент партии рассчитывается независимо, начинает последовательность из количества. пожалуйста, обрати внимание,Это неда我们передача给generatorизgenerate()функцияизценить,其середина我们Воляnum_return_sequencesустановлен наnum_beams
  • num_beams (int, Необязательный, По умолчанию 1) — Beam Поиск изколичества. 1 значит нет beam поиск.
  • n_docs (int,Необязательный,По умолчаниюconfig.n_docs) — Количество документов, которые необходимо получить, и/или количество документов, для которых необходимо сгенерировать ответы.
  • kwargs (Dict[str, Any],Необязательный) — Экстра из kwargs будет передано generate()

возвращаться

tf.Tensor,Форма(batch_size * num_return_sequences, sequence_length)

генерироватьизпоследовательность。второе измерение(последовательность长度)要么等Вmax_length,要么есливсе批次Зависит от Вeos_token_idи завершено заранее,Оно должно быть короче.

Критерий rag Последовательность декодируется «тщательно». Прочтите документацию по генерированию() для получения дополнительной информации о том, как настроить другие сгенерированные входные параметры.

TFRagTokenForGeneration

class transformers.TFRagTokenForGeneration

<Приходить源>

Язык кода:javascript
копировать
( config: Optional[PretrainedConfig] = None question_encoder: Optional[TFPreTrainedModel] = None generator: Optional[TFPreTrainedModel] = None retriever: Optional[RagRetriever] = None **kwargs )

параметр

  • config(RagConfig) — С Моделью все параметры Модель Конфигурация категорий. Инициализация файла использования конфигурации не загружает модель, связанную с весами, а только конфигурацию. Проверять from_pretrained()Метод загрузки весов моделей.
  • question_encoder(TFPreTrainedModel из前向方法покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо того, чтобы дасуществовать сюда позвоните,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

TF RAG-token Модельвыполнить. Он существует и выполняется в прямом проходе RAG-token Специфическая маргинализация.

RAG даодин последовательность к последовательности Модель,Инкапсулирует два основных компонента: кодировщик вопросов и генератор. существовать во время прохода вперед,Кодировщик вопросов Ouruse кодирует входные данные.,и Воля其передача给ретриверизвлечь соответствующиеиз上下文документ。然后Волядокумент添加到входить之前。такконтекстуализацияизвходить被передача给генерировать器。

кодер вопросов МожетдалюбойавтокодированиеМодель,Лучший TFDPRQuestionEncoder,генерировать器Можетдалюбойseq2seqМодель,Лучше всего использовать TFBartForConditionalGeneration.

Должен Модель Можно использовать RagRetriever 进行инициализация以Выполните сквозную генерацию,или ВОЗиретриверизвыходкомбинациясуществовать多个步骤серединаиспользовать—Видеть Пример以获取更多Подробности。Должен МодельиавтокодированиеМодельсовместимый,нравитьсяquestion_encoder,а также具有语言Модельголова部изseq2seqМодель,нравитьсяgenerator。уже测试Понятно Воля TFDPRQuestionEncoder используется какquestion_encoderи TFBartForConditionalGeneration используется какgenerator

Эта модель наследует от TFPreTrainedModel. Посмотреть документацию по суперклассу以Понятно解库为все Модельвыполнитьизобщий метод(Напримерскачатьилидержать、Настройте встраивание ввода、Обрезать голову и т. д.).

Эта модель до сих пор Tensorflow tf.keras.Model子добрый。Воля其используется как обычныйиз TF 2.0 Keras модель и ссылка TF 2.0 Документация со всей соответствующей информацией об общем использовании и поведении.

Эта модель в настоящее время находится в стадии разработки, поскольку сейчас она полностью поддерживается только в активном режиме и не может быть экспортирована в формат SavedModel.

call

<Приходить源>

Язык кода:javascript
копировать
( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None decoder_input_ids: np.ndarray | tf.Tensor | None = None decoder_attention_mask: np.ndarray | tf.Tensor | None = None encoder_outputs: np.ndarray | tf.Tensor | None = None past_key_values: Tuple[Tuple[Union[np.ndarray, tf.Tensor]]] | None = None doc_scores: np.ndarray | tf.Tensor | None = None context_input_ids: np.ndarray | tf.Tensor | None = None context_attention_mask: np.ndarray | tf.Tensor | None = None use_cache: bool | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None output_retrieved: bool | None = None n_docs: int | None = None do_marginalize: bool | None = None labels: np.ndarray | tf.Tensor | None = None reduce_loss: bool | None = None return_dict: bool | None = None training: bool = False **kwargs ) → export const metadata = 'undefined';transformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutput or tuple(tf.Tensor)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtf.Tensor)- Введите тег последовательности изиндекс в словарь. Рэг Конфиг используется для инициализирует Модель, указывает генератор использования, а также указывает совместимый токенизатор генератора. используйте класс токенизатора для получения этих индексов.
  • attention_mask(Форма(batch_size, sequence_length)изtf.Tensor,Необязательный)- используется дляизбегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценитьвыбиратьсуществовать[0, 1]между:
    • 对Веще нет被maskedизотметка,Значение – 1。
    • 对В被maskedизотметка,Значение равно 0.

    Что такое маска внимания?

  • encoder_outputs (tuple(tuple(tf.Tensor),Необязательный) — Кортеж включает в себя(generator_enc_last_hidden_state,Необязательныйgenerator_enc_hidden_states,Необязательныйgenerator_enc_attentions)。Форма(batch_size, n_docs * sequence_length, hidden_size)изgenerator_enc_last_hidden_stateдагенерировать器编码器наконец一层из Скрытое состояниепоследовательность。 существоватьдекодирование期间Зависит от(TFRagModel)Модельиспользовать。
  • decoder_input_ids (tf.Tensor,Форма(batch_size, target_sequence_length),Необязательный) — используется для генерирует задачи. По умолчаниюNone,в соответствии с использованием RAG Пример из Генератор Модельиз Описание Сборка.
  • decoder_attention_mask (torch.BoolTensor,Форма(batch_size, target_sequence_length),Необязательный) — Поведение по умолчанию:генерироватьодин Тензор,пренебрегатьdecoder_input_idsсерединаизнаполнениеотметка.по умолчанию情况下还Воляиспользоватьпричина и следствиемаска。
  • past_key_values (tuple(tuple(tf.Tensor))) — Кортеж содержит два элемента: RAG. Модельизencoder_outputs(Видетьencoder_outputs)и基础генерировать器изpast_key_values。Можетиспользуется для Ускорить декодирование。существоватьдекодирование期间,past_key_valuesсуществовать(RagTokenForGeneration)Модельсерединаиспользовать。
  • doc_scores (tf.Tensor,Форма(batch_size, config.n_docs)) — 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供doc_scoresdoc_scoresМожетпроходитьquestion_encoder_last_hidden_stateиretrieved_doc_embedsвычислить,Для получения дополнительной информации,См. примеры.
  • context_input_ids (tf.Tensor,Форма(batch_size * config.n_docs, config.max_combined_length),Необязательный,существоватьoutput_retrieved=Trueчасвозвращаться) — Получить документы и выдать кодировщики изinput_idsПостобработкаизвходить ID。 если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtf.Tensor,Необязательный,существоватьoutput_retrieved=Trueчасвозвращаться):Получить документы и выдать кодировщики изinput_idsПостобработкаизвнимательностьмаска。 если Модельеще нетиспользоватьretrieverинициализация,но必须существовать前向передачасередина提供context_attention_maskcontext_attention_maskЗависит от__call__()возвращаться。
  • use_cache (bool,Необязательный,По умолчаниюTrue) — еслиустановлен наTrue,Волявозвращатьсяpast_key_values键ценить状态,и Можетиспользуется для Ускорить декодирование(Видетьpast_key_values)。
  • output_attentions (bool,Необязательный) — данетвозвращатьсявсевнимательность层извнимательность Тензор。Для более подробной информации,请Видетьвозвращатьсяиз Тензорсерединаизattentions
  • output_hidden_states (bool,Необязательный) — данетвозвращатьсявсе层из Скрытое состояние。Для более подробной информации,请Видетьвозвращатьсяиз Тензорсерединаизhidden_states
  • output_retrieved(bool, Необязательный) — данетвозвращатьсяretrieved_doc_embedsretrieved_doc_idscontext_input_idsиcontext_attention_mask。Для более подробной информации,См. появление тензора.
  • return_dict (bool,Необязательный) — данетвозвращатьсяTFRetrievAugLMOutputвместо обычного кортежа.
  • n_docs (int, optional, По умолчанию`config.n_docs“) — Количество документов, которые необходимо получить, и/или количество документов, которые необходимо сгенерировать.
  • do_marginalize (bool,Необязательный) — если为True,проходитьиспользоватьtorch.nn.functional.log_softmaxВоля对数归一изменять到вседокумент上。
  • labels (tf.Tensor or np.ndarray of shape (batch_size, sequence_length), optional) — в соответствии с Rag-Token Формула модели рассчитывает потери классификации перекрестной энтропии по тегам. связанный Rag-Token чиновникиз Подробности,Видетьarxiv.org/pdf/2005.11401.pdf第 2.1 Фестиваль。индексотвечатьсуществовать[0, ..., config.vocab_size - 1]объем内。
  • reduce_loss (bool, optional) — толькосуществоватьпередачаlabelsсвязанный со временем。если为True,ноиспользоватьtf.Tensor.sumСокращение операций NLL потеря.
  • kwargs (Dict[str, any], optional, По умолчанию*{}) — старый словарь,Модель Можно использоватьgenerate()*функция所需。

возвращаться

transformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutputилиtuple(tf.Tensor)

одинtransformers.models.rag.modeling_tf_rag.TFRetrievAugLMMarginOutputилиодинtf.Tensorкортеж(еслипередачаreturn_dict=Falseилиconfig.return_dict=False)Включатьв соответствии с Конфигурация (RagConfig) и ввод различных элементов.

  • loss (tf.Tensor of shape (1,), optional, когда提供labelsчасвозвращаться) — Языковое моделирование потери.
  • logits (tf.Tensor of shape (batch_size, sequence_length, config.vocab_size)) — Языковое моделирование головы с прогнозированием оценок. Эта оценка может быть снижена во всех документах для каждого существующего словарного токена.
  • past_key_values (List[tf.Tensor], optional, когдапередачаuse_cache=Trueилиconfig.use_cache=Trueчасвозвращаться) — Длинаconfig.n_layersизtf.Tensorсписок,每个Тензориз Форма(2, batch_size, num_heads, sequence_length, embed_size_per_head)。 Содержит может использоваться для加速顺序декодированиеиздекодериз预вычислить Скрытое состояние(注意块серединаиз键иценить)(Видетьpast_key_valuesвходить)。
  • doc_scores (tf.Tensor of shape (batch_size, config.n_docs)) — 每个получениздокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。
  • retrieved_doc_embeds (tf.Tensor of shape (batch_size, config.n_docs, hidden_size), optional, когдаoutput_retrieved=Trueчасвозвращаться) — ретриверполучениз Встроитьдокумент。иquestion_encoder_last_hidden_stateВместеиспользуется длявычислитьdoc_scores
  • retrieved_doc_ids (tf.Tensor (int32) of shape (batch_size, config.n_docs), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Сканер извлек встроенный документ из индекса.
  • context_input_ids (tf.Tensor(int32) of shape (batch_size * config.n_docs, config.max_combined_length), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и ввода кодировщика вопросов из ids Постобработка для получения входных данных ids。
  • context_attention_mask (tf.Tensor (int32) of shape (batch_size * config.n_docs, config.max_combined_length), optional, когдаoutput_retrieved=Trueчасвозвращаться) — Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。
  • question_encoder_last_hidden_state (tf.Tensor of shape (batch_size, sequence_length, hidden_size), optional) — Кодер задачи модели выводит последовательность скрытых состояний последнего слоя.
  • question_enc_hidden_states (tuple(tf.Tensor), optional, когдапередачаoutput_hidden_states=Trueилиconfig.output_hidden_states=Trueчасвозвращаться) — Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Кодер задачи состоит из выходных данных каждого слоя из скрытых состояний плюс исходный вывод внедрения.
  • question_enc_attentions (tuple(tf.Tensor), optional, когдапередачаoutput_attentions=Trueилиconfig.output_attentions=Trueчасвозвращаться) — Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Кодировщик вопросов из Attention Weights, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_enc_last_hidden_state(Форма(batch_size, sequence_length, hidden_size)изtf.Tensor,Необязательный)— Последний уровень кодировщика генератора модели из скрытой последовательности состояний.
  • generator_enc_hidden_statestuple(tf.Tensor),Необязательный,когдапередачаoutput_hidden_states=Trueиликогдаconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Генератор-кодер существует добавляет исходные выходные данные внедрения к скрытым состояниям каждого слоя.
  • generator_enc_attentionstuple(tf.Tensor),Необязательный,когдапередачаoutput_attentions=Trueиликогдаconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор энкодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.
  • generator_dec_hidden_statestuple(tf.Tensor),Необязательный,когдапередачаoutput_hidden_states=Trueиликогдаconfig.output_hidden_states=Trueчасвозвращаться)— Форма(batch_size, sequence_length, hidden_size)изtf.Tensorкортеж(одиниспользуется для Встроитьизвыход,одиниспользуется для каждого слоя вывода). Генератор-декодер существует добавляет исходный вывод внедрения к скрытым состояниям каждого слоя.
  • generator_dec_attentionstuple(tf.Tensor),Необязательный,когдапередачаoutput_attentions=Trueиликогдаconfig.output_attentions=Trueчасвозвращаться)— Форма(batch_size, num_heads, sequence_length, sequence_length)изtf.Tensorкортеж(каждый этажодин)。 Генератор декодера весов внимания, во внимании softmax после,используется для вычисляет средневзвешенное значение из в голове самообслуживания.

TFRagTokenForGeneration из метода пересылки,покрытый__call__специальный метод。

Хотя переход вперед из шага требует существования, определенного в этой функции.,но долженсуществовать Позвонил после этогоModuleПример,Вместо этого,Потому что первый будет отвечать за выполнение этапов предварительной и последующей обработки.,Последний будет молча их игнорировать.

Пример:

Язык кода:javascript
копировать
>>> import tensorflow as tf
>>> from transformers import AutoTokenizer, RagRetriever, TFRagTokenForGeneration

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = TFRagTokenForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever, from_pt=True)

>>> input_dict = tokenizer.prepare_seq2seq_batch(
...     "How many people live in Paris?", "In Paris, there are 10 million people.", return_tensors="tf"
... )
>>> outputs = model(input_dict, output_retrieved=True)

>>> # or use retriever separately
>>> # 1\. Encode
>>> input_ids = input_dict["input_ids"]
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2\. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.numpy(), return_tensors="tf")
>>> doc_scores = tf.squeeze(
...     tf.matmul(
...         tf.expand_dims(question_hidden_states, axis=1), docs_dict["retrieved_doc_embeds"], transpose_b=True
...     ),
...     axis=1,
... )
>>> # 3\. Forward to generator
>>> outputs = model(
...     inputs=None,
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=input_dict["labels"],
... )

>>> # or directly generate
>>> generated = model.generate(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
... )
>>> generated_string = tokenizer.batch_decode(generated, skip_special_tokens=True)
generate

<Приходить源>

Язык кода:javascript
копировать
( input_ids: TFModelInputType | None = None attention_mask: tf.Tensor | None = None context_input_ids = None context_attention_mask = None doc_scores = None n_docs = None generation_config = None logits_processor = [] **kwargs ) → export const metadata = 'undefined';tf.Tensor of shape (batch_size * num_return_sequences, sequence_length)

параметр

  • input_ids(Форма(batch_size, sequence_length)изtf.Tensor,Необязательный)— используется какгенерировать提示изпоследовательность。еслиеще нетпередачаinput_ids,но必须提供context_input_ids
  • attention_mask(Форма(batch_size, sequence_length)изtf.Tensor,Необязательный)— избегатьсуществоватьотметка заполненияиндексвнимание руководстваизмаска。маскаценить选существовать[0, 1]середина:
    • 对Веще нет被maskedизотметка,Значение – 1,
    • 对В被maskedизотметка,Значение равно 0.

    Что такое маска внимания?

  • context_input_ids(Форма(batch_size * config.n_docs, config.max_combined_length)изtf.Tensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Получение документов и задач из кодировщикаinput_idsПостобработка для получения входных данных ID。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • context_attention_mask(Форма(batch_size * config.n_docs, config.max_combined_length)изtf.Tensor,Необязательный,когдаoutput_retrieved=Trueчасвозвращаться)— Получение документов и задач из кодировщикаinput_idsпостобработка для полученияизвнимательностьмаска。 если Модельеще нетиспользоватьretriever进行инициализация,но必须существовать前向передачасередина提供context_input_idscontext_input_idsЗависит от__call__()возвращаться。
  • doc_scores(Форма(batch_size, config.n_docs)изtf.Tensor)- 每个Поискдокумент Встроить(Видетьretrieved_doc_embeds)иquestion_encoder_last_hidden_stateмеждуиз Счет。 если Модельеще нетиспользоватьretrieverинициализация,но必须提供context_input_ids进行前向передача。context_input_idsЗависит от__call__()возвращаться。
  • n_docsint,Необязательный,По умолчаниюconfig.n_docs)- Количество документов, которые необходимо получить, и/или количество документов, для которых необходимо сгенерировать ответы.
  • generation_config~generation.GenerationConfig,Необязательный)- используется какгенерировать调用из Базовыйпараметризменятьизгенерировать Конфигурация。передача给генерироватьсоответствоватьgeneration_configсвойствоиз**kwargsВолякрышкаэто们。еслиеще нет提供generation_config,Установить значение по умолчанию,Его приоритет загрузки следующий:1)отgeneration_config.jsonМодельдокументсередина,Если сохранение существует; 2) из ​​Модель Конфигурация. пожалуйста, обрати внимание,еще нетобозначениеизпараметр Воля继承 GenerationConfig из значения по умолчанию, его документация должна быть сгенерирована в параметре.
  • logits_processorTFLogitsProcessorList,Необязательный)- Настроить logits Процессор, дополненный по умолчанию, строится из параметра и Модель Конфигурация. logits процессор. Если пройти из logit Обработчик уже создан, будет выдана ошибка.
  • kwargsDict[str, Any],Необязательный)- generate_configизидентификация ВМодельизпараметризменятьи/или Воля转发到Модельизforwardфункцияиздругой Модельидентификация kwargs。

возвращаться

tf.Tensorиз Форма(batch_size * num_return_sequences, sequence_length)

генерироватьизпоследовательность。второе измерение(sequence_length)要么等Вmax_length,要么есливсе批次Зависит от Вeos_token_idи завершено заранее,Оно должно быть короче.

выполнить TFRAG Декодирование токена. context_input_ids = None context_attention_mask = None doc_scores = None n_docs = None generation_config = None logits_processor = [] **kwargs ) → export const metadata = ‘undefined’;tf.Tensor of shape (batch_size * num_return_sequences, sequence_length)

Язык кода:javascript
копировать
параметр

+   `input_ids` (форма `(batch_size, последовательность_длина)`из`tf.Tensor`, *необязательно*) — используется как генерирует приглашение из последовательности. Если `input_ids` не передан, необходимо указать `context_input_ids`.

+   `attention_mask` (shape `(batch_size, последовательность_длина)`из`tf.Tensor`, *необязательно*) — Избегайте внимания к маскам существующего индекса тегов-заполнителей. Выбирается значение маски существующего`[0, 1]` в:

    +   Для тегов, которые не замаскированы, значение равно 1,

    +   Для тегов `masked`из значение равно 0。

    Что такое маска внимания?

+   `context_input_ids` (форма `(batch_size * config.n_docs, config.max_combined_length)`из`tf.Tensor`, *необязательно*, когда *output_retieved=True* начинается) — Получение документов и задач из кодировщика`input_ids`Постобработка для получения входных данных ID。

    Если Модель не инициализирована с использованием `retriever`, `context_input_ids` должен быть предоставлен в существующем прямом проходе. `context_input_ids`Зависит от`__call__()`возвращаться。

+   `context_attention_mask` (форма `(batch_size * config.n_docs, config.max_combined_length)`из`tf.Tensor`, *необязательно*, когда *output_retieved=True* начинается) — Получение документов и задач из кодировщика`input_ids`постобработка для полученияизвнимательностьмаска。

    Если Модель не инициализирована с использованием `retriever`, `context_input_ids` должен быть предоставлен в существующем прямом проходе. `context_input_ids`Зависит от`__call__()`возвращаться。

+   `doc_scores` (форма `(batch_size, config.n_docs)`из`tf.Tensor`)- Оценка между каждым встраиванием полученного документа (см. `retrived_doc_embeds`) и `question_encoder_last_hidden_state`.

    Если Модель не была инициализирована с помощью `retriever`, `context_input_ids` должен быть предоставлен для прямого прохода. `context_input_ids`Зависит от`__call__()`возвращаться。

+   `n_docs` (`int`, *необязательно*, По умолчанию`config.n_docs`)- Количество документов, которые необходимо получить, и/или количество документов, для которых необходимо сгенерировать ответы.

+   `generation_config`(`~generation.GenerationConfig`,*Необязательный*)- используется как сгенерировать вызов из базовых параметров сгенерировать Конфигурацию. Передача сгенерированных соответствующих атрибутов «Generation_config» и «**kwargs» переопределит их. Если `generation_config` не указан, use будет значением по умолчанию, а его приоритет загрузки будет следующим: 1) из файла модели `generation_config.json`, если существует 2) из ​​Модель Конфигурация. Обратите внимание, что неуказанный изпараметр будет наследовать GenerationConfig из значения по умолчанию, его документация должна быть сгенерирована в параметре.

+   `logits_processor`(`TFLogitsProcessorList`,*Необязательный*)- Настроить logits Процессор, дополненный по умолчанию, строится из параметра и Модель Конфигурация. logits процессор. Если пройти из logit Обработчик уже создан, будет выдана ошибка.

+   `kwargs`(`Dict[str, Любой]`, *необязательно*) - `generate_config`из, специфичный для Модельизпараметра, и /или будет перенаправлен в Модельиз, функция `forward` из другой конкретной модели kwargs。

возвращаться

`tf.Tensor`из формы `(batch_size * num_return_sequences, sequence_length)`

Генерировать из последовательности. Второе измерение (sequence_length) либо равно `max_length`, либо все пакеты Зависит от короче `eos_token_id`, если это сделано заранее.

выполнить TFRAG Декодирование токена.
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода