154 lines
5.8 KiB
C
154 lines
5.8 KiB
C
#ifndef XENITH_HELP_H
|
||
#define XENITH_HELP_H
|
||
|
||
#define NEW
|
||
#define TRAIN
|
||
#define GEN
|
||
#define INFO
|
||
#define GRADCHECK
|
||
#define BENCH
|
||
//#define OLLAMA
|
||
#define UPDATE
|
||
//#define TUI
|
||
|
||
#ifdef NEW
|
||
#define CMD_NEW " new создать новую модель из корпуса\n"
|
||
#else
|
||
#define CMD_NEW ""
|
||
#endif
|
||
#ifdef TRAIN
|
||
#define CMD_TRAIN " train обучить существующую модель\n"
|
||
#else
|
||
#define CMD_TRAIN ""
|
||
#endif
|
||
#ifdef GEN
|
||
#define CMD_GEN " gen сгенерировать текст\n"
|
||
#else
|
||
#define CMD_GEN ""
|
||
#endif
|
||
#ifdef INFO
|
||
#define CMD_INFO " info показать конфигурацию модели\n"
|
||
#else
|
||
#define CMD_INFO ""
|
||
#endif
|
||
#ifdef GRADCHECK
|
||
#define CMD_GRADCHECK " gradcheck проверить градиенты численно\n"
|
||
#else
|
||
#define CMD_GRADCHECK ""
|
||
#endif
|
||
#ifdef BENCH
|
||
#define CMD_BENCH " bench замерить скорость форварда и шага обучения\n"
|
||
#else
|
||
#define CMD_BENCH ""
|
||
#endif
|
||
#ifdef OLLAMA
|
||
#define CMD_OLLAMA " ollama запустьтить сервер с api ollama\n"
|
||
#else
|
||
#define CMD_OLLAMA ""
|
||
#endif
|
||
#ifdef UPDATE
|
||
#define CMD_UPDATE " update Автомотическое обновление с гита\n"
|
||
#else
|
||
#define CMD_UPDATE ""
|
||
#endif
|
||
#ifdef TUI
|
||
#define CMD_TUI " tui Графическо-консольный режим (находится в тестировании)\n"
|
||
#else
|
||
#define CMD_TUI ""
|
||
#endif
|
||
|
||
|
||
#ifdef NEW
|
||
#define OPT_NEW "\nОПЦИИ new\n" \
|
||
" --corpus PATH текст для построения словаря (обязательно)\n" \
|
||
" --out PATH файл модели (по умолчанию model.xnh)\n" \
|
||
" --vocab N размер словаря (по умолчанию 512)\n" \
|
||
" --embd N размер эмбеддинга (по умолчанию 128)\n" \
|
||
" --layers N число слоёв (по умолчанию 4)\n" \
|
||
" --heads N число голов (по умолчанию 4)\n" \
|
||
" --ctx N максимальный контекст (по умолчанию 128)\n" \
|
||
" --ffn N размер FFN (по умолчанию 4*embd)\n" \
|
||
" --rope N база RoPE (по умолчанию 10000)\n" \
|
||
" --seed N зерно инициализации (по умолчанию 1337)\n" \
|
||
" --untied отдельная матрица выхода вместо привязанной к wte\n" \
|
||
" --view-vocab выводит словарь нейросети\n"
|
||
#else
|
||
#define OPT_NEW ""
|
||
#endif
|
||
#ifdef TRAIN
|
||
#define OPT_TRAIN "\nОПЦИИ train\n" \
|
||
" --corpus PATH обучающий текст (обязательно)\n" \
|
||
" --out PATH куда сохранить (по умолчанию перезапись входного файла)\n" \
|
||
" --steps N шагов (по умолчанию 1000)\n" \
|
||
" --batch N батч (по умолчанию 8)\n" \
|
||
" --block N длина окна (по умолчанию 64)\n" \
|
||
" --lr F скорость (по умолчанию 3e-4)\n" \
|
||
" --wd F weight decay (по умолчанию 0.01)\n" \
|
||
" --clip F клип нормы градиента (по умолчанию 1.0)\n" \
|
||
" --warmup N прогрев (по умолчанию 100)\n" \
|
||
" --seed N зерно (по умолчанию 1337)\n" \
|
||
" --ckpt-every N промежуточное сохранение каждые N шагов (0 = нет)\n" \
|
||
" --val-every N валидация каждые N шагов (0 = нет)\n" \
|
||
" --val-tokens N размер валидации (по умолчанию 20000)\n" \
|
||
" --threads N потоков (0 = все ядра)\n" \
|
||
" --resume продолжить с сохранённого step (Adam-state из файла)\n" \
|
||
" --fast эксперементаль флаг который ускоряет foreword примерно в x2-x5\n"
|
||
#else
|
||
#define OPT_TRAIN ""
|
||
#endif
|
||
#ifdef GEN
|
||
#define OPT_GEN "\nОПЦИИ gen\n" \
|
||
" --prompt STR стартовый текст\n" \
|
||
" --n N сколько токенов (по умолчанию 200)\n" \
|
||
" --temp F температура, 0 = жадный выбор (по умолчанию 0.8)\n" \
|
||
" --top-k N top-k (0 = выкл)\n" \
|
||
" --top-p F top-p (1.0 = выкл)\n" \
|
||
" --seed N зерно\n" \
|
||
" --no-stream не печатать в процессе\n" \
|
||
" --batch \"a;b;c\" несколько промптов OPTчерез ;\n" \
|
||
" --show-tokens показать id токенов\n"
|
||
#else
|
||
#define OPT_GEN ""
|
||
#endif
|
||
#ifdef GRADCHECK
|
||
#define OPT_GRADCHECK "\nОПЦИИ GRADCHECK\n" \
|
||
" --fast эксперементаль флаг который ускоряет foreword примерно в x2-x5\n"
|
||
#else
|
||
#define OPT_GRADCHECK ""
|
||
#endif
|
||
#ifdef BENCH
|
||
#define OPT_BENCH "\nОПЦИИ BENCH\n" \
|
||
" --fast эксперементаль флаг который ускоряет foreword примерно в x2-x5\n"
|
||
#else
|
||
#define OPT_BENCH ""
|
||
#endif
|
||
#ifdef OLLAMA
|
||
#define OPT_OLLAMA "\nОПЦИИ ollama\n" \
|
||
" --port PORT порт на котором будет открыт сервер\n" \
|
||
" --conf NAME.conf конфиг с настройками и списком моделей\n"
|
||
#else
|
||
#define OPT_OLLAMA ""
|
||
#endif
|
||
|
||
#define HELP_TEXT \
|
||
"ИСПОЛЬЗОВАНИЕ\n" \
|
||
" ./bin/Xenith <команда> [опции]\n\n" \
|
||
"КОМАНДЫ\n" \
|
||
CMD_NEW \
|
||
CMD_TRAIN \
|
||
CMD_GEN \
|
||
CMD_INFO \
|
||
CMD_GRADCHECK \
|
||
CMD_BENCH \
|
||
CMD_OLLAMA \
|
||
CMD_UPDATE \
|
||
CMD_TUI \
|
||
OPT_NEW \
|
||
OPT_TRAIN \
|
||
OPT_GEN \
|
||
OPT_GRADCHECK \
|
||
OPT_BENCH \
|
||
OPT_OLLAMA \
|
||
"\n"
|
||
|
||
#endif |