LongChat 开源项目使用教程
1. 项目目录结构及介绍
LongChat 项目目录结构如下:
LongChat/
├── data/ # 存储训练和评估数据
├── docs/ # 项目文档
├── longchat/ # LongChat 的主要代码
├── longeval/ # LongEval 的评估代码
├── .gitignore # Git 忽略文件
├── LICENSE # Apache-2.0 许可文件
├── README.md # 项目说明文件
└── pyproject.toml # 项目配置文件
data/
:该目录包含了项目所需的训练数据和评估数据。docs/
:项目文档目录,存放项目的使用说明和相关文档。longchat/
:包含了 LongChat 的主要实现代码,包括训练和模型定义等。longeval/
:包含了 LongEval 的评估代码,用于对模型进行性能评估。.gitignore
:指定了 Git 应该忽略的文件和目录。LICENSE
:项目的许可文件,本项目采用 Apache-2.0 许可。README.md
:项目说明文件,提供了项目的基本信息和安装使用指南。pyproject.toml
:项目配置文件,定义了项目的依赖和其他元数据。
2. 项目的启动文件介绍
项目的启动主要是通过 longchat/
目录下的 Python 脚本进行的。以下是一些主要的启动文件:
train Condense_16K.py
:这是用于训练 LongChat 模型的 Python 脚本。它使用分布式训练来提高训练效率。eval.py
:这是 LongEval 中的评估脚本,用于对训练好的模型进行评估。
启动训练脚本的基本命令如下:
python -m torch.distributed.run --nproc_per_node=8 \
longchat/train/fine_tune/train_condense_16K.py \
--model_name_or_path <path-to-llama> \
--data_path data/dummy_conversation.json \
--bf16 \
--output_dir outputs \
--num_train_epochs 3 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 4 \
--gradient_accumulation_steps 1 \
--evaluation_strategy no \
--save_strategy steps \
--save_steps 1000 \
--save_total_limit 1 \
--learning_rate 2e-5 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--fsdp "full_shard auto_wrap" \
--fsdp_transformer_layer_cls_to_wrap 'LlamaDecoderLayer' \
--tf32 True \
--model_max_length 16384 \
--gradient_checkpointing True \
--lazy_preprocess True
请根据你的实际情况修改 --model_name_or_path
和其他参数。
3. 项目的配置文件介绍
项目的配置主要是通过 pyproject.toml
文件来管理的。这个文件定义了项目的依赖项和其他元数据。下面是一个 pyproject.toml
文件的示例:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
name = "LongChat"
version = "0.1.0"
description = "An open-source project for training and evaluating long-context LLM based chatbots."
long_description = "..."
long_description_content_type = "text/markdown"
packages = ["longchat", "longeval"]
python_requires = ">=3.10"
install_requires = [
"torch",
"transformers",
"torch-distributed-run",
# 其他依赖项
]
这个文件指定了项目名称、版本、描述、依赖项等信息。在项目的开发和使用过程中,这些配置项可能会被修改以适应不同需求。
以上就是 LongChat 开源项目的使用教程,希望能帮助您顺利开始使用该项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考