OLMoE (Open Mixture-of-Experts Language Models) - это метод создания языковых моделей, использующий разреженно активированные смеси экспертов (Mixture-of-Experts, MoE). Следуя этому методу была создана и опубликована базовая модель и 2 ее вариации:
Модель предварительно обучалась на 5,1 трлн. токенов с 7 млрд. общих параметров, из которых только 1,3 млрд. активируются для каждого входного токена.
Такая конфигурация дает аналогичную стоимость инференса, как при использовании моделей с 1 млрд. параметров (напр. TinyLlama 1B), но требует больше VRAM для хранения 7 млрд общих параметров.
В создании OLMoE-1B-7B была использована архитектура decoder-only трансформера, в которой feedforward network была заменена на Mixture-of-Experts модуль, состоящий из набора меньших feedforward network, собранных в массивы k-экспертов. Ими управляет маршрутизатор (его роль выполняет обученный линейный слой), определяющий, какие из k-экспертов будут активированы для каждого входящего токена. Инференсы k-экспертов умножаются на вероятности маршрутизатора и потом суммируются, образуя общий инференс MoE-модуля.
Претрейн модели выполнялся на очищенных от дубликатов датасетах DCLM и Dolma 1.7 (Github, Wikipedia, наборы научных статей). На следующем этапе инструктивного дообучения были добавлены данные по программированию и математике, чтобы сбалансировать эти области знаний для повышения точности MoE.
Проведенные после обучения эксперименты показывают, что OLMoE-модели обучаются примерно в 2 раза быстрее, чем обычные LLM с эквивалентными активными параметрами.
# NOTE! Install the `transformers` & `torch` libraries first
from transformers import OlmoeForCausalLM, AutoTokenizer
import torch
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
# Load different ckpts via passing e.g. `revision=step10000-tokens41B`
# also check allenai/OLMoE-1B-7B-0924-SFT & allenai/OLMoE-1B-7B-0924-Instruct
model = OlmoeForCausalLM.from_pretrained("allenai/OLMoE-1B-7B-0924").to(DEVICE)
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMoE-1B-7B-0924")
inputs = tokenizer("Bitcoin is", return_tensors="pt")
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
out = model.generate(**inputs, max_length=64)
print(tokenizer.decode(out[0]))
# > # Bitcoin is a digital currency that is created and held electronically.
#No one controls it. Bitcoins aren’t printed, like dollars or euros – they’re produced by people and businesses running computers all around the world, using software that solves mathematical
@ai_machinelearning_big_data
#AI #ML #LLM #MoE
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥4⚡1
XVERSE-MoE-A36 - мультиязычная LLM, разработанная с нуля Shenzhen Yuanxiang Technology. Модель основана на архитектуре Mixture-of-Experts, имеет 255 млрд. параметров, из которых 36 млрд. активируются в процессе работы.
XVERSE-MoE-A36B предназначена для решения задач: генерация текста, машинный перевод, анализ тональности, реферирование текста, вопрос-ответ, применение в интеллектуальных системах обслуживания клиентов, образовательных помощниках и анализе данных.
Модель использует структуру decoder-only Transformer, где слой Feedforward Network разделен на специализированные экспертные слои.
Отличительной особенностью модели является использование набора общих и не общих экспертов, каждый из которых составляет 1/4 от размера стандартного FFN. Общие эксперты всегда активны во время вычислений, а не общие - активируются выборочно маршрутизатором.
Для обучения модели использовался массив данных на 40 языках, включая китайский, английский, русский и испанский. В процессе обучения использовалась стратегия динамического изменения набора данных с изменением скорости обучения (LR).
Тестирование модели проводилось на наборах данных MMLU, C-Eval, CMMLU, RACE-M, PIQA, GSM8K, MATH, MBPP и HumanEval.
Результаты показывают, что XVERSE-MoE-A36B превосходит другие модели MoE с открытым исходным кодом по производительности и эффективности.
⚠️ Важно! Несмотря на название, модель - 255B, ее физический размер ~ 512 Gb
# Clone repository:
git clone https://github.com/xverse-ai/XVERSE-MoE-A36B
cd XVERSE-MoE-A36B
# Install the dependencies:
pip install -r requirements.txt
# Inference with Transformers:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("xverse/XVERSE-MoE-A36B")
model = AutoModelForCausalLM.from_pretrained("xverse/XVERSE-MoE-A36B", trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
model = model.eval()
inputs = tokenizer('Attraction of Omsk: The Forbidden City', return_tensors='pt').input_ids
inputs = inputs.cuda()
generated_ids = model.generate(inputs, max_new_tokens=70, eos_token_id=tokenizer.eos_token_id, repetition_penalty=1.1)
print(tokenizer.batch_decode(generated_ids, skip_special_tokens=True))
# Inference with WebUI:
python chat_demo.py --port='port' --model_path='/path/to/model/' --tokenizer_path='/path/to/tokenizer/'
@ai_machinelearning_big_data
#AI #ML #MoE #LLM #XVERSE
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍9🔥5🥱2
Модель GRIN (GRadient-INformed) MoE разработана Microsoft для использования в ИИ-системах и приложениях, где требуется мышление (задачи программирования, математики и логики), в сценариях с ограниченным временем ожидания и средах с ограниченным объемом ресурсов.
Модель построена на архитектуре Transformer. Отличительной чертой GRIN MoE является использование слоя Mixture-of-Experts (MoE) в качестве слоя feedforward.
Модель оперирует 16 экспертами и использует top-2 маршрутизацию, активируя два эксперта для каждого токена на каждом слое. GRIN MoE использует алгоритм SparseMixer-v2 для оценки градиента и обучения маршрутизации экспертов.
В отличие от традиционных MoE моделей, GRIN MoE не использует распараллеливание по экспертам и отбрасывание токенов во время обучения.
Технические характеристики модели:
Для обучения GRIN MoE использовался набор данных из 4 трллн. токенов, состоящий из общедоступных документов, образовательных материалов, кода и синтетических данных для обучения математике, программированию и рассуждению.
Тестирование GRIN MoE проводилось на наборе данных Phi-3 в популярных бенчмарках. Модель показала высокие результаты, превзойдя 7B модель и сравнявшись по метрикам с 14B моделью.
GRIN MoE набрала 79.4 балла в тесте MMLU, 74.4 - в HumanEval и 58.9 - в MATH. Несмотря на высокую эффективность в задачах, связанных с кодом и математикой, GRIN MoE показала более низкие результаты в задачах обработки языка, что может быть связано с особенностями обучающего корпуса.
@ai_machinelearning_big_data
#AI #ML #LLM #MoE #Microsoft
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤12🔥4
Molmo (Multimodal Open Language Model) - это семейство VLM, разработанных в Институте искусственного интеллекта Аллена, для решения задач обработки изображений и текста - создание подробных описаний изображений и выполнение комплексных визуальных операций, например:
Обучение семейства выполнялось в 2 этапа: предварительное обучение на наборе данных PixMo-Cap для генерации аннотаций к изображениям и этап SFT с использованием комбинации академических наборов данных и наборов данных PixMo (PixMo-AskModelAnything, PixMo-Points, PixMo-CapQA, PixMo-Docs, PixMo-Clocks).
Тестирование модели проводилось на 11 бенчмарках: AI2D, ChartQA, VQA v2, DocVQA, InfographicVQA, TextVQA, RealWorldQA, MMMU, Math-Vista, CountBenchQA и Flickr Count.
Результаты показали, что Molmo, особенно модель Molmo-72B, демонстрирует производительность на уровне GPT-4o, превосходя Gemini 1.5 Pro, Flash и Claude 3.5 Sonnet.
⚠️ Модели Molmo могут испытывать трудности с прозрачными изображениями. В качестве решения, разработчики рекомендуют добавлять белый или темный фон к изображениям перед передачей их в модель, например, с помощью библиотеки PIL.
@ai_machinelearning_big_data
#AI #ML #Molmo #MoE #MMLM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30❤6🔥6