У цьому дописі я б зупинився на всіх теоретичних знаннях, необхідних вам для останніх тенденцій НЛП. Я склав цей список читання під час вивчення нових концепцій. У наступному дописі я поділюся речами, я використовую, щоб практикувати ці концепції, включаючи моделі fit та rank 1 на таблицях лідерів змагань. Скористайтеся цим посиланням, щоб перейти до частини 2 (ще потрібно зробити).
Для ресурсів я включаю статті, блоги, відео.
Більшість речей читати не потрібно. Вашою основною метою повинно бути розуміння того, що ця проблема була включена в цей документ, і я розумію, як це працює, як воно порівнюється із сучасним рівнем техніки.
Тенденція: використовувати більші моделі на основі трансформаторів та вирішити багатозадачне навчання.
Попередження: у НЛП зростає тенденція, що якщо у вас є нова ідея в НЛП під час читання будь-якого документа, вам доведеться використовувати величезні обчислювальні потужності, щоб отримати розумні результати. Отже, це обмежено моделями з відкритим кодом.
- fastai: - Я вже бачив відео, тому подумав, що повинен додати його у верхній частині списку.
- Урок 4 Практичне глибоке навчання для кодерів. Це допоможе вам впровадити мовну модель у фастай.
- У Частині 2 курсу є Урок 12, але він ще офіційно не вийшов, тому я б оновив посилання, коли воно завантажиться.
2. LSTM: - Хоча трансформатори в основному використовуються сьогодні, в деяких випадках ви все ще можете використовувати LSTM, і це була перша успішна модель, яка дала хороші результати. Ви повинні використовувати AWD_LSTM зараз, якщо хочете.
- ДОЛГОСРОЧНА ПАМ'ЯТЬ. Досить швидкого погляду на папір.
- Зрозумійте блог LSTM Networks. Поясніть графічно всі деталі мережі LSTM.
3. AWD_LSTM: - Було запропоновано подолати дефіцит LSTM шляхом введення відсіву між прихованими шарами, вибування з вбудовування, прив’язки ваги. Ви повинні використовувати AWS_LSTM замість LSTM.
- Роль регуляризації та оптимізації мовних моделей LSTM. Папір AWD_LSTM
- Офіційний код Salesforce
- реалізація фастай
4. Моделі покажчиків: - Хоча це і не потрібно, воно добре читається. Ви можете сприймати це як теорію до уваги.
- Роль моделей накладання вказівника дозорного
- Офіційне відео попередньої статті.
- Удосконалення моделей нейронних мов із роллю безперервного кешу
Додатково: Яка різниця між втратою ваги та регуляризацією? При втраті ваги це безпосередньо додає щось до правила оновлення, тоді як при регуляризації воно додається до функції втрати. Навіщо це згадувати? Швидше за все, бібліотеки DL використовують weight_decay замість регуляризації під кришкою.
У деяких статтях ви могли б побачити, що автори віддавали перевагу SGD перед Адамом, посилаючись на те, що Адам погано працює. Причиною цього є (можливо) PyTorch/Tensorflow роблять вищевказану помилку. Це докладно пояснено у цій публікації.
5. Увага: просто пам’ятайте, що увага - це не все, що вам потрібно.
Проводиться багато досліджень з виготовлення кращих трансформаторів, можливо, я прочитаю більше статей про це в майбутньому. Деякі інші трансформатори включають універсальний трансформатор та еволюціонований трансформатор, які використовували AutoML для створення архітектури трансформатора.
Причина, по якій нові архітектури трансформаторів не вирішують проблему. Оскільки вам потрібні мовні моделі для ваших завдань NLP, які використовують ці перетворювальні блоки. У більшості випадків у вас не буде обчислювальних ресурсів для навчання цих моделей, оскільки було встановлено, що чим більше блоків трансформаторів ви використовуєте, тим краще. Крім того, вам потрібні більші розміри партій для навчання цих мовних моделей, а це означає, що вам доведеться використовувати TPU Nvidia DGX або Google Cloud (підтримка PyTorch надійде одного дня).
6. Випадкові ресурси: - Ви можете пропустити цей розділ. Але для повноти я надаю всі ресурси, якими я користувався.
- Блог, що візуалізує модель нейронного машинного перекладу (механіка моделі Seq2seq з увагою)
- Моделювання мови на рівні персонажа за допомогою більш глибокого паперу про самообслуговування.
- Використання вихідної клавіатури для посилення ролі моделей Langauge.
- Документ про квазірекурентні нейронні мережі. Дуже швидка версія LSTM. Використовуйте шари згортки, щоб зробити обчислення LSTM паралельними. Код можна знайти у fastai_library або official_code.
- Блог глибокого навчання Себастьяна Радера для NLP Best Practices. Збірник найкращих практик, які слід використовувати під час навчання моделей LSTM.
- Примітки щодо сучасних технічних прийомів для блогу з моделювання мови. Короткий підсумок, де Джеремі Говард узагальнює деякі його трюки, які він використовує у бібліотеці фастай.
- Блог мовних режимів та вбудовані в контекст слова. Забезпечує короткий огляд моделей ELMo, BERT та інших.
- Ілюстровані BERT, ELMo та компанія. Блог (Як NLP зламав навчання з трансферу).
7. Багатозадачне навчання - я дуже радий цьому. У цьому випадку тренуйте одну модель для кількох завдань (більше 10, якщо хочете). Тож ваші дані виглядають як "перекласти англійською мовою some_text_in_german". Ваша модель насправді вчиться використовувати вихідну інформацію для вибору завдання, яке потрібно виконати.
- Огляд багатозадачності навчання в глибоких нейронних мережах.
- Десятиборство природничих мов: багатозадачне навчання як опитувальник.
- Роль багатозадачності глибоких нейронних мереж для розуміння природної мови.
- Прикладом цього є OpenAI GPT.
8. PyTorch: - Pytorch надає хороші підручники, які дають вам хороші посилання на те, як кодувати більшість речей у NLP. Хоча трансформаторів немає в навчальних посібниках, ви повинні їх побачити один раз.
Тепер ми дійшли до останнього розслідування в НЛП, яке призвело до моменту НЛП Imagenet. Все, що вам потрібно зрозуміти, це як це працює. Увага і все готово.
9. ELMo: - Перше видатне дослідження, проведене в ході якого ми перейшли від попередньо навчених вбудованих слів до використання попередньо навчених моделей для отримання вбудованих слів. Тому використовуйте вхідне речення, щоб отримати вставки для лексем, присутніх у реченні.
- Роль глибоких контекстуалізованих подань слів (роль ELMo)
- Якщо вас цікавить відео, перевірте це посилання.
10. ULMFit: - Це краще, ніж BERT, можливо ні, але все ж на змаганнях Kaggle та зовнішніх змаганнях ULMFiT отримує перше місце.
- Встановлення універсальної мовної моделі для класифікаційного тексту.
- Повідомлення в блозі Джеремі Говарда, яке анонсує ULMFiT.
- Пояснено в Уроці 10 передового курсу поглибленого навчання.
11. OpenAI GPT: - Я не порівнював BERT з GPT2, але, якщо хочете, ви можете працювати над деяким набором. Не використовуйте GPT1, оскільки BERT створено для подолання обмежень GPT1.
- Папір GPT1, блог, код
- Папір GPT2, блог, код
- Перегляньте відкрите відео на GPT2
12. BERT: - Найуспішніша лінгвістична модель на даний момент (станом на травень 2019 р.).
- BERT: Глибокі двонаправлені трансформатори попередньої підготовки до документа, що розуміє мову.
- Блог Google на BERT
- BERT Dissection Part 1: The Coder's Blog
- Розуміння BERT Частина 2: Специфічний щоденник BERT
- Розділ додатка BERT: Блог декодера
Щоб використовувати всі ці моделі в PyTorch, ви повинні використовувати репозиторій hugginface/pytorch_pretrained_BERT, який дає вам повну реалізацію разом із попередньо навченими моделями для BERT, GPT1, GPT2, TransformerXL.
13. Наступний щоденник: - Можливо, я запізнююсь із написанням наступного щоденника, тож я хотів поділитися цим останнім.
- Скорочення попереднього тренінгу BERT з 3 днів до 76 хвилин. Представляємо новий оптимізатор для мовних моделей, який може значно скоротити час навчання.
Вітаю, що дійшов до кінця. Тепер ви маєте більшість теоретичних знань, необхідних для практики НЛП із використанням новітніх моделей та технік.
Що ж тепер робити?
Ви вивчили лише теорію, тепер практикуйте, наскільки можете. Створюйте божевільні вбрання, якщо хочете, спробуйте дістатись до вершини таблиць лідерів. На даний момент я намагаюся практикувати свої завдання НЛП, оскільки я зайнятий виконанням деяких проектів з комп'ютерного зору, які ви перевіряєте нижче або на моєму github.
Я, швидше за все, буду робити наступний допис у середині-кінці червня з таким списком, з деякими новими техніками, які я маю на увазі прочитати, та речами, які я буду робити на практиці.
Якщо ви вважаєте цю публікацію корисною, поділіться нею з іншими людьми, які можуть скористатися нею, і погладьте цю публікацію (це дуже допомагає, може дати максимум 50 хлопців).
Слідуйте за мною на Medium, щоб отримувати мої останні повідомлення в блозі на вашому каналі Medium. Мої соціальні мережі linkedin, github, twitter.
Мої попередні дописи в блозі
- Навчання AlexNet з порадами та перевірками щодо навчання CNN: Практичне CNN на PyTorch (1)
- Все, що потрібно для передачі фотореалістичного стилю в PyTorch
- SPADE: Сучасний рівень перекладу зображень на зображення від Nvidia
- Нормування ваги: нова нормалізація в місті