Сибирь AI
ООО «ФИИ» · документация правообладателя

Документация Сибирь.ИИ 1.0.1

Описание функциональных характеристик программы для ЭВМ, информация, необходимая для установки, информация, необходимая для эксплуатации, и описание процессов, обеспечивающих поддержание жизненного цикла программного обеспечения. Документы размещены в открытом доступе, регистрация не требуется.

Подготовлено правообладателем - ООО «ФИИ», ИНН 5402076457. Редакция от .

33файла, 6 887 строк Python 3.12язык реализации 1.0.1версия экземпляра
Часть 1

Описание функциональных характеристик

Программа для ЭВМ «Сибирь.ИИ» (Siberia AI), версия 1.0.1. Правообладатель - ООО «ФИИ».

1. Назначение

Программа предназначена для построения русскоязычных языковых моделей с воспроизводимым обучением: подготовки обучающего набора, обучения нейросетевой модели архитектуры «трансформер» на одном или нескольких графических ускорителях, точного возобновления обучения после остановки, измерения качества и фиксации происхождения результата. Область применения - научные исследования и разработка систем обработки естественного языка.

Отличие от типовых средств обучения нейронных сетей - в воспроизводимости прогона. Каждое возобновление сверяет модель, настройки, обучающий набор, словарь и версию исходного текста с манифестом, записанным до первого шага, и отказывается продолжать при расхождении. Многодневное обучение, прерываемое отказами оборудования, становится воспроизводимым по факту, а не по обещанию.

2. Функциональные характеристики

2.1. Описание архитектуры моделей: реестр конфигураций с автоматическим расчетом числа параметров (с разделением на слои и представление словаря) и вычислительной стоимости одного токена.

2.2. Обучение нейросетевой языковой модели архитектуры «трансформер» (декодер) с настраиваемым числом параметров: распределение на несколько графических ускорителей, накопление градиента, пересчет активаций для экономии памяти, сохранение контрольных точек с заданной частотой, удержание ограниченного числа скользящих точек и постоянных рубежей.

2.3. Детерминированная выборка обучающих данных: состав пакета на шаге вычисляется из номера шага и начального значения генератора, а не из истории запусков. Порядок выдачи данных не зависит от того, шло обучение непрерывно или возобновлялось.

2.4. Смешивание тематических классов обучающего набора в заданных долях с контролем состава по контрольным суммам.

2.5. Контроль целостности данных: поименная и побайтовая сверка частей обучающего набора с манифестом перед началом обучения и при каждом возобновлении. Обнаружение пересечения обучающего набора с набором для оценки.

2.6. Запись неизменяемого манифеста прогона до первого шага: контрольные суммы исходного текста, обучающего набора и словаря, параметры модели и обучения, сведения об оборудовании и о происхождении данных.

2.7. Точное возобновление обучения с проверкой неизменности кода, данных, настроек и словаря по манифесту. При любом расхождении возобновление отклоняется с указанием расхождения.

2.8. Проверка прав на используемые данные: карточка источника с указанием лицензии и происхождения обязательна. Источник без подтвержденных прав в обучающий набор не допускается.

2.9. Гейты качества обучающего набора: удаление точных и близких повторов, поиск персональных данных и раскрытых секретов, проверка на пересечение с проверочными наборами.

2.10. Измерение качества на замороженных проверочных наборах по метрике «биты на байт» с разбивкой по тематическим классам и с проверкой неизменности набора по контрольным суммам.

2.11. Расчет вычислительной сложности, потребности в памяти и ожидаемых сроков обучения для заданной конфигурации модели и оборудования. Подгонка степенного закона зависимости качества от вычислительных затрат и предсказание для следующей ступени.

2.12. Безопасное чтение контрольных точек без исполнения постороннего кода, содержащегося в файле.

2.13. Применение обученной модели для порождения текста: продолжение текста с управлением случайностью выбора, доступ через программный интерфейс по протоколу HTTP.

3. Отличительная особенность

Доказуемость происхождения результата. Обучение ведется с нулевой инициализации: путей загрузки сторонних весов, преобразователей чужих форматов контрольных точек и совместимости с ними в программе нет. Происхождение обученной модели подтверждается манифестом прогона, контрольные суммы в котором связывают веса с конкретной версией исходного текста, обучающего набора и словаря.

4. Сведения об экземпляре

