/ Модель

Характеристики

Параметры
3,8 млрд
Лицензия
BigScience BLOOM RAIL 1.0
Архитектура
bloom · dense
Базовая модель
bloomz-3b-sft-chat
Опубликована
2 ноя 2023

bloomz-3b-retriever

ЭмбеддингиТекст → embedding9 профессий

Двуязычный биэнкодер, который создаёт векторные представления запросов и документов для поиска, в том числе между английским и французским языками.

25скачиваний за 30 дней5лайковвеса обновлены16 дек 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

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

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Bloomz-3b-retriever — двуязычный биэнкодер на базе дообученной модели cmarkea/bloomz-3b-sft-chat, разработанный Cyrile Delestre для Crédit Mutuel Arkéa. Он преобразует запросы и тексты документов в векторные представления для поиска релевантных документов, включая поиск между английским и французским языками. Модель обучена на парах запросов и контекстов с контрастивной целью на основе Triplet Network; в карточке указано 3,8 млрд параметров. Она подходит для поиска фрагментов в системах открытого поиска ответов на вопросы и векторных базах данных.

В README приведено сравнение на наборе SQuAD, включая сценарий с запросом на английском и контекстом на французском, но карточка предупреждает, что версия Bloomz-3b-retriever-v2 показывает значительно более высокое качество. Репозиторий содержит веса PyTorch и Safetensors и распространяется по лицензии BigScience BLOOM RAIL 1.0.

Сценарии применения

  • поиск документов по запросу на английском языке
  • поиск документов по запросу на французском языке
  • межъязыковой поиск по англо-французской коллекции
  • подбор контекстов для открытого поиска ответов на вопросы
  • создание эмбеддингов запросов и документов для векторной базы

Ограничения

README рекомендует использовать Bloomz-3b-retriever-v2, поскольку она показывает значительно более высокое качество. Поддержка языков в карточке ограничена английским и французским; приведённые результаты оценки относятся к SQuAD.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Note

We now strongly recommend using the Bloomz-3b-retriever-v2 model, which offers significantly superior performance.

Bloomz-3b-retriever

We introduce the Bloomz-3b-retriever based on the Bloomz-3b-sft-chat model. This model enables the creation of an embedding representation of text and queries for a retrieval task, linking queries to documents. The model is designed to be cross-language, meaning it is language-agnostic (English/French). This model is ideal for Open Domain Question Answering (ODQA), projecting queries and text with an algebraic structure to bring them closer together.

embedding

Training

It is a bi-encoder trained on a corpus of context/query pairs, with 50% in English and 50% in French. The language distribution for queries and contexts is evenly split (1/4 French-French, 1/4 French-English, 1/4 English-French, 1/4 English-English). The learning objective is to bring the embedding representation of queries and associated contexts closer using a contrastive method. The loss function is defined in Deep Metric Learning using Triplet Network.

Benchmark

Based on the SQuAD evaluation dataset (comprising 6000 queries distributed over 1200 contexts grouped into 35 themes), we compare the performance in terms of the average top contexter value for a query (Top-mean), the standard deviation of the average top (Top-std), and the percentage of correct queries within the top-1, top-5, and top-10. We compare the model with a TF-IDF trained on the SQuAD train sub-dataset (we want a fixed algebraic structure for the vector database instead of a variable structure every time we add a new document, then the IDF part has frozen), CamemBERT, Sentence-BERT, and finally our model. We observe these performances in both monolingual and cross-language contexts (query in French and context in English).

Model (FR/FR)Top-meanTop-stdTop-1 (%)Top-5 (%)Top-10 (%)
TF-IDF128269234656
CamemBERT417347123
Sentence-BERT1141437182
Bloomz-560m-retriever1047517886
Bloomz-3b-retriever937507987
Model (EN/FR)Top-meanTop-stdTop-1 (%)Top-5 (%)Top-10 (%)
TF-IDF607334000
CamemBERT432345011
Sentence-BERT1247447383
Bloomz-560m-retriever1044497786
Bloomz-3b-retriever938507887

We observed that TF-IDF loses robustness in cross-language scenarios (even showing lower performance than CamemBERT, which is a model specialized in French). This can be explained by the fact that a Bag-Of-Words method cannot support this type of issue because, for a given sentence between two languages, the embedding vectors will be significantly different.

CamemBERT exhibits poor performance, not because it poorly groups contexts and queries by themes, but because a meta-cluster appears, separating contexts and queries (as illustrated in the image below), making this type of modeling inappropriate in a retriever context.

embedding_camembert

How to Use Bloomz-3b-retriever

The following example utilizes the API Pipeline of the Transformers library.

import numpy as np
from transformers import pipeline
from scipy.spatial.distance import cdist

retriever = pipeline('feature-extraction', 'cmarkea/bloomz-3b-retriever')

# Inportant: take only last token!
infer = lambda x: [np.array(ii[0][-1]).reshape(1,-1) for ii in retriever(x)]

list_of_contexts = [...]
emb_contexts = np.concatenate(infer(list_of_contexts), axis=0)
list_of_queries = [...]
emb_queries = np.concatenate(infer(list_of_queries), axis=0)

# Important: take l2 distance!
dist = cdist(emb_queries, emb_contexts, 'euclidean') 
top_k = lambda x: [
    [list_of_contexts[qq] for qq in ii]
    for ii in dist.argsort(axis=-1)[:,:x]
]

# top 5 nearest contexts for each queries
top_contexts = top_k(5)

Citation

@online{DeBloomzRet,
  AUTHOR = {Cyrile Delestre},
  ORGANIZATION = {Cr{\'e}dit Mutuel Ark{\'e}a},
  URL = {https://huggingface.co/cmarkea/bloomz-3b-retriever},
  YEAR = {2023},
  KEYWORDS = {NLP ; Transformers ; LLM ; Bloomz},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
BloomModel
Ревизия весов
f309cd5

0 моделей