Машинное обучение digest
57 subscribers
1.69K photos
224 videos
922 links
Download Telegram
🌟 SmolTalk: синтетический англоязычный датасет для обучения LLM.

SmolTalk - это синтетический датасет, разработанный HuggingFace для обучения SmolTalk: новый синтетический набор данных для обучения больших языковых моделей LLM с учителем. Он состоит из 2 млн. строк и был использован для создания семейства моделей SmolLM2-Instruct. SmolTalk включает в себя как новые, так и существующие наборы данных.

Новые наборы данных:

🟢Smol-Magpie-Ultra (400 тыс. строк);
🟢Smol-constraints (36 тыс. строк);
🟢Smol-rewrite (50 тыс. строк);
🟢Smol-summarize (101 тыс. строк).

Существующие общедоступные наборы данных:

🟠OpenHermes2.5 (100 тыс. строк);
🟠MetaMathQA (50 тыс. строк);
🟠NuminaMath-CoT (1120 тыс. строк);
🟠Self-Oss-Starcoder2-Instruct (1120 тыс. строк);
🟠SystemChats2.0 (30 тыс. строк);
🟠LongAlign (примеры на английском языке с менее 16 тыс. токенов);
🟠Everyday-conversations (50 тыс. строк);
🟠APIGen-Function-Calling (80 тыс. строк);
🟠Explore-Instruct-Rewriting (30 тыс. строк).

SmolTalk сравнили недавно выпущенным набором данных Orca AgentInstruct 1M, обучив SmolLM2 на обоих наборах данных с использованием одинаковой конфигурации обучения.

Результаты показали, что SmolTalk показал значительные улучшения в производительности модели, особенно в задачах математики, программирования и следованию системным промптам. Наблюдались также значительные улучшения в масштабе 7B при обучении Mistral-7B на SmolTalk, особенно по показателям IFEval, BBH, GS8Mk и MATH.

▶️Загрузка датасета для трейна:

from datasets import load_dataset

ds = load_dataset("HuggingFaceTB/smoltalk", "all", split="train")
# to load the train split of a specific subset such as smol-magpie-ultra, you can do
ds = load_dataset("HuggingFaceTB/smoltalk", "smol-magpie-ultra", split="train")


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


🟡Датасет
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #HuggingFace #Dataset
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 🌟 OuteTTS-0.2-500M: обновление ТTS-модели с возможностью клонирования голоса.

OuteTTS-0.2-500M - улучшенная версия предыдущей модели синтеза речи, основанная на Qwen-2.5-0.5B и обученная на крупных и более качественных датасетах Emilia-Dataset, LibriTTS-R и Multilingual LibriSpeech. Контекст длиной 4096 токенов обеспечивает ~ 54 секунды генерации звука.

Новая версия получила изменения относительно версии 0.1:

🟢Повышенная точность. Модель лучше следует промптам и показывает более высокую согласованность выходных данных по сравнению с предыдущей версией;

🟢Естественная речь. V 0.2 генерирует более естественную и плавную синтезированную речь;

🟢Расширенный словарь. Модель обучена на более чем 5 млрд. токенов аудио;

🟢Клонирование голоса. Улучшены возможности клонирования голоса с большей вариативностью и точностью;

🟢Многоязычная поддержка. Добавлена экспериментальная поддержка китайского, японского и корейского языков.


⚠️ Для инференса GGUF-версии модели необходимо установить llama-cpp-python.


▶️ Установка и пример локального инференса:

# Install from PyPI
pip install outetts

# Interface Usage
import outetts

# Configure the model
model_config = outetts.HFModelConfig_v1(
model_path="OuteAI/OuteTTS-0.2-500M",
language="en", # Supported languages in v0.2: en, zh, ja, ko
)

# Initialize the interface
interface = outetts.InterfaceHF(model_version="0.2", cfg=model_config)

# Optional: Create a speaker profile (use a 10-15 second audio clip)
speaker = interface.create_speaker(
audio_path="path/to/audio/file",
transcript="Transcription of the audio file."
)

# Optional: Load speaker from default presets
interface.print_default_speakers()
speaker = interface.load_default_speaker(name="male_1")

output = interface.generate(
text="%Prompt Text%%.",
temperature=0.1,
repetition_penalty=1.1,
max_length=4096,

# Optional: Use a speaker profile
speaker=speaker,
)

# Save the synthesized speech to a file
output.save("output.wav")


📌Лицензирование кода : Apache 2.0 License.