Версия1.0.1
Состав экземпляра38 файлов экземпляра, из них 33 файла исходного текста, 6 887 строк
Архив экземпляраsibir-ii-1.0.1.zip, 143 938 байт
Контрольная сумма архива (SHA-256)6a8cc5c671518c747e41646e45be9ed08763381f56b80ce7e86e9128a768d8f6
Язык программированияPython 3.12
Год создания2026

5. Среда функционирования

Операционные системы семейства Linux. Разработка и прогоны велись на Ubuntu 26.04 LTS с ядром 7.0. Интерпретатор Python версии не ниже 3.12. Требуется графический ускоритель с поддержкой программной платформы CUDA. Прогоны выполнялись на NVIDIA GeForce RTX 3090 с 24 ГБ видеопамяти, версия драйвера 595.84. Обучение моделей крупнее 300 млн параметров требует ускорителя с 24 ГБ видеопамяти либо распределения на несколько ускорителей.

Внешние библиотеки - свободные, с открытым исходным текстом: PyTorch (вычисления на ускорителе, лицензия BSD-3-Clause), NumPy (числовые массивы, BSD-3-Clause), Tokenizers (словарь и разбиение текста, Apache-2.0), PyArrow (чтение обучающих наборов в колоночном формате, Apache-2.0), bitsandbytes (необязательный компонент экономии памяти, MIT). Проприетарные иностранные компоненты не используются. Обращений к зарубежным сетевым службам в ходе работы программа не выполняет: обучающий набор, словарь и контрольные точки хранятся у пользователя.

Часть 2

Информация, необходимая для установки

Экземпляр поставляется архивом по лицензионному договору вместе с контрольной суммой SHA-256.

1. Проверка экземпляра

Экземпляр поставляется архивом sibir-ii-1.0.1.zip. До установки сверить контрольную сумму:

sha256sum sibir-ii-1.0.1.zip

Ожидаемое значение: 6a8cc5c671518c747e41646e45be9ed08763381f56b80ce7e86e9128a768d8f6.

2. Требования к окружению

ПоказательМинимальноРекомендуется
Операционная системаUbuntu 22.04Ubuntu 24.04 и новее
ИнтерпретаторPython 3.12Python 3.12
Оперативная память16 ГБ32 ГБ
Графический ускоритель12 ГБ видеопамяти24 ГБ и более
Свободное место на диске100 ГБпо объему набора и точек

3. Порядок установки

unzip sibir-ii-1.0.1.zip -d sibir-ii && cd sibir-ii
python3.12 -m venv .venv && . .venv/bin/activate
pip install torch --index-url https://download.pytorch.org/whl/cu126
pip install numpy tokenizers pyarrow

Адрес указателя пакетов для библиотеки PyTorch выбирается по версии программной платформы установленного ускорителя. Библиотека bitsandbytes устанавливается дополнительно и только при использовании режима экономии памяти.

4. Проверка установки

Работоспособность установки подтверждается расчетом конфигурации модели - операцией, не требующей ни обучающего набора, ни продолжительных вычислений:

python -c "from siberia.config import REGISTRY; print(sorted(REGISTRY))"

Команда выводит перечень доступных конфигураций моделей. Наличие графического ускорителя проверяется командой:

python -c "import torch; print(torch.cuda.is_available())"
Часть 3

Информация, необходимая для эксплуатации

Штатный порядок работы после установки: подготовка обучающего набора, запуск и возобновление обучения, измерение качества, применение обученной модели.

5. Подготовка обучающего набора

Порядок операций: проверка набора, сборка смеси тематических классов, выделение замороженного проверочного набора, удаление из обучающего набора текстов, попавших в проверочный.

python tools/check_corpus.py --data <каталог набора>
python tools/build_mixture.py --data <каталог> --out mixture.json
python tools/make_heldout.py --data <каталог> --out heldout/
python tools/decontaminate.py --data <каталог> --heldout heldout/

Последняя операция обязательна: без нее измеренное качество будет завышено, а сравнение с другими моделями потеряет смысл. Словарь готовится средством tools/train_tokenizer.py, упаковка набора в двоичные части - средством tools/pack_tokens.py.

6. Запуск обучения

python -m siberia.train --data <набор> --mixture mixture.json \

--tokenizer tokenizer.json --model siberia-260m \

--run runs/opyt-1 --micro-bs 4 --grad-accum 16

Для нескольких ускорителей запуск выполняется через torchrun с указанием их числа. До первого шага программа записывает в каталог прогона неизменяемый манифест с контрольными суммами исходного текста, набора и словаря.

