/ Модель

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

Контекст
131 072 токена
Параметры
1,2 млрд
Лицензия
Llama 3.2
Архитектура
llama · dense
Базовая модель
Llama-3.2-1B
Библиотека
transformers
Опубликована
27 мая 2026

Llama-3.2-1B-Block-FT

Генерация текстаТекст → текст5 профессий

Дообученная Llama 3.2 на 1,2 млрд параметров для эффективной генерации ответов по документам в RAG с повторным использованием KV-кэша.

57скачиваний за 30 дней0лайковвеса обновлены27 мая 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hxia7/Llama-3.2-1B-Block-FT — дообученная модель семейства Llama от автора hxia7 на базе meta-llama/Llama-3.2-1B. Она предназначена для генерации ответов по документам в системах RAG. Веса настроены на 80 тысячах примеров Tulu3-Block-FT-RAG с использованием механизма Block-Attention: контекст разделяется на блоки документов и блок запроса, что позволяет повторно использовать KV-кэш документов для разных запросов. Модель содержит 1,2 млрд параметров, использует архитектуру LlamaForCausalLM, формат safetensors и контекст до 131 072 токенов.

В тесте на 100 примерах TriviaQA из валидационной выборки, не входивших в обучение, автор сообщает Substr-EM 87% и F1 26,59%; сравнительная таблица указывает на сопоставимые результаты Block-Attention и обычного полного внимания. Эти показатели получены на небольшой выборке и не гарантируют аналогичного качества в других сценариях. Для рекомендованного режима Block-Attention требуется ручной prefill и авторегрессионное декодирование с 4D attention mask; обычный model.generate() такую маску не принимает. Лицензия — llama3.2.

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

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

Ограничения

Для Block-Attention требуется ручной prefill с 4D attention mask и отдельное авторегрессионное декодирование; model.generate() принимает только 2D маску. Приведённые оценки основаны на выборках по 100 примеров, а метрики на обучающих данных завышены из-за пересечения с обучением.

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

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

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

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

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

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

Открыть на Hugging Face

Llama-3.2-1B-Block-FT

Block-Attention fine-tuned meta-llama/Llama-3.2-1B for efficient RAG inference.

Overview

This model is fine-tuned using the Block-Attention mechanism from Block-Attention for Efficient Prefilling. Block-Attention divides the input context into independent blocks during the prefill phase, enabling KV cache reuse across different queries on the same documents — a key optimization for RAG serving.

Training Data Control Variable: This model was fine-tuned on the full 80K samples from the Tulu3-Block-FT-RAG dataset. A companion Qwen3-8B model uses an 8K subset for comparison.

Evaluation Results

On Training Data (100 samples from Tulu3-Block-FT-RAG train set)

Note: These samples overlap with the training data, so absolute scores are inflated. The block vs full comparison remains valid.

ModelEM ScoreF1 Score
meta-llama/Llama-3.2-1B (base)0.00%0.54%
meta-llama/Llama-3.2-1B-Instruct2.00%50.62%
hxia7/Llama-3.2-1B-block-FT (full-attention)14.00%70.96%
hxia7/Llama-3.2-1B-block-FT (block-attention)17.00%69.68%

On Unseen TriviaQA Validation Set (100 clean samples)

Questions and evidence passages from TriviaQA RC validation split, excluded from training data. Substr-EM checks whether the correct answer appears as a substring in the model's response.

ModelSubstr-EMF1 Score
meta-llama/Llama-3.2-1B (base)56.00%12.51%
meta-llama/Llama-3.2-1B-Instruct86.00%23.62%
hxia7/Llama-3.2-1B-block-FT (full-attention)87.00%26.59%
hxia7/Llama-3.2-1B-block-FT (block-attention)88.00%27.53%

Key observations:

  • Block-attention and full-attention produce comparable results across both evaluation sets, confirming the block-attention structure preserves quality.
  • On unseen data, block-FT outperforms the Instruct baseline in both Substr-EM (+2%) and F1 (+4%), demonstrating that RAG fine-tuning improves answer extraction quality even on out-of-distribution data.
  • The evidence passages from TriviaQA differ from the Contriever-retrieved passages used in training, making this a meaningful out-of-distribution test.

