/ Модель

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

Контекст
4 096 токенов
Параметры
438 млн
Лицензия
MIT
Архитектура
llama · dense
Базовая модель
zagreus-0.4B-ita
Библиотека
sentence-transformers
Опубликована
17 мар 2026

zagreus-0.4B-ita-embeddings

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

Модель преобразует итальянские запросы и документы в нормализованные эмбеддинги для семантического поиска и сравнения сходства.

130скачиваний за 30 дней5лайковвеса обновлены23 мар 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

zagreus-0.4B-ita-embeddings — модель для построения плотных векторных представлений итальянских текстов, созданная на базе Zagreus 0.4B авторами модели. Генеративную модель на архитектуре Llama преобразовали в экстрактор эмбеддингов и дообучили на парах и тройках из итальянской версии набора mMARCO; число параметров составляет 437,7 млн, максимальная длина последовательности в карточке — 4096 токенов. Для получения вектора применяется пулинг по последнему токену и L2-нормализация. При поиске рекомендуется задавать запросы с префиксом `query:`, а документы — с префиксом `passage:`.

Модель предназначена для семантического поиска и сравнения сходства запросов и документов, в том числе для поиска по итальянским корпусам. Авторы сообщают о результатах оценки на mMARCO, включая MRR@5 1,0 и точность на тестовых тройках 100%; эти результаты относятся к описанному набору и не гарантируют качество на других данных. README характеризует проект как учебный и исследовательский эксперимент и не рекомендует его для производства. Лицензия — MIT.

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

  • семантический поиск по итальянским документам
  • ранжирование документов по соответствию итальянскому запросу
  • поиск ответов в корпусе итальянских текстов
  • сравнение семантической близости итальянских предложений

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

zagreus-0.4B-ita-embeddings

Modello di embedding italiano ottenuto trasformando Zagreus 0.4B — un LLM generativo italiano basato su architettura Llama 3.2 — in un estrattore di embeddings densi, seguendo le tecniche SOTA per modelli Decoder-only.

Questo è il branch main (ex v7.0), la versione migliore e stabile del modello. Per la storia completa degli esperimenti e le motivazioni tecniche, leggi l'articolo su Medium: Oltre BERT: Come trasformare un LLM Generativo in un Modello di Embeddings State-of-the-Art. (english version here)

⚠️ Questi esperimenti sono realizzati a scopo didattico e di ricerca. Non sono destinati alla produzione.

Cosa rende questo modello diverso da un BERT

I modelli generativi come Zagreus sono Decoder causali: leggono rigorosamente da sinistra verso destra. Applicare il classico Mean Pooling diluirebbe il significato, perché i token iniziali non conoscono il contesto futuro. Questo modello adotta tre scelte architetturali SOTA:

1. Last Token Pooling (EOS Pooling) L'ultimo token è l'unico che ha "letto" e digerito l'intera sequenza. Tutta la semantica della frase è collassata in quel singolo vettore finale.

2. Normalizzazione L2 Tutti i vettori sono proiettati sulla superficie di un'ipersfera unitaria. In questo spazio, Dot Product e Cosine Similarity diventano matematicamente equivalenti, rendendo l'addestramento più stabile e preciso.

3. Asymmetric Prompting Il modello distingue tra query e documenti grazie a prompt espliciti nel testo:

  • Query dell'utente → query: {testo}
  • Documenti del database → passage: {testo}
SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'architecture': 'LlamaModel'})
  (1): Pooling({'pooling_mode_lasttoken': True})
  (2): Normalize()
)

Storia degli esperimenti

Arrivare a questa versione ha richiesto diversi esperimenti, ognuno dei quali ha insegnato qualcosa. Il percorso completo:

