From f7c5b2d105d7dfdb0ddee217e14fd695668f9c34 Mon Sep 17 00:00:00 2001 From: fenglui Date: Sun, 21 Jan 2024 05:01:53 +0800 Subject: [PATCH 1/3] fix torch_dtype check of export_model --- src/llmtuner/train/tuner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llmtuner/train/tuner.py b/src/llmtuner/train/tuner.py index d61d9a01..2d57f448 100644 --- a/src/llmtuner/train/tuner.py +++ b/src/llmtuner/train/tuner.py @@ -57,7 +57,7 @@ def export_model(args: Optional[Dict[str, Any]] = None): raise ValueError("The model is not a `PreTrainedModel`, export aborted.") setattr(model.config, "use_cache", True) - if getattr(model.config, "torch_dtype", None) == "bfloat16": + if getattr(model.config, "torch_dtype", None) == torch.bfloat16: model = model.to(torch.bfloat16).to("cpu") else: model = model.to(torch.float16).to("cpu") From ace7fd4e0a58c119ff4bedca2bde34aa0527961e Mon Sep 17 00:00:00 2001 From: Aleksandr Date: Sun, 21 Jan 2024 04:28:14 +0300 Subject: [PATCH 2/3] add russian lang --- src/llmtuner/webui/components/top.py | 2 +- src/llmtuner/webui/locales.py | 365 ++++++++++++++------------- 2 files changed, 194 insertions(+), 173 deletions(-) diff --git a/src/llmtuner/webui/components/top.py b/src/llmtuner/webui/components/top.py index 91bcc0d5..7cd58be6 100644 --- a/src/llmtuner/webui/components/top.py +++ b/src/llmtuner/webui/components/top.py @@ -16,7 +16,7 @@ def create_top() -> Dict[str, "Component"]: available_models = list(SUPPORTED_MODELS.keys()) + ["Custom"] with gr.Row(): - lang = gr.Dropdown(choices=["en", "zh"], scale=1) + lang = gr.Dropdown(choices=["en","ru", "zh"], scale=1) model_name = gr.Dropdown(choices=available_models, scale=3) model_path = gr.Textbox(scale=3) diff --git a/src/llmtuner/webui/locales.py b/src/llmtuner/webui/locales.py index 718dc57c..560f2ae4 100644 --- a/src/llmtuner/webui/locales.py +++ b/src/llmtuner/webui/locales.py @@ -1,222 +1,243 @@ LOCALES = { - "lang": {"en": {"label": "Lang"}, "zh": {"label": "语言"}}, - "model_name": {"en": {"label": "Model name"}, "zh": {"label": "模型名称"}}, + "lang": {"en": {"label": "Lang"}, "ru": {"label": "Русский"}, "zh": {"label": "语言"}}, + "model_name": {"en": {"label": "Model name"}, "ru": {"label": "Название модели"}, "zh": {"label": "模型名称"}}, "model_path": { "en": {"label": "Model path", "info": "Path to pretrained model or model identifier from Hugging Face."}, + "ru": {"label": "Путь к предварительно обученной модели или идентификатор модели от Hugging Face."}, "zh": {"label": "模型路径", "info": "本地模型的文件路径或 Hugging Face 的模型标识符。"}, }, - "finetuning_type": {"en": {"label": "Finetuning method"}, "zh": {"label": "微调方法"}}, - "adapter_path": {"en": {"label": "Adapter path"}, "zh": {"label": "适配器路径"}}, - "refresh_btn": {"en": {"value": "Refresh adapters"}, "zh": {"value": "刷新适配器"}}, - "advanced_tab": {"en": {"label": "Advanced configurations"}, "zh": {"label": "高级设置"}}, + "finetuning_type": {"en": {"label": "Finetuning method"}, "ru": {"label": "Метод дообучения"}, "zh": {"label": "微调方法"}}, + "adapter_path": {"en": {"label": "Adapter path"}, "ru": {"label": "Путь к адаптеру"}, "zh": {"label": "适配器路径"}}, + "refresh_btn": {"en": {"value": "Refresh adapters"}, "ru": {"value": "Обновить адаптеры"}, "zh": {"value": "刷新适配器"}}, + "advanced_tab": {"en": {"label": "Advanced configurations"}, "ru": {"label": "Расширенные конфигурации"}, "zh": {"label": "高级设置"}}, "quantization_bit": { "en": {"label": "Quantization bit", "info": "Enable 4/8-bit model quantization (QLoRA)."}, + "ru": {"label": "Уровень квантования", "info": "Включить 4/8-битное квантование модели (QLoRA)."}, "zh": {"label": "量化等级", "info": "启用 4/8 比特模型量化(QLoRA)。"}, }, "template": { "en": {"label": "Prompt template", "info": "The template used in constructing prompts."}, + "ru": {"label": "Шаблон запроса", "info": "Шаблон, используемый при формировании запросов."}, "zh": {"label": "提示模板", "info": "构建提示词时使用的模板"}, }, - "rope_scaling": {"en": {"label": "RoPE scaling"}, "zh": {"label": "RoPE 插值方法"}}, - "booster": {"en": {"label": "Booster"}, "zh": {"label": "加速方式"}}, + "rope_scaling": {"en": {"label": "RoPE scaling"}, "ru": {"label": "Масштабирование RoPE"}, "zh": {"label": "RoPE 插值方法"}}, + "booster": {"en": {"label": "Booster"}, "ru": {"label": "Ускоритель"}, "zh": {"label": "加速方式"}}, "training_stage": { "en": {"label": "Stage", "info": "The stage to perform in training."}, + "ru": {"label": "Этап", "info": "Этап выполнения обучения."}, "zh": {"label": "训练阶段", "info": "目前采用的训练方式。"}, }, "dataset_dir": { "en": {"label": "Data dir", "info": "Path to the data directory."}, + "ru": {"label": "Директория данных", "info": "Путь к директории данных."}, "zh": {"label": "数据路径", "info": "数据文件夹的路径。"}, }, - "dataset": {"en": {"label": "Dataset"}, "zh": {"label": "数据集"}}, - "data_preview_btn": {"en": {"value": "Preview dataset"}, "zh": {"value": "预览数据集"}}, - "preview_count": {"en": {"label": "Count"}, "zh": {"label": "数量"}}, - "page_index": {"en": {"label": "Page"}, "zh": {"label": "页数"}}, - "prev_btn": {"en": {"value": "Prev"}, "zh": {"value": "上一页"}}, - "next_btn": {"en": {"value": "Next"}, "zh": {"value": "下一页"}}, - "close_btn": {"en": {"value": "Close"}, "zh": {"value": "关闭"}}, - "preview_samples": {"en": {"label": "Samples"}, "zh": {"label": "样例"}}, + "dataset": {"en": {"label": "Dataset"}, "ru": {"label": "Набор данных"}, "zh": {"label": "数据集"}}, + "data_preview_btn": {"en": {"value": "Preview dataset"}, "ru": {"value": "Просмотреть набор данных"}, "zh": {"value": "预览数据集"}}, + "preview_count": {"en": {"label": "Count"}, "ru": {"label": "Количество"}, "zh": {"label": "数量"}}, + "page_index": {"en": {"label": "Page"}, "ru": {"label": "Страница"}, "zh": {"label": "页数"}}, + "prev_btn": {"en": {"value": "Prev"}, "ru": {"value": "Предыдущая"}, "zh": {"value": "上一页"}}, + "next_btn": {"en": {"value": "Next"}, "ru": {"value": "Следующая"}, "zh": {"value": "下一页"}}, + "close_btn": {"en": {"value": "Close"}, "ru": {"value": "Закрыть"}, "zh": {"value": "关闭"}}, + "preview_samples": {"en": {"label": "Samples"}, "ru": {"label": "Примеры"}, "zh": {"label": "样例"}}, "cutoff_len": { "en": {"label": "Cutoff length", "info": "Max tokens in input sequence."}, + "ru": {"label": "Длина обрезки", "info": "Максимальное количество токенов во входной последовательности."}, "zh": {"label": "截断长度", "info": "输入序列分词后的最大长度。"}, }, "learning_rate": { "en": {"label": "Learning rate", "info": "Initial learning rate for AdamW."}, + "ru": {"label": "Скорость обучения", "info": "Начальная скорость обучения для AdamW."}, "zh": {"label": "学习率", "info": "AdamW 优化器的初始学习率。"}, }, "num_train_epochs": { "en": {"label": "Epochs", "info": "Total number of training epochs to perform."}, + "ru": {"label": "Эпохи", "info": "Общее количество эпох обучения."}, "zh": {"label": "训练轮数", "info": "需要执行的训练总轮数。"}, }, "max_samples": { "en": {"label": "Max samples", "info": "Maximum samples per dataset."}, - "zh": {"label": "最大样本数", "info": "每个数据集最多使用的样本数。"}, + "ru": {"label": "Максимальное количество образцов", "info": "Максимальное количество образцов на набор данных."}, + "zh": {"label": "最大样本数", "info": "每个数据集的最大样本数。"}, }, "compute_type": { - "en": {"label": "Compute type", "info": "Whether to use fp16 or bf16 mixed precision training."}, - "zh": {"label": "计算类型", "info": "是否启用 FP16 或 BF16 混合精度训练。"}, + "en": {"label": "Compute type", "info": "Whether to use mixed precision training (fp16 or bf16)."}, + "ru": {"label": "Тип вычислений", "info": "Использовать ли обучение смешанной точности fp16 или bf16."}, + "zh": {"label": "计算类型", "info": "是否使用混合精度训练(fp16 或 bf16)。"}, }, "batch_size": { - "en": {"label": "Batch size", "info": "Number of samples to process per GPU."}, - "zh": {"label": "批处理大小", "info": "每块 GPU 上处理的样本数量。"}, + "en": {"label": "Batch size", "info": "Number of samples processed on each GPU."}, + "ru": {"label": "Размер пакета", "info": "Количество образцов для обработки на каждом GPU."}, + "zh": {"label": "批处理大小", "info": "每个 GPU 处理的样本数量。"}, }, "gradient_accumulation_steps": { - "en": {"label": "Gradient accumulation", "info": "Number of gradient accumulation steps."}, + "en": {"label": "Gradient accumulation", "info": "Number of steps for gradient accumulation."}, + "ru": {"label": "Накопление градиента", "info": "Количество шагов накопления градиента."}, "zh": {"label": "梯度累积", "info": "梯度累积的步数。"}, }, "lr_scheduler_type": { - "en": { - "label": "LR Scheduler", - "info": "Name of learning rate scheduler.", - }, - "zh": {"label": "学习率调节器", "info": "采用的学习率调节器名称。"}, + "en": {"label": "LR scheduler", "info": "Name of the learning rate scheduler."}, + "ru": {"label": "Планировщик скорости обучения", "info": "Название планировщика скорости обучения."}, + "zh": {"label": "学习率调节器", "info": "学习率调度器的名称。"}, }, - "max_grad_norm": { - "en": {"label": "Maximum gradient norm", "info": "Norm for gradient clipping.."}, - "zh": {"label": "最大梯度范数", "info": "用于梯度裁剪的范数。"}, - }, - "val_size": { - "en": {"label": "Val size", "info": "Proportion of data in the dev set."}, - "zh": {"label": "验证集比例", "info": "验证集占全部样本的百分比。"}, - }, - "extra_tab": {"en": {"label": "Extra configurations"}, "zh": {"label": "其它参数设置"}}, - "logging_steps": { - "en": {"label": "Logging steps", "info": "Number of steps between two logs."}, - "zh": {"label": "日志间隔", "info": "每两次日志输出间的更新步数。"}, - }, - "save_steps": { - "en": {"label": "Save steps", "info": "Number of steps between two checkpoints."}, - "zh": {"label": "保存间隔", "info": "每两次断点保存间的更新步数。"}, - }, - "warmup_steps": { - "en": {"label": "Warmup steps", "info": "Number of steps used for warmup."}, - "zh": {"label": "预热步数", "info": "学习率预热采用的步数。"}, - }, - "neftune_alpha": { - "en": {"label": "NEFTune Alpha", "info": "Magnitude of noise adding to embedding vectors."}, - "zh": {"label": "NEFTune 噪声参数", "info": "嵌入向量所添加的噪声大小。"}, - }, - "sft_packing": { - "en": { - "label": "Pack sequences", - "info": "Pack sequences into samples of fixed length in supervised fine-tuning.", - }, - "zh": {"label": "序列打包", "info": "在有监督微调阶段将序列打包为相同长度的样本。"}, - }, - "upcast_layernorm": { - "en": {"label": "Upcast LayerNorm", "info": "Upcast weights of layernorm in float32."}, - "zh": {"label": "缩放归一化层", "info": "将归一化层权重缩放至 32 位精度。"}, - }, - "lora_tab": {"en": {"label": "LoRA configurations"}, "zh": {"label": "LoRA 参数设置"}}, - "lora_rank": { - "en": {"label": "LoRA rank", "info": "The rank of LoRA matrices."}, - "zh": {"label": "LoRA 秩", "info": "LoRA 矩阵的秩。"}, - }, - "lora_dropout": { - "en": {"label": "LoRA Dropout", "info": "Dropout ratio of LoRA weights."}, - "zh": {"label": "LoRA 随机丢弃", "info": "LoRA 权重随机丢弃的概率。"}, - }, - "lora_target": { - "en": { - "label": "LoRA modules (optional)", - "info": "Name(s) of target modules to apply LoRA. Use commas to separate multiple modules.", - }, - "zh": {"label": "LoRA 作用模块(非必填)", "info": "应用 LoRA 的目标模块名称。使用英文逗号分隔多个名称。"}, - }, - "additional_target": { - "en": { - "label": "Additional modules (optional)", - "info": "Name(s) of modules apart from LoRA layers to be set as trainable. Use commas to separate multiple modules.", - }, - "zh": {"label": "附加模块(非必填)", "info": "除 LoRA 层以外的可训练模块名称。使用英文逗号分隔多个名称。"}, - }, - "create_new_adapter": { - "en": { - "label": "Create new adapter", - "info": "Whether to create a new adapter with randomly initialized weight or not.", - }, - "zh": {"label": "新建适配器", "info": "是否创建一个经过随机初始化的新适配器。"}, - }, - "rlhf_tab": {"en": {"label": "RLHF configurations"}, "zh": {"label": "RLHF 参数设置"}}, - "dpo_beta": { - "en": {"label": "DPO beta", "info": "Value of the beta parameter in the DPO loss."}, - "zh": {"label": "DPO beta 参数", "info": "DPO 损失函数中 beta 超参数大小。"}, - }, - "dpo_ftx": { - "en": {"label": "DPO-ftx weight", "info": "The weight of SFT loss in the DPO-ftx."}, - "zh": {"label": "DPO-ftx 权重", "info": "DPO-ftx 中 SFT 损失的权重大小。"}, - }, - "reward_model": { - "en": { - "label": "Reward model", - "info": "Adapter of the reward model for PPO training. (Needs to refresh adapters)", - }, - "zh": {"label": "奖励模型", "info": "PPO 训练中奖励模型的适配器路径。(需要刷新适配器)"}, - }, - "cmd_preview_btn": {"en": {"value": "Preview command"}, "zh": {"value": "预览命令"}}, - "start_btn": {"en": {"value": "Start"}, "zh": {"value": "开始"}}, - "stop_btn": {"en": {"value": "Abort"}, "zh": {"value": "中断"}}, - "output_dir": { - "en": {"label": "Output dir", "info": "Directory for saving results."}, - "zh": {"label": "输出目录", "info": "保存结果的路径。"}, - }, - "output_box": {"en": {"value": "Ready."}, "zh": {"value": "准备就绪。"}}, - "loss_viewer": {"en": {"label": "Loss"}, "zh": {"label": "损失"}}, - "predict": {"en": {"label": "Save predictions"}, "zh": {"label": "保存预测结果"}}, - "load_btn": {"en": {"value": "Load model"}, "zh": {"value": "加载模型"}}, - "unload_btn": {"en": {"value": "Unload model"}, "zh": {"value": "卸载模型"}}, - "info_box": {"en": {"value": "Model unloaded, please load a model first."}, "zh": {"value": "模型未加载,请先加载模型。"}}, - "system": {"en": {"placeholder": "System prompt (optional)"}, "zh": {"placeholder": "系统提示词(非必填)"}}, - "tools": {"en": {"placeholder": "Tools (optional)"}, "zh": {"placeholder": "工具列表(非必填)"}}, - "query": {"en": {"placeholder": "Input..."}, "zh": {"placeholder": "输入..."}}, - "submit_btn": {"en": {"value": "Submit"}, "zh": {"value": "提交"}}, - "clear_btn": {"en": {"value": "Clear history"}, "zh": {"value": "清空历史"}}, - "max_length": {"en": {"label": "Maximum length"}, "zh": {"label": "最大长度"}}, - "max_new_tokens": {"en": {"label": "Maximum new tokens"}, "zh": {"label": "最大生成长度"}}, - "top_p": {"en": {"label": "Top-p"}, "zh": {"label": "Top-p 采样值"}}, - "temperature": {"en": {"label": "Temperature"}, "zh": {"label": "温度系数"}}, - "max_shard_size": { - "en": {"label": "Max shard size (GB)", "info": "The maximum size for a model file."}, - "zh": {"label": "最大分块大小(GB)", "info": "单个模型文件的最大大小。"}, - }, - "export_quantization_bit": { - "en": {"label": "Export quantization bit.", "info": "Quantizing the exported model."}, - "zh": {"label": "导出量化等级", "info": "量化导出模型。"}, - }, - "export_quantization_dataset": { - "en": {"label": "Export quantization dataset.", "info": "The calibration dataset used for quantization."}, - "zh": {"label": "导出量化数据集", "info": "量化过程中使用的校准数据集。"}, - }, - "export_dir": { - "en": {"label": "Export dir", "info": "Directory to save exported model."}, - "zh": {"label": "导出目录", "info": "保存导出模型的文件夹路径。"}, - }, - "export_btn": {"en": {"value": "Export"}, "zh": {"value": "开始导出"}}, + + "max_grad_norm": { + "en": {"label": "Maximum gradient norm", "info": "Norm for gradient clipping."}, + "zh": {"label": "最大梯度范数", "info": "用于梯度裁剪的范数。"}, + "ru": {"label": "Максимальная норма градиента", "info": "Норма для обрезки градиента."}, +}, +"val_size": { + "en": {"label": "Val size", "info": "Proportion of data in the dev set."}, + "zh": {"label": "验证集比例", "info": "验证集占全部样本的百分比。"}, + "ru": {"label": "Размер валидации", "info": "Пропорция данных в наборе для разработки."}, +}, +"extra_tab": {"en": {"label": "Extra configurations"}, "zh": {"label": "其它参数设置"}, "ru": {"label": "Дополнительные конфигурации"}}, +"logging_steps": { + "en": {"label": "Logging steps", "info": "Number of steps between two logs."}, + "zh": {"label": "日志间隔", "info": "每两次日志输出间的更新步数。"}, + "ru": {"label": "Шаги логирования", "info": "Количество шагов между двумя записями в журнале."}, +}, +"save_steps": { + "en": {"label": "Save steps", "info": "Number of steps between two checkpoints."}, + "zh": {"label": "保存间隔", "info": "每两次断点保存间的更新步数。"}, + "ru": {"label": "Шаги сохранения", "info": "Количество шагов между двумя контрольными точками."}, +}, +"warmup_steps": { + "en": {"label": "Warmup steps", "info": "Number of steps used for warmup."}, + "zh": {"label": "预热步数", "info": "学习率预热采用的步数。"}, + "ru": {"label": "Шаги прогрева", "info": "Количество шагов, используемых для прогрева."}, +}, +"neftune_alpha": { + "en": {"label": "NEFTune Alpha", "info": "Magnitude of noise adding to embedding vectors."}, + "zh": {"label": "NEFTune 噪声参数", "info": "嵌入向量所添加的噪声大小。"}, + "ru": {"label": "NEFTune Alpha", "info": "Величина шума, добавляемого к векторам вложений."}, +}, +"sft_packing": { + "en": {"label": "Pack sequences", "info": "Pack sequences into samples of fixed length in supervised fine-tuning."}, + "zh": {"label": "序列打包", "info": "在有监督微调阶段将序列打包为相同长度的样本。"}, + "ru": {"label": "Упаковка последовательностей", "info": "Упаковка последовательностей в образцы фиксированной длины при контролируемой тонкой настройке."}, +}, +"upcast_layernorm": { + "en": {"label": "Upcast LayerNorm", "info": "Upcast weights of layernorm in float32."}, + "zh": {"label": "缩放归一化层", "info": "将归一化层权重缩放至 32 位精度。"}, + "ru": {"label": "Приведение весов LayerNorm", "info": "Приведение весов LayerNorm к float32."}, +}, +"lora_tab": {"en": {"label": "LoRA configurations"}, "zh": {"label": "LoRA 参数设置"}, "ru": {"label": "Конфигурации LoRA"}}, +"lora_rank": { + "en": {"label": "LoRA rank", "info": "The rank of LoRA matrices."}, + "zh": {"label": "LoRA 秩", "info": "LoRA 矩阵的秩。"}, + "ru": {"label": "Ранг матриц LoRA", "info": "Ранг матриц LoRA."}, +}, +"lora_dropout": { + "en": {"label": "LoRA Dropout", "info": "Dropout ratio of LoRA weights."}, + "zh": {"label": "LoRA 随机丢弃", "info": "LoRA 权重随机丢弃的概率。"}, + "ru": {"label": "Вероятность отсева LoRA", "info": "Вероятность отсева весов LoRA."}, +}, +"lora_target": { + "en": {"label": "LoRA modules (optional)", "info": "Name(s) of target modules to apply LoRA. Use commas to separate multiple modules."}, + "zh": {"label": "LoRA 作用模块(非必填)", "info": "应用 LoRA 的目标模块名称。使用英文逗号分隔多个名称。"}, + "ru": {"label": "Модули LoRA (опционально)", "info": "Имена целевых модулей для применения LoRA. Используйте запятые для разделения нескольких модулей."}, +}, +"additional_target": { + "en": {"label": "Additional modules (optional)", "info": "Name(s) of modules apart from LoRA layers to be set as trainable. Use commas to separate multiple modules."}, + "zh": {"label": "附加模块(非必填)", "info": "除 LoRA 层以外的可训练模块名称。使用英文逗号分隔多个名称。"}, + "ru": {"label": "Дополнительные модули (опционально)", "info": "Имена модулей, кроме слоев LoRA, которые следует установить в качестве обучаемых. Используйте запятые для разделения нескольких модулей."}, +}, +"create_new_adapter": { + "en": {"label": "Create new adapter", "info": "Whether to create a new adapter with randomly initialized weight or not."}, + "zh": {"label": "新建适配器", "info": "是否创建一个经过随机初始化的新适配器。"}, + "ru": {"label": "Создать новый адаптер", "info": "Создать новый адаптер с случайной инициализацией веса или нет."}, +}, +"rlhf_tab": {"en": {"label": "RLHF configurations"}, "zh": {"label": "RLHF 参数设置"}, "ru": {"label": "Конфигурации RLHF"}}, +"dpo_beta": { + "en": {"label": "DPO beta", "info": "Value of the beta parameter in the DPO loss."}, + "zh": {"label": "DPO beta 参数", "info": "DPO 损失函数中 beta 超参数大小。"}, + "ru": {"label": "DPO бета", "info": "Значение параметра бета в функции потерь DPO."}, +}, +"dpo_ftx": { + "en": {"label": "DPO-ftx weight", "info": "The weight of SFT loss in the DPO-ftx."}, + "zh": {"label": "DPO-ftx 权重", "info": "DPO-ftx 中 SFT 损失的权重大小。"}, + "ru": {"label": "Вес DPO-ftx", "info": "Вес функции потерь SFT в DPO-ftx."}, +}, +"reward_model": { + "en": {"label": "Reward model", "info": "Adapter of the reward model for PPO training. (Needs to refresh adapters)"}, + "zh": {"label": "奖励模型", "info": "PPO 训练中奖励模型的适配器路径。(需要刷新适配器)"}, + "ru": {"label": "Модель вознаграждения", "info": "Адаптер модели вознаграждения для обучения PPO. (Необходимо обновить адаптеры)"}, +}, +"cmd_preview_btn": {"en": {"value": "Preview command"}, "zh": {"value": "预览命令"}, "ru": {"value": "Просмотр команды"}}, +"start_btn": {"en": {"value": "Start"}, "zh": {"value": "开始"}, "ru": {"value": "Начать"}}, +"stop_btn": {"en": {"value": "Abort"}, "zh": {"value": "中断"}, "ru": {"value": "Прервать"}}, +"output_dir": { + "en": {"label": "Output dir", "info": "Directory for saving results."}, + "zh": {"label": "输出目录", "info": "保存结果的路径。"}, + "ru": {"label": "Выходной каталог", "info": "Каталог для сохранения результатов."}, +}, + +"output_box": {"en": {"value": "Ready."}, "zh": {"value": "准备就绪。"}, "ru": {"value": "Готово."}}, +"loss_viewer": {"en": {"label": "Loss"}, "zh": {"label": "损失"}, "ru": {"label": "Потери"}}, +"predict": {"en": {"label": "Save predictions"}, "zh": {"label": "保存预测结果"}, "ru": {"label": "Сохранить предсказания"}}, +"load_btn": {"en": {"value": "Load model"}, "zh": {"value": "加载模型"}, "ru": {"value": "Загрузить модель"}}, +"unload_btn": {"en": {"value": "Unload model"}, "zh": {"value": "卸载模型"}, "ru": {"value": "Выгрузить модель"}}, +"info_box": {"en": {"value": "Model unloaded, please load a model first."}, "zh": {"value": "模型未加载,请先加载模型。"}, "ru": {"value": "Модель не загружена, загрузите модель сначала."}}, +"system": {"en": {"placeholder": "System prompt (optional)"}, "zh": {"placeholder": "系统提示词(非必填)"}, "ru": {"placeholder": "Системный запрос (по желанию)"}}, +"tools": {"en": {"placeholder": "Tools (optional)"}, "zh": {"placeholder": "工具列表(非必填)"}, "ru": {"placeholder": "Инструменты (по желанию)"}}, +"query": {"en": {"placeholder": "Input..."}, "zh": {"placeholder": "输入..."}, "ru": {"placeholder": "Ввод..."}}, +"submit_btn": {"en": {"value": "Submit"}, "zh": {"value": "提交"}, "ru": {"value": "Отправить"}}, +"clear_btn": {"en": {"value": "Clear history"}, "zh": {"value": "清空历史"}, "ru": {"value": "Очистить историю"}}, +"max_length": {"en": {"label": "Maximum length"}, "zh": {"label": "最大长度"}, "ru": {"label": "Максимальная длина"}}, +"max_new_tokens": {"en": {"label": "Maximum new tokens"}, "zh": {"label": "最大生成长度"}, "ru": {"label": "Максимальное количество новых токенов"}}, +"top_p": {"en": {"label": "Top-p"}, "zh": {"label": "Top-p 采样值"}, "ru": {"label": "Лучшие-p"}}, +"temperature": {"en": {"label": "Temperature"}, "zh": {"label": "温度系数"}, "ru": {"label": "Температура"}}, +"max_shard_size": { + "en": {"label": "Max shard size (GB)", "info": "The maximum size for a model file."}, + "zh": {"label": "最大分块大小(GB)", "info": "单个模型文件的最大大小。"}, + "ru": {"label": "Максимальный размер фрагмента (ГБ)", "info": "Максимальный размер файла модели."}, +}, +"export_quantization_bit": { + "en": {"label": "Export quantization bit.", "info": "Quantizing the exported model."}, + "zh": {"label": "导出量化等级", "info": "量化导出模型。"}, + "ru": {"label": "Экспорт бита квантования", "info": "Квантование экспортируемой модели."}, +}, +"export_quantization_dataset": { + "en": {"label": "Export quantization dataset.", "info": "The calibration dataset used for quantization."}, + "zh": {"label": "导出量化数据集", "info": "量化过程中使用的校准数据集。"}, + "ru": {"label": "Экспорт набора данных для квантования", "info": "Набор данных калибровки, используемый для квантования."}, +}, +"export_dir": { + "en": {"label": "Export dir", "info": "Directory to save exported model."}, + "zh": {"label": "导出目录", "info": "保存导出模型的文件夹路径。"}, + "ru": {"label": "Каталог экспорта", "info": "Каталог для сохранения экспортированной модели."}, +}, +"export_btn": {"en": {"value": "Export"}, "zh": {"value": "开始导出"}, "ru": {"value": "Экспорт"}}, + } ALERTS = { - "err_conflict": {"en": "A process is in running, please abort it firstly.", "zh": "任务已存在,请先中断训练。"}, - "err_exists": {"en": "You have loaded a model, please unload it first.", "zh": "模型已存在,请先卸载模型。"}, - "err_no_model": {"en": "Please select a model.", "zh": "请选择模型。"}, - "err_no_path": {"en": "Model not found.", "zh": "模型未找到。"}, - "err_no_dataset": {"en": "Please choose a dataset.", "zh": "请选择数据集。"}, - "err_no_adapter": {"en": "Please select an adapter.", "zh": "请选择一个适配器。"}, - "err_no_export_dir": {"en": "Please provide export dir.", "zh": "请填写导出目录"}, - "err_failed": {"en": "Failed.", "zh": "训练出错。"}, - "err_demo": { - "en": "Training is unavailable in demo mode, duplicate the space to a private one first.", - "zh": "展示模式不支持训练,请先复制到私人空间。", - }, - "err_device_count": {"en": "Multiple GPUs are not supported yet.", "zh": "尚不支持多 GPU 训练。"}, - "err_tool_name": {"en": "Tool name not found.", "zh": "工具名称未找到。"}, - "err_json_schema": {"en": "Invalid JSON schema.", "zh": "Json 格式错误。"}, - "info_aborting": {"en": "Aborted, wait for terminating...", "zh": "训练中断,正在等待线程结束……"}, - "info_aborted": {"en": "Ready.", "zh": "准备就绪。"}, - "info_finished": {"en": "Finished.", "zh": "训练完毕。"}, - "info_loading": {"en": "Loading model...", "zh": "加载中……"}, - "info_unloading": {"en": "Unloading model...", "zh": "卸载中……"}, - "info_loaded": {"en": "Model loaded, now you can chat with your model!", "zh": "模型已加载,可以开始聊天了!"}, - "info_unloaded": {"en": "Model unloaded.", "zh": "模型已卸载。"}, - "info_exporting": {"en": "Exporting model...", "zh": "正在导出模型……"}, - "info_exported": {"en": "Model exported.", "zh": "模型导出完成。"}, +"err_conflict": {"en": "A process is in running, please abort it firstly.", "zh": "任务已存在,请先中断训练。", "ru": "Процесс уже запущен, пожалуйста, сначала прервите его."}, +"err_exists": {"en": "You have loaded a model, please unload it first.", "zh": "模型已存在,请先卸载模型。", "ru": "Вы загрузили модель, сначала разгрузите ее."}, +"err_no_model": {"en": "Please select a model.", "zh": "请选择模型。", "ru": "Пожалуйста, выберите модель."}, +"err_no_path": {"en": "Model not found.", "zh": "模型未找到。", "ru": "Модель не найдена."}, +"err_no_dataset": {"en": "Please choose a dataset.", "zh": "请选择数据集。", "ru": "Пожалуйста, выберите набор данных."}, +"err_no_adapter": {"en": "Please select an adapter.", "zh": "请选择一个适配器。", "ru": "Пожалуйста, выберите адаптер."}, +"err_no_export_dir": {"en": "Please provide export dir.", "zh": "请填写导出目录", "ru": "Пожалуйста, укажите каталог для экспорта."}, +"err_failed": {"en": "Failed.", "zh": "训练出错。", "ru": "Ошибка."}, +"err_demo": { + "en": "Training is unavailable in demo mode, duplicate the space to a private one first.", + "zh": "展示模式不支持训练,请先复制到私人空间。", + "ru": "Обучение недоступно в демонстрационном режиме, сначала скопируйте пространство в частное." +}, +"err_device_count": {"en": "Multiple GPUs are not supported yet.", "zh": "尚不支持多 GPU 训练。", "ru": "Пока не поддерживается множественные GPU."}, +"err_tool_name": {"en": "Tool name not found.", "zh": "工具名称未找到。", "ru": "Имя инструмента не найдено."}, +"err_json_schema": {"en": "Invalid JSON schema.", "zh": "Json 格式错误。", "ru": "Неверная схема JSON."}, +"info_aborting": {"en": "Aborted, wait for terminating...", "zh": "训练中断,正在等待线程结束……", "ru": "Прервано, ожидание завершения..."}, +"info_aborted": {"en": "Ready.", "zh": "准备就绪。", "ru": "Готово."}, +"info_finished": {"en": "Finished.", "zh": "训练完毕。", "ru": "Завершено."}, +"info_loading": {"en": "Loading model...", "zh": "加载中……", "ru": "Загрузка модели..."}, +"info_unloading": {"en": "Unloading model...", "zh": "卸载中……", "ru": "Выгрузка модели..."}, +"info_loaded": {"en": "Model loaded, now you can chat with your model!", "zh": "模型已加载,可以开始聊天了!", "ru": "Модель загружена, теперь вы можете общаться с вашей моделью!"}, +"info_unloaded": {"en": "Model unloaded.", "zh": "模型已卸载。", "ru": "Модель выгружена."}, +"info_exporting": {"en": "Exporting model...", "zh": "正在导出模型……", "ru": "Экспорт модели..."}, +"info_exported": {"en": "Model exported.", "zh": "模型导出完成。", "ru": "Модель экспортирована."}, + } From 3c1e256992c306cd44c5023573bde84a76a5df75 Mon Sep 17 00:00:00 2001 From: hiyouga Date: Sun, 21 Jan 2024 12:34:17 +0800 Subject: [PATCH 3/3] format --- src/llmtuner/webui/components/top.py | 2 +- src/llmtuner/webui/locales.py | 436 +++++++++++++++++---------- 2 files changed, 275 insertions(+), 163 deletions(-) diff --git a/src/llmtuner/webui/components/top.py b/src/llmtuner/webui/components/top.py index 7cd58be6..e715d08f 100644 --- a/src/llmtuner/webui/components/top.py +++ b/src/llmtuner/webui/components/top.py @@ -16,7 +16,7 @@ def create_top() -> Dict[str, "Component"]: available_models = list(SUPPORTED_MODELS.keys()) + ["Custom"] with gr.Row(): - lang = gr.Dropdown(choices=["en","ru", "zh"], scale=1) + lang = gr.Dropdown(choices=["en", "ru", "zh"], scale=1) model_name = gr.Dropdown(choices=available_models, scale=3) model_path = gr.Textbox(scale=3) diff --git a/src/llmtuner/webui/locales.py b/src/llmtuner/webui/locales.py index 560f2ae4..8fd6ca28 100644 --- a/src/llmtuner/webui/locales.py +++ b/src/llmtuner/webui/locales.py @@ -6,10 +6,22 @@ LOCALES = { "ru": {"label": "Путь к предварительно обученной модели или идентификатор модели от Hugging Face."}, "zh": {"label": "模型路径", "info": "本地模型的文件路径或 Hugging Face 的模型标识符。"}, }, - "finetuning_type": {"en": {"label": "Finetuning method"}, "ru": {"label": "Метод дообучения"}, "zh": {"label": "微调方法"}}, + "finetuning_type": { + "en": {"label": "Finetuning method"}, + "ru": {"label": "Метод дообучения"}, + "zh": {"label": "微调方法"}, + }, "adapter_path": {"en": {"label": "Adapter path"}, "ru": {"label": "Путь к адаптеру"}, "zh": {"label": "适配器路径"}}, - "refresh_btn": {"en": {"value": "Refresh adapters"}, "ru": {"value": "Обновить адаптеры"}, "zh": {"value": "刷新适配器"}}, - "advanced_tab": {"en": {"label": "Advanced configurations"}, "ru": {"label": "Расширенные конфигурации"}, "zh": {"label": "高级设置"}}, + "refresh_btn": { + "en": {"value": "Refresh adapters"}, + "ru": {"value": "Обновить адаптеры"}, + "zh": {"value": "刷新适配器"}, + }, + "advanced_tab": { + "en": {"label": "Advanced configurations"}, + "ru": {"label": "Расширенные конфигурации"}, + "zh": {"label": "高级设置"}, + }, "quantization_bit": { "en": {"label": "Quantization bit", "info": "Enable 4/8-bit model quantization (QLoRA)."}, "ru": {"label": "Уровень квантования", "info": "Включить 4/8-битное квантование модели (QLoRA)."}, @@ -20,7 +32,11 @@ LOCALES = { "ru": {"label": "Шаблон запроса", "info": "Шаблон, используемый при формировании запросов."}, "zh": {"label": "提示模板", "info": "构建提示词时使用的模板"}, }, - "rope_scaling": {"en": {"label": "RoPE scaling"}, "ru": {"label": "Масштабирование RoPE"}, "zh": {"label": "RoPE 插值方法"}}, + "rope_scaling": { + "en": {"label": "RoPE scaling"}, + "ru": {"label": "Масштабирование RoPE"}, + "zh": {"label": "RoPE 插值方法"}, + }, "booster": {"en": {"label": "Booster"}, "ru": {"label": "Ускоритель"}, "zh": {"label": "加速方式"}}, "training_stage": { "en": {"label": "Stage", "info": "The stage to perform in training."}, @@ -33,7 +49,11 @@ LOCALES = { "zh": {"label": "数据路径", "info": "数据文件夹的路径。"}, }, "dataset": {"en": {"label": "Dataset"}, "ru": {"label": "Набор данных"}, "zh": {"label": "数据集"}}, - "data_preview_btn": {"en": {"value": "Preview dataset"}, "ru": {"value": "Просмотреть набор данных"}, "zh": {"value": "预览数据集"}}, + "data_preview_btn": { + "en": {"value": "Preview dataset"}, + "ru": {"value": "Просмотреть набор данных"}, + "zh": {"value": "预览数据集"}, + }, "preview_count": {"en": {"label": "Count"}, "ru": {"label": "Количество"}, "zh": {"label": "数量"}}, "page_index": {"en": {"label": "Page"}, "ru": {"label": "Страница"}, "zh": {"label": "页数"}}, "prev_btn": {"en": {"value": "Prev"}, "ru": {"value": "Предыдущая"}, "zh": {"value": "上一页"}}, @@ -57,7 +77,10 @@ LOCALES = { }, "max_samples": { "en": {"label": "Max samples", "info": "Maximum samples per dataset."}, - "ru": {"label": "Максимальное количество образцов", "info": "Максимальное количество образцов на набор данных."}, + "ru": { + "label": "Максимальное количество образцов", + "info": "Максимальное количество образцов на набор данных.", + }, "zh": {"label": "最大样本数", "info": "每个数据集的最大样本数。"}, }, "compute_type": { @@ -80,164 +103,253 @@ LOCALES = { "ru": {"label": "Планировщик скорости обучения", "info": "Название планировщика скорости обучения."}, "zh": {"label": "学习率调节器", "info": "学习率调度器的名称。"}, }, - - "max_grad_norm": { - "en": {"label": "Maximum gradient norm", "info": "Norm for gradient clipping."}, - "zh": {"label": "最大梯度范数", "info": "用于梯度裁剪的范数。"}, - "ru": {"label": "Максимальная норма градиента", "info": "Норма для обрезки градиента."}, -}, -"val_size": { - "en": {"label": "Val size", "info": "Proportion of data in the dev set."}, - "zh": {"label": "验证集比例", "info": "验证集占全部样本的百分比。"}, - "ru": {"label": "Размер валидации", "info": "Пропорция данных в наборе для разработки."}, -}, -"extra_tab": {"en": {"label": "Extra configurations"}, "zh": {"label": "其它参数设置"}, "ru": {"label": "Дополнительные конфигурации"}}, -"logging_steps": { - "en": {"label": "Logging steps", "info": "Number of steps between two logs."}, - "zh": {"label": "日志间隔", "info": "每两次日志输出间的更新步数。"}, - "ru": {"label": "Шаги логирования", "info": "Количество шагов между двумя записями в журнале."}, -}, -"save_steps": { - "en": {"label": "Save steps", "info": "Number of steps between two checkpoints."}, - "zh": {"label": "保存间隔", "info": "每两次断点保存间的更新步数。"}, - "ru": {"label": "Шаги сохранения", "info": "Количество шагов между двумя контрольными точками."}, -}, -"warmup_steps": { - "en": {"label": "Warmup steps", "info": "Number of steps used for warmup."}, - "zh": {"label": "预热步数", "info": "学习率预热采用的步数。"}, - "ru": {"label": "Шаги прогрева", "info": "Количество шагов, используемых для прогрева."}, -}, -"neftune_alpha": { - "en": {"label": "NEFTune Alpha", "info": "Magnitude of noise adding to embedding vectors."}, - "zh": {"label": "NEFTune 噪声参数", "info": "嵌入向量所添加的噪声大小。"}, - "ru": {"label": "NEFTune Alpha", "info": "Величина шума, добавляемого к векторам вложений."}, -}, -"sft_packing": { - "en": {"label": "Pack sequences", "info": "Pack sequences into samples of fixed length in supervised fine-tuning."}, - "zh": {"label": "序列打包", "info": "在有监督微调阶段将序列打包为相同长度的样本。"}, - "ru": {"label": "Упаковка последовательностей", "info": "Упаковка последовательностей в образцы фиксированной длины при контролируемой тонкой настройке."}, -}, -"upcast_layernorm": { - "en": {"label": "Upcast LayerNorm", "info": "Upcast weights of layernorm in float32."}, - "zh": {"label": "缩放归一化层", "info": "将归一化层权重缩放至 32 位精度。"}, - "ru": {"label": "Приведение весов LayerNorm", "info": "Приведение весов LayerNorm к float32."}, -}, -"lora_tab": {"en": {"label": "LoRA configurations"}, "zh": {"label": "LoRA 参数设置"}, "ru": {"label": "Конфигурации LoRA"}}, -"lora_rank": { - "en": {"label": "LoRA rank", "info": "The rank of LoRA matrices."}, - "zh": {"label": "LoRA 秩", "info": "LoRA 矩阵的秩。"}, - "ru": {"label": "Ранг матриц LoRA", "info": "Ранг матриц LoRA."}, -}, -"lora_dropout": { - "en": {"label": "LoRA Dropout", "info": "Dropout ratio of LoRA weights."}, - "zh": {"label": "LoRA 随机丢弃", "info": "LoRA 权重随机丢弃的概率。"}, - "ru": {"label": "Вероятность отсева LoRA", "info": "Вероятность отсева весов LoRA."}, -}, -"lora_target": { - "en": {"label": "LoRA modules (optional)", "info": "Name(s) of target modules to apply LoRA. Use commas to separate multiple modules."}, - "zh": {"label": "LoRA 作用模块(非必填)", "info": "应用 LoRA 的目标模块名称。使用英文逗号分隔多个名称。"}, - "ru": {"label": "Модули LoRA (опционально)", "info": "Имена целевых модулей для применения LoRA. Используйте запятые для разделения нескольких модулей."}, -}, -"additional_target": { - "en": {"label": "Additional modules (optional)", "info": "Name(s) of modules apart from LoRA layers to be set as trainable. Use commas to separate multiple modules."}, - "zh": {"label": "附加模块(非必填)", "info": "除 LoRA 层以外的可训练模块名称。使用英文逗号分隔多个名称。"}, - "ru": {"label": "Дополнительные модули (опционально)", "info": "Имена модулей, кроме слоев LoRA, которые следует установить в качестве обучаемых. Используйте запятые для разделения нескольких модулей."}, -}, -"create_new_adapter": { - "en": {"label": "Create new adapter", "info": "Whether to create a new adapter with randomly initialized weight or not."}, - "zh": {"label": "新建适配器", "info": "是否创建一个经过随机初始化的新适配器。"}, - "ru": {"label": "Создать новый адаптер", "info": "Создать новый адаптер с случайной инициализацией веса или нет."}, -}, -"rlhf_tab": {"en": {"label": "RLHF configurations"}, "zh": {"label": "RLHF 参数设置"}, "ru": {"label": "Конфигурации RLHF"}}, -"dpo_beta": { - "en": {"label": "DPO beta", "info": "Value of the beta parameter in the DPO loss."}, - "zh": {"label": "DPO beta 参数", "info": "DPO 损失函数中 beta 超参数大小。"}, - "ru": {"label": "DPO бета", "info": "Значение параметра бета в функции потерь DPO."}, -}, -"dpo_ftx": { - "en": {"label": "DPO-ftx weight", "info": "The weight of SFT loss in the DPO-ftx."}, - "zh": {"label": "DPO-ftx 权重", "info": "DPO-ftx 中 SFT 损失的权重大小。"}, - "ru": {"label": "Вес DPO-ftx", "info": "Вес функции потерь SFT в DPO-ftx."}, -}, -"reward_model": { - "en": {"label": "Reward model", "info": "Adapter of the reward model for PPO training. (Needs to refresh adapters)"}, - "zh": {"label": "奖励模型", "info": "PPO 训练中奖励模型的适配器路径。(需要刷新适配器)"}, - "ru": {"label": "Модель вознаграждения", "info": "Адаптер модели вознаграждения для обучения PPO. (Необходимо обновить адаптеры)"}, -}, -"cmd_preview_btn": {"en": {"value": "Preview command"}, "zh": {"value": "预览命令"}, "ru": {"value": "Просмотр команды"}}, -"start_btn": {"en": {"value": "Start"}, "zh": {"value": "开始"}, "ru": {"value": "Начать"}}, -"stop_btn": {"en": {"value": "Abort"}, "zh": {"value": "中断"}, "ru": {"value": "Прервать"}}, -"output_dir": { - "en": {"label": "Output dir", "info": "Directory for saving results."}, - "zh": {"label": "输出目录", "info": "保存结果的路径。"}, - "ru": {"label": "Выходной каталог", "info": "Каталог для сохранения результатов."}, -}, - -"output_box": {"en": {"value": "Ready."}, "zh": {"value": "准备就绪。"}, "ru": {"value": "Готово."}}, -"loss_viewer": {"en": {"label": "Loss"}, "zh": {"label": "损失"}, "ru": {"label": "Потери"}}, -"predict": {"en": {"label": "Save predictions"}, "zh": {"label": "保存预测结果"}, "ru": {"label": "Сохранить предсказания"}}, -"load_btn": {"en": {"value": "Load model"}, "zh": {"value": "加载模型"}, "ru": {"value": "Загрузить модель"}}, -"unload_btn": {"en": {"value": "Unload model"}, "zh": {"value": "卸载模型"}, "ru": {"value": "Выгрузить модель"}}, -"info_box": {"en": {"value": "Model unloaded, please load a model first."}, "zh": {"value": "模型未加载,请先加载模型。"}, "ru": {"value": "Модель не загружена, загрузите модель сначала."}}, -"system": {"en": {"placeholder": "System prompt (optional)"}, "zh": {"placeholder": "系统提示词(非必填)"}, "ru": {"placeholder": "Системный запрос (по желанию)"}}, -"tools": {"en": {"placeholder": "Tools (optional)"}, "zh": {"placeholder": "工具列表(非必填)"}, "ru": {"placeholder": "Инструменты (по желанию)"}}, -"query": {"en": {"placeholder": "Input..."}, "zh": {"placeholder": "输入..."}, "ru": {"placeholder": "Ввод..."}}, -"submit_btn": {"en": {"value": "Submit"}, "zh": {"value": "提交"}, "ru": {"value": "Отправить"}}, -"clear_btn": {"en": {"value": "Clear history"}, "zh": {"value": "清空历史"}, "ru": {"value": "Очистить историю"}}, -"max_length": {"en": {"label": "Maximum length"}, "zh": {"label": "最大长度"}, "ru": {"label": "Максимальная длина"}}, -"max_new_tokens": {"en": {"label": "Maximum new tokens"}, "zh": {"label": "最大生成长度"}, "ru": {"label": "Максимальное количество новых токенов"}}, -"top_p": {"en": {"label": "Top-p"}, "zh": {"label": "Top-p 采样值"}, "ru": {"label": "Лучшие-p"}}, -"temperature": {"en": {"label": "Temperature"}, "zh": {"label": "温度系数"}, "ru": {"label": "Температура"}}, -"max_shard_size": { - "en": {"label": "Max shard size (GB)", "info": "The maximum size for a model file."}, - "zh": {"label": "最大分块大小(GB)", "info": "单个模型文件的最大大小。"}, - "ru": {"label": "Максимальный размер фрагмента (ГБ)", "info": "Максимальный размер файла модели."}, -}, -"export_quantization_bit": { - "en": {"label": "Export quantization bit.", "info": "Quantizing the exported model."}, - "zh": {"label": "导出量化等级", "info": "量化导出模型。"}, - "ru": {"label": "Экспорт бита квантования", "info": "Квантование экспортируемой модели."}, -}, -"export_quantization_dataset": { - "en": {"label": "Export quantization dataset.", "info": "The calibration dataset used for quantization."}, - "zh": {"label": "导出量化数据集", "info": "量化过程中使用的校准数据集。"}, - "ru": {"label": "Экспорт набора данных для квантования", "info": "Набор данных калибровки, используемый для квантования."}, -}, -"export_dir": { - "en": {"label": "Export dir", "info": "Directory to save exported model."}, - "zh": {"label": "导出目录", "info": "保存导出模型的文件夹路径。"}, - "ru": {"label": "Каталог экспорта", "info": "Каталог для сохранения экспортированной модели."}, -}, -"export_btn": {"en": {"value": "Export"}, "zh": {"value": "开始导出"}, "ru": {"value": "Экспорт"}}, - + "max_grad_norm": { + "en": {"label": "Maximum gradient norm", "info": "Norm for gradient clipping."}, + "ru": {"label": "Максимальная норма градиента", "info": "Норма для обрезки градиента."}, + "zh": {"label": "最大梯度范数", "info": "用于梯度裁剪的范数。"}, + }, + "val_size": { + "en": {"label": "Val size", "info": "Proportion of data in the dev set."}, + "ru": {"label": "Размер валидации", "info": "Пропорция данных в наборе для разработки."}, + "zh": {"label": "验证集比例", "info": "验证集占全部样本的百分比。"}, + }, + "extra_tab": { + "en": {"label": "Extra configurations"}, + "ru": {"label": "Дополнительные конфигурации"}, + "zh": {"label": "其它参数设置"}, + }, + "logging_steps": { + "en": {"label": "Logging steps", "info": "Number of steps between two logs."}, + "ru": {"label": "Шаги логирования", "info": "Количество шагов между двумя записями в журнале."}, + "zh": {"label": "日志间隔", "info": "每两次日志输出间的更新步数。"}, + }, + "save_steps": { + "en": {"label": "Save steps", "info": "Number of steps between two checkpoints."}, + "ru": {"label": "Шаги сохранения", "info": "Количество шагов между двумя контрольными точками."}, + "zh": {"label": "保存间隔", "info": "每两次断点保存间的更新步数。"}, + }, + "warmup_steps": { + "en": {"label": "Warmup steps", "info": "Number of steps used for warmup."}, + "ru": {"label": "Шаги прогрева", "info": "Количество шагов, используемых для прогрева."}, + "zh": {"label": "预热步数", "info": "学习率预热采用的步数。"}, + }, + "neftune_alpha": { + "en": {"label": "NEFTune Alpha", "info": "Magnitude of noise adding to embedding vectors."}, + "ru": {"label": "NEFTune Alpha", "info": "Величина шума, добавляемого к векторам вложений."}, + "zh": {"label": "NEFTune 噪声参数", "info": "嵌入向量所添加的噪声大小。"}, + }, + "sft_packing": { + "en": { + "label": "Pack sequences", + "info": "Pack sequences into samples of fixed length in supervised fine-tuning.", + }, + "ru": { + "label": "Упаковка последовательностей", + "info": "Упаковка последовательностей в образцы фиксированной длины при контролируемой тонкой настройке.", + }, + "zh": {"label": "序列打包", "info": "在指令监督微调阶段将序列打包为相同长度的样本。"}, + }, + "upcast_layernorm": { + "en": {"label": "Upcast LayerNorm", "info": "Upcast weights of layernorm in float32."}, + "ru": {"label": "Приведение весов LayerNorm", "info": "Приведение весов LayerNorm к float32."}, + "zh": {"label": "缩放归一化层", "info": "将归一化层权重缩放至 32 位精度。"}, + }, + "lora_tab": { + "en": {"label": "LoRA configurations"}, + "ru": {"label": "Конфигурации LoRA"}, + "zh": {"label": "LoRA 参数设置"}, + }, + "lora_rank": { + "en": {"label": "LoRA rank", "info": "The rank of LoRA matrices."}, + "ru": {"label": "Ранг матриц LoRA", "info": "Ранг матриц LoRA."}, + "zh": {"label": "LoRA 秩", "info": "LoRA 矩阵的秩。"}, + }, + "lora_dropout": { + "en": {"label": "LoRA Dropout", "info": "Dropout ratio of LoRA weights."}, + "ru": {"label": "Вероятность отсева LoRA", "info": "Вероятность отсева весов LoRA."}, + "zh": {"label": "LoRA 随机丢弃", "info": "LoRA 权重随机丢弃的概率。"}, + }, + "lora_target": { + "en": { + "label": "LoRA modules (optional)", + "info": "Name(s) of target modules to apply LoRA. Use commas to separate multiple modules.", + }, + "ru": { + "label": "Модули LoRA (опционально)", + "info": "Имена целевых модулей для применения LoRA. Используйте запятые для разделения нескольких модулей.", + }, + "zh": {"label": "LoRA 作用模块(非必填)", "info": "应用 LoRA 的目标模块名称。使用英文逗号分隔多个名称。"}, + }, + "additional_target": { + "en": { + "label": "Additional modules (optional)", + "info": "Name(s) of modules apart from LoRA layers to be set as trainable. Use commas to separate multiple modules.", + }, + "ru": { + "label": "Дополнительные модули (опционально)", + "info": "Имена модулей, кроме слоев LoRA, которые следует установить в качестве обучаемых. Используйте запятые для разделения нескольких модулей.", + }, + "zh": {"label": "附加模块(非必填)", "info": "除 LoRA 层以外的可训练模块名称。使用英文逗号分隔多个名称。"}, + }, + "create_new_adapter": { + "en": { + "label": "Create new adapter", + "info": "Whether to create a new adapter with randomly initialized weight or not.", + }, + "ru": { + "label": "Создать новый адаптер", + "info": "Создать новый адаптер с случайной инициализацией веса или нет.", + }, + "zh": {"label": "新建适配器", "info": "是否创建一个经过随机初始化的新适配器。"}, + }, + "rlhf_tab": { + "en": {"label": "RLHF configurations"}, + "ru": {"label": "Конфигурации RLHF"}, + "zh": {"label": "RLHF 参数设置"}, + }, + "dpo_beta": { + "en": {"label": "DPO beta", "info": "Value of the beta parameter in the DPO loss."}, + "ru": {"label": "DPO бета", "info": "Значение параметра бета в функции потерь DPO."}, + "zh": {"label": "DPO beta 参数", "info": "DPO 损失函数中 beta 超参数大小。"}, + }, + "dpo_ftx": { + "en": {"label": "DPO-ftx weight", "info": "The weight of SFT loss in the DPO-ftx."}, + "ru": {"label": "Вес DPO-ftx", "info": "Вес функции потерь SFT в DPO-ftx."}, + "zh": {"label": "DPO-ftx 权重", "info": "DPO-ftx 中 SFT 损失的权重大小。"}, + }, + "reward_model": { + "en": { + "label": "Reward model", + "info": "Adapter of the reward model for PPO training. (Needs to refresh adapters)", + }, + "ru": { + "label": "Модель вознаграждения", + "info": "Адаптер модели вознаграждения для обучения PPO. (Необходимо обновить адаптеры)", + }, + "zh": {"label": "奖励模型", "info": "PPO 训练中奖励模型的适配器路径。(需要刷新适配器)"}, + }, + "cmd_preview_btn": { + "en": {"value": "Preview command"}, + "ru": {"value": "Просмотр команды"}, + "zh": {"value": "预览命令"}, + }, + "start_btn": {"en": {"value": "Start"}, "ru": {"value": "Начать"}, "zh": {"value": "开始"}}, + "stop_btn": {"en": {"value": "Abort"}, "ru": {"value": "Прервать"}, "zh": {"value": "中断"}}, + "output_dir": { + "en": {"label": "Output dir", "info": "Directory for saving results."}, + "ru": {"label": "Выходной каталог", "info": "Каталог для сохранения результатов."}, + "zh": {"label": "输出目录", "info": "保存结果的路径。"}, + }, + "output_box": {"en": {"value": "Ready."}, "ru": {"value": "Готово."}, "zh": {"value": "准备就绪。"}}, + "loss_viewer": {"en": {"label": "Loss"}, "ru": {"label": "Потери"}, "zh": {"label": "损失"}}, + "predict": { + "en": {"label": "Save predictions"}, + "ru": {"label": "Сохранить предсказания"}, + "zh": {"label": "保存预测结果"}, + }, + "load_btn": {"en": {"value": "Load model"}, "ru": {"value": "Загрузить модель"}, "zh": {"value": "加载模型"}}, + "unload_btn": {"en": {"value": "Unload model"}, "ru": {"value": "Выгрузить модель"}, "zh": {"value": "卸载模型"}}, + "info_box": { + "en": {"value": "Model unloaded, please load a model first."}, + "ru": {"value": "Модель не загружена, загрузите модель сначала."}, + "zh": {"value": "模型未加载,请先加载模型。"}, + }, + "system": { + "en": {"placeholder": "System prompt (optional)"}, + "ru": {"placeholder": "Системный запрос (по желанию)"}, + "zh": {"placeholder": "系统提示词(非必填)"}, + }, + "tools": { + "en": {"placeholder": "Tools (optional)"}, + "ru": {"placeholder": "Инструменты (по желанию)"}, + "zh": {"placeholder": "工具列表(非必填)"}, + }, + "query": {"en": {"placeholder": "Input..."}, "ru": {"placeholder": "Ввод..."}, "zh": {"placeholder": "输入..."}}, + "submit_btn": {"en": {"value": "Submit"}, "ru": {"value": "Отправить"}, "zh": {"value": "提交"}}, + "clear_btn": {"en": {"value": "Clear history"}, "ru": {"value": "Очистить историю"}, "zh": {"value": "清空历史"}}, + "max_length": {"en": {"label": "Maximum length"}, "ru": {"label": "Максимальная длина"}, "zh": {"label": "最大长度"}}, + "max_new_tokens": { + "en": {"label": "Maximum new tokens"}, + "ru": {"label": "Максимальное количество новых токенов"}, + "zh": {"label": "最大生成长度"}, + }, + "top_p": {"en": {"label": "Top-p"}, "ru": {"label": "Лучшие-p"}, "zh": {"label": "Top-p 采样值"}}, + "temperature": {"en": {"label": "Temperature"}, "ru": {"label": "Температура"}, "zh": {"label": "温度系数"}}, + "max_shard_size": { + "en": {"label": "Max shard size (GB)", "info": "The maximum size for a model file."}, + "ru": {"label": "Максимальный размер фрагмента (ГБ)", "info": "Максимальный размер файла модели."}, + "zh": {"label": "最大分块大小(GB)", "info": "单个模型文件的最大大小。"}, + }, + "export_quantization_bit": { + "en": {"label": "Export quantization bit.", "info": "Quantizing the exported model."}, + "ru": {"label": "Экспорт бита квантования", "info": "Квантование экспортируемой модели."}, + "zh": {"label": "导出量化等级", "info": "量化导出模型。"}, + }, + "export_quantization_dataset": { + "en": {"label": "Export quantization dataset.", "info": "The calibration dataset used for quantization."}, + "ru": { + "label": "Экспорт набора данных для квантования", + "info": "Набор данных калибровки, используемый для квантования.", + }, + "zh": {"label": "导出量化数据集", "info": "量化过程中使用的校准数据集。"}, + }, + "export_dir": { + "en": {"label": "Export dir", "info": "Directory to save exported model."}, + "ru": {"label": "Каталог экспорта", "info": "Каталог для сохранения экспортированной модели."}, + "zh": {"label": "导出目录", "info": "保存导出模型的文件夹路径。"}, + }, + "export_btn": {"en": {"value": "Export"}, "ru": {"value": "Экспорт"}, "zh": {"value": "开始导出"}}, } ALERTS = { -"err_conflict": {"en": "A process is in running, please abort it firstly.", "zh": "任务已存在,请先中断训练。", "ru": "Процесс уже запущен, пожалуйста, сначала прервите его."}, -"err_exists": {"en": "You have loaded a model, please unload it first.", "zh": "模型已存在,请先卸载模型。", "ru": "Вы загрузили модель, сначала разгрузите ее."}, -"err_no_model": {"en": "Please select a model.", "zh": "请选择模型。", "ru": "Пожалуйста, выберите модель."}, -"err_no_path": {"en": "Model not found.", "zh": "模型未找到。", "ru": "Модель не найдена."}, -"err_no_dataset": {"en": "Please choose a dataset.", "zh": "请选择数据集。", "ru": "Пожалуйста, выберите набор данных."}, -"err_no_adapter": {"en": "Please select an adapter.", "zh": "请选择一个适配器。", "ru": "Пожалуйста, выберите адаптер."}, -"err_no_export_dir": {"en": "Please provide export dir.", "zh": "请填写导出目录", "ru": "Пожалуйста, укажите каталог для экспорта."}, -"err_failed": {"en": "Failed.", "zh": "训练出错。", "ru": "Ошибка."}, -"err_demo": { - "en": "Training is unavailable in demo mode, duplicate the space to a private one first.", - "zh": "展示模式不支持训练,请先复制到私人空间。", - "ru": "Обучение недоступно в демонстрационном режиме, сначала скопируйте пространство в частное." -}, -"err_device_count": {"en": "Multiple GPUs are not supported yet.", "zh": "尚不支持多 GPU 训练。", "ru": "Пока не поддерживается множественные GPU."}, -"err_tool_name": {"en": "Tool name not found.", "zh": "工具名称未找到。", "ru": "Имя инструмента не найдено."}, -"err_json_schema": {"en": "Invalid JSON schema.", "zh": "Json 格式错误。", "ru": "Неверная схема JSON."}, -"info_aborting": {"en": "Aborted, wait for terminating...", "zh": "训练中断,正在等待线程结束……", "ru": "Прервано, ожидание завершения..."}, -"info_aborted": {"en": "Ready.", "zh": "准备就绪。", "ru": "Готово."}, -"info_finished": {"en": "Finished.", "zh": "训练完毕。", "ru": "Завершено."}, -"info_loading": {"en": "Loading model...", "zh": "加载中……", "ru": "Загрузка модели..."}, -"info_unloading": {"en": "Unloading model...", "zh": "卸载中……", "ru": "Выгрузка модели..."}, -"info_loaded": {"en": "Model loaded, now you can chat with your model!", "zh": "模型已加载,可以开始聊天了!", "ru": "Модель загружена, теперь вы можете общаться с вашей моделью!"}, -"info_unloaded": {"en": "Model unloaded.", "zh": "模型已卸载。", "ru": "Модель выгружена."}, -"info_exporting": {"en": "Exporting model...", "zh": "正在导出模型……", "ru": "Экспорт модели..."}, -"info_exported": {"en": "Model exported.", "zh": "模型导出完成。", "ru": "Модель экспортирована."}, - + "err_conflict": { + "en": "A process is in running, please abort it first.", + "ru": "Процесс уже запущен, пожалуйста, сначала прервите его.", + "zh": "任务已存在,请先中断训练。", + }, + "err_exists": { + "en": "You have loaded a model, please unload it first.", + "ru": "Вы загрузили модель, сначала разгрузите ее.", + "zh": "模型已存在,请先卸载模型。", + }, + "err_no_model": {"en": "Please select a model.", "ru": "Пожалуйста, выберите модель.", "zh": "请选择模型。"}, + "err_no_path": {"en": "Model not found.", "ru": "Модель не найдена.", "zh": "模型未找到。"}, + "err_no_dataset": {"en": "Please choose a dataset.", "ru": "Пожалуйста, выберите набор данных.", "zh": "请选择数据集。"}, + "err_no_adapter": {"en": "Please select an adapter.", "ru": "Пожалуйста, выберите адаптер.", "zh": "请选择一个适配器。"}, + "err_no_export_dir": { + "en": "Please provide export dir.", + "ru": "Пожалуйста, укажите каталог для экспорта.", + "zh": "请填写导出目录", + }, + "err_failed": {"en": "Failed.", "ru": "Ошибка.", "zh": "训练出错。"}, + "err_demo": { + "en": "Training is unavailable in demo mode, duplicate the space to a private one first.", + "ru": "Обучение недоступно в демонстрационном режиме, сначала скопируйте пространство в частное.", + "zh": "展示模式不支持训练,请先复制到私人空间。", + }, + "err_device_count": { + "en": "Multiple GPUs are not supported yet.", + "ru": "Пока не поддерживается множественные GPU.", + "zh": "尚不支持多 GPU 训练。", + }, + "err_tool_name": {"en": "Tool name not found.", "ru": "Имя инструмента не найдено.", "zh": "工具名称未找到。"}, + "err_json_schema": {"en": "Invalid JSON schema.", "ru": "Неверная схема JSON.", "zh": "Json 格式错误。"}, + "info_aborting": { + "en": "Aborted, wait for terminating...", + "ru": "Прервано, ожидание завершения...", + "zh": "训练中断,正在等待线程结束……", + }, + "info_aborted": {"en": "Ready.", "ru": "Готово.", "zh": "准备就绪。"}, + "info_finished": {"en": "Finished.", "ru": "Завершено.", "zh": "训练完毕。"}, + "info_loading": {"en": "Loading model...", "ru": "Загрузка модели...", "zh": "加载中……"}, + "info_unloading": {"en": "Unloading model...", "ru": "Выгрузка модели...", "zh": "卸载中……"}, + "info_loaded": { + "en": "Model loaded, now you can chat with your model!", + "ru": "Модель загружена, теперь вы можете общаться с вашей моделью!", + "zh": "模型已加载,可以开始聊天了!", + }, + "info_unloaded": {"en": "Model unloaded.", "ru": "Модель выгружена.", "zh": "模型已卸载。"}, + "info_exporting": {"en": "Exporting model...", "ru": "Экспорт модели...", "zh": "正在导出模型……"}, + "info_exported": {"en": "Model exported.", "ru": "Модель экспортирована.", "zh": "模型导出完成。"}, }