Deep learning for NLP (RU)
546 subscribers
42 photos
4 files
65 links
Применение методов машинного обучения и глубокого обучения (ML/DL) к обработке естественного языка (NLP).

Конспекты к избранным статьям, описание концепций и основ ML/DL, а также последние новости в этой области.

Контакт: @edwardnlp
Download Telegram
Заголовок: Тренируем маленькие модели на меньшем количестве данных и получаем лучше результаты чем большие модели.

Ожидание: сейчас расскажут новый метод или архитектуру

Реальность: файнтюним Т0 на 770М параметров на 80% данных и показываем лучше результаты чем few-shot на PaLM 🙈
Добавил новые заметки про самые интересные постеры в первый день ACL 2023. Это первая часть заметок за тот день, поскольку интересных публикаций было очень много, я решил их разделить на несколько частей.

#ACL2023 #заметки
Добавил новые заметки про самые интересные постеры в первый день ACL 2023. Это вторая часть заметок, где я разбираю новые архитектуры, методы оценки и новый фреймворк для интерпритации языковых моделей.

#ACL2023 #заметки
В интернете часто встречаются посты о том, что OpenAI со временем урезает возможности своих генерирующий систем.
Исследователи из Беркли и Стенфорда решили проверить как меняется поведение GPT-3.5 и GPT-4 с течением времени. Сравнивались результаты генерации в марте и июне.
Исследование показало, что не всё так однозначно, и в действительности в некоторых заданиях результаты ухудшились, однако в некоторых заданиях были и улучшения или результаты оказались примерно на том же уровне.

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

Так же рассмотрим некоторые функции активации и для чего необходима нелинейность в нейронных сетях.
Спустя некоторый перерыв, всё же продолжаю выкладывать заметки об ACL 2023. В данной статье привожу заметки о 2-ом дне.

Среди них вы найдёте:
* DarkBERT - новая модель, которая натренирована на страницах из даркнета.
* LENS - обучаемая метрика для оценки упрощения текста
* Несколько новых и интересных датасетов, а так же методов более эффективного использования больших языковых моделей (LLMs)

#ACL2023 #заметки
OpenAI - Продаём мечту (но без гарантий)

Недавно прогремела очередная новость от OpenAI. Они выпустят новую модель, которая будет принимать контекст в 128к токенов (±360 страниц текста). Не обошли стороной и вопрос мультимодальности (когда модель может принимать как текст, так и изображения, так и звук и так далее), тут тоже есть обновления, новые модели, расширены возможности API.
Можешь подумать: "Что ещё можно пожелать?" Наверное, чтоб было дешевле чем сейчас, а лучше вообще бесплатно. Конечно совсем бесплатно не получится, зато в 2-3 раза дешевле - запросто.

На этом моменте многие разработчики могут просто начать писать письмо своим начальникам с мольбой, чтобы их не увольняли (иначе искусственный интеллект их просто заменит), а хотя бы просто понизили зарплату и должность. (Или нет?)

Что на самом деле тебе, маленькому атланту или разработчику, даёт OpenAI? Тебе дают мечту о том, как сколотить свой новый стартап из ...подручных материалов, ну или писать код в 2-3-5-20-100 раз быстрее и эффективнее (будто качество твоей работы ограничивается лишь скоростью твоей печати, ну или скоростью придумывания переменных).

Во время выступления, было показано демо, о том, как на практике можно применять их решения, на примере приложения для туризма. Такое приложение смогло сгенерировать идеи для путешествий, отметить места которые стоит посетить на карте, обработать файл с авиабилетом, в котором распознала даты путешествия и далее нашла место для ночлега на эти даты в Airbnb. Нет, ну это же просто БОМБА! На этом месте Booking и TripAdvisor должны были просто выйти из чата зала и позакрывать свои шарашкины конторы сайты. Но, к сожалению, этого не случится, ведь пользоваться таким приложением невозможно. Так как оно работает только на ...localhost (то есть только на компьютере разработчика).

