Buckets:

rtrm's picture
|
download
raw
19.4 kB

Тест в конце главы[[end-of-chapter-quiz]]

Давайте проверим, чему вы научились в этой главе!

1. Когда следует обучать новый токенизатор?

<Question choices={[ { text: "Если ваш набор данных похож на тот, который используется существующей предварительно обученной моделью, и вы хотите провести предварительное обучение новой модели.", explain: "В этом случае, чтобы сэкономить время и вычислительные ресурсы, лучше использовать тот же токенизатор, что и в предварительно обученной модели, и дообучить эту модель." }, { text: "Когда ваш набор данных похож на тот, который используется существующей предварительно обученной моделью, и вы хотите дообучить новую модель, используя эту предварительно обученную модель.", explain: "Чтобы дообучить модель на основе предварительно обученной модели, всегда следует использовать один и тот же токенизатор." }, { text: "Когда ваш набор данных отличается от того, который используется существующей предварительно обученной моделью, и вы хотите провести предварительное обучение новой модели.", explain: "Правильно! В этом случае нет никакого преимущества в использовании одного и того же токенизатора.", correct: true }, { text: "Когда ваш набор данных отличается от того, который используется существующей предварительно обученной моделью, но вы хотите дообучить новую модель с помощью имеющейся предварительно обученной модели.", explain: "Чтобы дообучить модель на основе предварительно обученной модели, всегда следует использовать один и тот же токенизатор." } ]} />

2. В чем преимущество использования генератора списков текстов по сравнению со списком списков текстов при использовании train_new_from_iterator()?

<Question choices={[ { text: "Это единственный тип, который принимает метод train_new_from_iterator().", explain: "Список списков текстов - это особый вид генератора списков текстов, поэтому метод примет и его. Попробуйте еще раз!" }, { text: "Это позволит избежать загрузки в память сразу всего набора данных.", explain: "Точно! Каждый батч текстов будет освобождаться из памяти при итерации, и выигрыш будет особенно заметен, если вы используете библиотеку 🤗 Datasets для хранения текстов.", correct: true }, { text: "Это позволит библиотеке 🤗 Tokenizers использовать многопроцессорность (multiprocessing).", explain: "Нет, она будет использовать многопроцессорность в любом случае." }, { text: "Обученный вами токенизатор будет генерировать более качественные тексты.", explain: "Токенизатор не генерирует текст - вы не путаете его с языковой моделью?" } ]} />

3. Каковы преимущества использования "быстрого" токенизатора?

<Question choices={[ { text: "Он может обрабатывать входные данные быстрее, чем медленный токенизатор, когда вы обьединяете в батч много входных данных.", explain: "Правильно! Благодаря параллелизму, реализованному в Rust, он будет быстрее работать с батчами входных данных. Какие еще преимущества вы можете назвать?", correct: true }, { text: "Быстрые токенизаторы всегда выполняют токенизацию быстрее, чем их медленные аналоги.", explain: "Быстрый токенизатор может работать медленнее, если вы передаете ему только один или очень мало текстов, поскольку он не может использовать параллелизм." }, { text: "Он может применять дополнение (padding) и усечение (truncation).", explain: "Верно, но медленные токенизаторы тоже могут это делать." }, { text: "Он обладает некоторыми дополнительными функциями, позволяющими сопоставлять токены с фрагментами текста, которые их сформировали.", explain: "Действительно, это так называемые смещенные отображения (offset mappings). Однако это не единственное преимущество.", correct: true } ]} />

4. Как конвейер token-classification обрабатывает сущности, которые охватывают несколько токенов?

<Question choices={[ { text: "Сущности с одинаковыми метками объединяются в одну сущность.", explain: "Это слишком простое объяснение. Попробуйте еще раз!" }, { text: "Есть метка начала сущности и метка продолжения сущности.", explain: "Правильно!", correct: true }, { text: "Если в заданном слове первый токен имеет метку сущности, то все слово считается помеченным этой сущностью.", explain: "Это одна из стратегий работы с сущностями. Какие еще ответы здесь применимы?", correct: true }, { text: "Когда токен имеет метку данной сущности, любой другой следующий токен с такой же меткой считается частью той же сущности, если только он не помечен как начало новой сущности.", explain: "Это самый распространенный способ группировки сущностей - однако это не единственный правильный ответ.", correct: true } ]} />

5. Как конвейер question-answering обрабатывает длинные контексты?

<Question choices={[ { text: "На самом деле это не так, поскольку он обрезает длинный контекст по максимальной длине, принятой моделью.", explain: "Есть один прием, который можно использовать для работы с длинными контекстами. Вы помните, в чем он заключается?" }, { text: "Он разбивает контекст на несколько частей и усредняет полученные результаты.", explain: "Нет, усреднять результаты не имеет смысла, поскольку некоторые части контекста не будут содержать ответ." }, { text: "Он разбивает контекст на несколько частей (с перекрытием) и находит максимальную оценку для ответа в каждой части.", explain: "Это правильный ответ!", correct: true }, { text: "Он разбивает контекст на несколько частей (без перекрытия, для эффективности) и находит максимальную оценку для ответа в каждой части.", explain: "Нет, он включает в себя некоторое перекрытие частей, чтобы избежать ситуации, когда ответ будет разбит на две части." } ]} />

6. Что такое нормализация?

