288K subscribers
3.97K photos
682 videos
17 files
4.55K links
Погружаемся в машинное обучение и Data Science

Показываем как запускать любые LLm на пальцах.

По всем вопросам - @haarrp

@itchannels_telegram -🔥best channels

Реестр РКН: clck.ru/3Fmqri
加入频道
⚡️ Ollama получила поддержку запуска моделей GGUF с Huggingface.

Ollama, приложение, основанное на llama.cpp, для локального взаимодействия с LLM получила возможность запускать одной командой любую GGUF модель, размещенную на Huggingface без создания нового Modelfile.

На сегодняшний день на HF около 45 тысяч моделей в формате GGUF, и теперь можно запустить любую из них одной командой ollama run. Также доступна настройка параметров запуска: выбор типа квантования и системного промпта.

▶️Быстрый запуск:

ollama run hf.co/{username}/{repository}


▶️Запуск с выбором типа квантования:

ollama run hf.co/{username}/{repository}:{quantization}


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

Он создается на основе встроенных метаданных tokenizer.chat_template, хранящихся в файле GGUF. Если в GGUF нет встроенного шаблона или необходимо настроить свой шаблон чата, нужно создать новый файл с именем template.

Шаблон должен быть шаблоном Go, а не шаблоном Jinja. Например:

{{ if .System }}<|system|>
{{ .System }}<|end|>
{{ end }}{{ if .Prompt }}<|user|>
{{ .Prompt }}<|end|>
{{ end }}<|assistant|>
{{ .Response }}<|end|>


📌 Список всех доступных параметров доступен в документации репозитория Ollama.

⚠️ В качестве доменного имени в команде запуска можно использовать доменные имена как hf.co, так и huggingface.co.


🟡Документация
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #Ollama #Huggingface
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍21🔥11👏51😁1
🌟 UAG: методика ускорения генерации LLM с любыми моделями в качестве ассистента.

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

Intel Labs и Hugging Face разработали метод универсальной ассистированной генерации (UAG) , который позволяет использовать любую модель в качестве ассистента, независимо от ее токенизатора. Метод открывает новые возможности для ускорения практически любой LLM, даже тех, для которых не существует специализированных маленьких версий для инференса ассистированной генерации.

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

Чтобы оценить UAG, были проведены тесты с различными комбинациями целевых LLMи моделей-ассистентов. Результаты показали, что UAG дает ускорение декодирования 1.5-2.0x по сравнению с генерацией без ассистента. Например, скорость генерации кода с помощью CodeLlama-13b увеличилась в 1.9 раза при использовании tiny_starcoder_py в качестве модели-ассистента.

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

📌 UAG интегрирован в релиз Huggingface Transformers 4.46.0


▶️Для использования UAG нужно передать tokenizer и assistant_tokenizer в generate() :


from transformers import AutoModelForCausalLM, AutoTokenizer

prompt = "Alice and Bob"
checkpoint = "google/gemma-2-9b"
assistant_checkpoint = "double7/vicuna-68m"