📌Лицензирование модели: CC-BY-NC-4.0 License.


🟡Страница проекта
🟡Модель
🟡GGUF версия
🟡Demo
🟡Сообщество в Discord
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #TTS #OuteTTS
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Wavehax: нейросетевой вокодер без эффекта наложения частот.

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

Wavehax работает в частотно-временной области, оценивая комплексные спектрограммы и преобразуя их во временные сигналы с помощью кратковременного преобразования Фурье (STFT). Использование STFT позволяет получать более высокое качество синтезированной речи, особенно при экстраполяции на высокие значения основной частоты (F0).

Архитектура Wavehax построена на 2D CNN и специальном гармоническом априоре. Априор представляет собой комплексную спектрограмму, полученную из гармонического сигнала, который помогает модели генерировать высококачественные и согласованные по фазе гармонические компоненты.

В экспериментах, проведённых на корпусе японской речи JVS, Wavehax продемонстрировал качество речи, сравнимое с HiFi-GAN V1, при этом значительно сократив количество операций умножения-накопления и параметров модели.

Wavehax работает в 4 раза быстрее HiFi-GAN V1 на CPU и устойчив к экстраполяции на высокие значения F0, где эффект наложения частот становится особенно заметным.

▶️ Пример трейна и инференса с датасетом JVS:

# Set up the env
cd wavehax
pip install -e .

# Extract F0 and mel-spectrogram.
wavehax-extract-features audio=data/scp/jvs_all.scp

# Compute statistics of the training data
wavehax-compute-statistics feats=data/scp/train_no_dev.list stats=data/stats/train_no_dev.joblib

# Train the vocoder model
wavehax-train generator=wavehax discriminator=univnet train=wavehax train.train_max_steps=500000 data=jvs out_dir=exp/wavehax

# Inference via generate speech waveforms
wavehax-decode generator=wavehax data=jvs out_dir=exp/wavehax ckpt_steps=500000



🟡Страница проекта
🟡Arxiv
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #Vocoder #Wavehax
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Wavehax: нейросетевой вокодер без эффекта наложения частот.

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

Wavehax работает в частотно-временной области, оценивая комплексные спектрограммы и преобразуя их во временные сигналы с помощью кратковременного преобразования Фурье (STFT). Использование STFT позволяет получать более высокое качество синтезированной речи, особенно при экстраполяции на высокие значения основной частоты (F0).

Архитектура Wavehax построена на 2D CNN и специальном гармоническом априоре. Априор представляет собой комплексную спектрограмму, полученную из гармонического сигнала, который помогает модели генерировать высококачественные и согласованные по фазе гармонические компоненты.

В экспериментах, проведённых на корпусе японской речи JVS, Wavehax продемонстрировал качество речи, сравнимое с HiFi-GAN V1, при этом значительно сократив количество операций умножения-накопления и параметров модели.

Wavehax работает в 4 раза быстрее HiFi-GAN V1 на CPU и устойчив к экстраполяции на высокие значения F0, где эффект наложения частот становится особенно заметным.

▶️ Пример трейна и инференса с датасетом JVS:

# Set up the env
cd wavehax
pip install -e .

# Extract F0 and mel-spectrogram.
wavehax-extract-features audio=data/scp/jvs_all.scp

# Compute statistics of the training data
wavehax-compute-statistics feats=data/scp/train_no_dev.list stats=data/stats/train_no_dev.joblib

# Train the vocoder model
wavehax-train generator=wavehax discriminator=univnet train=wavehax train.train_max_steps=500000 data=jvs out_dir=exp/wavehax

# Inference via generate speech waveforms
wavehax-decode generator=wavehax data=jvs out_dir=exp/wavehax ckpt_steps=500000



🟡Страница проекта
🟡Arxiv
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #Vocoder #Wavehax
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 SmolVLM: набор компактных VLM от HuggingFace - Base, Synthetic и Instruct.

SmolVLM - серия компактных VLM с 2 млрд. параметров, отличающихся высокой эффективностью использования памяти и могут быть развернуты на локальных устройствах с ограниченными ресурсами.

Архитектура SmolVLM основана на Idefics3, с несколькими отличиями:

🟢В качестве языковой основы используется SmolLM2 1.7B вместо Llama 3.1 8B;

🟢Визуальная информация сжимается в 9 раз с помощью стратегии pixel shuffle, по сравнению с 4-кратным сжатием в Idefics3;

🟢Используются патчи размером 384x384 пикселей, а не 364x364;

