Instructions to use openmodelai/Terra-2.6 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use openmodelai/Terra-2.6 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Terra 2.6 · SpaceModel
Реально обученный экспериментальный LoRA-адаптер для русско-английского чат-бота.
В отличие от первого архива проекта, здесь уже есть обученные веса:
adapter_model.safetensors. Они получены после настоящего обучения на CPU,
а не случайной инициализации или одного переименования.
Это адаптер, не полные веса: при запуске дополнительно скачивается Qwen2.5-0.5B-Instruct (примерно 1 ГБ). Маленький размер адаптера объясняется тем, что он хранит только обученные LoRA-матрицы. Исходная модель разработана командой Qwen; SpaceModel — издатель/бренд производного продукта Terra.
Что выполнено
| Параметр | Фактическое значение |
|---|---|
| Параметров в исходной архитектуре | 494 032 768 |
| Класс размера | 0.5B, не ровно 500М |
| Обучаемых параметров LoRA | 73 728 |
| Обучение | CPU, BF16 для основы; FP32 для адаптера |
| Модули | q_proj, v_proj, o_proj в последних двух блоках |
| LoRA rank / alpha | 8 / 16 |
| Learning rate | 0,0005 |
| Оптимизатор | AdamW, weight decay 0 |
| Batch size / gradient accumulation | 1 / 1 |
| Обучающих диалогов | 32: 16 RU + 16 EN |
| Шагов оптимизатора / эпох | 32 / 1 |
| Проверочных диалогов | 8: 4 RU + 4 EN |
| Время обучения + проверки до/после + загрузки | около 119 секунд |
| Пиковая память процесса | около 1524 МиБ |
Базовые веса заморожены; обновлялись только LoRA-матрицы. Loss вычислялся только
по токенам ответа assistant, с сохранением контекста. Обучение не использовало
проверочные ответы для градиентов. Все демонстрационные диалоги включены в data/.
Закреплённая версия основы: 7ae557604adf67be50417f59c2c2f167def9a775.
Измеренные результаты — ограниченный эксперимент
Средняя cross-entropy по токенам ответов на восьми отдельных демонстрационных диалогах:
| Язык | До обучения | После обучения |
|---|---|---|
| Русский | 1,260570 | 1,225037 |
| Английский | 0,459850 | 0,428699 |
| Вместе, с весом по числу токенов | 0,961171 | 0,927276 |
Это очень маленький набор, не полноценный бенчмарк. Снижение loss не доказывает общее улучшение модели, знания языков или безопасность. Не заявляется готовность к промышленному применению. Поддержка обоих языков преимущественно унаследована от исходной модели.
После сохранения адаптер повторно загружен. Все тензоры конечные, число параметров и контрольная сумма совпали с состоянием после обучения. Проверено, что состояния адаптера до и после обучения отличаются. Реальные логи и результаты:
terra_training.json— параметры запуска, метрики, хеши;training_events.jsonl,training_console.log— журнал обучения;verification.json— результаты повторной загрузки;generation_samples.json— реальные ответы после загрузки.
Пример фактического ответа:
What is 14 plus 8? Answer briefly.
14 + 8 = 22
В другом пробном ответе модель перевела фразу «Сегодня хорошая погода» как “Today is a good weather.” Это грамматическая ошибка: корректнее “The weather is nice today.” Ошибка сохранена в журнале, а не исправлена задним числом. Модель также не всегда полностью произносит имя с номером версии.
Запустить локально
Из корня извлечённой папки:
python -m pip install -r requirements.txt
python scripts/run.py --prompt "Привет! Как тебя зовут?"
python scripts/run.py --prompt "Explain what a rainbow is in simple English."
# Простой терминальный чат без сохранения контекста между репликами:
python scripts/run.py
Первый запуск требует интернет для скачивания основы. Для CPU при ограниченной памяти нужен поддерживающий BF16 PyTorch; на GPU скрипт выбирает поддерживаемый dtype. В этом эксперименте использованы Python 3.13, PyTorch 2.6.0+cpu, Transformers 4.51.3, PEFT 0.15.2, Accelerate 1.6.0. Для обычного компьютера рекомендуется запас RAM от 4–8 ГБ; измеренные 1,5 ГБ не гарантируются в другом окружении.
Загрузка опубликованного адаптера в Python
Замените YOUR_ACCOUNT/Terra-2.6 реальным ID своего репозитория.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
adapter = "YOUR_ACCOUNT/Terra-2.6"
base = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-0.5B-Instruct",
revision="7ae557604adf67be50417f59c2c2f167def9a775",
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=False,
)
model = PeftModel.from_pretrained(base, adapter).eval()
tok = AutoTokenizer.from_pretrained(adapter, trust_remote_code=False)
inputs = tok.apply_chat_template(
[{"role": "user", "content": "Привет!"}],
tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt",
)
with torch.inference_mode():
result = model.generate(**inputs, max_new_tokens=80, do_sample=False)
print(tok.decode(result[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Опубликовать на Hugging Face
Можно создать репозиторий Model и загрузить в него содержимое этой папки,
не ZIP и не внешнюю папку целиком. В корне репозитория должны быть как минимум
adapter_model.safetensors, adapter_config.json, токенизатор, README.md и лицензии.
Лучше загрузить также приложенные метаданные и журнал для воспроизводимости.
Либо используйте скрипт:
huggingface-cli login
# Приватный репозиторий:
python scripts/upload.py --repo YOUR_ACCOUNT/Terra-2.6
# Публичный репозиторий:
python scripts/upload.py --repo YOUR_ACCOUNT/Terra-2.6 --public
Токен вводите только при локальной авторизации. Для SpaceModel/Terra-2.6 нужны
права на соответствующую организацию; имя бренда их не предоставляет. Скрипт задаёт
указанную видимость и для существующего репозитория. Используйте новый/выделенный
репозиторий: старые посторонние файлы не удаляются автоматически.
Публикация в ваш аккаунт ещё не выполнялась. Сервис Hugging Face не гарантирует автоматическое предоставление бесплатного чата или сервера для этого адаптера.
Нужны полные веса одним комплектом, без отдельного адаптера?
Соберите их слиянием:
python scripts/merge.py --output ../Terra-2.6-full
python scripts/upload.py --repo YOUR_ACCOUNT/Terra-2.6 --folder ../Terra-2.6-full --public
Получатся самостоятельные полные BF16-веса примерно на 1 ГБ с точным числом
параметров 494 032 768. Они загружаются через обычный AutoModelForCausalLM.
Слияние может внести небольшое округление BF16; результаты после слияния нужно
перепроверить. Скрипт слияния включён, но создание полного архива весов и его
отдельная оценка в этой сессии не выполнялись.
Воспроизводимость и ограничения
python scripts/check_trained.py проверяет сохранённые веса и повторяет четыре
пробные генерации. scripts/train_cpu.py содержит использованный расчёт градиентов.
Он не перезаписывает адаптер без явного разрешения. Для повторного эксперимента
сначала сделайте отдельную копию папки и задайте переменную окружения
TERRA_OVERWRITE_ADAPTER=1 — в этой копии будут перезаписаны веса и метаданные.
Логи при повторном запуске дописываются; для чистого журнала удалите их в копии.
Это маленькое демонстрационное дообучение на синтетических примерах, не создание основной модели с нуля и не гарантия улучшения русского/английского. Возможны ошибки, выдуманные факты, несоблюдение инструкций и ухудшение отдельных задач. Нет встроенного доступа к текущим новостям, погоде или интернету.
Лицензия
Apache-2.0. См. LICENSE, BASE_MODEL_LICENSE.txt, PROVENANCE.md.
Обязательные сведения об исходной модели сохранены. Исходные веса и токенизатор
созданы командой Qwen; изменения проекта и результаты дообучения описаны открыто.
- Downloads last month
- -