# NLP-corpus-collection **Repository Path**: src-oepkgs/NLP-corpus-collection ## Basic Information - **Project Name**: NLP-corpus-collection - **Description**: 问答机器人NLP训练语料收集整理 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-04-28 - **Last Updated**: 2024-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: openeuler-incubator ## README # NLP-corpus-collection #### 介绍 在开源之夏的项目期间,我们专注于对openEuler社区内的小智客服机器人进行优化和升级。小智客服机器人目前是一个基于检索的问答系统,可以根据用户的提问,检索相应的回答对。项目的核心目标是通过增强其NLP训练语料库并结合LLM去提升机器人的问答命中率及用户满意度,从而使其成为一个更加强大和智慧的工具。原小智机器人链接:openEuler小智客服机器人。 目前,小智客服机器人面临的主要问题是其问答命中率及用户满意度相对较低,这可能是由于当前的训练语料库质量和数量不足造成的。因此,本项目旨在通过收集和整理高质量的NLP训练语料,来解决这一问题。当语料库无法命中问题的时候,再通过预训练的LLM进行回答。工作架构如下。 ![flow_chart.png](flow_chart.png) #### 软件架构 我们的工作内容主要包括以下部分:数据处理,模型训练,模型评价与优化,用户的输入过滤。由于其中代码有很多琐碎的处理部分,在此代码库中仅展示了部分的代码内容,主要包括以下三个模块。 - **crawler**: 爬虫代码,利用爬虫技术爬取论文数据,其中getDataFormLink.py是主要代码。 - **GLMdata**:包含本项目中使用chatGPT和数据处理的部分及数据处理和模型评价语优化部分 - cleanData.py:数据清洗的代码,包括检测链接,检测问题重复度等功能 - countsimByText2vec.py:使用text2vec检测问题重复度,未经过微调效果一般,并没有实际使用 - emergeData.py:合并GPT的生成的多个结果 - dealerrorQA.py:删除GPT产生的错误数据 - getDataFormGPT.py:利用chatGPT产生数据,包括文档导语,问答对,问题类别,相似问题,问答对评价等 - sig.py:使用正则式提取sig数据,并调用GPT产生问答对和处理等 - **IllegalTextDetection**:使用RoBerta检测不应该回答的数据。其中illegalCheck.py是主要的运行代码,train_roberta.py是训练所使用模型的代码,并在此设置模型路径等参数。 - **训练**:训练部分我们使用了很多代码,但是对代码没有进行过多的修改。我们最后选定的模型为Baichuan-13B-Chat,使用的训练方式为Lora,训练的代码为[hiyouga/LLaMA-Efficient-Tuning: Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2) (github.com)](https://github.com/hiyouga/LLaMA-Efficient-Tuning) #### 安装教程及使用说明 本项目使用了很多零散的代码,使用的包为pandas,json,request等常见包。请根据软件架构中的说明,挑选你需要的代码,并根据使用的代码,下载对应的包。如果代码的解释中提及了特定的代码库,请按照对应代码库中的requirements.txt,安装所需的包。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request