Но почему бы OpenAI не выпустить такое приложение? У них же прямой доступ к своим моделям, причём раньше всех остальных (а можно и вообще никому доступ к своей базе и коду не давать, как все и делают)! Всё дело в том, что продавать модели - это и есть их бизнес. Если бы эти модели были бы действительно настолько хорошими, как они нам заявляют и показывают на демо, то никто бы их никогда и не увидел. Зачем упускать такое преимущество над конкурентами и давать им тоже шанс, когда задача сводится просто к тому, чтобы просто заработать деньги?

Поскольку они просто продают тебе доступ к их моделям, они никакой ответственности не несут перед тобой и твоими клиентами, если их модель выдаст неверный результат. Что и указано в их terms of use. Их услуги предоставляются "как есть" (THE SERVICES ARE PROVIDED “AS IS.”). Максимум, на что ты можешь расчитывать, это что тебе вернут затраты на запросы в их API (если цена не превышает $100).

В итоге, их бизнес напоминает просто казино. Где у тебя есть шанс выиграть, но с большей вероятностью, ты просто вылетишь в трубу, не забыв оплатить счёт за использование моделей от OpenAI.
Отвечая на комментарий к предыдущему посту: «Это к вопросу о том, зачем продавать нефть коли бензин продавать выгоднее)))»

Не совсем. Во-первых, нефть и бензин - это сырьё и продукт низкого передела, а их модели - это высокотехнологичный продукт. Во-вторых, это уже больше политика. Например, бензин экспортировать мы вам запретим, а нефть, из которой мы потом сами сделаем что нам нужно, мы разрешим.

Речь о том, что OpenAI продают тебе идею, которая в реальности малоприменима. Вот так, напрямую с клиентом, генеративная модель работать не будет. Нужно либо выставлять жёсткие ограничения на вывод модели, либо в ручную это контролировать, либо тоже заявлять, что мы за результаты ответственности не несём.

Тривиальный пример. Представим себе ситуацию, в твоём приложении пишут запрос: «хочу посетить Санкт-Петербург, штат Флорида. Куда мне сходить?» А тебе отвечают: «в Эрмитаж и Зимний дворец.» В данном случае, ответственность за неправильный результат небольшая. А что если задача дать рекомендацию по лечению или профилактике заболевания?

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

Google DeepMind провели интересное исследование о том как извлекать тренировочные данные из LLM.

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

Принцип атаки очень простой. Нужно отправить запрос на повторение какого-нибудь слова, например, "poem". Через какое-то количество токенов модель начинает галлюцинировать и выдавать то, что знает.

Эта атака всё ещё работает с ChatGPT. Например мне удалось вытащить какую-то переписку с персональными данными и идентификаторами, а так же куски сайтов и кода.
Выпустил небольшую библиотеку, где на чистом питоне обучается нейронная сеть. Буквально в 100 строчек кода реализован алгоритм градиентного спуска и обратного распространения ошибки, что позволяет глубже изучить механизм обучения нейронных сетей.
Есть так же код для анимации обучения на движке manim.
Недавно посетил конференцию ACL 2024 в Бангкоке. В этой серии постов я поделюсь своей подборкой статей с конференции. Основной упор постараюсь сделать на практически применимые статьи и идеи.

Подборку открывают статьи про LLM:
* Prompt Engineering a Prompt Engineer
* Controlled Text Generation for Black-box Language Models via Score-based Progressive Editor
* Referral Augmentation for Zero-Shot Information Retrieval
* On LLMs-Driven Synthetic Data Generation, Curation, and Evaluation: A Survey
* Synergistic Interplay between Search and Large Language Models for Information Retrieval
* Is Table Retrieval a Solved Problem? Exploring Join-Aware Multi-Table Retrieval
* Learning Relational Decomposition of Queries for Question Answering from Tables
* VerifiNER: Verification-augmented NER via Knowledge-grounded Reasoning with Large Language Models
* VerifiNER: Verification-augmented NER via Knowledge-grounded Reasoning with Large Language Models
* Choose Your Transformer: Improved Transferability Estimation of Transformer Models on Classification Tasks
* Uncovering Limitations of Large Language Models in Information Seeking from Tables

