1、利用 Bert、GPT 等大型语言模型实现文本分类、文本聚类、文本摘要、文本生成、聊天机器人、对话系统、机器翻译、实体统一、实体消歧、实体对齐、关系抽取等任务。
2、手写复现逻辑回归、HMM、word2vec、RNN、LSTM、transformer、Bert。
3、基于prompt提示学习解决多任务问题。
4、手动推导 SVM、PCA、GBDT、XGBoost、AdaBoost 等机器学习算法。
5、掌握 Mysql、Neo4j、Elasticsearch、Milvus 等数据库的基本使用。
6、熟练掌握python、pytorch,擅长数据预处理,模型搭建,调参优化。
一、基于知识图谱的医疗问答机器人
• 数据预处理:设计句子切分算法,将非结构化医疗文本进行长短句切分。
• 实体与关系抽取:抽取半结构化数据,构建疾病,药品,疾病症状,疾病治疗方法等实体库与之对应的关系,导入neo4j图数据库。
• 数据标注:采用AC自动机标注医疗文本中的实体,设计实体序列排序算法,解决实体嵌套问题,再加以人工校验。
• 模型构建:采用BERT+BiLSTM+CRF进行实体识别,设计实体替换,实体随机Mask,实体拼接 等动态加载训练策略。模型在验证集上的F1值为94%。
• 意图与实体识别:解析query,采用tf-idf进行实体对齐,设计实体的意图归属算法,能够识别并拆解多意图,多实体,连接到neo4j图数据库查询对应的answer。
• 模型部署:采用flask线上部署,平均响应时间为0.25s。
二、搭建企业知识图谱
• 数据预处理:从mysql数据库中提取新闻文本、公司名数据,并清洗。
• 构建实体库:设计公司名简称提取算法,尽可能多去匹配公司名,并做好对应关系,解决实体统 一的问题。
• 数据标注:采用AC自动机标注新闻文本中的公司名实体,结合SentenceTransformer、jieba词性分析、构建停用词表来解决实体消歧,设计实体序列排序算法,解决实体嵌套问题, 再加以人工校验。
• NER模型构建:采用BERT+BiLSTM进行实体识别,设计实体替换等动态加载训练策略。模型在人工标注的测试集上F1值为97%。
• 关系抽取:采用BERT+Casrel的Pipeline模型抽取出控股、供应商、子母公司、竞争、客户等关系。训练时对loss与标签加权,减小标签不均匀的影响。模型在人工标注的测试集上F1值为86%, 比Joint Model高出13%。将公司实体与关系导入到neo4j图数据库。
三、搭建金融领域FAQ问答系统
方案1:
• 数据预处理:从百度知道上爬取金融领域的问答对,剔除脏数据,筛选出有最佳答案的问答对。
• 导入数据库:把所有的questions经过SentenceTransformer模型转为句向量,导入milvus向量数据库。
• 向量召回:解析query,与数据库里的原问题做相似度比对,返回最相似的top20,根据softmax对词性排序加权。筛选出与原query最相近的问题。
• 线上部署:通过docker部署到云服务器,查询40万条数据平均响应时间为0.32s,比Elasticsearch数据库快0.1s。
方案2:将所有的questions导入ChatGPT,根据用户的query让ChatGPT解析出最相近的问题。
四、课堂人名识别与教师言语情感分类
• 数据预处理:爬取在线授课信息以及带有情感色彩的文本,设计句子切分算法,将文本进行长短句切分。
• 数据标注:采用jieba分词识别出人名,将文本标注表扬,批评,鼓励,中性等情感标签。
• 模型构建:采用Joint-BERT+BiLSTM+CRF进行实体识别与文本分类的联合任务,设计实体替换等动态加载训练策略,增加模型的泛化性。模型在未出现过的人名测试集上的F1值为99%,文本分类的准确率为89%。