EasyInstruct 使用教程
1. 项目介绍
EasyInstruct 是一个用于处理大型语言模型(LLMs)指令的 Python 包。它旨在简化指令生成、选择和提示的过程,适用于 GPT-4、LLaMA、ChatGLM 等模型。EasyInstruct 通过模块化的方式处理指令生成、选择和提示,并考虑它们之间的组合和交互。
主要功能
- 指令生成:支持多种指令生成技术,如 Self-Instruct、Evol-Instruct、Backtranslation 和 KG2Instruct。
- 指令选择:提供多种指令选择指标,如 Length、Perplexity、MTLD、ROUGE、GPT score 和 CIRS。
- API 服务:支持多种 LLM 产品,如 OpenAI GPT-3.5、GPT-4、Anthropic Claude、Cohere Command 等。
2. 项目快速启动
安装
你可以通过以下命令从 GitHub 仓库安装 EasyInstruct:
pip install git+https://github.com/zjunlp/EasyInstruct@main
快速启动示例
以下是一个使用 EasyInstruct 生成指令的快速启动示例:
# 导入必要的模块
from easyinstruct import SelfInstructGenerator
# 配置生成器参数
generator = SelfInstructGenerator(
target_dir="data/generations/",
data_format="alpaca",
seed_tasks_path="data/seed_tasks.jsonl",
generated_instructions_path="generated_instructions.jsonl",
generated_instances_path="generated_instances.jsonl",
num_instructions_to_generate=100,
engine="gpt-3.5-turbo",
num_prompt_instructions=8
)
# 生成指令
generator.generate()
3. 应用案例和最佳实践
案例1:使用 Self-Instruct 生成指令
Self-Instruct 是一种从人类注释的种子任务池中随机采样指令的方法,并使用 LLM 生成更多指令和相应的输入-输出对。以下是一个使用 Self-Instruct 生成指令的示例:
from easyinstruct import SelfInstructGenerator
generator = SelfInstructGenerator(
target_dir="data/generations/",
data_format="alpaca",
seed_tasks_path="data/seed_tasks.jsonl",
generated_instructions_path="generated_instructions.jsonl",
generated_instances_path="generated_instances.jsonl",
num_instructions_to_generate=100,
engine="gpt-3.5-turbo",
num_prompt_instructions=8
)
generator.generate()
案例2:使用 Evol-Instruct 生成复杂指令
Evol-Instruct 是一种通过特定提示将初始指令逐步升级为更复杂指令的方法。以下是一个使用 Evol-Instruct 生成复杂指令的示例:
from easyinstruct import EvolInstructGenerator
generator = EvolInstructGenerator(
target_dir="data/evol_generations/",
data_format="alpaca",
seed_tasks_path="data/seed_tasks.jsonl",
generated_instructions_path="evol_generated_instructions.jsonl",
generated_instances_path="evol_generated_instances.jsonl",
num_instructions_to_generate=100,
engine="gpt-3.5-turbo",
num_prompt_instructions=8
)
generator.generate()
4. 典型生态项目
KnowLM
EasyInstruct 是 KnowLM 项目的一个子项目。KnowLM 是一个专注于大型语言模型研究和应用的开源项目,旨在提供一个全面的工具集和框架,帮助研究人员和开发者更高效地使用和开发 LLMs。
EasyEdit
EasyEdit 是一个用于编辑大型语言模型的简单易用的框架。它与 EasyInstruct 结合使用,可以帮助用户更灵活地调整和优化 LLMs 的输出。
EasyDetect
EasyDetect 是一个用于检测幻觉(hallucination)的初步工具。它可以帮助用户识别和纠正 LLMs 生成的错误或不准确的内容。
通过这些生态项目,EasyInstruct 提供了一个完整的工具链,帮助用户从指令生成、选择到模型编辑和错误检测,全面提升 LLMs 的应用效果。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



