Forwarded from Kapitsa.AI
Из всего разнообразия моделей Fine-Tune мы взяли нейросеть xtts_v2. Она поддерживает 16 языков, причём с русским справляется лучше многих конкурентов. Ещё она умеет понимать контекст и с опорой на него расставлять паузы, ударения и делать интонационные акценты. А если нейросеть дообучить на речи конкретного человека, то она сможет имитировать индивидуальные особенности его речи. Перед тем, как записать вторую дорожку, мы показали модели образцы речи Сергея Петровича и, кажется, она смогла отчасти скопировать его манеру.
Теперь мы планируем продолжать дообучение этой модели, чтобы добиться не только естественного звучания, но и большей похожести речи цифрового двойника на Сергея Капицу.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Теперь мы планируем продолжать дообучение этой модели, чтобы добиться не только естественного звучания, но и большей похожести речи цифрового двойника на Сергея Капицу.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Хочу свой 3D-аватар. Как его делать?
Предупреждаем сразу: создать свою 3D-модель — до сих пор не самая простая задача. Если вы хотите попробовать «оцифровать» себя самостоятельно, мы собрали несколько инструкций по MetaHuman Animator в Unreal Engine 5.2, которые могут помочь:
✏️ Руководство MetaHuman (EpicGames, английский)
🎥 Видео Unreal Engine: как создавать реалистичные цифровые модели в MetaHuman Creator, как использовать Mesh Data (английский)
✏️ Руководство по настройке и использованию MetaHuman (английский)
✏️ MetaHuman Creator. The starting point of the metaverse (Доклад на International Symposium on Computer Technology and Information Science (ISCTIS), 2021. Английский)
Изображение: dev.epicgames.com
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Предупреждаем сразу: создать свою 3D-модель — до сих пор не самая простая задача. Если вы хотите попробовать «оцифровать» себя самостоятельно, мы собрали несколько инструкций по MetaHuman Animator в Unreal Engine 5.2, которые могут помочь:
✏️ Руководство MetaHuman (EpicGames, английский)
🎥 Видео Unreal Engine: как создавать реалистичные цифровые модели в MetaHuman Creator, как использовать Mesh Data (английский)
✏️ Руководство по настройке и использованию MetaHuman (английский)
✏️ MetaHuman Creator. The starting point of the metaverse (Доклад на International Symposium on Computer Technology and Information Science (ISCTIS), 2021. Английский)
Изображение: dev.epicgames.com
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Как развивались языковые модели. Схема
В посте про языковые модели мы, конечно же, упомянули не все — объяснили только базовые принципы. Вот — схема для более глубокого погружения в тему LLM. Навигация такая:
— Модели на основе трасформаторов показаны не-серым цветом — голубым отмечены декодеры, розовым — энкодеры, зеленым — энкодеры-декодеры;
— Временная шкала показывает год их выпуска;
— Модели с открытым исходным кодом — квадраты с цветовой заливкой, с закрытым исходным кодом — пустые;
— Столбчатая диаграмма в правом нижем углу показывает количество моделей по компаниям.
Источник: Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
В посте про языковые модели мы, конечно же, упомянули не все — объяснили только базовые принципы. Вот — схема для более глубокого погружения в тему 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
Для тех, кто хочет разобраться в 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
Forwarded from Заскуль питона (Data Science)
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*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.
в общем виде:
Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.
Игрушечный пример с градиентным спуском.
В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).
Эта техника применяется в различных моделях машинного обучения, в нейронных сетях и др., о чем я более подробно хочу написать в следующих постах.
Где можно почитать подробней?
Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова
Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
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 статей, которые вы хорошо помните и готовы поболтать про них. Желательно посмотреть накануне, кто вас будет собеседовать, и попробовать найти пересечение вашего опыта и опыта интервьюера.
🌸Вуаля! Вы восхитительны
В след раз поговорим про офферы и про реферралы
#собеседования
За последние года два я пособесилась в десяток компаний с сильным 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
Чтобы пройти хорошо бихейв-интервью,
Leadership principles:
— Meta
— Amazon
(гуглите про свою компанию)
Сделать это все нужно, рассказывая истории в формате STAR — Situation, Task, Action, Results. Хороший пост на тему
🌸Как рассказывать про свой опыт?
Западному айти-рынку 20+ лет, все стандартизовано.
Вам надо иметь в запасе штук 6-8 историй из своего опыта.
— Истории должны покрывать следующие вопросы: 1-2 явных истории успеха, 1-2 явных истории неудачи, 1 случай где вы спасли всех, 1 случай где вы разрулили конфликт, пара примеров, как вы растили коллег вокруг себя. Для менеджеров дополнительно — как вы повышали и увольняли людей, как вы поддерживали команду, ваш стиль управления.
— Истории должны показывать ваш уровень, не надо брать истории, когда вы были мидлом, если вы собеситесь на сеньора. Максимальный импакт, масштаб, метрики.
— Хорошая привычка в карьере вообще — отслеживать импакт своей работы и знать его. То же справедливо и для резюме, по резюме должно быть видно, что и насколько было исправлено вами.
— Придумывать истории не надо. В каждой истории нужно показать, что вы можете доносить мысль и навигировать на разных уровнях дискуссии — и быстро объяснить, в чем суть, и в то же время в деталях прокомментировать технический челлендж. Человек, который не может — либо не участвовал в проекте на самом деле, либо врёт, либо плохой менеджер.
🌸Джентльменский набор
Итого, перед собеседованием у вас должно получиться в результате:
0) понимание уровня позиции и принципов компании.
1) Отточенное интро про себя из 3 предложений. Что вы делаете, пара ключевых тем и проектов, и почему вы хотите и подходите на эту позицию.
2) STAR-шпаргалка из ваших историй, которую вы за час до интервью перечитаете, чтобы не забыть детали. Истории вы на лету будете немного менять, чтобы подсветить конкретные принципы компании.
3) Список из 3 статей, которые вы хорошо помните и готовы поболтать про них. Желательно посмотреть накануне, кто вас будет собеседовать, и попробовать найти пересечение вашего опыта и опыта интервьюера.
🌸Вуаля! Вы восхитительны
В след раз поговорим про офферы и про реферралы
Please open Telegram to view this post
VIEW IN TELEGRAM
www.developing.dev
FAANG Career Ladder: Junior (L3) vs Mid-level (L4)
L3 and L4 engineers are the most similar on the IC ladder. The differences come from the stronger technical skills L4s are expected to have. This allows them to handle more scope with less guidance. Here’s how FAANG-like companies judge L3 vs L4 engineers.
Forwarded from Варим МЛ
Всем привет! Меня не было больше месяца - сгонял в длинный отпуск, потом заболел, выздоровел и опять заболел... Но времени я зря не терял и прочёл несколько книжек по LLM. Сегодня хочу кратко про них рассказать, а заодно упомянуть и другие материалы, по которым я осваивал большие языковые модельки. Наверняка, пропустил что-то крутое, для меня это достаточно новый мир, так что делитесь своими ссылками в комментариях.
Рад снова быть с вами 😀
#Жека #machinelearning #llm
Рад снова быть с вами 😀
#Жека #machinelearning #llm
Telegraph
Изучаю LLM
Раньше я следил за миром LLM больше из любопытства - почитывал ключевые и заинтересовавшие статейки, игрался со свежими модельками, читал срачи в Твиттере. Сейчас по работе понадобилось серьёзнее углубиться в эту пропасть, поэтому я как настоящий 32-летний…
Forwarded from Artem Ryblov
Материалы по LLM и трансформерам: https://github.com/Extremesarova/ds_resources?tab=readme-ov-file#large-language-models-llms--transformers
GitHub
GitHub - Extremesarova/ds_resources: Data Science Resources for interview preparation and learning
Data Science Resources for interview preparation and learning - Extremesarova/ds_resources
Forwarded from Варим МЛ Chat (Жека)
звучит как будто нужно начанковать книжку на какие-то разумные куски и прикрутить RAG. таких туториалов много. в гугле много таких, вот первый попавшийся - https://medium.com/@anurag.tech/smart-q-a-on-any-book-with-llm-c1641580c04f
Medium
Smart Q/A on any book with LLM
Overview
Forwarded from VF | Science
Suno Инструкция.pdf
334.8 KB
Для активности с генерацией музыки мы конечно попробуем Suno & Udio)
Мы собрали самое важное для работы с нейронками в этой инструкции.
P. S. Достаточно качественные треки будут играть на афтепати!
Мы собрали самое важное для работы с нейронками в этой инструкции.
P. S. Достаточно качественные треки будут играть на афтепати!