227K subscribers
3.8K photos
632 videos
17 files
4.45K links
Погружаемся в машинное обучение и Data Science

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

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

@itchannels_telegram -🔥best channels

Реестр РКН: clck.ru/3Fmqri
Download Telegram
🌟 NV-Embed-v2: Универсальная embedding-модель от Nvidia.

NVIDIA опубликовала в своем репозитории NV-Embed-v2, универсальную embedding-модель, которая занимает первое место в бенчмарке Massive Text Embedding Benchmark (MTEB benchmark, по состоянию на 30 августа 2024 года) с 56 задачами, включающими поиск, повторное ранжирование, классификацию, кластеризацию и задачи семантического сходства текстов.

Embedding модели позволяют преобразовать текстовые данные в плотные векторные представления, которые используются для задач NLP.
На практике embedding модели используются для векторизации исходного текста, например корпоративной информации, которой нет в основной LLM, и использования его для построения RAG-систем


Отличия NV-Embed-v2 от NV-Embed-v1:

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

Характеристики модели:

🟠Base Decoder-only LLM: Mistral-7B-v0.1
🟠Pooling Type: Latent-Attention
🟠Embedding Dimension: 4096
🟠Vocab size: 32000

⚠️ Важно!

🟢Версии пакетов для локального запуска : torch=2.2.0, transformers=4.42.4, flash-attn=2.2.0, sentence-transformers=2.7.0;

🟢Для доступа к nvidia/NV-Embed-v2 необходимо пройти аутентификацию на HF, используйте свой токен HF в huggingface-cli login.

▶️ Пример использования с HF Transformers:

import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel

# Each query needs to be accompanied by an corresponding instruction describing the task
task_name_to_instruct = {"example": "Given a question, retrieve passages that answer the question",}

query_prefix = "Instruct: "+task_name_to_instruct["example"]+"\nQuery: "
queries = [
'are judo throws allowed in wrestling?',
'how to become a radiology technician?'
]

# No instruction needed for retrieval passages
passage_prefix = ""
passages = [
"** LLM Answer about judo **",
"** LLM Answer about radiology **"
]

# load model with tokenizer
model = AutoModel.from_pretrained('nvidia/NV-Embed-v2', trust_remote_code=True)

# get the embeddings
max_length = 4096
query_embeddings = model.encode(queries, instruction=query_prefix, max_length=max_length)
passage_embeddings = model.encode(passages, instruction=passage_prefix, max_length=max_length)

# normalize embeddings
query_embeddings = F.normalize(query_embeddings, p=2, dim=1)
passage_embeddings = F.normalize(passage_embeddings, p=2, dim=1)

# get the embeddings with DataLoader
scores = (query_embeddings @ passage_embeddings.T) * 100
print(scores.tolist())


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


🟡Модель
🟡Arxiv


@ai_machinelearning_big_data

#AI #Embedding #ML #NVIDIA #LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥65
🌟 jina-embeddings-v3: мультиязычная модель эмбединга текста.

jina-embeddings-v3 - мультиязычная (89 языков, включая русский) многозадачная модель текстового эмбединга с 570M параметров, предназначенная для задач NLP.

Модель построена на архитектуре Jina-XLM-RoBERTa, поддерживает Rotary Position Embeddings для обработки длинных входных последовательностей до 8192 токенов. Она оснащена 5 адаптерами LoRA для генерации эмбедингов, специфичных для конкретной задачи:

🟢retrieval.query: эмбединг запросов в задачах асимметричного поиска;

🟢retrieval.passage: эмбединг фрагментов текста в задачах асимметричного поиска;

🟢separation: для эмбедингов в приложениях для кластеризации и повторного ранжирования;

🟢classification: эмбединг в задачах классификации;

🟢text-matching: используется для эмбедингов в задачах, которые количественно оценивают сходство между двумя текстами, например, STS или симметричный поиск.

Адаптеры LoRA составляют менее 3% от общего числа параметров, обеспечивая минимальные расходы на вычисления.

Имея размерность вывода по умолчанию 1024, пользователи могут произвольно сократить размерность эмбедингов вплоть до 32 без ущерба для производительности благодаря интеграции Matryoshka Representation Learning.

Модель доступна через API Jina, а также в ближайшее время будет доступна на Azure Marketplace и AWS SageMaker.

Jina AI сотрудничает с поставщиками векторных баз данных (Pinecone, Qdrant и Milvus), с платформами оркестрации LLM (LlamaIndex, Haystack и Dify), чтобы обеспечить интеграцию с Jina Embeddings V3.

