Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Kapitsa.AI
Как развивались языковые модели. Схема

В посте про языковые модели мы, конечно же, упомянули не все — объяснили только базовые принципы. Вот — схема для более глубокого погружения в тему LLM. Навигация такая:

— Модели на основе трасформаторов показаны не-серым цветом — голубым отмечены декодеры, розовым — энкодеры, зеленым — энкодеры-декодеры;

— Временная шкала показывает год их выпуска;

— Модели с открытым исходным кодом — квадраты с цветовой заливкой, с закрытым исходным кодом — пустые;

— Столбчатая диаграмма в правом нижем углу показывает количество моделей по компаниям.

Источник: Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Как работает квантованная версия (4 бита) LLaMa3.1-8b

Для тех, кто хочет разобраться в LLAma 3.1-8b глубже — короткий обзор структуры.

Эта языковая модель работает по принципам трансформерных архитектур, о которых мы рассказывали ранее (тут — про языковое моделирование, а тут — про LLaMa). В LLaMA используется декодер-ориентированная трансформерная модель для предсказания следующего токена в последовательности. Что еще:

Механизм внимания (Self-attention): он позволяет модели эффективно обрабатывать длинные последовательности текста, фокусируясь на самых релевантных частях входного текста при предсказании следующего слова.

Распределённые представления (Embeddings): Каждый входной токен (слово или символ) преобразуется в векторное представление через embedding-слой. Эти векторы содержат информацию о контексте и значении слова, что помогает модели строить более точные прогнозы.

Число параметров модели — это показатель её мощности. Параметры — это веса, которые оптимизируются в процессе обучения. Чем больше параметров, тем более сложные паттерны и зависимости может выявить модель, что улучшает её способность генерировать контекстно точные и осмысленные тексты. В нашем случае — это 8 млрд параметров.

Обучение модели

LLaMA 3.1-8B обучена на огромных корпусах текстов, включающих разнообразные источники информации — книги, статьи, форумы, веб-страницы и т. д. Обучение происходит на основе задачи предсказания следующего слова в предложении (Language Modeling). Модель обрабатывает текст последовательно и на каждом шаге предсказывает следующий токен, используя контекст предыдущих слов.

Используется параллельное обучение — для оптимизации производительности: веса перераспределены между несколькими видеокартами. Как в примере на картинке — 16 видеокарт разбиты на две группы по каждому из четырех признаков. Задействовано четыре вида параллелизма:

— Тензорный параллелизм (разбивает веса слоя нейросети на порции для разных устройств)
— Параллелизм пайплайна (вертикальная разбивка модели по слоям)
— Параллелизм контекста (разделение входа на сегменты для уменьшения перегрузки памяти для длинных последовательностей)
— Параллелизм данных (разные обучающие примеры обсчитываются на разных устройствах)

Трёхстадийное пред-обучение

Претрейн – последовательно увеличивается длина последовательности (4к, 8к) и размер батча (части датасета, проходящего через нейросеть), в обучающие данные добавляется больше мультиязычных данных, математические данные используются с увеличенной частотой, добавляются последние данные из поисковых запросов, частота низкокачественных данных снижается.

Претрейн на длинном контексте – до 128к токенов. Последовательно увеличивается длина контекста. Обучение с фиксированной длиной происходит до тех пор, пока не восстанавливается качество на коротких контекстах и модель способна решить задачу «поиска иголки в стоге сена» для заданного контекста.

Запекание\отжиг (annealing) – последовательное уменьшение learning rate для длинного контекста с последующим усреднением нескольких моделей.

Постобучение

В процессе пост-обучения происходит шесть итераций. На каждой итерации выбираются аннотированные данные (из тройки Отвергнутый Ответ – Принятый Ответ – Улучшенный ответ), на которых обучается Учитель (Reward Model). Затем происходит SFT (Supervised Finetuning – донастройка модели с учителем). После этого производится DPO (Direct Preference Optimization). И наконец, полученные таким образом модели с разных итераций взвешиваются между собой.

#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
This media is not supported in your browser
VIEW IN TELEGRAM
Градиентный спуск (ч. 1)

😔 Всем привет! Сегодня я бы хотел вам рассказать про то, что такое градиентный спуск и вообще для чего он применяется, в каких направлениях и для чего. Градиент отражает направление скорейшего возрастания функции

