EasyInstruct 项目介绍
项目概述
EasyInstruct 是一个易于使用的指令处理框架,专为大语言模型(LLM)如 GPT-4、LLaMA、ChatGLM 等研究实验设计的 Python 软件包。它将指令生成、选择和提示模块化处理,同时考虑这些模块之间的组合和交互。
背景与技术支持
EasyInstruct 支持多种指令生成技术,如:
- Self-Instruct:该方法从人工注释的种子任务库中随机取样,作为示例,促使 LLM 生成更多指令及其对应的输入输出对。
- Evol-Instruct:通过向 LLM 提供特定提示,引导其渐进式生成更复杂的指令。
- 反译(Backtranslation):通过预测文本中某一部分可被正答的指令来创建训练实例。
- KG2Instruct:利用文本中的信息预测出可被正确回答的指令创建训练实例。
选择指标则包括指令长度(Length)、困惑度(Perplexity)、词汇多样性(MTLD)、ROUGE 分数、GPT 评分、CIRS 等。
功能模块
- 指令生成器:帮助生成指令数据,用户可以根据需要选择适合的生成器。
- 指令选择器:从原始指令数据中提取高质量的数据,可根据需求使用不同的选择方法。
- 提示模块:标准化用户请求的构建过程,将其转化为指令提示以便 LLM 生成响应。
- 引擎模块:执行指令提示并在本地部署的 LLM 上运行。
快速开始
用户可以通过 Shell 脚本或 Gradio 应用快速开始使用 EasyInstruct。
使用 Shell 脚本
用户需先准备配置文件(YAML 格式),然后运行指定的 Shell 脚本进行指令生成或选择。
使用 Gradio 应用
通过 Gradio 应用,用户可以在本地或 HuggingFace Spaces 上快速体验 EasyInstruct。
安装指南
用户可以通过以下几种方式安装 EasyInstruct:
- 通过 git 仓库的 main 分支安装。
- 本地开发安装。
- 使用 PyPI 安装非最新版本。
其他相关信息
- EasyInstruct 已在 ACL 2024 的系统演示轨道进行展示。
- 项目接受社区贡献,用户可以在项目的 GitHub 页面上提交问题和需求。
总之,EasyInstruct 为研究人员提供了便利的工具以快速生成、选择和处理大量语言模型的指令,有效提高了实验的便捷性和准确性。