Machine learning Interview
24.4K subscribers
1.03K photos
67 videos
12 files
692 links
Разбираем вопросы с собеседований по Machine Learning, Data Science, Deep Learning и Нейронным сетям, Python.

Вопросы - @notxxx1


@itchannels_telegram -🔥лучшие it каналы

РКН: clck.ru/3FmwRz
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Лаконичная шпаргалка по методам энкодинга категориальных признаков

@machinelearning_interview
Forwarded from Machinelearning
🌟 Малые языковые модели: обзор, измерения и выводы.

Исследование, проведенное Университетом Кембриджа, Пекинским университетом почты и телекоммуникаций о малых языковых моделях, опубликованных в открытом доступе в период с 2022-2024 гг.

Авторами были проанализированы 59 современных открытых SLM, их архитектуру, используемые наборы данных для обучения и алгоритмы. Целевая группа состояла из моделей с 100M–5B параметрами, построенных на архитектуре декодера-трансформера, которые подходят для устройств от носимых гаджетов до смартфонов и планшетов.

Выводы, к которым пришли авторы:

Архитектура SLM

🟢Наблюдается переход от Multi-Head Attention (MHA) к Group-Query Attention (GQA) для повышения эффективности.
🟢Gated FFN с активацией SiLU и промежуточным соотношением 2-8 становится все более популярным выбором.
🟢Большинство моделей используют RMS-нормализацию и размер словаря более 50 тыс. токенов.
🟢Инновации в архитектуре пока ограничены.

Наборы данных для обучения

🟢The Pile был наиболее часто используемым набором данных, но в последнее время выбор стал более разнообразным, все чаще используются RefinedWeb и RedPajama.
🟢Современные SLM обучаются на значительно большем количестве токенов (обычно >1.5T), чем предполагает закон Chinchilla, что указывает на их «переобучение» для повышения производительности на устройствах с ограниченными ресурсами.

Алгоритмы обучения

🟠Чаще используются новые методы: Maximal Update Parameterization (µP), Knowledge Distillation и Two Stage Pre-training Strategy для повышения стабильности обучения и эффективности переноса знаний.

Возможности SLM

🟠За период с 2022 по 2024 год SLM показали значительное повышение производительности в разных задачах обработки естественного языка, превзойдя серию LLM LLaMA-7B.
🟠Семейство моделей Phi имеет самые высокие показатели точности, соперничая с LLaMA 3.1 8B.
🟠SLM, обученные на общедоступных датасетах, сокращают разрыв с моделями, обученными на закрытых данных, в задачах, связанных со здравым смыслом.

Контекстное обучение

🟢Большинство SLM обладают способностью к контекстному обучению, хотя она зависит от задачи.
🟢Более крупные модели из SLM более восприимчивы к контекстному обучению.

Latency и потребление VRAM

🟢Помимо размера модели, на задержку влияет и архитектура: количество слоев, ширина FFN, размер словаря и совместное использование параметров.
🟢Влияние архитектуры модели на скорость вывода более значительно на этапе предварительной обработки (prefill), чем на этапе декодирования.
🟢Использование памяти во время выполнения обычно линейно коррелирует с количеством параметров модели.

Влияние квантования и оборудования

🟠Преимущества квантования на этапе декодирования больше, чем на этапе предварительной обработки.
🟠Графические процессоры демонстрируют еще большее преимущество перед центральными процессорами на этапе предварительной обработки.


🟡Arxiv
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #SLM #Paper #Arxiv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Яндекс добавил в Нейро новую мультимодальную VLM для поиска по картинкам

В своей статье на Хабре ML-разработчик Яндекса детально описывает, что представляют собой визуально-текстовые мультимодальные модели. Он аскрывает их архитектуру, состоящую из LLM, картиночного энкодера и адаптера, а также процесс обучения.

Кроме того, автор рассказывает про эволюцию Нейро: от предыдущей LLM-версии к новой VLM. Это позволяет понять, как изменился процесс обработки запросов и почему новая версия эффективнее.

Интересный инсайд: Яндекс использует instruct-based pretrain с несколькими миллионами семплов и активно работает над interleaved pretrain для дальнейшего улучшения качества модели.

▪️Статья на Хабре

@machinelearning_interview
🖥 Model Memory Utility — полезная утилита, которая помогает оценить использование памяти различными моделями машинного обучения