BranchLossProblema riscontrato
main (originale)MNRL standardAnisotropia — spazio vettoriale collassato
v2.0CachedMNRL✅ Anisotropia risolta, ma negativi BM25 non sfruttati
v4.0CachedMNRL + TripletLossCollasso inverso — gap negativo (-0.165)
v5.0GISTEmbedLoss + BM25Compressione dello spazio, peggio di v2.0
v6.0GISTEmbedLoss + guida e5-baseSpazi troppo distanti, filtro mal calibrato
v7.0 → mainCachedMNRL + negativi BM25 espliciti✅ Best model

Il salto decisivo è stato usare CachedMultipleNegativesRankingLoss con il campo negative esplicito del dataset mmarco. Sentence Transformers tratta automaticamente il negativo BM25 come hard negative aggiuntivo rispetto ai negativi in-batch impliciti, senza bisogno di una seconda loss o di una guida esterna.

Perché CachedMultipleNegativesRankingLoss

Il training originale usava la MultipleNegativesRankingLoss standard, che su GPU con VRAM limitata (8GB) produceva batch effettivi troppo piccoli. Il risultato era l'anisotropia: i vettori collassavano in una piccola regione dello spazio, con similarità coseno artificialmente alta anche tra frasi senza alcuna relazione.

La CachedMultipleNegativesRankingLoss risolve il problema calcolando gli embedding a mini-chunk e assemblando la loss su un batch effettivo molto più grande, senza saturare la memoria.

Utilizzo

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("nickprock/zagreus-0.4B-ita-embeddings")

# IMPORTANTE: usare sempre i prompt query:/passage:
sentences = [
    'query: puoi dichiarare bancarotta senza un avvocato?',
    'passage: Molte persone chiedono il fallimento del capitolo 7 senza un avvocato. '
    'Alcuni si dichiarano in bancarotta perché non possono permettersi le spese legali. '
    'Anche se è possibile archiviare da soli un fallimento del capitolo 7 con successo, '
    'non è sempre saggio.',
    'passage: In caso di conflitto tra le informazioni in questa pagina e le regole '
    'applicabili, le regole prevalgono. Link alla dichiarazione di fallimento senza avvocato.',
]

embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 960]

similarities = model.similarity(embeddings, embeddings)
print(similarities)

Dettagli del Training

Dataset

  • Dataset: unicamp-dl/mmarco (italiano)
  • Campioni di training: 190.000
  • Campioni di evaluation: 5.000
  • Campioni di test: 5.000
  • Struttura: triplette (anchor, positive, negative) con negativi BM25

Iperparametri principali

ParametroValore
per_device_train_batch_size32
num_train_epochs1
learning_rate2e-5
warmup_steps0.1
gradient_accumulation_steps2
gradient_checkpointingTrue
bf16True
tf32True
optimadamw_torch_fused

Training logs

EpochTraining LossValidation Loss
0.3371.8561.865
0.6741.8181.809
1.0001.799—

Il modello migliore è stato salvato a epoch 0.674 con eval_loss = 1.809.

Risultati di valutazione

Metricav2.0 (precedente main)v7.0 (main attuale)
Triplet Accuracy100%100%
Avg Margin (pos - neg)+0.2158+0.3669
MRR@51.00001.0000
Recall@1100%100%
Sim gap (simili - dissimili)+0.0730+0.2801

Il sim gap è quasi 4 volte più grande rispetto alla versione precedente — il miglioramento più significativo dell'intera serie di esperimenti.

Limitazioni note

Il dataset MMarco italiano è una traduzione automatica della versione inglese. I negativi BM25 risentono del rumore introdotto dalla traduzione, ma in questo caso — a differenza degli esperimenti con GISTEmbedLoss e hard negative mining — il rumore non ha impedito al modello di imparare: CachedMNRL è abbastanza robusta da estrarre segnale utile anche da negativi imperfetti.

La query "Cosa causa il cambiamento climatico?" rimane il caso più difficile (pos=0.369, il più basso del set di test), probabilmente per la natura astratta e aperta della domanda più che per limiti del modello.

Citazioni

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaModel
Ревизия весов
750eef0

0 моделей