329K subscribers
4.18K photos
774 videos
17 files
4.7K links
Погружаемся в машинное обучение и Data Science

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

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

@itchannels_telegram -🔥best channels

Реестр РКН: clck.ru/3Fmqri
Download Telegram
⚡️ 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