💳 Начнем с линейной ргерессии, для тех кто не помнит / не знает, уравнение прямой задается yi = wi * xi, где yi - значение целевого признака. Это конечно замечательно, но истинные значения (если мы живем в непрерывном пространстве будут всегда различаться от предсказанных (какая-то ошибка возникнет).

🍦 Решение задачи - минимизировать ошибки, возникаемые при изучении модели. Но как мы это можем сделать, если у нас xi, yi заданы? Правильно, повлиять как-то на веса признаков. Для линейной регрессии обычно используется такая функция потерь, как MSE, которую мы хотим минимизировать. Градиентный спуск позволяет найти веса модели, при которых ошибка будет минимальна (осторожно, модель может найти локальный / глобальный минимум). Мы хотим понять, при каких значения wi наше значение ошибки будет минимально. Почему берется MSE, могу рассказать в следующих частях

👌 У градиентного спуска есть 3 параметра:
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.

в общем виде:

start_point = i
iterations = n
learning_rate = t

for _ in range(iterations):
start_point -= t * gradient(x)

start_point, func(start_point)

Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.

Игрушечный пример с градиентным спуском.


import numpy as np

def loss_function(x):
return x ** 2 * np.sin(x)

def gradient(x):
return 2 * x * np.sin(x) + x**2 * np.cos(x)

def gradient_descent(starting_point, learning_rate, num_iterations):
x = starting_point
for _ in range(num_iterations):
x -= learning_rate * gradient(x)
return x

starting_point = 3 # Начальная точка, выбирается случайно
learning_rate = 0.01 # Скорость обучения
num_iterations = 100 # Количество итераций

minimum = gradient_descent(starting_point, learning_rate, num_iterations)

В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).

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

Где можно почитать подробней?

Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова

Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kali Novskaya
🌸FAANG собеседования. Behavioral 🌸
#собеседования

За последние года два я  пособесилась в десяток  компаний с сильным ML, и где-то ещё десяток не очень AI-native.

🌸Мой опыт
Прошла до конца в Meta, Snapchat, Spotify, HuggingFace,  несколько стартапов.
Этот опыт был для меня совсем не лёгким, часто изнуряющим, но позволил мне лучше понять свои силы и научил объективно сравнивать себя с другими и закрывать пробелы. Делюсь с вами советами!

Собеседовалась и на менеджера, и на IC, поэтому за это время у меня были все секции:
ML fundamentals, Leetcode, ML Coding, ML home assignment, ML system design, просто System Design, Research Philisophy (что? да!), Research presentation, Leadership, Teamwork, People management, Project management.

Поскольку про тех собесы написано уже очень много, сегодня сосредоточусь на последних — они называются behavioral секции.

🌸Основы Behave
Чтобы пройти хорошо бихейв-интервью, нужно хорошо себя вести. Нет, не нужно! Нужно продемонстрировать поведение, соответствующее уровню вакансии (L4, L5, L6...) и принципам компании.

Leadership principles:
Google
Meta
Amazon
(гуглите про свою компанию)

Сделать это все нужно, рассказывая истории в формате STAR — Situation, Task, Action, Results. Хороший пост на тему

🌸Как рассказывать про свой опыт?
Западному айти-рынку 20+ лет, все стандартизовано.
Вам надо иметь в запасе штук 6-8 историй из своего опыта.
— Истории должны покрывать следующие вопросы: 1-2 явных истории успеха, 1-2 явных истории неудачи, 1 случай где вы спасли всех, 1 случай где вы разрулили конфликт, пара примеров, как вы растили коллег вокруг себя. Для менеджеров дополнительно — как вы повышали и увольняли людей, как вы поддерживали команду, ваш стиль управления.

— Истории должны показывать ваш уровень, не надо брать истории, когда вы были мидлом, если вы собеситесь на сеньора. Максимальный импакт, масштаб, метрики.
— Хорошая привычка в карьере вообще — отслеживать импакт своей работы и знать его. То же справедливо и для резюме, по резюме должно быть видно, что и насколько было исправлено вами.
— Придумывать истории не надо. В каждой истории нужно показать, что вы можете доносить мысль и навигировать на разных уровнях дискуссии — и быстро объяснить, в чем суть, и в то же время в деталях прокомментировать технический челлендж. Человек, который не может — либо не участвовал в проекте на самом деле, либо врёт, либо плохой менеджер.

🟣Хороший пример, как это делать, и вообще youtube канал

🟣Хороший канал с примерами STAR — self made millenial

🟣В какой-то момент мне нужна была поддержка и хотелось мок-интервью, я брала их здесь и мне помогло. Брать карьерные консультации — осмысленно!