Block-Attention Mechanism

In Block-Attention, the context is split into N blocks:

  • Blocks 1..N-1 (document blocks): Use local attention — each block attends only to itself
  • Block N (query block): Uses global attention — attends to all previous blocks

This isolation allows document blocks' KV states to be computed once and reused across multiple queries.

Training Details

  • Base Model: meta-llama/Llama-3.2-1B
  • Training Data: Tulu3-Block-FT-RAG (80K samples, full dataset)
  • Epochs: 1
  • Learning Rate: 2e-5
  • Optimizer: AdamW (fused)
  • Precision: BF16
  • DeepSpeed: ZeRO Stage 2
  • Loss Reduction: sum (over non-masked tokens)

During training, each sample produces two variants:

  1. Full-attention version (standard causal mask)
  2. Block-attention version (with [Block-Attention] prefix token and 4D block mask)

Both variants contribute to the loss, teaching the model to handle both inference modes.

Inference

Block-Attention Inference (recommended for RAG)

Important: Block-Attention uses a 4D attention mask [1, 1, seq_len, seq_len] during prefill. model.generate() only accepts 2D masks, so inference requires manual prefill + autoregressive decode:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from src.data.block import build_attention_mask, convert_attention_mask_to_model_required

model = AutoModelForCausalLM.from_pretrained("hxia7/Llama-3.2-1B-block-FT", torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("hxia7/Llama-3.2-1B-block-FT")

blocks = [
    "<|start_header_id|>system\nYou are an AI assistant. Below are reference documents.\n\n",
    "- Title: Document 1\nContent of document 1...\n",
    "- Title: Document 2\nContent of document 2...\n",
    "Answer the question using the documents.\nQuestion: What is X?\n\n",
]

@torch.no_grad()
def block_generate(model, tokenizer, blocks, max_new_tokens=128):
    block_token_counts = []
    all_ids = []
    for b in blocks:
        ids = tokenizer.encode(b, add_special_tokens=False)
        all_ids.extend(ids)
        block_token_counts.append(len(ids))

    input_ids = torch.tensor([all_ids], dtype=torch.int64, device=model.device)
    total_len = len(all_ids)

    helper = torch.tril(torch.ones(total_len + 64, total_len + 64, dtype=torch.bool))
    attn_mask = build_attention_mask(
        local_attention_block_tokens=torch.tensor(block_token_counts[:-1], dtype=torch.long),
        global_attention_block_tokens=torch.tensor(block_token_counts[-1], dtype=torch.long),
        lower_triangular_matrix=helper,
    )
    attn_mask = convert_attention_mask_to_model_required(attn_mask)
    attn_mask = attn_mask.unsqueeze(0).unsqueeze(0).to(model.device)

    outputs = model(input_ids=input_ids, attention_mask=attn_mask, use_cache=True)
    past_kv = outputs.past_key_values
    next_token = torch.argmax(outputs.logits[:, -1, :], dim=-1, keepdim=True)

    generated = []
    for _ in range(max_new_tokens - 1):
        if next_token.item() == tokenizer.eos_token_id:
            break
        generated.append(next_token.item())
        outputs = model(input_ids=next_token, past_key_values=past_kv, use_cache=True)
        past_kv = outputs.past_key_values
        next_token = torch.argmax(outputs.logits[:, -1, :], dim=-1, keepdim=True)

    if next_token.item() != tokenizer.eos_token_id:
        generated.append(next_token.item())

    return tokenizer.decode(generated, skip_special_tokens=True).strip()

answer = block_generate(model, tokenizer, blocks)
print(answer)

Full-Attention Inference (standard)

from transformers import AutoTokenizer, AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("hxia7/Llama-3.2-1B-block-FT", torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("hxia7/Llama-3.2-1B-block-FT")

prompt = "Your full RAG prompt here..."
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=3968).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=128, do_sample=False, pad_token_id=tokenizer.eos_token_id)
answer = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
print(answer)

References

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
99f2079

0 моделей