7. Возобновление после остановки

python -m siberia.train ... --resume

Возобновление берет последнюю контрольную точку и сверяет манифест прогона. При расхождении модели, набора, словаря или версии исходного текста продолжение отклоняется с указанием расхождения - это защита от незаметной подмены условий опыта.

8. Измерение качества

python tools/evaluate.py --checkpoint runs/opyt-1/checkpoints/<точка>.pt \

--heldout heldout/ --device cuda

Результат - количество информации на байт текста (биты на байт) с разбивкой по тематическим классам. Неизменность проверочного набора подтверждается контрольными суммами. При расхождении измерение не выполняется.

9. Планирование следующей ступени

python tools/fit_scaling.py --points tochki.json --target siberia-1b

Существенное ограничение, установленное измерениями правообладателя: предсказание надежно внутри отрезка, покрытого имеющимися точками, и систематически смещено за его пределами. Доверительный интервал, выдаваемый средством, отражает разброс подгонки на имеющихся точках и занижает действительную неопределенность. Предсказание следует применять для планирования порядка величин, а не для обязательств по точному значению.

10. Применение обученной модели

python -m siberia.serve --run runs/opyt-1 --tokenizer tokenizer.json --port 8848

Поднимается служба, отвечающая по протоколу HTTP и порождающая продолжение поданного текста собственной обученной моделью. Обращений к сторонним службам служба не выполняет. Остановка - прекращением работы процесса. Контрольные точки и манифест прогона сохраняются в каталоге прогона.

Часть 4

Процессы, обеспечивающие поддержание жизненного цикла

Устранение неисправностей, совершенствование программы и сведения о персонале, необходимом для обеспечения такой поддержки.

1. Общие сведения

1.1. Документ описывает процессы поддержания жизненного цикла программы «Сибирь.ИИ» (Siberia AI): устранение неисправностей, совершенствование, персонал сопровождения.

1.2. Правообладатель и разработчик - Общество с ограниченной ответственностью «Финансовый искусственный интеллект». Исходный текст ведется в системе управления версиями. Каждый выпуск фиксируется версией и контрольной суммой архива экземпляра.

2. Устранение неисправностей

2.1. Обращения принимаются по адресам info@siberia-ai.ru и support@siberia-ai.ru. Обращение регистрируется, воспроизводится на стенде правообладателя, исправление проходит набор автоматических проверок и выпускается исправительной версией с новой контрольной суммой архива.

2.2. Набор автоматических проверок ведется в хранилище исходного текста правообладателя и в экземпляр программы не входит: он относится к средствам разработки, а не к самой программе. Изменение, не прошедшее проверки, в основную ветвь не включается.

2.3. Приоритетно устраняются неисправности, затрагивающие воспроизводимость: запись манифеста прогона, сверку контрольных сумм при возобновлении и неизменность проверочных наборов при измерении качества. Такие неисправности обесценивают результат обучения, а не только затрудняют работу.

3. Совершенствование

3.1. Развитие ведется составными частями (конфигурации моделей, цикл обучения, работа с обучающим набором, измерение качества, планирование бюджета, порождение текста). Изменения, затрагивающие формат контрольных точек или манифеста, сопровождаются средствами чтения прежнего формата: ранее полученные результаты обучения должны оставаться проверяемыми.

3.2. Новые возможности выпускаются очередными версиями. Изменения фиксируются в перечне изменений с указанием версии и контрольной суммы архива.

4. Персонал

4.1. Сопровождение обеспечивает разработчик программы. Численность персонала, обеспечивающего жизненный цикл, соответствует объему программы (38 файлов экземпляра, из них 33 файла исходного текста, 6 887 строк) и текущему числу эксплуатантов. При росте числа эксплуатантов предусмотрено выделение ролей разработчика и инженера технической поддержки.

4.2. Требования к персоналу: высшее техническое образование, владение языком Python, знание основ машинного обучения и администрирования операционных систем семейства Linux, навык работы с графическими ускорителями.

5. Данные эксплуатанта

5.1. Обучающие наборы, словари, контрольные точки и обученные модели размещаются в инфраструктуре эксплуатанта и правообладателю не передаются. Программа не выполняет обращений к внешним службам и не обрабатывает персональные данные. Средства поиска персональных данных в обучающем наборе применяются для их исключения из обучения.

Контакты технической поддержки - в разделе «Компания и поддержка» на главной странице.