🌸Джентльменский набор
Итого, перед собеседованием у вас должно получиться в результате:
0) понимание уровня позиции и принципов компании.
1) Отточенное интро про себя из 3 предложений. Что вы делаете, пара ключевых тем и проектов, и почему вы хотите и подходите на эту позицию.
2) STAR-шпаргалка из ваших историй, которую вы за час до интервью перечитаете, чтобы не забыть детали. Истории вы на лету будете немного менять, чтобы подсветить конкретные принципы компании.
3) Список из 3 статей, которые вы хорошо помните и готовы поболтать про них. Желательно посмотреть накануне, кто вас будет собеседовать, и попробовать найти пересечение вашего опыта и опыта интервьюера.

🌸Вуаля! Вы восхитительны

В след раз поговорим про офферы и про реферралы
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Варим МЛ
Всем привет! Меня не было больше месяца - сгонял в длинный отпуск, потом заболел, выздоровел и опять заболел... Но времени я зря не терял и прочёл несколько книжек по LLM. Сегодня хочу кратко про них рассказать, а заодно упомянуть и другие материалы, по которым я осваивал большие языковые модельки. Наверняка, пропустил что-то крутое, для меня это достаточно новый мир, так что делитесь своими ссылками в комментариях.

Рад снова быть с вами 😀

#Жека #machinelearning #llm
Forwarded from Варим МЛ Chat (Жека)
звучит как будто нужно начанковать книжку на какие-то разумные куски и прикрутить RAG. таких туториалов много. в гугле много таких, вот первый попавшийся - https://medium.com/@anurag.tech/smart-q-a-on-any-book-with-llm-c1641580c04f
Forwarded from VF | Science
Suno Инструкция.pdf
334.8 KB
Для активности с генерацией музыки мы конечно попробуем Suno & Udio)

Мы собрали самое важное для работы с нейронками в этой инструкции.

P. S. Достаточно качественные треки будут играть на афтепати!
Forwarded from Start Career in DS
📚Deep Learning: теоретический справочник по базовым концепциям

🔥Предыдущий пост в виде справочника по Machine Learning обрадовал нас вашей реакцией, и поэтому хотим сделать аналогичную подборку для изучения Deep Learning.

1️⃣ Введение в Deep Learning:
- Знакомство с полносвязанными нейронными сетями на Яндекс Учебнике
- Лекция от Нейчева Радослава по «Введению в нейронные сети»
- Поверхностное погружение в глубинное обучение
- Русский перевод «Что же такое нейронная сеть» от 3Blue1Brown на YouTube
- Как обучаются нейронные сети или про метод обратного распространения ошибки
- Видео на YouTube про градиентный спуск в нейронных сетях

2️⃣ Функции активации:
- Статья на Хабре про самые распространенные функции активации и как выбрать подходящую для вашей задачи
- Статья с разбором основных функций активаций
- Видео-обзор на YouTube про функции активации нейронных сетей с практикой

3️⃣ Оптимизаторы в нейронных сетях:
- Принципы работы оптимизаторов - объяснение на пальцах
- Методы оптимизации в Deep Learning от Яндекс Учебника
- Наиболее распространенные методы оптимизации с математическим объяснением для более продвинутых
- Optimizers for Neural Networks на Medium

4️⃣ Регуляризация глубоких нейронных сетей:
- Про инициализацию весов в нейронных сетях и виды регуляризации на Яндекс Учебнике
- Dropout - как метод решения проблемы переобучения нейронных сетей
- Что такое Weight Decay - простой объяснение на LinkedIn
- Огромная презентация с подробным объяснением методов регуляризации в нейронных сетях

5️⃣ Нормализация в нейронных сетях:

- Про все виды нормализации в нейронных сетях на Medium
- Что такое Batch Normalization
- Доступное объяснение нормализации в нейронных сетях на русском
- RMSNorm на GitHub

📌 Что ещё:
- Ответы на интересные вопросы нашего квиза по Deep Learning
- С этих постов можно начать изучение LLM - тут, тут и тут
- Пост про ТОП-вопросов из собеседований по NLP
- Самый популярный фреймворк для любой работы с нейронными сетями PyTorch и статья на Хабре о его возможностях
- Бесплатный курс видео-лекций по Deep Learning от Сергея Балакирева на YouTube
- Курс с лекциями от преподавателей МФТИ, начиная с Введения в Deep Learning и заканчивая более продвинутыми темами
- Немного практики для новичков
- Краткий курс по нейронным сетям в виде большой статьи на Хабре
- Книга с теорией + практика в Jupyter-ноутбуках: Understanding Deep Learning

Ставьте ❤️ и 🔥 если ждете подобные справочники и материалы для изучения Computer Vision и NLP!
Делитесь своими ресурсами в комментариях!
До встречи👋