Читать далее

#ACL2024
Это вторая часть подборки статей с #ACL2024. Эта часть тоже преимущественно посвящена LLM:
* When Phrases Meet Probabilities: Enabling Open Relation Extraction with Cooperating Large Language Models
* KnowCoder: Coding Structured Knowledge into LLMs for Universal Information Extraction
* Balanced Data Sampling for Language Model Training with Clustering
* Label-Efficient Model Selection for Text Generation
* Multi-Task Inference: Can Large Language Models Follow Multiple Instructions at Once?
* Unlocking Efficiency in Large Language Model Inference: A Comprehensive Survey of Speculative Decoding
* EasyInstruct: An Easy-to-use Instruction Processing Framework for Large Language Models
* Cache & Distil: Optimising API Calls to Large Language Models
* Unsupervised Multilingual Dense Retrieval via Generative Pseudo Labeling
* Anonymization Through Substitution: Words vs Sentences

Читать далее
О новом "думающем" GPT o1-preview
Современный человеческий мозг обладает логическим мышлением. То есть способностью применять определённые законы мышления, вне зависимости от контекста.
С философской точки зрения, существует формальная логика, та, которая иногда изучается в школе и чаще используется в жизни и элементарной математике, и диалектическая логика, та, которая изучает процессы и применяется уже в высшей математике. Наиболее яркие представители этих школ - Аристотель и Гегель.

Посмотрим как с логическим мышлением обстоит у GPT o1-preview.
Как логически ответить "что первично: яйцо или курица?" В данном случае, яйцо и курица являются разными понятиями. Нужно просто посмотреть что появилось раньше. С таким же успехом, можно было бы ответить на вопрос "что первично: стул или футбольный мяч?" GPT рассуждает не так. Он не сравнивает понятия между собой, а сразу принимает их как разные. В первом случае так и есть, поэтому ответ правильный. Можно сказать, что GPT просто угадал.
Во втором случае, у нас уже "куриное яйцо и курица". GPT опять не делает сравнения, а предлагает нам несколько вариантов (оба не верны), да ещё и устанавливает истину авторитетом "большинства учёных".
Как следовало бы ответить на этот вопрос с логической точки зрения? Рассмотрим два понятия: курица и куриное яйцо. Какое их отношение? Куриное яйцо - это этап развития курицы. Иначе говоря, куриное яйцо - это курица в становлении. Эти два понятия - суть одного явления.

Резюмируя: новый GPT является более новой и улучшенной версией того же семейства GPT, который не оперирует логикой, а делает предсказания наиболее вероятного следующего токена, на основании полученного контекста и тренировочных данных. Вероятно, главные отличия от предыдущих версий, это то, что во время обучения от модели требовали больше рассуждать и за более правдоподобные рассуждения, модель больше поощрялась. Скорее всего, модель будет чуть реже допускать логические ошибки и галлюцинировать, но это никак не устранит проблему.
Следующая подборка статей с #ACL2024 посвящена задачам извлечения информации:
* Hypergraph based Understanding for Document Semantic Entity Recognition
* Description Boosting for Zero-Shot Entity and Relation Classification
* Argument-Aware Approach To Event Linking
* AlignRE: An Encoding and Semantic Alignment Approach for Zero-Shot Relation Extraction
* Statements: Universal Information Extraction from Tables with Large Language Models for ESG KPIs

Читать далее
Последняя подборка статей с #ACL2024. На этот раз коснёмся демо статей и инструментов, которые будут полезны в исследовании и разработке.
* GenGO: ACL Paper Explorer with Semantic Features
* LM Transparency Tool: Interactive Tool for Analyzing Transformer Language Models
* NLP-KG: A System for Exploratory Search of Scientific Literature in Natural Language Processing
* DataDreamer: A Tool for Synthetic Data Generation and Reproducible LLM Workflows
* LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models
* LLMBox: A Comprehensive Library for Large Language Models

Читать далее