/ Модель

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

Контекст
32 768 токенов
Параметры
257 млн
Архитектура
gemma3_text · dense
Базовая модель
gemma-3-270m-it
Библиотека
transformers
Опубликована
14 сен 2026

gemma-3-270m-foodextract

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

Дообученная Gemma 3 для извлечения и структурирования сведений о еде и напитках из англоязычных текстовых описаний.

160скачиваний за 30 дней0лайковвеса обновлены14 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gemma-3-270m-foodextract — дообученная модель thealper2 на основе unsloth/gemma-3-270m-it для извлечения сведений о еде и напитках из текстовых описаний. Она формирует структурированный ответ с категориями вроде состава, пищевой ценности, меню, рецептов, продуктов, напитков, рекламы и упаковки. Модель построена на текстовой архитектуре Gemma 3, содержит 257 млн параметров и использует контекст до 32 768 токенов; обучение проводилось на подмножестве из 20 000 примеров набора FoodExtract-135k.

Модель предназначена для извлечения и категоризации упоминаний еды и напитков из описаний, подписей и текстов о продуктах. В README приведены результаты оценки на 500 примерах: точное совпадение — 0,416, F1 для тегов — 0,9227; при оценке самих списков еды и напитков точное совпадение ниже — 0,1977.

Обучающие целевые ответы были сгенерированы другой языковой моделью, поэтому результат может воспроизводить ошибки этих меток. Модель обучалась на англоязычных описаниях, а тексты длиннее 1024 токенов исключались из обучения; списки разделяются запятыми, что делает элементы с запятыми неоднозначными. Использование регулируется условиями Gemma Terms of Use базовой модели.

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

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

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

gemma-3-270m-foodextract

LoRA (merged) SFT of unsloth/gemma-3-270m-it for structured food/drink extraction from a text description, trained on mrdbourke/FoodExtract-135k.

Input / output

User turn (model chat template):

Extract the food and drink information from this description.

Description:
{description}

Output (dataset column gpt-oss-120b-label-condensed, unchanged):

food_or_drink: 0|1
tags: <comma-separated codes>
foods: <comma-separated items>
drinks: <comma-separated items>

Tag codes: np nutrition panel, il ingredient list, me menu, re recipe, fi food items, di drink items, fa food advertisement, fp food packaging.

Training data

Source rows (train / test)121569 / 13508
Rows kept (train / validation / test)115130 / 6059 / 13500
Rows used for training20000 (deterministic subset)
Tokens per example (median / p99 / max)115.0 / 466 / 1760

Removed: empty descriptions, exact duplicate (description, target) pairs, examples longer than 1024 tokens (not truncated), train rows sharing a description with test. Test: official test split (held-out evaluation). Validation: 5% of cleaned official train, group-aware, seed=42.

Training procedure

HyperparameterValue
Methodlora_fallback
Epochs1
Steps1250
Learning rate / scheduler5e-05 / cosine
Warmup steps63
Weight decay0.01
Batch size x grad. accumulation4 x 4 = 16
Optimizeradamw_torch
Precisionbf16 mixed precision, FP32 master weights
Gradient checkpointingTrue
Max sequence length1024 (no truncation)
Lossassistant tokens only (prompt and padding masked)
HardwareNVIDIA GeForce RTX 5060 Ti (16283 MB)
Training time0.57 h
Peak VRAM allocated / reserved13760.7 / 13860.0 MB
Final validation loss0.3752
Softwaretorch 2.11.0+cu128, transformers 5.17.0, trl 0.24.0

Evaluation

Split: test (500 examples), greedy decoding, max_new_tokens=256.

MetricValue
Exact match (normalized)0.4160
ROUGE-1 / ROUGE-2 / ROUGE-L0.9142 / 0.7771 / 0.8641
food_or_drink accuracy0.9540
Tags micro-F10.9118
Foods micro P / R / F10.7148 / 0.7354 / 0.7249
Drinks micro P / R / F10.6719 / 0.5658 / 0.6143
Malformed output rate0.0160
Missing-field rate0.0140

Food/drink references only (344 examples): exact match 0.1977, foods F1 0.7282, drinks F1 0.6187, tags F1 0.9227.

Usage

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "thealper2/gemma-3-270m-foodextract"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda")

description = "A plate of grilled chicken with rice and a glass of orange juice."
messages = [{"role": "user", "content": "Extract the food and drink information from this description.\n\nDescription:\n" + description}]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = tokenizer(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256, do_sample=False)
print(tokenizer.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True).strip())

Limitations

  • Targets were generated by gpt-oss-120b from the text description; the model reproduces these LLM labels, including their errors.
  • Training data mixes real web captions (COYO-700M, PixMo-Cap, Open-Qwen2VL) with synthetic captions and random strings.
  • Item lists are comma-separated; items containing commas cannot be represented unambiguously.
  • English descriptions; inputs longer than 1024 tokens were not seen in training.
  • Trained on a 20000-example subset of the cleaned training split.
  • Use is subject to the Gemma Terms of Use of the base model.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Gemma3ForCausalLM
Ревизия весов
4dc7877

0 моделей