🌟 Инструмент предоставляет визуализацию и информацию о том, как загружаются и обрабатываются модели на CPU и GPU, что помогает разработчикам оптимизировать память и производительность своих моделей. Это полезно для выбора наиболее подходящих конфигураций для обучения и развертывания моделей

🔗 Ссылка: *клик*

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Большой плейлист Deep Learning лекций от MIT!

🌟 72 видео

🔗 Ссылка: *клик*

#курс #deeplearning #machinelearning #bigdata #ai

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
teorija_statistiki-shpargalki.pdf
240 KB
⚡️ Шпаргалка по статистике

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

Также приведено практическое занятие по статистическому наблюдению на примере производственной компании.

@machinelearning_interview
Forwarded from Machinelearning
🌟 LeLaN: метод обучения политики навигации для роботов с помощью видео из реальной среды.

LeLaN - метод, использующий модели Owl-ViT2 и OpenVLA для маркировки видеоданных из реальной среды с помощью языковых инструкций для навигации по объектам.

Политика навигации по объектам, обученная на этих данных, показала высокие результаты в задаче навигации по незнакомым объектам в разных условиях: внутри и снаружи помещений.

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

В процессе обучения политика навигации оптимизируется по трем направлениям:

🟢достижение целевого объекта;

🟢предотвращение столкновений;

🟢плавность скорости.

После обучения LeLaN была проведена серия экспериментов из более 1000 испытаний, проведенных в реальных условиях.

Результаты показывают, что LeLaN превосходит существующие методы zero-shot политик навигации по способности ориентироваться в различных средах, надежности в условиях нечетких команд, способности следовать за пешеходами и навыке избегать столкновений.

Код, предлагаемый в репозитории LeLaN, разбит на две части: обучение модели на собственных данных и локальное развертывание с предварительно обученными моделями LeLaN на роботизированной платформе с NVIDIA Jetson Orin.

▶️Локальная установка и запуск обучения:

# Clone repository:
git clone https://github.com/NHirose/learning-language-navigation.git

# Set up the conda env:
conda env create -f train/train_lelan.yml
conda activate lelan

# Install the lelan packages:
pip install -e train/

# Install the `diffusion_policy` package:
git clone git@github.com:real-stanford/diffusion_policy.git
pip install -e diffusion_policy/

# Training lelan w/o collision avoidance
python train.py -c ./config/lelan.yaml


📌Лицензирование : MIT License.


🟡Страница проекта
🟡Набор моделей
🟡Датасет
🟡Демо видео на Youtube
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #Navigation #Robotics
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ Hugging Face выпустил OpenAI-Gradio.

OpenAI-Gradio предоставляет возможность создать веб-приложения с ИИ, используя всего несколько строк кода. Для запуска необходимо установить пакет из pip и указать OpenAI API KEY.

OpenAI-Gradio позволяет настраивать внешний вид и функциональность веб-приложений, используя возможности Gradio. Например, можно создавать пользовательские компоненты ввода и вывода, добавлять описания и примеры использования, а также интегрировать LLM в более крупные веб-интерфейсы Gradio.

OpenAI-Gradio поддерживает GPT-4-turbo, GPT-3.5-turbo и GPT-3.5-turbo-16k.

🖥 github

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
🌟 OpenMathInstruct-2: математический датасет и набор моделей от NVIDIA.

OpenMathInstruct-2 состоит из 14 млн. пар "вопрос-решение" (примерно 600 тысяч уникальных вопросов) и является одним из крупнейших общедоступных наборов данных для обучения LLM в математике.

Набор данных создан на основе Llama-3.1-405B-Instruct путем синтеза решений для существующих вопросов из наборов данных MATH и GSM8K и генерации новых задач и решений.

Результаты абляционных экспериментов, которые проводились для поиска оптимальных параметров синтеза, показали, что:

🟢формат решения имеет значение, причем чрезмерно подробные решения негативно сказываются на производительности модели;

🟢данные, сгенерированные сильной моделью-учителем, превосходят по качеству данные, полученные от более слабой модели;

🟢процесс обучения устойчив к наличию до 20% решений низкого качества;

🟢разнообразие вопросов имеет решающее значение для масштабирования данных.

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

OpenMathInstruct-2 показал высокую эффективность при обучении LLM.

Модель Llama3.1-8B-Base, обученная на OpenMathInstruct-2, превзошла Llama3.1-8B-Instruct на 15,9% по точности на наборе данных MATH, а OpenMath2-Llama3.1-70B обошла Llama3.1-70B-Instruct на 3,9%.

