{"id":21018710,"url":"https://github.com/tal-tech/edu-bert","last_synced_at":"2025-05-15T06:31:44.321Z","repository":{"id":44377100,"uuid":"314549884","full_name":"tal-tech/edu-bert","owner":"tal-tech","description":"好未来开源教育领域首个在线教学中文预训练模型TAL-EduBERT","archived":false,"fork":false,"pushed_at":"2021-01-26T05:03:34.000Z","size":216,"stargazers_count":189,"open_issues_count":2,"forks_count":40,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-03T05:12:20.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tal-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-20T12:38:17.000Z","updated_at":"2025-03-24T06:35:25.000Z","dependencies_parsed_at":"2022-07-16T19:46:22.770Z","dependency_job_id":null,"html_url":"https://github.com/tal-tech/edu-bert","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fedu-bert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fedu-bert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fedu-bert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fedu-bert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tal-tech","download_url":"https://codeload.github.com/tal-tech/edu-bert/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254288235,"owners_count":22045863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T10:27:10.739Z","updated_at":"2025-05-15T06:31:42.432Z","avatar_url":"https://github.com/tal-tech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 好未来开源教育领域首个在线教学中文预训练模型TAL-EduBERT\n\n## 一、背景及下载地址\n\n### 1. 背景\n\n2020年初Covid-19疫情的爆发对各行各业产生了不可小觑的影响，也让以线下方式为主的传统教育在短期内受到了极大的冲击，更多人开始看到科技对教育市场的价值。在线教育成为了特殊时期教学的最佳选择，大规模地渗透至每一所学校、每一个家庭。在线教育的爆火使得教育行业产生了海量的在线教学语音识别（Automatic Speech Recognition，以下简称ASR）文本数据，极大地推动了教育领域技术的发展。\n\n数据作为产业最为核心和宝贵的资源之一，更是自然语言处理技术（Natural Language Processing，以下简称NLP）在各个领域得以应用和发展的基础。在线教育文本数据有着区别于通用场景数据的特有属性，给在线教育领域NLP的研究、应用和发展带来了极大的挑战，一是从音视频转录出来的文本数据中，存在着较多的ASR错误，这些错误可能会对文本处理相关任务的效果造成较大的影响；二是数据中含有大量的教育领域特有的专有词汇，现有的通用领域的开源词向量和开源预训练语言模型（如Google BERT Base\u003csup\u003e[1]\u003c/sup\u003e，Roberta\u003csup\u003e[2]\u003c/sup\u003e等）对于这些词汇的语义表示能力有限，进而会影响后续任务的效果。\n\n为了帮助解决这两个问题，好未来AI中台机器学习团队从多个来源收集了超过2000万条（约包含3.8亿Tokens）的教育领域中文ASR文本数据，基于此建立了教育领域首个在线教学中文预训练模型TAL-EduBERT，并把其推至开源。\n\n从2018年谷歌发布预训练模型BERT以来，以BERT为代表的预训练语言模型， 在各个自然语言处理任务上都达到了SOTA的效果。并且作为通用的预训练语言模型，BERT的出现，使得NLP算法工程师不需要进行繁重的网络结构的修改，直接对于下游任务进行fine-tune，便可得到比以往的深度学习方法更好的效果，显著的减轻了NLP算法工程师的繁重的调整模型网络结构的工作，降低了算法应用的成本，预训练语言模型已经成为工作中不可或缺的一项基础技术。\n\n但是，当前开源的各类中文领域的深度预训练模型，多是面向通用领域的应用需求，在包括教育在内的多个垂直领域均没有看到相关开源模型。相较于谷歌发布的Google BERT Base以及开源的中文Roberta模型，**好未来本次开源的TAL-EduBERT在多个教育领域的下游任务中得到了显著的效果提升**。好未来希望通过本次开源，助力推动 NLP技术在教育领域的应用发展，欢迎各位同仁下载使用。\n\n### 2. 模型下载\n\n下载地址：\n\npytorch版：[https://ai.100tal.com/download/TAL-EduBERT.zip](https://ai.100tal.com/download/TAL-EduBERT.zip)\n\ntensorflow版：[https://ai.100tal.com/download/TAL-EduBERT-TF.zip](https://ai.100tal.com/download/TAL-EduBERT-TF.zip)\n\n\n## 二、 模型结构及训练数据\n\n### 1. 模型结构\nTAL-EduBERT在网络结构上，采用与Google BERT Base相同的结构，包含12层的Transformer编码器、768个隐藏单元以及12个multi-head attention的head。之所以使用BERT Base的网络结构，是因为我们考虑到实际使用的便捷性和普遍性，后续会进一步开源其他教育领域ASR预训练语言模型。\n\n### 2. 训练语料\nTAL-EduBERT所采用的预训练语料，主要源于好未来内部积淀的海量教师教学语音经ASR转录而得到的文本，对于语料进行筛选、预处理后，选取了超过2000万条教育ASR文本，大约包含3.8亿Tokens。\n\n### 3. 预训练方式\n \n![Alt text](imgs/kjt.png?raw=true \"\")\n\n如上图所示，TAL-EduBERT采取了与BERT相同的两种预训练任务来进行预训练学习，分别是教育领域字级别任务（Masked Language Modeling，简称MLM）和句子级别的训练任务（Next Sentence Prediction，简称NSP），通过这两个任务，使得TAL-EduBERT能够捕获教育ASR文本数据中的字、词和句子级别的语法和语义信息。\n\n## 三、 下游任务实验结果\n为了证明TAL-EduBERT在下游任务上的效果，我们从实际业务中抽取了4类典型的在线教育领域教学行为预测任务数据集，详见文献[3][4]。在此基础上，我们与Google BERT Base这一在中文领域应用最为广泛的模型以及效果较好的Roberta做了对比，实验结果表明，TAL-EduBERT在教育ASR下游任务上取得了较好的效果。\n\n### 1. 实验简介：教师行为预测\n此任务来源于我们对老师的教学行为进行智能化的评估，具体我们评估了四项教师行为，分别是引导学生进行课后总结（Conclude）、带着学生记笔记（Note）、表扬学生（Praise）和提问学生（QA）。通过对教师教学行为进行分类，给老师打上行为标签，从而更方便地分析老师教学行为，进而辅助老师更好地教学，提升教学质量。\n\n### 2. 实验结果：\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth colspan=\"2\"\u003eTask\\Model\u003c/th\u003e\u003cth\u003eConclude\u003c/th\u003e\u003cth\u003eNote\u003c/th\u003e\u003cth\u003ePraise\u003c/th\u003e\u003cth\u003eQA\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"2\"\u003eGoogle BERT\u003c/td\u003e\u003ctd\u003eAcc\u003c/td\u003e\u003ctd\u003e0.7036\u003c/td\u003e\u003ctd\u003e0.8436\u003c/td\u003e\u003ctd\u003e0.8652\u003c/td\u003e\u003ctd\u003e0.8948\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eF1\u003c/td\u003e\u003ctd\u003e0.6404\u003c/td\u003e\u003ctd\u003e0.8356\u003c/td\u003e\u003ctd\u003e0.8683\u003c/td\u003e\u003ctd\u003e0.8469\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"2\"\u003eRoberta\u003c/td\u003e\u003ctd\u003eAcc\u003c/td\u003e\u003ctd\u003e0.7097\u003c/td\u003e\u003ctd\u003e0.8558\u003c/td\u003e\u003ctd\u003e0.8689\u003c/td\u003e\u003ctd\u003e0.8979\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eF1\u003c/td\u003e\u003ctd\u003e0.6382\u003c/td\u003e\u003ctd\u003e0.8464\u003c/td\u003e\u003ctd\u003e0.8668\u003c/td\u003e\u003ctd\u003e0.8433\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd rowspan=\"2\"\u003eTAL-EduBERT\u003c/td\u003e\u003ctd\u003eAcc\u003c/td\u003e\u003ctd\u003e0.7270\u003c/td\u003e\u003ctd\u003e0.8638\u003c/td\u003e\u003ctd\u003e0.8731\u003c/td\u003e\u003ctd\u003e0.9147\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eF1\u003c/td\u003e\u003ctd\u003e0.6486\u003c/td\u003e\u003ctd\u003e0.8549\u003c/td\u003e\u003ctd\u003e0.8688\u003c/td\u003e\u003ctd\u003e0.8721\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## 四、 适用范围、使用方法及使用案例\n### 1. 适用范围：\n相较于Google BERT Base和Roberta，TAL-EduBERT基于大量教育ASR文本数据训练，因此对于ASR的识别错误具有较强的鲁棒性，并且在教育场景的下游任务上也具有较好的效果。鉴于此，我们推荐从事教育，并且工作内容与ASR文本相关的NLP算法工程师使用我们的模型，希望能通过本次的开源，推进自然语言处理在教育领域的应用和发展。\n\n### 2. 使用方法：\n与Google发布的原生BERT使用方式一致，支持transformers包，因此在使用时，直接进行模型路径替换即可。\n\n### 3.使用案例：\n```\nfrom transformers import BertTokenizer, BertModel\nimport torch\n\npath_to_TAL-EduBERT = \"/YourPath/TAL-EduBERT/\"\n\ntokenizer = BertTokenizer.from_pretrained(path_to_TAL-EduBERT)\nmodel = BertModel.from_pretrained(path_to_TAL-EduBERT)\n\nsentence = \"让我们来看一下这道题，这个题的也是一种比较经典类型的这个数列题目他呢，有个特点就是前面的是an+1，后面是一个an的式子加上一个根号下an的，一个二次的一个式子。\"\ninputs = tokenizer(sentence, return_tensors=\"pt\")\noutputs = model(**inputs)\nlast_hidden_states = outputs.last_hidden_state\n```\n## 五、 小结\n为了证明TAL-EduBERT在教育领域下游任务的优势，我们从教育场景中的四类业务问题和数据入手进行了对比实验，对比Google BERT Base和Roberta这两种通用领域的预训练模型可知，TAL-EduBERT效果显著提升，在F1上最高提升大约3个百分点。因此，想要在教育领域进行NLP相关方向探索的技术伙伴可以直接使用TAL-EduBERT开展更专业地教育技术实践训练。\n\n本文介绍了 TAL-EduBERT 的开源背景、数据背景、对比实验结果。后续，好未来AI中台也会持续进行理论创新和实践探索，进行更全面的开源开放，非常欢迎从事相关领域的伙伴们提供更多、更丰富的对比实验和实际应用案例，让我们共同推进自然语言处理技术在教育领域的应用和发展，为中国的教育事业注入新的动能。\n\n\n## 参考文献：\n    [1] Devlin, Jacob, et al. \"BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.\" Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). 2019.\n    [2] Liu, Yinhan, et al. \"Roberta: A robustly optimized BERT pretraining approach.\" arXiv preprint arXiv:1907.11692 (2019).\n    [3] Huang, Gale Yan, et al. \"Neural Multi-Task Learning for Teacher Question Detection in Online Classrooms.\" International Conference on Artificial Intelligence in Education. Springer, Cham, 2020. \n    [4] Xu, Shiting, Wenbiao Ding, and Zitao Liu. \"Automatic Dialogic Instruction Detection for K-12 Online One-on-one Classes.\" International Conference on Artificial Intelligence in Education. Springer, Cham, 2020.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fedu-bert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftal-tech%2Fedu-bert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fedu-bert/lists"}