Skip to content

Commit

Permalink
Russian - Chapter 1 finished (#98)
Browse files Browse the repository at this point in the history
* 01/4 start

* 1/4 finished

* 1/5 finished

* 1/5 update toc

* 1/6 finished

* 1/7 finished

* 1/8 finished

* 1/9 finished

* 1/4 fix

* toc update
  • Loading branch information
pdumin authored Apr 12, 2022
1 parent 35b6378 commit 12a5240
Show file tree
Hide file tree
Showing 7 changed files with 283 additions and 2 deletions.
18 changes: 16 additions & 2 deletions chapters/ru/_toctree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,30 @@
- local: chapter0/1
title: Введение

- title: 1. Transformer models
- title: 1. Трансформеры
sections:
- local: chapter1/1
title: Введение
- local: chapter1/2
title: Обработка естесственного языка
- local: chapter1/3
title: Трансформеры, на что они способны?
- local: chapter1/4
title: Как работают трансформеры?
- local: chapter1/5
title: Модели энкодеров
- local: chapter1/6
title: Модели декодеров
- local: chapter1/7
title: Модели "seq2seq"
- local: chapter1/8
title: Предвзятости и ограничения
- local: chapter1/9
title: Итоги


- title: 2. Использование библиотеки 🤗 Transformers
sections:
- local: chapter2/1
title: Введение
title: Введение

173 changes: 173 additions & 0 deletions chapters/ru/chapter1/4.mdx

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions chapters/ru/chapter1/5.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Модели энкодеров

<Youtube id="MUqNwgPjJvQ" />

Энкодеры используют только компонент кодировщика трансформера. На каждом этапе слой внимания может использовать все слова исходного предложения. Эти модели часто характеризуют как имеющие двунаправленное внимание ("bi-directional attention"), и часто называют моделями *автоэнкодеров*.

Предварительное обучение этих моделей обычно заключаетс в том, чтобы как-то исказить данное предложение (например, путем маскировки в нем случайных слов) и поставить перед моделью задачу найти или восстановить исходное предложение.

Энкодеры лучше всего подходят для задач, требующих _понимания_ всего предложения, таких как классификация предложений, распознавание именованных сущностей (и, в более общем смысле, классификация слов) и ответы на вопросы с извлечением информации из контекста.

К представителям этого семейства моделей относятся:

- [ALBERT](https://huggingface.co/transformers/model_doc/albert.html)
- [BERT](https://huggingface.co/transformers/model_doc/bert.html)
- [DistilBERT](https://huggingface.co/transformers/model_doc/distilbert.html)
- [ELECTRA](https://huggingface.co/transformers/model_doc/electra.html)
- [RoBERTa](https://huggingface.co/transformers/model_doc/roberta.html)
16 changes: 16 additions & 0 deletions chapters/ru/chapter1/6.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Модели декодеров

<Youtube id="d_ixlCubqQw" />

Декодировщики используют только компонент декодер трансформера. На каждом этапе для текущего слова слой внимания может получить доступ только к словам, которые были расположены до текущего в предложении. Такие модели часто называются *авторегрессионными моделями*.

Процесс предобучения декодеров обычно заключается в предсказании следующего слова в предложении. ё

Такие модели лучше всего подходят для задач, связанных с генерацией текста.

Представителями этого семейства моделей являются:

- [CTRL](https://huggingface.co/transformers/model_doc/ctrl.html)
- [GPT](https://huggingface.co/transformers/model_doc/gpt.html)
- [GPT-2](https://huggingface.co/transformers/model_doc/gpt2.html)
- [Transformer XL](https://huggingface.co/transformers/model_doc/transformerxl.html)
16 changes: 16 additions & 0 deletions chapters/ru/chapter1/7.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Модели вида "seq2seq"

<Youtube id="0_4KEb08xrE" />

Энкодер-декодер модели (также называемые *sequence-to-sequence models*) используют обе части трансформера. На каждом этапе слой внимания энкодера получает доступ ко всем словам в исходной последовательности, тогда как слой внимания декодера получает доступ только к тем словам, которые позиционированы до текущего слова.

Предобучение таких моделей может быть проведено по аналогии с процессом предобучения энкодера или декодера, но обычно это происходит сложнее. Например, модель [T5](https://huggingface.co/t5-base) была предобучена путем замены случайных фрагментов текста (фрагменты могут содержать несколько слов) на специальную маску, цель модели - предсказать текст, который заменила маска.

Модели seq2seq лучше всего подходят для задач генерации новых предложений, зависящих от входного массива данных, например: саммаризация текста, перевод или генерация ответов на вопросы.

Представителями этого семейства являются:

- [BART](https://huggingface.co/transformers/model_doc/bart.html)
- [mBART](https://huggingface.co/transformers/model_doc/mbart.html)
- [Marian](https://huggingface.co/transformers/model_doc/marian.html)
- [T5](https://huggingface.co/transformers/model_doc/t5.html)
33 changes: 33 additions & 0 deletions chapters/ru/chapter1/8.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Предвзятости и ограничения

<DocNotebookDropdown
classNames="absolute z-10 right-0 top-0"
options={[
{label: "Google Colab", value: "https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter1/section8.ipynb"},
{label: "Aws Studio", value: "https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter1/section8.ipynb"},
]} />

Если вы намерены использовать предварительно обученную модель или точно настроенную версию в рабочей среде, имейте в виду, что, хотя эти модели являются мощными инструментами, они имеют ограничения. Самая большая из них заключается в том, что для предварительной подготовки на больших объемах данных исследователи часто очищают весь контент, который они могут найти, беря как лучшее, так и худшее из того, что доступно в Интернете.

Для иллюстрации вернемся к примеру пайплайна `fill-mask` с моделью BERT:

```python
from transformers import pipeline

unmasker = pipeline("fill-mask", model="bert-base-uncased")
result = unmasker("This man works as a [MASK].")
print([r["token_str"] for r in result])

result = unmasker("This woman works as a [MASK].")
print([r["token_str"] for r in result])
```

```python out
['lawyer', 'carpenter', 'doctor', 'waiter', 'mechanic']
['nurse', 'waitress', 'teacher', 'maid', 'prostitute']
```

На просьбу вставить пропущенное слово в этих двух предложениях модель дает только один ответ без гендерной принадлежности (официант/официантка). Другие рабочие профессии обычно ассоциируются с одним конкретным полом — и да, проститутка попала в топ-5 вариантов, которые модель ассоциирует с "женщиной" и "работой". Это происходит даже несмотря на то, что BERT — одна из редких моделей трансформеров, созданная не путем сбора данных со всего Интернета, а с использованием явно нейтральных данных (он обучен на [английской Википедии](https://huggingface.co/datasets/wikipedia) и наборе данных [BookCorpus](https://huggingface.co/datasets/bookcorpus).

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

12 changes: 12 additions & 0 deletions chapters/ru/chapter1/9.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Итоги

В этой главе вы увидели, как подходить к различным задачам NLP, используя высокоуровневую функцию `pipeline()` из библиотеки 🤗 Transformers. Вы также увидели, как искать и использовать модели в Hub, а также как использовать Inference API для тестирования моделей прямо в браузере.

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


| Модель | Примеры | Задачи |
|-----------------|--------------------------------------------|----------------------------------------------------------------------------------|
| Энкодер | ALBERT, BERT, DistilBERT, ELECTRA, RoBERTa | Классификация предложений, распознавание именованных сущностей, генерация ответов на вопросы с извлечением информации |
| Декодер | CTRL, GPT, GPT-2, Transformer XL | Генерация текста |
| Энкодер-декодер | BART, T5, Marian, mBART | Саммаризация, перевод, генеративный подход к ответам на вопросы |

0 comments on commit 12a5240

Please sign in to comment.