EduChat 是由华东师范大学 ICALK 团队开发的一个开源教育对话模型。它专注于教育场景,支持中英文对话,旨在为学生、教师和研究人员提供智能化的对话工具。模型基于 LLaMA、Qwen 等开源框架,通过大量教育领域数据进行微调,具备处理通用对话、心理学咨询和苏格拉底式教学对话的能力。EduChat 支持 GPU 部署,适合在教育研究或实际教学中使用。它还提供了数据清洗工具 CleanTool,帮助用户优化训练数据。项目在 GitHub 上开源,获得广泛关注,截至 2024 年已有 748 个星标。
功能列表
- 支持中英文教育对话,适用于课堂教学、学术讨论和心理咨询。
- 提供多种模型规模,包括 1.8B、7B、13B 和 14B 参数版本。
- 支持苏格拉底式对话,引导用户深入思考。
- 提供心理学主题对话,推荐相关书籍或提供情感支持。
- 开源数据清洗工具 CleanTool,优化训练数据集。
- 支持 GPU 加速部署,兼容 A100/A800 等硬件。
- 提供示例代码,方便开发者快速调用模型。
使用帮助
安装与部署
EduChat 是开源项目,需通过 GitHub 下载并在本地部署。以下是详细安装步骤:
- 环境准备
确保系统安装 Python 3.8+ 和 PyTorch。建议使用 GPU 环境(如 NVIDIA A100/A800),以支持 FP16 精度运行,约需 15GB 显存。安装必要的依赖库:pip install torch transformers
- 下载模型
访问 GitHub 仓库https://github.com/ECNU-ICALK/EduChat
,克隆项目到本地:git clone https://github.com/ECNU-ICALK/EduChat.git
模型文件需从 Hugging Face 下载。推荐使用
educhat-sft-002-7b
模型,适合单卡 GPU 运行。下载命令:huggingface-cli download ecnu-icalk/educhat-sft-002-7b
- 加载模型
使用提供的示例代码加载模型。以下是调用educhat-sft-002-7b
的 Python 代码:from transformers import LlamaForCausalLM, LlamaTokenizer tokenizer = LlamaTokenizer.from_pretrained("ecnu-icalk/educhat-sft-002-7b") model = LlamaForCausalLM.from_pretrained("ecnu-icalk/educhat-sft-002-7b", torch_dtype=torch.float16).half().cuda() model = model.eval()
- 生成对话
配置系统提示词(system prompt),定义 EduChat 的角色和能力。例如:system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Disable. 对话主题 - General: Enable. - Psychology: Disable. - Socrates: Disable.</s>" query = system_prompt + "<|prompter|>你好</s><|assistant|>" inputs = tokenizer(query, return_tensors="pt", padding=True).to(0) outputs = model.generate(**inputs, do_sample=True, temperature=0.7, top_p=0.8, repetition_penalty=1.02, max_new_tokens=256) response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) print(response)
输出示例:
你好!我是EduChat,有什么我可以帮助你的吗?
- 特色功能操作
- 心理学对话:启用心理学主题后,EduChat 可推荐心理学书籍或提供情感支持。例如,输入“给我推荐几本心理相关的书籍”,模型会返回:
当然,以下是一些关于心理学的经典书籍: 1.《人性的弱点》(Dale Carnegie):介绍人际关系技巧,帮助建立良好沟通。 2.《心理学与生活》(Richard J. Gerrig):全面介绍心理学基础知识,适合初学者。
配置心理学对话:
system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Enable. 对话主题 - General: Disable. - Psychology: Enable. - Socrates: Disable.</s>"
- 苏格拉底式对话:通过提问引导用户深入思考,适合教学场景。启用方法:
system_prompt = "<|system|>你是一个人工智能助手,名字叫EduChat。 - EduChat是一个由华东师范大学开发的对话式语言模型。 EduChat的工具 - Web search: Disable. - Calculators: Disable. EduChat的能力 - Inner Thought: Disable. 对话主题 - General: Disable. - Psychology: Disable. - Socrates: Enable.</s>"
示例输入:“什么是公平?” 模型会通过反问引导用户思考,如:“你认为公平的核心是什么?是结果相同还是机会均等?”
- 数据清洗工具 CleanTool:用于优化训练数据,支持去重和低质量数据过滤。运行 CleanTool:
python clean_tool.py --input data.json --output cleaned_data.json --gpu True
- 心理学对话:启用心理学主题后,EduChat 可推荐心理学书籍或提供情感支持。例如,输入“给我推荐几本心理相关的书籍”,模型会返回:
- 内测申请
如果需要访问最新模型或数据,可发送邮件至dan_yh@stu.ecnu.edu.cn
,标题为“EduChat内测申请+单位”,邮件中说明用途。
使用注意事项
- 确保 GPU 显存充足,7B 模型需约 15GB 显存,13B 模型需更多。
- 模型不支持实时联网搜索,需本地配置数据。
- 定期检查 GitHub 仓库更新,获取最新模型和文档。
应用场景
- 课堂教学辅助
教师使用 EduChat 的苏格拉底式对话功能,引导学生深入探讨问题。例如,在哲学课上,输入“什么是真理”,模型会通过提问帮助学生分析概念。 - 心理学咨询支持
学生或研究人员通过心理学对话功能获取情绪支持或书籍推荐,适合心理健康教育或研究场景。 - 教育数据研究
研究人员使用 CleanTool 清洗教育领域数据集,提升模型训练质量,适用于学术研究。 - AI 开发测试
开发者利用 EduChat 的开源代码,快速搭建教育对话系统,测试对话生成效果。
QA
- EduChat 支持哪些语言?
EduChat 支持中英文对话,训练数据包含约 400 万条中英文指令和对话数据,适合多语言教育场景。 - 如何选择合适的模型版本?
1.8B 和 7B 模型适合低算力设备,13B 和 14B 模型适合高性能 GPU,效果更强但资源需求高。 - 是否需要联网使用?
不需要。EduChat 是本地部署模型,禁用网络搜索功能,需提前下载模型和数据。 - 如何参与项目开发?
可在 GitHub 仓库提交 issue 或 pull request,参与模型优化或功能开发。