Repolode
DLLXW

DLLXW/baby-llama2-chinese

Полный пайплайн предобучения с нуля и SFT небольшой китайской модели в стиле LLaMA2, который можно запустить на одной видеокарте с 24 ГБ памяти.

Звёзды
2,923
Форки
354
Открытые issues
42
Последний коммит
2 месяца назад

Что это?

Baby-Llama2-Chinese — учебный проект, в котором с нуля создают небольшую языковую модель для китайского языка в стиле LLaMA2. Он охватывает токенизацию корпуса, предобучение, supervised fine-tuning (SFT) на датасетах инструкций и инференс. Заявленная цель — обучить модель для чата с базовыми навыками ответов на вопросы по-китайски, используя одну видеокарту с 24 ГБ памяти.

В пайплайне используется токенизатор ChatGLM2-6B с вокабуляром из 64 793 токенов, который помещается в формат uint16; корпусы для предобучения, такие как Wikipedia-zh, BaiduBaiKe, C4_zh и WuDaoCorpora, преобразуются в бинарные файлы. Предобучение запускается через torchrun на нескольких GPU, а скрипты SFT формируют примеры «запрос—ответ» и вычисляют loss только для ответа. Для скачивания опубликованы чекпойнты предобученных моделей размером от 92M до 218M параметров, а также несколько вариантов SFT для общего и медицинского чата.

В репозитории также есть скрипты очистки данных: фильтрация коротких текстов и дедупликация с помощью MinHash или SimHash, а также единый infer.py, который загружает исторические чекпойнты и автоматически определяет размерности модели. Reward model и этап обучения с подкреплением указаны в планах, но пока не реализованы.

Ключевые возможности

  • 01В одном репозитории собраны настройка токенизатора, предобучение и полно-параметрический SFT.
  • 02Предобучает китайскую модель размером от 92M до 218M параметров на одной видеокарте с 24 ГБ памяти.
  • 03Преобразует корпусы в бинарные файлы uint16 с помощью токенизатора ChatGLM2-6B.
  • 04Содержит скрипты дедупликации корпусов с помощью MinHash и SimHash.
  • 05Предоставляет infer.py, который загружает чекпойнты предобучения и SFT и автоматически определяет размерности модели.
  • 06Публикует для скачивания веса предобученных моделей и моделей после дообучения.

Сценарии использования

  • Изучение того, как с нуля предобучают и дообучают небольшую модель в стиле LLaMA.
  • Эксперименты с китайскими корпусами для предобучения на ограниченных GPU-ресурсах.
  • Сравнение влияния размера модели и вокабуляра на loss при предобучении.
  • Создание небольшой чат-модели для конкретной предметной области, например модели для медицинских вопросов и ответов, на основе имеющихся данных SFT.

Быстрый старт

  1. 1

    Скачайте токенизированный корпус для предварительного обучения по ссылке Baidu Netdisk (около 118 ГБ).

  2. 2

    Поместите скачанные данные в каталог ./data и запустите скрипт обработки данных.

    python data_process.py
  3. 3

    Запустите предварительное обучение с помощью torchrun на 4 GPU (пример конфигурации из README).

    torchrun --standalone --nproc_per_node=4 pretrain.py
  4. 4

    Запустите дообучение SFT.

    python sft.py

Что важно знать

  • В примере конфигурации предварительного обучения из README предполагается наличие нескольких GPU; автор отмечает, что оборудование с 4 картами 3090 ограничивает размер модели и корпуса.
  • Полный корпус для предварительного обучения занимает около 118 ГБ, его необходимо скачать с Baidu Netdisk.
  • Большинство данных и моделей размещено на Baidu Netdisk, доступ к которому может быть неудобен за пределами Китая.
  • Документация написана преимущественно на китайском языке, а этап обучения с подкреплением всё ещё помечен как TODO.

Темы

Частые вопросы

Что такое baby-llama2-chinese?
Полный пайплайн предобучения с нуля и SFT небольшой китайской модели в стиле LLaMA2, который можно запустить на одной видеокарте с 24 ГБ памяти. Baby-Llama2-Chinese — учебный проект, в котором с нуля создают небольшую языковую модель для китайского языка в стиле LLaMA2. Он охватывает токенизацию корпуса, предобучение, supervised fine-tuning (SFT) на датасетах инструкций и инференс. Заявленная цель — обучить модель для чата с базовыми навыками ответов на вопросы по-китайски, используя одну видеокарту с 24 ГБ памяти.
baby-llama2-chinese можно использовать бесплатно? Какая у него лицензия?
baby-llama2-chinese распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
baby-llama2-chinese всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в baby-llama2-chinese — 13 авг. 2026 г..
Для чего можно использовать baby-llama2-chinese?
Изучение того, как с нуля предобучают и дообучают небольшую модель в стиле LLaMA. Эксперименты с китайскими корпусами для предобучения на ограниченных GPU-ресурсах. Сравнение влияния размера модели и вокабуляра на loss при предобучении. Создание небольшой чат-модели для конкретной предметной области, например модели для медицинских вопросов и ответов, на основе имеющихся данных SFT.
Как установить baby-llama2-chinese?
Скачайте токенизированный корпус для предварительного обучения по ссылке Baidu Netdisk (около 118 ГБ). Поместите скачанные данные в каталог ./data и запустите скрипт обработки данных.: python data_process.py Запустите предварительное обучение с помощью torchrun на 4 GPU (пример конфигурации из README).: torchrun --standalone --nproc_per_node=4 pretrain.py Запустите дообучение SFT.: python sft.py
Где скачать baby-llama2-chinese?
Исходный код и инструкции по установке — на GitHub: https://github.com/DLLXW/baby-llama2-chinese

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.

58,8 тыс.8,2 тыс.PythonMITОбновлён в прошлом месяце