From 841e2963d003b28897e552352fb4ea0e6f1dc513 Mon Sep 17 00:00:00 2001 From: pasha Date: Sun, 22 Dec 2024 01:29:29 +0300 Subject: [PATCH] Readme and docs updated --- README.md | 18 ++++++++++++------ docs/Home.md | 24 +++++++++++++++++++++++- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f945df5..be43351 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,18 @@ Language Models (LLM). Обладает следующими возможностями: -- Единая конфигурация для подготовки датасетов, запуска обучения и инференса в формате YAML; +- Единая конфигурация для подготовки датасетов, запуска обучения и инференса в формате YAML + - Возможно указать отдельно токенизатор и модель + - При необходимости можно описать конфигурацию модели from scratch - Гибкая система подготовки датасетов, позволяющая скомбинировать несколько датасетов, каждый из них индивидуально - нарезать и преобразовать, после чего выполнить слияние и дедупликацию; -- Предусмотрены возможности обучения моделей с нуля (from scratch), full-train дообучения и LoRA/Peft дообучения; + нарезать и преобразовать, после чего выполнить слияние и дедупликацию + - Можно использовать датасеты типа `instruct` или `chat` произвольного формата, система преобразует их в + OpenAI-подобный chat типа messages + - Можно обучать function call модели с ролями function_call и function_response +- Предусмотрены возможности обучения моделей с нуля (from scratch), full-train дообучения и LoRA/Peft дообучения - В отличие от иных реализаций использует классы из пакета `transformers`, однако, можно указать путь до любого другого - класса описывающего модель и/или токенизатор и impruver будет использовать уже их; -- Поддерживает возможность распределённого обучения при помощи `accelerate`. + класса описывающего модель и/или токенизатор и `impruver` будет использовать уже их +- Поддерживает возможность распределённого обучения при помощи `accelerate` ## Рекомендации @@ -71,7 +76,8 @@ pip install -r requirements.txt | [rugpt3small](https://huggingface.co/ai-forever/rugpt3small_based_on_gpt2) | function call | [full-train](/configs/rugpt3small_full_fc.yaml) | | [zephyr-7b-beta](https://huggingface.co/HuggingFaceH4/zephyr-7b-beta) | [zephyr-python-ru](https://huggingface.co/MexIvanov/zephyr-python-ru) analog | [lora](/configs/zephyr_7B_lora_python-ru.yaml) | -Подробнее о том из чего состоят конфигурации и как их описывать сказано в [документации](https://github.com/EvilFreelancer/impruver/wiki). +Подробнее о том из чего состоят конфигурации и как их описывать сказано +в [документации](https://github.com/EvilFreelancer/impruver/wiki). ## Сборка датасета diff --git a/docs/Home.md b/docs/Home.md index 57bfe3a..3f93c0f 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -1 +1,23 @@ -Документация проекта `impruver` +# Impruver + +Набор скриптов и конфигураций для самостоятельного обучения Больших Языковых Моделей (БЯМ) или же на английском Large +Language Models (LLM). + +Вдохновлён проектами: [saiga](https://github.com/IlyaGusev/saiga), +[torchtune](https://github.com/pytorch/torchtune), +[nanoGPT](https://github.com/karpathy/nanoGPT). + +Обладает следующими возможностями: + +- Единая конфигурация для подготовки датасетов, запуска обучения и инференса в формате YAML + - Возможно указать отдельно токенизатор и модель + - При необходимости можно описать конфигурацию модели from scratch +- Гибкая система подготовки датасетов, позволяющая скомбинировать несколько датасетов, каждый из них индивидуально + нарезать и преобразовать, после чего выполнить слияние и дедупликацию + - Можно использовать датасеты типа `instruct` или `chat` произвольного формата, система преобразует их в + OpenAI-подобный chat типа messages + - Можно обучать function call модели с ролями function_call и function_response +- Предусмотрены возможности обучения моделей с нуля (from scratch), full-train дообучения и LoRA/Peft дообучения +- В отличие от иных реализаций использует классы из пакета `transformers`, однако, можно указать путь до любого другого + класса описывающего модель и/или токенизатор и `impruver` будет использовать уже их +- Поддерживает возможность распределённого обучения при помощи `accelerate`