Введение
Команда исследователей из Харбинского технологического института, Шэньчжэнь, представила Uni-MoE-2.0-Omni — полностью открытую омнимодальную большую модель, которая продвигает линейку Uni-MoE в сторону языково-центричного мультимодального рассуждения.
Система обучена с нуля на плотной основе Qwen2.5-7B и расширена до архитектуры Mixture of Experts с динамической маршрутизацией мощностей, прогрессивным обучением под наблюдением и подкреплением, а также примерно на 75 миллиардах токенов тщательно подобранных мультимодальных данных. Она обрабатывает текст, изображения, аудио и видео для понимания и может генерировать изображения, текст и речь.
Архитектура
* Языковое ядро: в основе Uni-MoE-2.0-Omni лежит трансформер в стиле Qwen2.5-7B, который служит языковым центром.
* Объединённый кодировщик речи: вокруг этого центра команда исследователей присоединяет унифицированный кодировщик речи, который отображает различные аудиоданные (включая звуки окружающей среды, речь и музыку) в общее пространство представлений.
* Предварительно обученные визуальные кодировщики: с визуальной стороны предварительно обученные визуальные кодировщики обрабатывают изображения и видеокадры, а затем передают последовательности токенов в тот же трансформер.
* Генерация: для генерации используется контекстно-зависимый модуль TTS на основе MoE и диффузионный трансформер, учитывающий задачи.
Обучение
* Кроссмодальный претренинг: сначала используется языково-центричный кроссмодальный претренинг на парных корпусах изображений и текста, аудио и текста.
* Прогрессивное обучение под наблюдением: затем активируются модально-специфичные эксперты, сгруппированные по категориям аудио, зрения и текста.
* Балансировка данных: на этапе балансировки данных фаза отжига переустанавливает веса смеси наборов данных по модальностям и задачам и обучается с более низкой скоростью обучения.
Результаты
Uni-MoE-2.0-Omni оценивается на 85 мультимодальных бенчмарках, которые охватывают изображения, текст, видео, аудио и кросс- или тримодальное рассуждение. Модель превосходит Qwen2.5-Omni, которая обучена примерно на 1,2 триллионах токенов, более чем в 50 из 76 общих бенчмарков.
Focal Loss vs Binary Cross-Entropy: практическое руководство по несбалансированной классификации
Введение
Binary cross-entropy (BCE) — это функция потерь по умолчанию для бинарной классификации, но она плохо работает на несбалансированных наборах данных. Причина в том, что BCE одинаково взвешивает ошибки обоих классов, даже когда один класс чрезвычайно редок.
Проблема
Представьте себе две предсказания: образец из класса меньшинства с истинной меткой 1, предсказанной как 0,3, и образец из класса большинства с истинной меткой 0, предсказанной как 0,7. Оба дают одинаковое значение BCE: −log(0,3). Но должны ли эти две ошибки рассматриваться одинаково? В несбалансированном наборе данных — определённо нет, ошибка на образце из класса меньшинства гораздо более значима.
Решение
Именно здесь на помощь приходит Focal Loss. Она уменьшает вклад простых, уверенных предсказаний и усиливает влияние сложных примеров из класса меньшинства. В результате модель меньше фокусируется на подавляюще простом классе большинства и больше на закономерностях, которые действительно важны.
Установка зависимостей
«`
pip install numpy pandas matplotlib scikit-learn torch
«`
Создание несбалансированного набора данных
Мы создаём синтетический бинарный набор данных для классификации с соотношением 99:1 с помощью make_classification. Это гарантирует, что почти все образцы принадлежат к классу большинства, что делает его идеальной настройкой для демонстрации того, почему BCE испытывает трудности и как Focal Loss помогает.
«`
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.modelselection import traintest_split
import torch
import torch.nn as nn
import torch.optim as optim
Generate imbalanced dataset
X, y = make_classification(
n_samples=6000,
n_features=2,
n_redundant=0,
nclustersper_class=1,
weights=[0.99, 0.01],
class_sep=1.5,
random_state=42
)
Xtrain, Xtest, ytrain, ytest = traintestsplit(
X, y, testsize=0.3, randomstate=42
)
Xtrain = torch.tensor(Xtrain, dtype=torch.float32)
ytrain = torch.tensor(ytrain, dtype=torch.float32).unsqueeze(1)
Xtest = torch.tensor(Xtest, dtype=torch.float32)
ytest = torch.tensor(ytest, dtype=torch.float32).unsqueeze(1)
«`
Создание нейронной сети
Мы определяем простую нейронную сеть с двумя скрытыми слоями, чтобы эксперимент был лёгким и сосредоточенным на функциях потерь. Эта небольшая архитектура достаточна для изучения границы принятия решений в нашем двумерном наборе данных, чётко подчёркивая различия между BCE и Focal Loss.
«`
class SimpleNN(nn.Module):
def init(self):
super().init()
self.layers = nn.Sequential(
nn.Linear(2, 16),
nn.ReLU(),
nn.Linear(16, 8),
nn.ReLU(),
nn.Linear(8, 1),
nn.Sigmoid()
)
def forward(self, x):
return self.layers(x)
«`
Реализация Focal Loss
Этот класс реализует функцию Focal Loss, которая модифицирует бинарную перекрёстную энтропию, снижая вес простых примеров и сосредотачивая обучение на сложных, неправильно классифицированных примерах.
«`
class FocalLoss(nn.Module):
def init(self, alpha=0.25, gamma=2):
super().init()
self.alpha = alpha
self.gamma = gamma
def forward(self, preds, targets):
eps = 1e-7
preds = torch.clamp(preds, eps, 1 — eps)
pt = torch.where(targets == 1, preds, 1 — preds)
loss = -self.alpha (1 — pt) self.gamma torch.log(pt)
return loss.mean()
«`
Обучение модели
Мы определяем простой цикл обучения, который оптимизирует модель, используя выбранную функцию потерь, и оценивает точность на тестовом наборе. Затем мы обучаем две идентичные нейронные сети — одну со стандартной потерей BCE, а другую с Focal Loss — что позволяет нам напрямую сравнивать, как каждая функция потерь работает на одном и том же несбалансированном наборе данных.
«`
def train(model, loss_fn, lr=0.01, epochs=30):
opt = optim.Adam(model.parameters(), lr=lr)
for _ in range(epochs):
preds = model(X_train)
loss = lossfn(preds, ytrain)
opt.zero_grad()
loss.backward()
opt.step()
with torch.no_grad():
testpreds = model(Xtest)
testacc = ((testpreds > 0.5).float() == y_test).float().mean().item()
return testacc, testpreds.squeeze().detach().numpy()
Models
model_bce = SimpleNN()
model_focal = SimpleNN()
accbce, predsbce = train(model_bce, nn.BCELoss())
accfocal, predsfocal = train(model_focal, FocalLoss(alpha=0.25, gamma=2))
print(«Test Accuracy (BCE):», acc_bce)
print(«Test Accuracy (Focal Loss):», acc_focal)
«`
Google DeepMind’s WeatherNext 2 использует функциональные генеративные сети для 8-кратного ускорения вероятностных прогнозов погоды
Введение
Исследователи из Google DeepMind представили WeatherNext 2 — систему прогнозирования погоды на основе искусственного интеллекта, которая теперь используется для улучшенных прогнозов в Google Search, Gemini, Pixel Weather и Google Maps Platform’s Weather API.
Ключевые выводы
* Функциональная генеративная сеть (FGN): WeatherNext 2 построена на основе функциональной генеративной сети — ансамбля графических трансформаторов, который прогнозирует полные 15-дневные глобальные траектории на сетке 0,25° с шагом в 6 часов, моделируя 6 атмосферных переменных на 13 уровнях давления плюс 6 поверхностных переменных.
* Явное моделирование эпистемической и алеаторной неопределённости: система сочетает 4 независимо обученных семени FGN для эпистемической неопределённости с общим 32-мерным шумом на входе, который возмущает слои нормализации сети для алеаторной неопределённости.
* Обучение на маргиналах, улучшение совместной структуры: FGN обучается только на маргиналах по местоположению с использованием справедливой CRPS, но всё равно улучшает совместную пространственную и межпеременную структуру по сравнению с предыдущей моделью WeatherNext Gen на основе диффузии.
* Последовательные приросты точности по сравнению с GenCast и WeatherNext Gen: WeatherNext 2 достигает лучшего CRPS, чем предыдущая модель на основе GenCast, в 99,9% комбинаций переменных, уровней и времени опережения, со средними улучшениями CRPS около 6,5%.
1. Какие ключевые архитектурные особенности и методы обучения используются в модели Uni-MoE-2.0-Omni для обработки мультимодальных данных?
В модели Uni-MoE-2.0-Omni используется несколько ключевых архитектурных особенностей и методов обучения для обработки мультимодальных данных. В основе лежит трансформер в стиле Qwen2.5-7B, который служит языковым центром. Вокруг него присоединяется унифицированный кодировщик речи, который отображает различные аудиоданные в общее пространство представлений. С визуальной стороны предварительно обученные визуальные кодировщики обрабатывают изображения и видеокадры, а затем передают последовательности токенов в тот же трансформер. Для генерации используется контекстно-зависимый модуль TTS на основе MoE и диффузионный трансформер, учитывающий задачи. Обучение включает кроссмодальный претренинг, прогрессивное обучение под наблюдением и балансировку данных.
2. Какие преимущества предлагает использование Focal Loss по сравнению с Binary Cross-Entropy в задачах бинарной классификации с несбалансированными наборами данных?
Использование Focal Loss в задачах бинарной классификации с несбалансированными наборами данных предлагает несколько преимуществ по сравнению с Binary Cross-Entropy. Focal Loss уменьшает вклад простых, уверенных предсказаний и усиливает влияние сложных примеров из класса меньшинства. Это позволяет модели меньше фокусироваться на подавляюще простом классе большинства и больше на закономерностях, которые действительно важны. В результате модель демонстрирует улучшенную производительность на несбалансированных наборах данных.
3. Какие методы и подходы используются в WeatherNext 2 для улучшения точности прогнозов погоды по сравнению с предыдущими моделями?
WeatherNext 2 использует несколько методов и подходов для улучшения точности прогнозов погоды по сравнению с предыдущими моделями. Система построена на основе функциональной генеративной сети (FGN) — ансамбля графических трансформаторов, который прогнозирует полные 15-дневные глобальные траектории на сетке 0,25° с шагом в 6 часов. FGN обучается только на маргиналах по местоположению с использованием справедливой CRPS, но всё равно улучшает совместную пространственную и межпеременную структуру по сравнению с предыдущей моделью WeatherNext Gen на основе диффузии. Кроме того, система сочетает 4 независимо обученных семени FGN для эпистемической неопределённости с общим 32-мерным шумом на входе, который возмущает слои нормализации сети для алеаторной неопределённости.