开源教育对话大模型 EduChat

2023-07-09 20:37:45

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、🚀 前言

教育是一项对人类身心发展产生影响的社会实践活动,旨在从内在激发人们固有或潜在的素质。因此,我们必须坚持以人为本的教育理念,重点关注个性化、引导式和身心全面发展。

在这里插入图片描述

EduChat 是华东师范大学计算机科学与技术学院的 EduNLP 团队开发的开源教育对话大模型。该项目主要研究以预训练大模型为基底的教育对话大模型相关技术,融合多样化的教育垂直领域数据,辅以指令微调、价值观对齐等方法,提供教育场景下自动出题、作业批改、情感支持、课程辅导、高考咨询等丰富功能,服务于广大老师、学生和家长群体,助力实现因材施教、公平公正、富有温度的智能教育。

用户可以通过本地部署或使用网页 Demo 和 API Demo 与 EduChat 进行交互。未来,团队计划进一步增强模型的逻辑推理能力、个性化辅导能力和工具调用能力。该项目的代码采用 Apache 2.0 协议,数据采用 CC BY-NC 4.0 协议。

在这里插入图片描述

Github 项目地址:https://github.com/icalk-nlp/EduChat


二、🤖 本地部署

下载 Github 仓库内容至本地 / {/} /远程服务器:

git clone https://github.com/icalk-nlp/EduChat.git
cd EduChat

创建 conda 环境并激活进入:

conda create --name educhat python=3.8
conda activate educhat

安装依赖库(主要是 pytorch 和 transformers):

# 首先装好 pytorch,安装方法请自行搜索。Linux 服务器安装 pytorch 很简单,使用 conda。示例如下:
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

# 然后安装最新版本的 transformers
pip install transformers

三、👨‍💻 使用示例

输入格式:使用 EduChat 时的输入格式为 system_prompt + query。根据所需功能不同从以下的 system_prompt 中选择。base 模型直接使用 query,无需使用 system_prompt。

开放问答