<Question choices={[ { text: "Это любая очистка текста, которую выполняет токенизатор на начальных этапах работы с текстами.", explain: "Верно - например, это может быть удаление подчеркиваний или пробелов, или перевод в нижний регистр входных данных.", correct: true }, { text: "Это техника дополнения данных, которая позволяет сделать текст более нормальным за счет удаления редких слов.", explain: "Это неправильно! Попробуйте еще раз." }, { text: "Это последний этап постобработки, на котором токенизатор добавляет специальные токены.", explain: "Этот этап называется просто постобработкой." }, { text: "Это когда эмбеддинги создаются со среднеквадратичным отклонением 0 и стандартным отклонением 1, путем вычитания среднеквадратичного и деления на стандартное отклонение.", explain: "Этот процесс обычно называется нормализацией, когда применяется к значениям пикселей в компьютерном зрении, но это не то, что означает нормализация в NLP." } ]} />

7. Что такое предварительная токенизация для токенизатора по подсловам?

<Question choices={[ { text: "Это шаг перед токенизацией, на котором применяется аугментация данных (например, случайное маскирование).", explain: "Нет, этот шаг является частью предварительной обработки." }, { text: "Это этап перед токенизацией, на котором к тексту применяются необходимые операции по очистке.", explain: "Нет, это этап нормализации." }, { text: "Это шаг, предшествующий применению модели токенизатора для разбиения входных данных на слова.", explain: "Это правильный ответ!", correct: true }, { text: "Это шаг, предшествующий применению модели токенизатора для разделения входных данных на токены.", explain: "Нет, разбиение на части - это задача модели токенизатора." } ]} />

8. Выберите предложения, которые относятся к модели токенизации BPE.

<Question choices={[ { text: "BPE - это алгоритм токенизации подслов, который начинает работу с небольшим словарем и изучает правила слияния.", explain: "Это действительно так!", correct: true }, { text: "BPE - это алгоритм токенизации подслов, который начинает с большого словаря и постепенно удаляет из него токены.", explain: "Нет, такой подход используется другим алгоритмом токенизации." }, { text: "Токенизаторы BPE изучают правила слияния, объединяя пары токенов, которые встречаются чаще всего.", explain: "Правильно!", correct: true }, { text: "Токенизатор BPE изучает правило слияния, объединяя пары токенов, которые максимизируют оценку, которая отдает предпочтение частым парам с менее частыми отдельными частями.", explain: "Нет, это стратегия, применяемая другим алгоритмом токенизации." }, { text: "BPE токенизирует слова на подслова, разбивая их на символы, после чего применяет правила слияния.", explain: "Правильно!", correct: true }, { text: "BPE токенизирует слова в подслова, находя самое длинное подслово, которое есть в словаре, начиная с начала, а затем повторяя процесс для остальной части текста.", explain: "Нет, это способ работы другого алгоритма токенизации." } ]} />

9. Выберите предложения, которые относятся к модели токенизации WordPiece.

<Question choices={[ { text: "WordPiece - это алгоритм токенизации по подсловам, который начинает работу с небольшим словарным запасом и учит правила слияния.", explain: "Это действительно так!", correct: true }, { text: "WordPiece - это алгоритм токенизации по подсловам, который начинает с большого словаря и постепенно удаляет из него токены.", explain: "Нет, такой подход используется другим алгоритмом токенизации." }, { text: "Токенизаторы WordPiece учат правила слияния, объединяя пары токенов, которые встречаются чаще всего.", explain: "Нет, это стратегия, применяемая другим алгоритмом токенизации." }, { text: "Токенизатор WordPiece изучает правило слияния, объединяя пары токенов, которые максимизируют оценку, отдающую предпочтение частым парам с менее частыми отдельными частями.", explain: "Правильно!", correct: true }, { text: "WordPiece выполняет токенизацию слов на подслова, находя наиболее вероятную сегментацию на токены в соответствии с моделью.", explain: "Нет, так работает другой алгоритм токенизации." }, { text: "WordPiece токенизирует слова на подслова, находя самое длинное подслово, которое есть в словаре, начиная с начала, а затем повторяя процесс для остальной части текста.", explain: "Да, именно так работает WordPiece в процессе кодирования.", correct: true } ]} />

10. Выберите предложения, которые относятся к модели токенизации Unigram.

<Question choices={[ { text: "Unigram - это алгоритм токенизации на подслова, который начинает с небольшого словаря и учится правилам слияния.", explain: "Нет, это подход, используемый другим алгоритмом токенизации." }, { text: "Unigram - это алгоритм токенизации подслова, который начинает с большого словарного запаса и постепенно удаляет из него токены.", explain: "Правильно!", correct: true }, { text: "Unigram адаптирует свой словарь, минимизируя потери, вычисляемые по всему корпусу текста.", explain: "Верно!", correct: true }, { text: "Unigram адаптирует свой словарь, сохраняя наиболее часто встречающиеся подслова.", explain: "Нет, это неверно." }, { text: "Unigram осуществляет токенизацию слов на подслова, находя наиболее вероятную сегментацию на токены в соответствии с моделью.", explain: "Правильно!", correct: true }, { text: "Unigram токенизирует слова на подслова, разбивая их на символы, а затем применяя правила слияния.", explain: "Нет, так работает другой алгоритм токенизации." } ]} />

Xet Storage Details

Size:
19.4 kB
·
Xet hash:
088b09c98635fb172f8c9e1b99d8ceef485038738cb0f4a33c375b7f0c7c023c

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