Датасет выпущен в 3-х размерностях: полный набор (примерно 7.5 GB) и уменьшенные версии train_1M (640 Mb), train_2M (1.3 Gb) и train_5M (3.1 Gb).

▶️ Модели, дообученные на этом датасете:

🟠OpenMath2-Llama3.1-70B, в формате Nemo, квантованные версии GGUF (от 3-bit до 8-bit);

🟠OpenMath2-Llama3.1-8B, в формате Nemo, квантованные версии GGUF (от 2-bit до 8-bit).


📌Лицензирование датасета : CC-BY-4.0 License.

📌Лицензирование моделей: Llama 3.1 Community License.


🟡Набор моделей
🟡Arxiv
🟡Датасет


@ai_machinelearning_big_data

#AI #ML #LLM #MATH #NVIDIA #Dataset
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
🌟 Гайдбук по оценке больших языковых моделей от Hugging Face

Hugging Face выложила на Github руководство по оценке LLM.

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

Особое внимание уделяется тому, как избежать проблем с инференсом модели и сделать результаты одинаковыми. В руководстве есть советы о том, как сделать данные чистыми, как использовать шаблоны для общения с LLM и как анализировать неожиданные плохие результаты.

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

Более прикладными разделы: советы и рекомендации, устранение неполадок и разделы, посвященные дизайну.

▶️Оглавление:

🟢Автоматические бенчмарки
🟢Оценка человеком
🟢LLM-судья
🟢Устранение неполадок
🟢Базовые знания

📌 Планы на будущие гайды:

🟠Описание автоматических метрик;
🟠Какие основные моменты вы всегда должны учитывать при построении задачи;
🟠Зачем нужна оценка LLM;
🟠Почему сравнивать модели между собой - это сложно.

🖥Github

@ai_machinelearning_big_data

#AI #ML #LLM #Huggingface #Guide
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
⚡️ OpenAI Swarm: Экспериментальный фреймворк для оркестрации мультиагентных систем.

Swarm - это экспериментальный фреймворк, разработанный командой OpenAI Solutions, для создания, оркестрации и развертывания многоагентных систем. Фреймворк фокусируется на упрощении координации, запуска, контроля и тестирования агентов.

Основная цель Swarm - продемонстрировать паттерны, описанные в Orchestrating Agents: Handoffs & Routines cookbook.

Фреймворк построен на двух основных абстракциях: агентах (Agent) и передачах управления (handoffs):

Агент - это набор инструкций и функций, который может передавать выполнение другим агентам. Его можно использовать для описания конкретного рабочего процесса или шага (например, последовательность шагов, сложный поиск, одноэтапное преобразование данных и так далее).

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

▶️В репозитории собраны функциональные примеры Swarm:

🟢basic - простые примеры настройки, вызова функций, передача данных и контекстные переменные;

🟢traige agent - пример роя с агентом сортировки, который принимает пользовательские данные и решает, ответить ли на запрос напрямую или передать его агенту по продажам или возврату денег;

🟢weather agent - погодный агент с вызовом функций (запрос по городу и отправка на e-mail);

🟢airlines - мультиагентный пример обработки клиентских запросов в контексте авиакомпании (сортировка запросов, изменения рейсов, отмены бронирований и случаи потери багажа);

🟢support_bot - клиентский бот центра поддержки с несколькими инструментами;

🟢personal shopper - пример роя агентов персонального торгового агента, который может помогать совершать покупки и возвращать заказы;

⚠️ Swarm не использует API Assistants и полностью работает на API Chat Completions.

⚠️ Swarm не предназначен для промышленного использования и не имеет официальной поддержки.

▶️ Локальная установка и запуск:

# Install from PIP
pip install git+https://github.com/openai/swarm.git

# Usage
from swarm import Swarm, Agent
client = Swarm()

def transfer_to_agent_b():
return agent_b

agent_a = Agent(
name="Agent A",
instructions="You are a helpful agent.",
functions=[transfer_to_agent_b],
)

agent_b = Agent(
name="Agent B",
instructions="Only speak in Haikus.",
)

response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "I want to talk to agent B."}],
)

print(response.messages[-1]["content"])


📌Лицензирование : MIT License.


🖥GitHub
🟡Orchestrating Agents Cookbook


@ai_machinelearning_big_data

#AI #ML #Agents #OpenAI #Swarm
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM