/ Модель

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

Контекст
131 072 токена
Параметры
212 млн
Лицензия
CC BY-NC 4.0
Архитектура
llama · dense
Библиотека
transformers
Опубликована
24 фев 2025

drama-base

Сходство предложенийТекст → score9 профессий

Компактная многоязычная модель DRAMA-base кодирует запросы и документы в векторы для семантического поиска и извлечения текстов.

474скачиваний за 30 дней22лайкавеса обновлены21 июл 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DRAMA-base — компактная плотная модель для многоязычного поиска по текстам, разработанная авторами семейства DRAMA. Она построена на прореженной языковой модели Llama и дообучена для кодирования запросов и документов в векторы, пригодные для поиска и сравнения сходства. В карточке указана архитектура Llama с классом DramaModel; размер репозитория — 211,7 млн параметров, а README описывает вариант примерно со 113 млн параметров без эмбеддингов. Контекстное окно составляет 131 072 токена.

Модель предназначена для семантического поиска и извлечения документов на английском и других языках. Размер эмбеддинга по умолчанию — 768 измерений; обучение Matryoshka позволяет сокращать его, например, до 512 или 256. Для запросов используется префикс «Query: », а в реализации применяется двунаправленное внимание. README сообщает об оценке на BEIR, MIRACL, MLDR и многоязычных задачах MTEB, а также об ускорении пакетного вывода с последовательностями разной длины при использовании Nested Tensors.

Обучающие данные охватывали арабский, бенгальский, китайский, английский, финский, французский, немецкий, хинди, индонезийский, итальянский, японский, корейский, персидский, португальский, русский, испанский, суахили, телугу, тайский и йоруба; для других языков качество может снижаться. Для загрузки через Transformers или Sentence Transformers требуется доверять пользовательскому коду репозитория. Лицензия — CC BY-NC 4.0, поэтому коммерческое использование не разрешено условиями этой лицензии.

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

  • семантический поиск документов на нескольких языках
  • поиск по запросам в коллекции документов
  • извлечение релевантных текстов для RAG-системы
  • сопоставление запросов и документов по смыслу
  • построение компактного многоязычного поискового индекса

Ограничения

Качество может быть ниже для языков, отсутствовавших в обучающих данных. При использовании Transformers или Sentence Transformers требуется пользовательский код из репозитория, а лицензия CC BY-NC 4.0 запрещает коммерческое использование.

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

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

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

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

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

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

Открыть на Hugging Face

DRAMA-base (0.1B): Diverse Augmentation from Large Language Models to Smaller Dense Retrievers

DRAMA-base (0.1B) is a dense retrieval model built upon a pruned large language model backbone. It is derived by pruning a large language model and fine-tuned for efficient and generalizable multilingual text retrieval. By leveraging large language models for high-quality data augmentation, DRAMA-base achieves strong performance across both English and multilingual retrieval tasks, despite its compact size of 0.1B non-embedding parameters.

The default embedding size of drama-base is 768, as we adopt Matryoshka Representation Learning, the dimionality can be flexiblely truncated to dimensionalities such as 512 or 256.

Please check our paper for the detials.

Usage

Below is an example using drama-base to encode query and document examples from the MIRACL dataset, using either Transformers or Sentence Transformers:

Transformers

import torch
from transformers import AutoTokenizer, AutoModel


queries = [
    'What percentage of the Earth\'s atmosphere is oxygen?',
    '意大利首都是哪里?',
]
documents = [
    "The amount of oxygen in the atmosphere has fluctuated over the last 600 million years, reaching a peak of 35% during the Carboniferous period, significantly higher than today's 21%.",
    "羅馬是欧洲国家意大利首都和罗马首都广域市的首府及意大利全国的政治、经济、文化和交通中心,位于意大利半島中部的台伯河下游平原地,建城初期在七座小山丘上,故又名“七丘之城”。按城市范围内的人口计算,罗马是意大利人口最多的城市,也是欧盟人口第三多的城市。",
]

model_name = "facebook/drama-base"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True).to(device)
use_nested = False
query_embs = model.encode_queries(tokenizer, queries, use_nested=use_nested)
doc_embs = model.encode_documents(tokenizer, documents, use_nested=use_nested)


scores = query_embs @ doc_embs.T
print(scores.tolist())
# Expected output: [[0.5310, 0.0821], [0.1298, 0.6181]]

The trust_remote_code will use our customized drama_modeling.py with two details:

  • We use bi-directional attention instead of uni-directional attention
  • We add "Query: " as prefix for query text. (No prefix added to document)

DRAMA models are trained using Matryoshka Representation Learning (MRL) to support flexible dimensionality. Both queries and documents can be encoded into smaller dimensions, such as 256, using the following:

query_embs = model.encode_queries(tokenizer, queries, dim=256, use_nested=use_nested)
doc_embs = model.encode_documents(tokenizer, documents, dim=256, use_nested=use_nested)

scores = query_embs @ doc_embs.T
print(scores.tolist())
# Expected output: [[0.6031, 0.1750], [0.2005, 0.7251]]

Sentence Transformers

from sentence_transformers import SentenceTransformer

queries = [
    'What percentage of the Earth\'s atmosphere is oxygen?',
    '意大利首都是哪里?',
]
documents = [
    "The amount of oxygen in the atmosphere has fluctuated over the last 600 million years, reaching a peak of 35% during the Carboniferous period, significantly higher than today's 21%.",
    "羅馬是欧洲国家意大利首都和罗马首都广域市的首府及意大利全国的政治、经济、文化和交通中心,位于意大利半島中部的台伯河下游平原地,建城初期在七座小山丘上,故又名“七丘之城”。按城市范围内的人口计算,罗马是意大利人口最多的城市,也是欧盟人口第三多的城市。",
]

model = SentenceTransformer("facebook/drama-base", trust_remote_code=True)

query_embs = model.encode(queries, prompt_name="query",  use_nested=use_nested)
doc_embs = model.encode(documents,  use_nested=use_nested)

scores = model.similarity(query_embs, doc_embs)
print(scores.tolist())
# Expected output: [[0.5310, 0.0821], [0.1298, 0.6181]]
  • The trust_remote_code will use our customized drama_modeling.py which uses bi-directional attention instead of uni-directional attention.
  • For queries, you have to use prompt_name="query" to select the prompt called "query", or prompt="Query: " to specify the prompt string manually.

DRAMA models are trained using Matryoshka Representation Learning (MRL) to support flexible dimensionality. Both queries and documents can be encoded into smaller dimensions, such as 256, using the following:

from sentence_transformers import SentenceTransformer

queries = [
    'What percentage of the Earth\'s atmosphere is oxygen?',
    '意大利首都是哪里?',
]
documents = [
    "The amount of oxygen in the atmosphere has fluctuated over the last 600 million years, reaching a peak of 35% during the Carboniferous period, significantly higher than today's 21%.",
    "羅馬是欧洲国家意大利首都和罗马首都广域市的首府及意大利全国的政治、经济、文化和交通中心,位于意大利半島中部的台伯河下游平原地,建城初期在七座小山丘上,故又名“七丘之城”。按城市范围内的人口计算,罗马是意大利人口最多的城市,也是欧盟人口第三多的城市。",
]

model = SentenceTransformer("facebook/drama-base", truncate_dim=256, trust_remote_code=True)

query_embs = model.encode(queries, prompt_name="query",  use_nested=use_nested)
doc_embs = model.encode(documents,  use_nested=use_nested)

scores = model.similarity(query_embs, doc_embs)
print(scores.tolist())
# Expected output: [[0.6031, 0.1750], [0.2005, 0.7251]]

Evaluation

The model has been evaluated on multiple retrieval benchmarks, including BEIR, MIRACL, MLDR, and several multilingual retrieval tasks in MTEB. It demonstrates strong performance in both English and multilingual retrieval tasks.

drama-base released in this page is corresponidng to the line DRAMA-0.1B with 113M non-embedding parrameters.

Supported Languages

DRAMA-base was initialized from Llama3.2-1B (which was originally pruned from Llama3.1-8B). During pruning and retriever training, training data covered the following 20 languages (sorted alphabetically):

Arabic, Bengali, Chinese, English, Finnish, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Persian, Portuguese, Russian, Spanish, Swahili, Telugu, Thai, Yoruba

Other languages may have downgraded peformance.

Citation

If you find our paper or models helpful, please consider cite as follows:

@article{drama,
  title={{Drama}: Diverse Augmentation from Large Language Models To Smaller Dense Retrievers},
  author={Ma, Xueguang and Lin, Victoria Xi and Oguz, Barlas and Lin, Jimmy and Yih, Wen-tau and Chen, Xilun},
  journal={arXiv:2502.18460},
  year={2025}
}

Efficient DRAMA

Nested Tensors

Nested Tensors provide a way to handle ragged-shaped data within a single tensor, allowing for efficient operations on such data. They store data in a compact packed representation while offering a standard PyTorch tensor interface, making it easy to apply various operations. Nested Tensors are particularly advantageous for model deployments that perform inference on large batches of sequences with varying lengths. Traditional tensors require padding all sequences in a batch to the same length, which can be inefficient, especially when the batch includesmany short sequences and a single long sequence. Nested Tensors eliminate the need for padding, thus avoiding unnecessary computation on extra pad tokens. This results in more efficient processing of batches with varying sequence lengths.

Performance

Experiments have demonstrated a 1.7x to 2.3x (base,large and 1B) improvement in queries per second (QPS) for batch inference with sequences of varied lengths.

Usage

To enable Nested Tensors, simply set the use_nested variable to true. This will activate the nested jagged tensors and allow you to take advantage of efficient inference.

Prerequisites Package versions as this code have been tested with these versions. Please use these or some latest versions to avoid compatibility issues.

  • Python: 3.12
  • Transformers: 4.51.1
  • PyTorch: 2.7.1

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
DramaModel
Ревизия весов
7ef3558

0 моделей