Jina Embeddings V3 можно использовать локально через Transformers или SentenceTransformers. Модель также поддерживает формат ONNX.


📌Лицензирование : CC BY-NC 4.0 License. Для коммерческих проектов - свяжитесь с разработчиком.


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


@ai_machinelearning_big_data

#AI #ML #LLM #Embedding #JinaAI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍133👏1
🌟 Model2Vec: создание компактных и быстрых моделей на основе Sentence Transformer.

Model2Vec - библиотека для создания компактных и быстрых моделей на основе предобученных Sentence Transformer моделей.

Model2Vec позволяет создавать эмбединг-модели слов и предложений, которые значительно меньше по размеру, но при этом сопоставимы по производительности с исходными Sentence Transformer моделями.

Отличительные особенности:

🟢быстрая дистилляция, процесс создания модели занимает несколько минут;

🟢быстрый инференс, в 500 раз быстрее на CPU относительно родительской модели;

🟢BYOM и BYOV, можно использовать на любой Sentence Transformer модели с любым словарем;

🟢мультиязычность, все что нужно - только мультиязычная модель в качестве источника;

🟢интеграция с Huggingface, загрузка\выгрузка моделей привычными from_pretrained и push_to_hub.

Пайплайн Model2Vec трехэтапный. На первом этапе словарь пропускается через модель Sentence Transformer для получения векторов эмбедингов для каждого слова.

Далее, размерность полученных эмбеддингов сокращается с помощью метода главных компонент (PCA). Наконец, применяется zipf-взвешивание для учета частотности слов в словаре.

Model2Vec работает в двух режимах:

🟠Output, в котором модель работает подобно Sentence Transformer, используя subword токенизацию;

🟠Vocab, в котором создается набор статических эмбедингов слов, аналогично GloVe или Word2Vec.

Оценку производительности Model2Vec делали на наборе данных MTEB на задачах PEARL (оценка качества представления фраз) и WordSim (оценка семантической близости слов).

Результаты показывают, что Model2Vec превосходит по производительности GloVe и модели, основанные на WordLlama по всем задачам оценки.

▶️Пример дистилляции:

from model2vec.distill import distill

# Choose a Sentence Transformer model
model_name = "BAAI/bge-base-en-v1.5"

# Distill the model
m2v_model = distill(model_name=model_name, pca_dims=256)

# Save the model
m2v_model.save_pretrained("m2v_model")


▶️Пример инференса:

from model2vec import StaticModel

# Load a model from the HuggingFace hub, or a local one.
model_name = "minishlab/M2V_base_output"
# You can optionally pass a token if you're loading a private model
model = StaticModel.from_pretrained(model_name, token=None)

# Make embeddings
embeddings = model.encode(["It's dangerous to go alone!", "It's a secret to everybody."])



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


🟡Набор моделей
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #Embedding #Model2Vec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3010🔥8😁3
🖥 nv-ingest - NVIDIA Ingest

NVIDIA-Ingest - это масштабируемый, ориентированный на высокую производительность микросервис для парсинга неструктурированных документов и метаданных очень большого размера.

Инструмент поддерживает PDF, Word и PowerPoint и использует специализированные микросервисы NVIDIA NIM для поиска, контекстуализации и извлечения текста, таблиц, диаграмм и изображений для использования в генеративных приложениях.

NVIDIA Ingest позволяет распараллелить процесс разбиения документов на страницы, где содержимое классифицируется (как таблицы, диаграммы, изображения, текст), извлекается в дискретный контент и далее контекстуализируется с помощью оптического распознавания символов (OCR) в четко определенную схему JSON.

После этого NVIDIA Ingest может опционально вычислением эмбедингов для извлеченного контента, а также опционально храненииь данные в векторной базе данных Milvus.

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

@ai_machinelearning_big_data

#NVIDIA #parsing #embedding
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍228
✔️ Появился векторный поиск СУБД YDB — теперь можно искать по смыслу, а не по ключевым словам

Yandex B2B Tech добавила в свою СУБД YDB векторный поиск — технологию, которая находит похожие тексты, картинки, аудио и видео, даже если у них разные названия. Это возможно благодаря эмбеддингам — представлению данных в виде векторов.

Поиск работает в двух режимах: точном (для высокой релевантности) и приближенном (для миллисекундного отклика на сотнях миллионов объектов).

Технология уже используется в Алисе и теперь стала доступна бизнесу — как в облаке, так и on-premise. Это даст новый уровень качества для ИИ-ассистентов, рекомендательных систем и RAG-приложений.

@ai_machinelearning_big_data

#news #ai #ml #db #embedding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6419🗿15🔥11🤣8😁4🤬2