system_prompt = \
"<|system|>"'''你是一个人工智能助手,名字叫EduChat。
- EduChat是一个由华东师范大学开发的对话式语言模型。
EduChat的工具
- Web search: Disable.
- Calculators: Disable.
EduChat的能力
- Inner Thought: Disable.
对话主题
- General: Enable.
- Psychology: Disable.
- 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>"

情感支持

system_prompt = \
"<|system|>"'''你是一个人工智能助手,名字叫EduChat。
- EduChat是一个由华东师范大学开发的对话式语言模型。
EduChat的工具
- Web search: Disable.
- Calculators: Disable.
EduChat的能力
- Inner Thought: Disable.
对话主题
- General: Disable.
- Psychology: Enable.
- Socrates: Disable.'''"</s>"

情感支持 (with InnerThought)

system_prompt = \
"<|system|>"'''你是一个人工智能助手,名字叫EduChat。
- EduChat是一个由华东师范大学开发的对话式语言模型。
EduChat的工具
- Web search: Disable.
- Calculators: Disable.
EduChat的能力
- Inner Thought: Enable.
对话主题
- General: Disable.
- Psychology: Enable.
- Socrates: Disable.'''"</s>"

单卡部署。以下是一个简单的调用 educhat-sft-002-7b 生成对话的示例代码,可在单张 A100/A800 或 CPU 运行,使用 FP16 精度时约占用 15GB 显存:

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()

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,有什么我可以帮助你的吗? 

query = query + response + "</s><|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)

当然,以下是一些关于心理学的经典书籍:
1.《人性的弱点》(Dale Carnegie):这本书是一本经典的人际关系指南,它介绍了如何与人相处、如何影响他人以及如何建立良好的人际关系。

2.《心理学与生活》(Richard J. Gerrig):这本书是一本介绍心理学的入门读物,它涵盖了各种主题,包括认知、情感、人格和社会心理学。

3.《情绪智商》(Daniel Goleman):这本书介绍了情绪智商的概念,并探讨了情绪智商如何影响我们的生活和工作。

4.《人性的弱点2》(Dale Carnegie):这本书是《人性的弱点》的续集,它提供了更多的技巧和策略,帮助读者更好地与人相处。

5.《心理学导论》(David G. Myers):这本书是一本广泛使用的心理学教材,它涵盖了各种主题,包括感知、记忆、思维、情感和人格。
希望这些书籍能够帮助你更深入地了解心理学。

网页 Demo,使用了 Gradio。你可以运行 Github 仓库中的 demo/educhat_gradio.py:

python educhat_gradio.py --model_path /path/to/educhat_model \
--top_k 50 \
--do_sample True \
--max_new_tokens 512

启动 demo 后,你可以将链接分享给朋友,通过网页与 EduChat 交互。


四、🔎 总结

从 EduChat-001 到 EduChat-002 的迭代过程中,开发者逐步增强了它的中文能力、忠实度、安全度和有帮助性方面的表现。然而, EduChat-002 仍然是一个早期模型,旅程也才刚刚开始。在未来,开发者们将持续投入对基础模型的研究,并持续推出更为强大的 EduChat 版本,以丰富全球教育大模型生态,加速全球教育信息化进程。

  • 逻辑推理:逻辑推理能力是衡量大模型性能的重要指标,作者计划通过增大语言模型基座、增强特定训练数据等手段强化 EduChat 的逻辑推理能力;
  • 个性化辅导:作者期望的 EduChat 应当是千人千面的,未来希望能够给每个人提供一个独一无二的 EduChat,它将在与你的交互中持续学习,伴随你的成长而成长,成为你的专属助手。
  • 工具调用:语言模型本身具有明显的局限性,例如符号运算能力弱,计划在后续升级 EduChat,使其具备调用外部工具能力,帮助其更好地进行生成。

尽管开发者对 EduChat 已经做了许多优化,但仍存在以下问题,需要进一步改进

  • 当涉及到事实性指令时,可能会产生错误的回答,与实际事实相悖。
  • 模型回复可能存在偏见,有可能生成危险性言论。
  • 在某些场景中,比如推理、代码、多轮对话等方面,模型的能力仍有待提高。

鉴于上述模型的局限性,我们要求开发者仅将开源的代码、数据、模型以及由该项目生成的衍生物仅用于研究目的,禁止用于商业用途,以及其他可能对社会带来危害的用途。


📚️ 参考链接:

更多推荐

鞋服零售企业如何进行数字化运营

企业进行信息化和数字化都是在解决同一个问题,降本增效,用信息产生数据,用数据解读业务。在信息化行业操盘十多年,在我的大脑中始终有一个伟大的蓝图,那就是“作战室”,特别是在鞋服零售各种解决方案非常成熟,对作战室的建设几率又大大增加。作战室不仅是数据的可视,更重要的是能指挥作战,如线上线下同步,而线下店铺可视,在通过一个销

百货店失去核心竞争力了吗?全靠超市即时零售撑起

近年来,传统百货不景气,不过,从今年上半年的情况看,似乎有些好转。然而,实际情况并不如预期那么好,有专家认为:“百货上市公司业绩和去年相比增长是正常的。实际上,百货业态增长的可能性几乎为零,如果没有新店开张,没有面积的扩大,单是百货这一块,有增长的可能性不是很大,因为很多上市公司百货店,其实很大一块是有超市带动的,超市

新零售商城模式与传统电商和零售的痛点的对比

新零售是一种以消费者体验为中心的数据驱动的泛零售形态,它通过运用大数据、人工智能等先进技术手段,对商品的生产、流通与销售过程进行升级改造,进而重塑业态结构与生态圈,并对线上服务、线下体验以及现代物流进行深度融合的零售新模式。新零售商城模式是新零售的一种具体实现方式,它通过打造线上线下一体化的商城平台,实现商品、用户和员

Android Fragment

基本概念Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑,普通手机开发也会加入这个Fragment,可以把他看成一个小型的Activity,又称Activity片段!如果一个很大的界面,就一个布局,写起界面会很麻烦,而且如果组件多的话是管理起来也很麻烦!而使用Frag

深度学习如何入门?

深度学习是一种强大的机器学习方法,它在各个领域都有广泛应用。如果你是一个新手,想要入门深度学习,下面是一些步骤和资源,可以帮助你开始学习和实践深度学习。1.学习基本概念在开始深度学习之前,你需要对一些基本概念有所了解。以下是一些你需要学习的重要概念:神经网络:它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程管

建构居住安全生态,鹿客科技2023秋季发布会圆满举办

9月20日,以「LockinOpening」为主题的2023鹿客秋季发布会在上海隆重举办,面向居住安全领域鹿客带来了最新的高端旗舰智能锁新品、多眸®OS1.0、LockinCare服务以及全联接OPENING计划。此外,现场还邀请了国家机构、合作伙伴、技术专家等业界同仁共同探讨如何开启居家智能生活新升级。双新品亮相代言

想要提高客户留资率?一个留资机器人就够了!

随着移动互联网进入“下半场”,用户在线参与率持续上升,导致企业的获客成本不断攀升。特别是近年来新型营销场景如直播销售、内容推广和短视频引流等的不断涌现,企业在多个渠道和平台上的广告支出激增,试图吸引更多潜在客户。然而,尽管跨平台营销活动可能带来大量流量,但在实际运营中,许多企业常常由于客服能力有限而失去潜在客户,更不用

Java8实战-总结27

Java8实战-总结27用流收集数据分区分区的优势将数字按质数和非质数分区用流收集数据分区分区是分组的特殊情况:由一个谓词(返回一个布尔值的函数)作为分类函数,它称分区函数。分区函数返回一个布尔值,这意味着得到的分组Map的键类型是Boolean,于是它最多可以分为两组——true是一组,false是一组。例如,如果把

Android动态片段

之前创建的片段都是静态的。一旦显示片段,片段的内容就不能改变了。尽管可以用一个新实例完全取代所显示的片段,但是并不能更新片段本身的内容。之前已经创建过一个基础秒表应用,具体代码https://github.com/MADMAX110/Stopwatch。我们将这个应用增加到WorkoutDetailFragment,把

RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132869448红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…瑞芯微开

热文推荐