assistant_tokenizer = AutoTokenizer.from_pretrained(assistant_checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
inputs = tokenizer(prompt, return_tensors="pt")

model = AutoModelForCausalLM.from_pretrained(checkpoint)
assistant_model = AutoModelForCausalLM.from_pretrained(assistant_checkpoint)
outputs = model.generate(**inputs, assistant_model=assistant_model, tokenizer=tokenizer, assistant_tokenizer=assistant_tokenizer)
tokenizer.batch_decode(outputs, skip_special_tokens=True)


👉Статья на HF


@ai_machinelearning_big_data

#AI #ML #LLM #UAG #Huggingface
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥115🙏1
⚡️ MobileLLM: набор SLM от Facebookresearch.

MobileLLM — семейство авторегрессионных языковых моделей на оптимизированной архитектуре трансформера для использования на устройствах с ограниченными ресурсами.

В создании MobileLLM были использованы: функция активации SwiGLU, шэринг эмбединга и grouped-query attention. Модели обучались на датасете в 1 трлн. токенов

MobileLLM-125M/350M более точны на 2,7%/4,3% по сравнению с другими моделями SoTA 125M/350M в задачах zero-shot рассуждений.

В открытый доступ опубликованы 4 модели c контекстом 2 тыс. токенов:

🟢MobileLLM-125M. 30 Layers, 9 Attention Heads, 3 KV Heads. 576 Token Dimension;

🟢MobileLLM-350M. 32 Layers, 15 Attention Heads, 5 KV Heads. 960 Token Dimension;

🟢MobileLLM-600M. 40 Layers, 18 Attention Heads, 6 KV Heads. 1152 Token Dimension;

🟢MobileLLM-1B. 54 Layers, 20 Attention Heads, 5 KV Heads. 1280 Token Dimension;

▶️ Инференс моделей возможен на HF Transformers или с использованием MobileLLM от facebookresearch.

▶️ Код для файнтюна и тренировки семейства MobileLLM доступен в репозитории MobileLLM.


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


🟡Коллекция моделей на HF
🟡Arxiv
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #SLM #MobileLLM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍197🔥3🎉3
🌟 SmolLM2: второе поколение компактных LLM от HuggingFace.

Hugging Face представила SmolLM2, новую серию SLM, оптимизированных для работы на устройствах c ограниченными ресурсами и предназначенных для выполнения задач генерации и обобщения текста на английском языке и вызова функций.

Модели SmolLM2 были обучены на миксе из наборов данных FineWeb-Edu, DCLM и Stack. Тестирование после обучения показало превосходство старшей модели SmolLM2-1.7B над Meta Llama 3.2 1B и Qwen2.5-1.5B.

Модели доступны в трёх конфигурациях: 135М, 360М и 1.7B параметров, каждая модель имеет свою Instruct-версию, а 1.7B и 360М еще и официальные квантованные версии GGUF:

SmolLM2-1.7B🟢SmolLM2-1.7B-Instruct🟢Instruct GGUF

SmolLM2-360M🟠SmolLM2-360M-Instruct 🟠Instruct GGUF

SmolLM2-135M 🟠SmolLM2-135M-Instruct 🟠Instruct GGUF от комьюнити


▶️Пример запуска модели SmolLM2-1.7B в полной точности на Transformers :

from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "HuggingFaceTB/SmolLM2-1.7B"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("Gravity is", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))


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


🟡Коллекция моделей на HF
🟡Demo SmolLM2 1.7B


@ai_machinelearning_big_data

#AI #ML #SLM #Huggingface #SmolLM2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥73
📌Туториал по файнтюну Qwen2-VL-7B с использованием экосистемы Hugging Face.

Статья на HF из цикла Open-Source AI Cookbook c подробным пошаговым описанием и примерами кода процесса тонкой настройки VLM Qwen2-VL-7B в области ответов на вопросы по изображениям с использованием библиотеки Transformer Reinforcement Learning (TRL). В качестве целевого датасета используется ChartQA, который содержит диаграммы разных типов в паре с вопросами и ответами.

Для обучения модели демонстрируется методы Supervised Fine-Tuning (SFT) с использованием библиотеки TRL, QLoRA, которая квантует веса LoRA, обеспечивая более низкие требования к памяти и повышенную эффективность обучения.

Отдельным разделом выделен процесс подготовки данных к обучению с помощью функции collate_fn, которая выполняет корректное извлечение и пакетную обработку данных и их форматирование для модели. Обучение модели осуществляется с помощью класса SFTTrainer.

В результате модель научилась отвечать на вопросы в соответствии с используемым датасетом. Оценить готовый файнтюн можно в демо на HF Space.

Дополнительно, в качестве альтернативы тонкой настройке, рассматривается использование промтинга с добавлением системного сообщения для контекстуализации ввода для модели, чтобы улучшить точность ее ответов.

▶️ Блокнот на Google Collab для практических экспериментов. Для его запуска понадобится платный тариф с GPU А100.


▶️Структура туториала по разделам:

🟢Установка среды

🟢Загрузка датасета

🟢Загрузка модели и проверка производительности

🟢Файнтюн модели с помощью TRL

🟠Загрузка квантованной модели для обучения
🟠Настройка QLoRA и SFTConfig
🟠Обучение модели

🟢Тестирование готовой модели

🟢Сравнение обученной модели с базовой + промптинг

🟢Дополнительные ресурсы для более глубокого изучения VLM


🔜 Статья на HuggingFace


@ai_machinelearning_big_data

#AI #ML #VLM #HuggingFace #Tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍225🔥5🥰1😁1🙈1
🌟 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
👍237🔥4
🌟 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
👍2010🔥7