🟢Визуальная основа модели изменена на shape-optimized SigLIP с патчами 384x384 пикселей и внутренними патчами 14x14;

🟢Контекстное окно SmolLM2 было расширено до 16 тыс. токенов для поддержки работы с несколькими изображениями.

Модель кодирует каждый патч изображения 384x384 в 81 токен, что позволяет ей обрабатывать тестовые запросы и изображения с использованием всего 1.2 тыс. токенов, в то время как Qwen2-VL использует 16 тыс. токенов. Это преимущество приводит к значительно более высокой скорости предварительной обработки (в 3,3-4,5 раза) и генерации (в 7,5-16 раз) по сравнению с Qwen2-VL.

Для самостоятельной тонкой настройки SmolVLM можно использовать transformers и TRL. Разработчиками представлен блокнот для файнтюна на VQAv2 с использованием LoRA, QLoRA или полной тонкой настройки. SmolVLM интегрирован с TRL для DPO через CLI.

⚠️ При batch sizes=4 и 8-битной загрузке QLoRA файнтюн потребляет около ~16 GB VRAM


📌Лицензирование:  Apache 2.0


🟡Статья на HF
🟡Набор моделей
🟡Demo


@ai_machinelearning_big_data

#AI #ML #SmallVLM #Huggingface
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 OLMo 2: Новое поколение полностью открытых языковых моделей.

OLMo 2 - серия открытых языковых моделей, созданная для развития науки о языковых моделях .

Модели OLMo 2 доступны в вариантах 7B и 13B параметров и обучены на массиве данных объемом 5 трлн. токенов. Они демонстрируют производительность, сопоставимую или превосходящую аналогичные по размеру полностью открытые модели на английских академических тестах.

Разработчики OLMo 2 уделили особое внимание стабильности обучения, используя методы RMSNorm, QK-Norm, Z-loss регуляризация и улучшенная инициализация.

Обучение проводилось в 2 этапа. На первом этапе модели обучались на датасете OLMo-Mix-1124 (3,9 трлн. токенов). На втором этапе использовался специально подобранный набор данных Dolmino-Mix-1124 (843 млрд. токенов), состоящий из веб-данных, материалов из академических источников, форумов вопросов и ответов, инструкций и математических задачников. Для объединения моделей, обученных на разных подмножествах данных, применялся метод "model souping".

Для оценки OLMo 2 была разработана система OLMES (Open Language Modeling Evaluation System) из 20 тестов для измерения способностей модели. OLMo 2 превзошел предыдущую версию OLMo 0424 по всем задачам и показал высокую эффективность по сравнению с другими открытыми моделями.

▶️Набор моделей OLMo 2:

🟢Базовые модели: OLMo-2-1124-7B и OLMo-2-1124-13B

🟠GGUF-версии: OLMo-2-1124-7B-GGUF и OLMo-2-1124-13B-GGUF

🟢Инструктивные версии: OLMo-2-1124-7B-Instruct и OLMo-2-1124-13B-Instruct

🟠DPO-версии: OLMo-2-1124-7B-DPO и OLMo-2-1124-13B-DPO

🟠SFT-версии: OLMo-2-1124-7B-SFT и OLMo-2-1124-13B-SFT

🟠Reward Model - версия OLMo-2-1124-7B-RM


▶️Пример инференса OLMo-2-7B c HF Transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-1124-7B")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-2-1124-7B")
message = ["Language modeling is "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
# optional verifying cuda
# inputs = {k: v.to('cuda') for k,v in inputs.items()}
# olmo = olmo.to('cuda')
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])


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


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


@ai_machinelearning_big_data

#AI #ML #LLM #OLMo2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 MatterSim: DL-модель для предсказания свойств материалов от Microsoft.

MatterSim - усовершенствованная модель глубокого обучения в области материаловедения, предназначенная для моделирования свойств материалов в широком диапазоне элементов, температур и давлений. Она способна точно предсказывать свойства материалов по всей периодической таблице в диапазоне температур от 0 до 5000K и давления до 1000GPa.

MatterSim использует архитектуру M3GNet, которая включает в себя двух- и трехчастичные взаимодействия. Модель обучается с использованием функции потерь, учитывающей энергию на атом, вектор силы на каждом атоме и напряжение.

Особенность MatterSim - способность к активному и непрерывному обучению. Модель способна оценивать неопределенность своих прогнозов и выбирать структуры для активного обучения, что полезно для повышения точности моделирования сложных систем. MatterSim может быть настроена для моделирования на произвольном уровне теории.

