Forwarded from Machinelearning
🔥 Memory pinning для ускорения обучения моделей
Если вы регулярно используете GPU для обучения моделей, то существует довольно простая техника, которая часто используется для ускорения обучения моделей.
Рассмотрим стандартный цикл обучения модели в PyTorch (См Картинку 1)
В этом коде:
- Строка 5 передает данные в GPU из CPU.
- Все выполняется на GPU после передачи данных, то есть в строках 7-15.
💡 Это означает, что когда работает GPU, CPU простаивает, а когда работает CPU, GPU простаивает, наглядно(См Картинку 2)
⚡️ Но вот что мы можем сделать, чтобы оптимизировать:
- Когда модель обучается на 1-м батче, CPU может передать 2-й батч на GPU.
- Таким образом, GPU не придется ждать следующего батча данных, как только он завершит обработку существующего батча.
👉 Иными словами, график использования ресурсов будет выглядеть примерно так (См Картинку 3)
💡 В то время, когда CPU будет простаивать, GPU (который является фактическим ускорителем для обучения модели) гарантированно будет иметь данные для работы.
Формально этот процесс известен как memory pinning, и он используется для ускорения передачи данных от CPU к GPU, делая процесс обучения асинхронным.
Это позволяет нам готовить следующий обучающий набор параллельно с обучением модели на текущих данных.
👉 Включить эту функцию в PyTorch довольно просто. Во-первых, при определении объекта
Далее, на этапе передачи данных в шаге обучения укажите
⚡️ Готово!
Вот как работает ускорение на примере набора данных MNIST в обучении простой нейронной сети (См Картинку 6)
- Без memory pinning обучение модели на 5 эпохах занимает около 43 секунд:
- а с использованием memory pinning та же модель обучается менее чем за 10 (!!!) секунд 🔥(См Картинку 7)
📌 Важные особенности использования memory pinning:
- если несколько тензоров будут выделены в "привязанную" память, это приведет к резервированию значительной части оперативной памяти.
- когда набор данных относительно мал, memory pinning имеет незначительный эффект, поскольку передача данных от CPU к GPU все равно не занимает столько времени (См Картинку 7)
📌 Полная версия
@ai_machinelearning_big_data
Если вы регулярно используете GPU для обучения моделей, то существует довольно простая техника, которая часто используется для ускорения обучения моделей.
...изменив всего две строки кода.
Рассмотрим стандартный цикл обучения модели в PyTorch (См Картинку 1)
В этом коде:
- Строка 5 передает данные в GPU из CPU.
- Все выполняется на GPU после передачи данных, то есть в строках 7-15.
💡 Это означает, что когда работает GPU, CPU простаивает, а когда работает CPU, GPU простаивает, наглядно(См Картинку 2)
⚡️ Но вот что мы можем сделать, чтобы оптимизировать:
- Когда модель обучается на 1-м батче, CPU может передать 2-й батч на GPU.
- Таким образом, GPU не придется ждать следующего батча данных, как только он завершит обработку существующего батча.
👉 Иными словами, график использования ресурсов будет выглядеть примерно так (См Картинку 3)
💡 В то время, когда CPU будет простаивать, GPU (который является фактическим ускорителем для обучения модели) гарантированно будет иметь данные для работы.
Формально этот процесс известен как memory pinning, и он используется для ускорения передачи данных от CPU к GPU, делая процесс обучения асинхронным.
Это позволяет нам готовить следующий обучающий набор параллельно с обучением модели на текущих данных.
👉 Включить эту функцию в PyTorch довольно просто. Во-первых, при определении объекта
DataLoader
надо установить pin_memory=True
и указать num_workers
(См Картинку 4)Далее, на этапе передачи данных в шаге обучения укажите
non_blocking=True
(См Картинку 5)⚡️ Готово!
Вот как работает ускорение на примере набора данных MNIST в обучении простой нейронной сети (См Картинку 6)
- Без memory pinning обучение модели на 5 эпохах занимает около 43 секунд:
- а с использованием memory pinning та же модель обучается менее чем за 10 (!!!) секунд 🔥(См Картинку 7)
📌 Важные особенности использования memory pinning:
- если несколько тензоров будут выделены в "привязанную" память, это приведет к резервированию значительной части оперативной памяти.
Поэтому, всякий раз, когда используете memory pinning - отслеживайте потребление RAM!
- когда набор данных относительно мал, memory pinning имеет незначительный эффект, поскольку передача данных от CPU к GPU все равно не занимает столько времени (См Картинку 7)
📌 Полная версия
@ai_machinelearning_big_data
🔥18👍7❤5🌭2
Здесь можно найти запросы под всевозможные сферы: от IT до бизнес - советов.
▪️Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤7🔥2🌭2
Компания Ultralytics представила YOLO11, новейшую версию своей знаменитой модели искусственного интеллекта для компьютерного зрения.
YOLO11 поддерживает широкий спектр задач CV: обнаружение объектов, сегментацию экземпляров, классификацию изображений, оценку позы, обнаружение ориентированных объектов (OBB) и отслеживание объектов. Модель получила улучшенное извлечение признаков.
YOLO11m достигает более высокого балла средней средней точности (mAP) в наборе данных COCO, используя на 22% меньше параметров, чем YOLOv8m.
YOLO11 вскоре будет доступна через Ultralytics HUB и пакет Ultralytics Python.
ultralytics.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤27🔥11👍3🌭2🕊1
NLPAug предлагает различные методы для расширения датасетов, улучшения обобщения и производительности моделей при работе с данными.
Эта библиотека позволяет генерировать новый текст на основе существующих данных, заменяя некоторые слова синонимами, в том числе используя принцип косинусного сходства в векторных представлениях, аналогичный тому, который используется в моделях word2vec или GloVe.
Кроме того, NLPAug может заменить слова на основе контекста с помощью моделей трансформеров, таких как BERT-сети, а также выполнять двойной перевод текста на другой язык и обратно.
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥2🥱1🌭1
Включает поддержку пользовательских моделей и различных языков, а также интеграцию с почтовыми сервисами и мультимедийными приложениями.
▪️Github
@bigdatai
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥6❤5🌭1
В ней используется объектно-ориентированное программирование (ООП) для взаимодействия с LLM моделями, что упрощает создание и управление запросами через объекты и типы
Простота использования и мощный функционал делают библиотеку полезным инструментом для разработки ИИ-агентов и работы с большими языковыми моделями
▪️Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6🔥3
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥1
Zamba2-Instruct - семейство инструктивных моделей на архитектуре Mamba2+Transformers для NLP-задач.
В семействе 2 модели:
Высокая производительность семейства по сравнению с релевантными Transformers-only моделями достигается за счет конкатенации эмбедингов модели с входными данными для блока внимания и использование LoRA projection matrices к общему MLP-слою.
Модели файнтюнились (SFT+DPO) на instruct-ориентированных наборах данных (ultrachat_200k, Infinity-Instruct, ultrafeedback_binarized, orca_dpo_pairs и OpenHermesPreferences).
Тесты Zamba2-Instruct продемонстрировали внушительную скорость генерации текста и эффективное использование памяти, обходя MT-bench более крупные по количеству параметров модели/ (Zamba2-Instruct-2.7B превзошла Mistral-7B-Instruct-v0.1, а Zamba2-Instruct-1.2B - Gemma2-2B-Instruct)
⚠️ Для запуска на СPU укажите
use_mamba_kernels=False
при загрузке модели с помощью AutoModelForCausalLM.from_pretrained
.# Clone repo
git clone https://github.com/Zyphra/transformers_zamba2.git
cd transformers_zamba2
# Install the repository & accelerate:
pip install -e .
pip install accelerate
# Inference:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("Zyphra/Zamba2-2.7B-instruct")
model = AutoModelForCausalLM.from_pretrained("Zyphra/Zamba2-2.7B-instruct", device_map="cuda", torch_dtype=torch.bfloat16)
user_turn_1 = "user_prompt1."
assistant_turn_1 = "assistant_prompt."
user_turn_2 = "user_prompt2."
sample = [{'role': 'user', 'content': user_turn_1}, {'role': 'assistant', 'content': assistant_turn_1}, {'role': 'user', 'content': user_turn_2}]
chat_sample = tokenizer.apply_chat_template(sample, tokenize=False)
input_ids = tokenizer(chat_sample, return_tensors='pt', add_special_tokens=False).to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=150, return_dict_in_generate=False, output_scores=False, use_cache=True, num_beams=1, do_sample=False)
print((tokenizer.decode(outputs[0])))
@data_analysis_ml
#AI #ML #SLM #Zamba2 #Instruct
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥2
🎓 Deep Gen-AI
✅ Полный курс от Стэнфорда, посвященный алгоритмам и методам обучения Генеративных моделей, включая вариационные автоэнкодеры, генерирующие состязательные сети, авторегрессионные модели и многое другое.
📌 Курс
@data_analysis_ml
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤8👍5
Forwarded from Machinelearning
BrainChip анонсировала Akida Pico — нейроморфный процессор с энергопотреблением всего 1 мВт, предназначенный для устройств с ограниченным питанием: смартфоны, носимая электроника и умные устройства.
Akida Pico имитирует работу мозга, обмениваясь электрическими импульсами (спайками) вместо традиционных логических цепей. Чип включает нейронный процессор, блоки обработки событий, SRAM для хранения весов модели, блоки прямого доступа к памяти и дополнительные периферийные устройства. В некоторых случаях он может работать автономно.
BrainChip разработала архитектуры моделей ИИ, оптимизированные для минимального энергопотребления, снижая потребление энергии в пять раз по сравнению с традиционными моделями на обычных микропроцессорах. Akida Pico может использоваться для голосовой активации, шумоподавления в наушниках, AR-очках и слуховых аппаратах.
spectrum.ieee.org
Gemini Live запускает поддержку генеративного ИИ-помощника на более чем 40 языках. Инструмент позволит общаться на двух языках на одном устройстве, и в разработке находится дальнейшее расширение одновременно поддерживаемых языков.
Многоязычная поддержка также будет работать с интеграцией Gemini для других приложений и сервисов Google: Google Календарь, Задачи, Keep и Утилиты.
Установить предпочитаемые языки в приложении Android: «Настройки» > «Google Ассистент» > «Языки» и выберите первый предпочитаемый язык. Для второго языка есть опция «Добавить язык».
О планах по выпуску Gemini Live для iPhone не сообщалось.
engadget.com
В MIT CSAIL разработали метод Message-Passing Monte Carlo (MPMC), основанный на GNN, которые позволяют точкам самооптимизироваться и достигать лучшей равномерности для решения сложных многомерных задач. GNN преобразуют случайные выборки, минимизируя L2-расхождение, что позволяет MPMC создавать наборы точек, подходящие для конкретных приложений.
В вычислительных финансах MPMC может улучшить результаты в задачах ценообразования опционов и оценки рисков, а в робототехнике - помочь в планировании пути и движении для оптимальной навигации роботов.
news.mit.edu
CharacterAi решила отказаться от разработки больших языковых моделей и сосредоточиться на улучшении потребительской платформы. Это решение было принято после сделки с Google, в рамках которой интернет-гигант приобрел единовременную лицензию на технологию CharacterAi.
Рост затрат на обучение моделей усложнил конкуренцию с Google, Microsoft, OpenAI и Amazon. Компания решила сконцентрироваться на создании масштабируемой платформы чат-ботов, аудитория которой, по оценкам, насчитывает более 20 миллионов активных пользователей в месяц.
Несмотря на уход основателей и сокращение амбиций в области разработки моделей, компания с оптимизмом смотрит в будущее благодаря финансированию от Google.
btimesonline.com
BM Research и NASA совместно разработали Prithvi WxC – модель глубокого обучения для прогнозирования погоды и моделирования климата с 2,3 млрд. параметров и 160 переменными из набора данных MERRA-2.
Модель использует трансформерную архитектуру для обработки долгосрочных зависимостей, комбинацию локальных и глобальных механизмов внимания для обработки больших объемов данных и эффективного захвата пространственно-временных закономерностей.
Prithvi WxC обучается с помощью комбинированной функции цели, которая объединяет задачи маскированной реконструкции и прогнозирования, что повышает ее универсальность в различных приложениях, включая прогнозирование с авторегрессионным развертыванием и оценку экстремальных погодных явлений.
Arxiv | Модель на HF | Проект на Github
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥1
🚀🔥 LLaVA-Critic - первая крупномасштабная мультимодальная модель с открытым исходным кодом, предназначенная для оценки эффективности модели в различных мультимодальных задачах!
Так же представлен LLaVA-Critic-113k, высококачественный набор данных, который позволяет получать количественные оценки работы Llm.
Подробнее:
- 📰Статья: https://arxiv.org/abs/2410.02712
- 🪐Страница проекта: https://llava-vl.github.io/blog/2024-10-03-llava-critic/
- 📦Набор данных: https://huggingface.co/datasets/lmms-lab/llava-critic-113k
- 🤗Модели: https://huggingface.co/collections/lmms-lab/llava-critic-66fe3ef8c6e586d8435b4af8
@data_analysis_ml
Так же представлен LLaVA-Critic-113k, высококачественный набор данных, который позволяет получать количественные оценки работы Llm.
Подробнее:
- 📰Статья: https://arxiv.org/abs/2410.02712
- 🪐Страница проекта: https://llava-vl.github.io/blog/2024-10-03-llava-critic/
- 📦Набор данных: https://huggingface.co/datasets/lmms-lab/llava-critic-113k
- 🤗Модели: https://huggingface.co/collections/lmms-lab/llava-critic-66fe3ef8c6e586d8435b4af8
@data_analysis_ml
👍12❤4🔥2
https://www.youtube.com/watch?v=3mcs_MDiLwY
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Fireducks: Ускорь Pandas в 20 раз, изменив всего одну строчку кода!!!
💡 Pandas часто бывает медленным из-за ограничений, таких как одноядерные вычисления и громоздкие DataFrame-ы. Но есть простое решение: FireDucks — библиотека с таким же API, как у Pandas, которая решает эти проблемы и значительно ускоряет обработку данных.…
🔥21👍3❤2
🚀 Nvidia представляет EdgeRunner!
Этот метод позволяет создавать высококачественные 3D-сетки с количеством граней до 4000 при разрешении 512 на основе облаков точек.
https://research.nvidia.com/labs/dir/edgerunner/
@data_analysis_ml
Этот метод позволяет создавать высококачественные 3D-сетки с количеством граней до 4000 при разрешении 512 на основе облаков точек.
https://research.nvidia.com/labs/dir/edgerunner/
@data_analysis_ml
👍8❤3🔥1🤣1
♠️ Бесплатный курс от MIT: Теория и Аналитика покера
В этом курсе от MIT подробно рассматривается теория покера, математика покера и применение покерной аналитики в управлении инвестициями и трейдинге.
▪️Материалы Курса
@data_analysis_ml
В этом курсе от MIT подробно рассматривается теория покера, математика покера и применение покерной аналитики в управлении инвестициями и трейдинге.
▪️Материалы Курса
@data_analysis_ml
❤20👍11🔥6❤🔥2