垂直领域大模型的一些思考及开源模型汇总
来自:NLP工作站
进NLP群—>加入NLP交流群
写在前面
大家好,我是刘聪NLP。
迄今为止,应该没有人还怀疑大模型的能力吧?但目前大模型实现真正落地,其实还有一段艰难的路要走。
对于ToC端来说,广大群众的口味已经被ChatGPT给养叼了,市场基本上被ChatGPT吃的干干净净。虽然国内大厂在紧追不舍,但目前绝大多数都还在实行内测机制,大概率是不会广泛开放的(毕竟,各大厂还是主盯ToB、ToG市场的,从华为在WAIC的汇报就可以看出)。而对于ToB和ToG端来说,本地化部署、领域or行业内效果绝群、国产化无疑就成为了重要的考核指标。
个人觉得垂直领域大模型或者说大模型领域化、行业化才是大模型落地的核心要素。恰好前几天ChatLaw(一款法律领域大模型产品)也是大火,当时也是拿到了一手内测资格测试了一阵,也跟该模型的作者聊了很久。正好利用周末的时间,好好思考、梳理、汇总了一些垂直领域大模型内容。
文章内容将从ChatLaw展开、到垂直领域大模型的一些讨论、最后汇总一下现有的开源领域大模型。
聊聊对ChatLaw的看法
ChatLaw的出现,让我更加肯定未来大模型落地需要具有领域特性。相较于目前领域大模型,ChatLaw不仅仅是一个模型,而是一个经过设计的大模型领域产品,已经在法律领域具有很好的产品形态。
Paper: https://arxiv.org/pdf/2306.16092.pdf
Github: https://github.com/PKU-YuanGroup/ChatLaw
官网: https://www.chatlaw.cloud/
可能会有一些质疑,比如:不就是一个langchain吗?法律领域它能保证事实性问题吗?等等等。但,我觉得在否定一件事物的前提,是先去更深地了解它。
ChatLaw共存在两种模式:普通模型和专业模型。普通模式就是仅基于大模型进行问答。而专业模式是借助检索的手段,对用户查询进行匹配从知识库中筛选出合适的证据,再根据大模型汇总能力,得到最终答案。
由于专业模式,借助了知识库的内容,也会使得用户得到的效果更加精准。而在专业版中,ChatLaw制定了一整套流程,如上图所示,存在反问提示进行信息补全,用户信息确认、相似案例检索、建议汇总等。
作者@JessyTsui(知乎) 也说过,其实ChatLaw=ChatLaw LLM + keyword LLM + laws LLM。而keyword LLM真的让我眼前一亮的,之前对关键词抽取的理解,一直是从文本中找到正确的词语,在传统检索中使用同义词等方法来提高检索效果。而keyword LLM利用大模型生成关键词,不仅可以找到文本中的重点内容,还可以总结并释义出一些词。使得整个产品在检索证据内容时,效果更加出色。
同时,由于不同模型对不同类型问题解决效果并不相同,所以在真正使用阶段,采用HuggingGPT作为调度器的方式,在每次用户请求的时候去选择调用更加适配的模型。也就是让适合的模型做更适合的事情。
聊聊对垂直领域大模型的看法
现在大模型的使用主要就是两种模型,第一种是仅利用大模型本身解决用户问题;第二种就是借助外部知识来解决用户问题。而我个人觉得是“借助外部知识进行问答”才是未来,虽然会对模型推理增加额外成本,但是外部知识是缓解模型幻觉的有效方法。
但随着通用大模型底层能力越来越强,以及可接受文本越来越长,在解决垂直领域问题时,完全可以采用ICL技术,来提升通用大模型在垂直领域上的效果,那么训练一个垂直领域大模型是否是一个伪命题,我们还有必要做吗?
个人认为是需要的,从几个方面来讨论:
1、个人觉得真正垂直领域大模型的做法,应该从Pre-Train做起。SFT只是激发原有大模型的能力,预训练才是真正知识灌输阶段,让模型真正学习领域数据知识,做到适配领域。但目前很多垂直领域大模型还停留在SFT阶段。 2、对于很多企业来说,领域大模型在某几个能力上绝群就可以了。难道我能源行业,还需要care模型诗写的如何吗?所以领域大模型在行业领域上效果是优于通用大模型即可,不需要“即要又要还要”。 3、不应某些垂直领域大模型效果不如ChatGPT,就否定垂直领域大模型。有没有想过一件可怕的事情,ChatGPT见的垂直领域数据,比你的领域大模型见的还多。但某些领域数据,ChatGPT还是见不到的。 4、考虑到部署成本得问题,我觉得在7B、13B两种规模的参数下,通用模型真地干不过领域模型。及时175B的领域大模型没有打过175B的通用模型又能怎么样呢?模型参数越大,需要数据量越大,领域可能真的没有那么多数据。
PS:很多非NLP算法人员对大模型产品落地往往会有一些疑问:
Q:我有很多的技术标准和领域文本数据,直接给你就能训练领域大模型了吧?
A:是也不是,纯文本只能用于模型的预训练,真正可以进行后续问答,需要的是指令数据。当然可以采用一些人工智能方法生成一些指数据,但为了保证事实性,还是需要进行人工校对的。高质量SFT数据,才是模型微调的关键。
Q:你用领域数据微调过的大模型,为什么不直接问答,还要用你的知识库?
A:外部知识主要是为了解决模型幻觉、提高模型回复准确。
Q:为什么两次回复结果不一样?
A:大模型一般为了保证多样性,解码常采用Top-P、Top-K解码,这种解码会导致生成结果不可控。如果直接采用贪婪解码,模型生成结果会是局部最优。
Q:我是不是用开源6B、7B模型自己训练一个模型就够了?
A:兄弟,没有训练过33B模型的人,永远只觉得13B就够了。
以上是个人的一些想法,以及一些常见问题的回复,不喜勿喷,欢迎讨论,毕竟每个人对每件事的看法都不同。
开源垂直领域大模型汇总
目前有很多的垂直领域大模型已经开源,主要在医疗、金融、法律、教育等领域,本小节主要进行「中文开源」模型的汇总及介绍。
「PS:一些领域大模型,如未开源不在该汇总范围内;并且欢迎大家留言,查缺补漏。」
医疗领域
非中文项目:BioMedLM、PMC-LLaMA、ChatDoctor、BioMedGPT等,在此不做介绍。
MedicalGPT-zh
Github: https://github.com/MediaBrain-SJTU/MedicalGPT-zh
简介:基于ChatGLM-6B指令微调的中文医疗通用模型。 数据:通过对16组诊疗情景和28个科室医用指南借助ChatGPT构造182k条数据。数据也已开源。 训练方法:基于ChatGLM-6B,采用Lora&16bit方法进行模型训练。
DoctorGLM
Github: https://github.com/xionghonglin/DoctorGLM
简介:一个基于ChatGLM-6B的中文问诊模型。 数据:主要采用CMD(Chinese Medical Dialogue Data)数据。 训练方法:基于ChatGLM-6B模型,采用Lora和P-tuning-v2两种方法进行模型训练。
PS:数据来自Chinese-medical-dialogue-data项目。
Huatuo-Llama-Med-Chinese
Github: https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese
简介:本草(原名:华驼-HuaTuo): 基于中文医学知识的LLaMA微调模型。 数据:通过医学知识图谱和GPT3.5 API构建了中文医学指令数据集,数据共开源9k条。 训练方法:基于Llama-7B模型,采用Lora方法进行模型训练。
Med-ChatGLM
Github: https://github.com/SCIR-HI/Med-ChatGLM
简介:基于中文医学知识的ChatGLM模型微调,与本草为兄弟项目。 数据:与Huatuo-Llama-Med-Chinese相同。 训练方法:基于ChatGLM-6B模型,采用Lora方法进行模型训练。
ChatMed
Github: https://github.com/michael-wzhu/ChatMed
简介:中文医疗大模型,善于在线回答患者/用户的日常医疗相关问题. 数据:50w+在线问诊+ChatGPT回复作为训练集。 训练方法:基于Llama-7B模型,采用Lora方法进行模型训练。
ShenNong-TCM-LLM
Github: https://github.com/michael-wzhu/ShenNong-TCM-LLM
简介:“神农”大模型,首个中医药中文大模型,与ChatMed为兄弟项目。 数据:以中医药知识图谱为基础,采用以实体为中心的自指令方法,调用ChatGPT得到11w+的围绕中医药的指令数据。 训练方法:基于Llama-7B模型,采用Lora方法进行模型训练。
BianQue
Github: https://github.com/scutcyr/BianQue
简介:扁鹊,中文医疗对话模型。 数据:结合当前开源的中文医疗问答数据集(MedDialog-CN、IMCS-V2、CHIP-MDCFNPC、MedDG、cMedQA2、Chinese-medical-dialogue-data),分析其中的单轮/多轮特性以及医生问询特性,结合实验室长期自建的生活空间健康对话大数据,构建了千万级别规模的扁鹊健康大数据BianQueCorpus。 训练方法:扁鹊-1.0以ChatYuan-large-v2作为底座模型全量参数训练得来,扁鹊-2.0以ChatGLM-6B作为底座模型全量参数训练得来。
SoulChat
Github: https://github.com/scutcyr/SoulChat
简介:中文领域心理健康对话大模型,与BianQue为兄弟项目。 数据:构建了超过15万规模的单轮长文本心理咨询指令数据,并利用ChatGPT与GPT4,生成总共约100万轮次的多轮回答数据。 训练方法:基于ChatGLM-6B模型,采用全量参数微调方法进行模型训练。
法律领域
LaWGPT
Github: https://github.com/pengxiao-song/LaWGPT
简介:基于中文法律知识的大语言模型。 数据:基于中文裁判文书网公开法律文书数据、司法考试数据等数据集展开,利用Stanford_alpaca、self-instruct方式生成对话问答数据,利用知识引导的数据生成,引入ChatGPT清洗数据,辅助构造高质量数据集。 训练方法:(1)Legal-Base-7B模型:法律基座模型,使用50w中文裁判文书数据二次预训练。(2)LaWGPT-7B-beta1.0模型:法律对话模型,构造30w高质量法律问答数据集基于Legal-Base-7B指令精调。(3)LaWGPT-7B-alpha模型:在Chinese-LLaMA-7B的基础上直接构造30w法律问答数据集指令精调。(4)LaWGPT-7B-beta1.1模型:法律对话模型,构造35w高质量法律问答数据集基于Chinese-alpaca-plus-7B指令精调。
ChatLaw
Github: https://github.com/PKU-YuanGroup/ChatLaw
简介:中文法律大模型 数据:主要由论坛、新闻、法条、司法解释、法律咨询、法考题、判决文书组成,随后经过清洗、数据增强等来构造对话数据。 训练方法:(1)ChatLaw-13B:基于姜子牙Ziya-LLaMA-13B-v1模型采用Lora方式训练而来。(2)ChatLaw-33B:基于Anima-33B采用Lora方式训练而来。
LexiLaw
Github: https://github.com/CSHaitao/LexiLaw
简介:中文法律大模型 数据:BELLE-1.5M通用数据、LawGPT项目中52k单轮问答数据和92k带有法律依据的情景问答数据、Lawyer LLaMA项目中法考数据和法律指令微调数据、华律网20k高质量问答数据、百度知道收集的36k条法律问答数据、法律法规、法律参考书籍、法律文书。 训练方法:基于ChatGLM-6B模型,采用Freeze、Lora、P-Tuning-V2三种方法进行模型训练。
LAW-GPT
Github: https://github.com/LiuHC0428/LAW-GPT
简介:中文法律大模型(獬豸) 数据:现有的法律问答数据集和基于法条和真实案例指导的self-Instruct构建的高质量法律文本问答数据。 训练方法:基于ChatGLM-6B,采用Lora&16bit方法进行模型训练。
lawyer-llama
Github: https://github.com/AndrewZhe/lawyer-llama
简介:中文法律LLaMA 数据:法考数据7k、法律咨询数据14k 训练方法:以Chinese-LLaMA-13B为底座,未经过法律语料continual training,使用通用instruction和法律instruction进行SFT。
金融领域
非中文较好的项目:BloombergGPT、PIXIU等,在此不做介绍。
FinGPT
Github: https://github.com/AI4Finance-Foundation/FinGPT
简介:金融大模型 数据:来自东方财富 训练方法:基于ChatGLM-6B,采用Lora方法训练模型。
FinTuo
Github: https://github.com/qiyuan-chen/FinTuo-Chinese-Finance-LLM
简介:一个中文金融大模型项目,旨在提供开箱即用且易于拓展的金融领域大模型工具链。 数据:暂未完成。 训练方法:暂未完成。
教育领域
EduChat
Github: https://github.com/icalk-nlp/EduChat
简介:以预训练大模型为基底的教育对话大模型相关技术,提供教育场景下自动出题、作业批改、情感支持、课程辅导、高考咨询等丰富功能,服务于广大老师、学生和家长群体,助力实现因材施教、公平公正、富有温度的智能教育。 数据:混合多个开源中英指令、对话数据,并去重后得到,约400w。 训练方法:基于LLaMA模型训练而来。
汇总会定期更新,欢迎大家留言补充。但由于公众号上更新比较麻烦,请点击【阅读原文】,收藏对应知乎内容。
请多多关注知乎「刘聪NLP」,有问题的朋友也欢迎加我微信「logCong」私聊,交个朋友吧,一起学习,一起进步。我们的口号是“生命不止,学习不停”。
进NLP群—>加入NLP交流群
微信扫码关注该文公众号作者