Модель демонстрирует высокую точность в предсказании свободной энергии Гиббса и 10-кратное улучшение точности по сравнению с универсальными силовыми полями, обученными на траекториях релаксации на наборах данных MPF-TP и Random-TP.

Модель может быть точно настроена для атомистических симуляций на желаемом уровне теории или для прямых предсказаний "структура-свойство"с сокращением требований к данным до 97%.

▶️В релизе представлены 2 версии модели:

🟢MatterSim-v1.0.0-1M - мини-версия модели, которая работает быстрее;
🟢MatterSim-v1.0.0-5M - увеличенная версия, которая является более точной.

⚠️ Рекомендуется устанавливать MatterSim с помощью mamba или micromamba, поскольку conda может работать значительно медленнее при разрешении зависимостей в environment.yaml.

▶️ Установка и использование на примере ASE калькулятора:

# Install package with the latest version
pip install git+https://github.com/microsoft/mattersim.git

# Create env via mamba
mamba env create -f environment.yaml
mamba activate mattersim
uv pip install -e .
python setup.py build_ext --inplace

# Minimal example using ASE calculator
import torch
from ase.build import bulk
from ase.units import GPa
from mattersim.forcefield import MatterSimCalculator

device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Running MatterSim on {device}")

si = bulk("Si", "diamond", a=5.43)
si.calc = MatterSimCalculator(device=device)
print(f"Energy (eV) = {si.get_potential_energy()}")
print(f"Energy per atom (eV/atom) = {si.get_potential_energy()/len(si)}")
print(f"Forces of first atom (eV/A) = {si.get_forces()[0]}")
print(f"Stress[0][0] (eV/A^3) = {si.get_stress(voigt=False)[0][0]}")
print(f"Stress[0][0] (GPa) = {si.get_stress(voigt=False)[0][0] / GPa}")


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


🟡Модель
🟡Документация
🟡Arxiv
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #DL #Mattersim #Microsoft
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Динамическое 4-битное квантование VLM с повышенной точностью от Unsolth .

Unsloth представил практический метод динамического 4-битного квантования VLM, который решает проблему снижения точности популярных алгоритмов квантования AWQ, Bitsandbytes, GPTQ и HQQ.

В эксперименте использовался Bitsandbytes в качестве основы для всех линейных слоев, но квантование определенных параметров было динамически отключено. Этот подход позволил добиться значительного повышения точности при использовании всего на 10% больше VRAM по сравнению с стандартным 4-битным квантованием Bitsandbytes.

В результате, этот метод позволяет сохранить точность модели, близкую к 16-битной точности, при значительном сокращении размера модели.

Тестирование на VL-моделях Llama 3.2 Vision, Qwen2 Vision и Pixtral, показали значительные преимущества по сравнению со стандартным 4-битным квантованием. Например, квантование Qwen2 Vision 2B до 4 бит приводило к полной поломке модели, в то время как метод динамического квантования позволял восстановить точность при увеличении использования памяти всего на 450 МБ.

Аналогичным образом, получилось восстановить точность Llama 3.2 Vision 11B и Pixtral 12B, которые также деградировали на стандартном 4-битном квантовании.

▶️В открытый доступ на HF опубликованы модели, участвующие в исследовании:

🟢Llama-3.2-11B-Vision-Instruct-unsloth-bnb-4bit (7.23 GB)

🟢Llama-3.2-11B-Vision-unsloth-bnb-4bit (7.23 GB)

🟠Qwen2-VL-2B-Instruct-unsloth-bnb-4bit (1.81 GB)

🟠Qwen2-VL-7B-Instruct-unsloth-bnb-4bit (6.3 GB)

🟠QwQ-32B-Preview-unsloth-bnb-4bit

🟢Pixtral-12B-2409-unsloth-bnb-4bit (8.42GB)


⚠️ К каждой модели в Model Card можно найти блокнот для запуска в Google Collab и созданные сообществом GGUF-версии.


📌Лицензирование моделей:

🟠Семейство Llama: Llama 3.2 Community License Agreement
🟢Семейство Qwen: Apache 2.0 License.
🟢Pixtral: Apache 2.0 License.


🟡Статья
🟡Набор моделей
🟡Сообщество в Discord


@ai_machinelearning_big_data

#AI #ML #VLM #Unsolth #Quantization
Please open Telegram to view this post
VIEW IN TELEGRAM