LLMs 入门实战系列

875 阅读31分钟

【LLMs 入门实战系列】

第一层 LLMs to Natural Language Processing (NLP)

第一重 ChatGLM-6B

  1. 【ChatGLM-6B入门-一】清华大学开源中文版ChatGLM-6B模型学习与实战
    1. 介绍:ChatGLM-6B 环境配置 和 部署
  2. 【ChatGLM-6B入门-二】清华大学开源中文版ChatGLM-6B模型微调实战
    1. ChatGLM-6B P-Tuning V2 微调:Fine-tuning the prefix encoder of the model.
  3. 【ChatGLM-6B入门-三】ChatGLM 特定任务微调实战
  4. 【ChatGLM-6B入门-四】ChatGLM + LoRA 进行finetune
    1. 介绍:ChatGLM-6B LoRA 微调:Fine-tuning the low-rank adapters of the model.
  5. ChatGLM-6B 小编填坑记
    1. 介绍:ChatGLM-6B 在 部署和微调 过程中 会遇到很多坑,小编掉坑了很多次,为防止 后人和小编一样继续掉坑,小编索性把遇到的坑都填了。
  6. 【LLMs学习】关于大模型实践的一些总结
  7. 【LLMs 入门实战 —— 十一 】基于 🤗PEFT 的高效 🤖ChatGLM-6B 微调
    1. 微调方式:
      1. ChatGLM-6B Freeze 微调:Fine-tuning the MLPs in the last n blocks of the model.
      2. ChatGLM-6B P-Tuning V2 微调:Fine-tuning the prefix encoder of the model.
      3. ChatGLM-6B LoRA 微调:Fine-tuning the low-rank adapters of the model.

第二重 Stanford Alpaca 7B

第三重 Chinese-LLaMA-Alpaca

第四重 小羊驼 Vicuna

第五重 GPT4ALL

第六重 MOSS

  • 【LLMs 入门实战 —— 十三 】MOSS 模型学习与实战
    • 介绍:MOSS是一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张3090显卡运行,在INT4/8精度下可在单张3090显卡运行。MOSS基座语言模型在约七千亿中英文以及代码单词上预训练得到,后续经过对话指令微调、插件增强学习和人类偏好训练具备多轮对话能力及使用多种插件的能力。
    • 局限性:由于模型参数量较小和自回归生成范式,MOSS仍然可能生成包含事实性错误的误导性回复或包含偏见/歧视的有害内容,请谨慎鉴别和使用MOSS生成的内容,请勿将MOSS生成的有害内容传播至互联网。若产生不良后果,由传播者自负。

第七重 BLOOMz

  • 【LLMs 入门实战 —— 十四 】 BLOOMz 模型学习与实战
    • 介绍:大型语言模型(LLMs)已被证明能够根据一些演示或自然语言指令执行新的任务。虽然这些能力已经导致了广泛的采用,但大多数LLM是由资源丰富的组织开发的,而且经常不对公众开放。作为使这一强大技术民主化的一步,我们提出了BLOOM,一个176B参数的开放性语言模型,它的设计和建立要感谢数百名研究人员的合作。BLOOM是一个仅有解码器的Transformer语言模型,它是在ROOTS语料库上训练出来的,该数据集包括46种自然语言和13种编程语言(共59种)的数百个来源。我们发现,BLOOM在各种基准上取得了有竞争力的性能,在经历了多任务提示的微调后,其结果更加强大。
    • 模型地址:huggingface.co/bigscience/…

第八重 BELLE

  • 【LLMs 入门实战 —— 十五 】 BELLE 模型学习与实战
    • 介绍:相比如何做好大语言模型的预训练,BELLE更关注如何在开源预训练大语言模型的基础上,帮助每一个人都能够得到一个属于自己的、效果尽可能好的具有指令表现能力的语言模型,降低大语言模型、特别是中文大语言模型的研究和应用门槛。为此,BELLE项目会持续开放指令训练数据、相关模型、训练代码、应用场景等,也会持续评估不同训练数据、训练算法等对模型表现的影响。BELLE针对中文做了优化,模型调优仅使用由ChatGPT生产的数据(不包含任何其他数据)。
    • github 地址: github.com/LianjiaTech…

第九重 ChatRWKV

  • 【LLMs 入门实战 —— 十八 】 ChatRWKV 模型学习与实战
    • 目前 RWKV 有大量模型,对应各种场景,各种语言,请选择合适的模型:
      • Raven 模型:适合直接聊天,适合 +i 指令。有很多种语言的版本,看清楚用哪个。适合聊天、完成任务、写代码。可以作为任务去写文稿、大纲、故事、诗歌等等,但文笔不如 testNovel 系列模型。
      • Novel-ChnEng 模型:中英文小说模型,可以用 +gen 生成世界设定(如果会写 prompt,可以控制下文剧情和人物),可以写科幻奇幻。不适合聊天,不适合 +i 指令。
      • Novel-Chn 模型:纯中文网文模型,只能用 +gen 续写网文(不能生成世界设定等等),但是写网文写得更好(也更小白文,适合写男频女频)。不适合聊天,不适合 +i 指令。
      • Novel-ChnEng-ChnPro 模型:将 Novel-ChnEng 在高质量作品微调(名著,科幻,奇幻,古典,翻译,等等)。
    • github: github.com/BlinkDL/Cha…
    • 模型文件:huggingface.co/BlinkDL

第十重 ChatGPT

第十一重 OpenBuddy

  • 【LLMs 入门实战 —— 二十八 】 OpenBuddy 模型学习与实战
    • 论文名称:OpenBuddy - Open Multilingual Chatbot based on Falcon
    • github 地址:github.com/OpenBuddy/O…
    • 动机:虽然目前 很多人 LLMs 层出不穷,但是他们并不能 在 多语言支持无缝衔接(eg: LLaMA 模型由于是用 英语训练,所以在 中文等其他语种上效果并不好)
    • 介绍:基于 Tii 的 Falcon 模型和 Facebook 的 LLaMA 模型构建,OpenBuddy 经过微调,包括扩展词汇表、增加常见字符和增强 token 嵌入。通过利用这些改进和多轮对话数据集,OpenBuddy 提供了一个强大的模型,能够回答各种语言的问题并执行翻译任务。

第十二重 Baize

第十三重 OpenChineseLLaMA

第十四重 Panda

第十五重 Ziya-LLaMA-13B

  • 【LLMs 入门实战 】 Ziya-LLaMA-13B 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码:huggingface.co/IDEA-CCNL/Z…
    • 模型:
    • 介绍:该项目开源了姜子牙通用大模型V1,是基于LLaMa的130亿参数的大规模预训练模型,具备翻译,编程,文本分类,信息抽取,摘要,文案生成,常识问答和数学计算等能力。该模型已完成大规模预训练、多任务有监督微调和人类反馈学习三阶段的训练过程。

第十六重 BiLLa

  • 【LLMs 入门实战 】 BiLLa 学习与实战
    • 论文名称:BiLLa: A Bilingual LLaMA with Enhanced Reasoning Ability
    • 论文地址:
    • Github 代码:github.com/Neutralzz/B…
    • 模型:
    • 介绍:该项目开源了推理能力增强的中英双语LLaMA模型。模型的主要特性有:较大提升LLaMA的中文理解能力,并尽可能减少对原始LLaMA英文能力的损伤;训练过程增加较多的任务型数据,利用ChatGPT生成解析,强化模型理解任务求解逻辑;全量参数更新,追求更好的生成效果。

第十七重 Luotuo-Chinese-LLM

第十八重 Linly

  • 【LLMs 入门实战 】 Linly 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码:github.com/CVI-SZU/Lin…
    • 模型:
    • 介绍:提供中文对话模型 Linly-ChatFlow 、中文基础模型 Linly-Chinese-LLaMA 及其训练数据。中文基础模型以 LLaMA 为底座,利用中文和中英平行增量预训练。项目汇总了目前公开的多语言指令数据,对中文模型进行了大规模指令跟随训练,实现了 Linly-ChatFlow 对话模型。

第十九重 ChatYuan

第二十重 CPM-Bee

  • 【LLMs 入门实战 】 CPM-Bee 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码:github.com/OpenBMB/CPM…
    • 模型:
    • 介绍:一个完全开源、允许商用的百亿参数中英文基座模型。它采用Transformer自回归架构(auto-regressive),在超万亿(trillion)高质量语料上进行预训练,拥有强大的基础能力。开发者和研究者可以在CPM-Bee基座模型的基础上在各类场景进行适配来以创建特定领域的应用模型。

第二十一重 TigerBot

  • 【LLMs 入门实战 】 TigerBot 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码:github.com/TigerResear…
    • 模型:
    • 介绍:一个多语言多任务的大规模语言模型(LLM),开源了包括模型:TigerBot-7B, TigerBot-7B-base,TigerBot-180B,基本训练和推理代码,100G预训练数据,涵盖金融、法律、百科的领域数据以及API等。

第二十二重 书生·浦语

  • 【LLMs 入门实战 】 书生·浦语 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码:github.com/InternLM/In…
    • 模型:
    • 介绍:商汤科技、上海AI实验室联合香港中文大学、复旦大学和上海交通大学发布千亿级参数大语言模型“书生·浦语”(InternLM)。据悉,“书生·浦语”具有1040亿参数,基于“包含1.6万亿token的多语种高质量数据集”训练而成。

第二十三重 Aquila

  • 【LLMs 入门实战 】 Aquila 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码: github.com/FlagAI-Open…
    • 模型:
    • 介绍:由智源研究院发布,Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。也是首个支持中英双语知识、支持商用许可协议、符合国内数据合规需要的大规模开源语言模型。

第二十四重 baichuan-7B

  • 【LLMs 入门实战 】 baichuan-7B 学习与实战
    • 论文名称:
    • 论文地址:
    • Github 代码: github.com/baichuan-in…
    • 模型:
    • 介绍:由百川智能开发的一个开源可商用的大规模预训练语言模型。基于Transformer结构,在大约1.2万亿tokens上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。在标准的中文和英文权威benchmark(C-EVAL/MMLU)上均取得同尺寸最好的效果。

第二层 LLMs to Intelligent Retrieval (IR)

第一重 langchain

  1. 【LLMs 入门实战 —— 十二 】基于 本地知识库 的高效 🤖langchain-ChatGLM
    1. 介绍:langchain-ChatGLM是一个基于本地知识的问答机器人,使用者可以自由配置本地知识,用户问题的答案也是基于本地知识生成的。

第三层 LLMs to Text-to-Image

第一重 Stable Diffusion

第四层 LLMs to Visual Question Answering (VQA)

第一重 BLIP

  • 【LLMs 入门实战 —— 二十二】 BLIP 模型学习与实战
    • 论文名称:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
    • 论文地址:arxiv.org/abs/2201.12…
    • 代码地址:github.com/salesforce/…
    • 局限性:
      • 模型角度:
        • 现有方法:大多数方法要么采用基于编码器的模型,要么采用编码器-解码器模型。
        • 存在问题:基于编码器的模型不太容易直接转换到文本生成任务(例如图像字幕),而编码器-解码器模型尚未成功用于图像文本检索任务
      • 数据角度: 大多数SOTA的方法(如CLIP、ALBEF等)都在从web上收集到的图文对上进行预训练。尽管通过扩展数据集获得了性能提升,但 BLIP 的研究表明,对于视觉语言学习来说,有噪声的网络文本是次优的。
    • BLIP总体思路:作为新的 VLP 框架,BLIP 用于统一视觉语言理解和生成的 Bootstrapping Language-Image 预训练,可以灵活地迁移到视觉语言理解和生成任务。 BLIP 通过引导字幕有效地利用了嘈杂的网络数据,字幕生成器生成合成字幕,过滤器去除嘈杂的字幕
    • 贡献:
      • (1) 编码器-解码器 (MED) 的多模式混合:一种用于有效多任务预训练和灵活迁移学习的新模型架构。MED可以作为单模态编码器、基于图像的文本编码器或基于图像的文本解码器工作。该模型与三个视觉语言目标联合预训练:图像文本对比学习、图像文本匹配和图像条件语言建模
      • (2) 字幕和过滤(Captioning and Filtering,CapFilt):一种新的数据集增强方法,用于从噪声图像-文本对中学习。作者将预先训练的MED分为两个模块: 一个字幕器,用于生成给定web图像的合成字幕,以及一个过滤器,用于从原始web文本和合成文本中删除嘈杂的字幕

第二重 BLIP2

  • 【LLMs 入门实战 —— 二十六】 BLIP2 模型学习与实战
    • 论文名称:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
    • 单位:Salesforce 研究院
    • 论文地址:arxiv.org/abs/2301.12…
    • 代码地址:github.com/salesforce/…
    • HF上的Demo:huggingface.co/spaces/Sale…
    • 动机
      • 由于大规模模型的端到端训练,视觉和语言预训练的成本变得越来越高
      • 为了降低计算成本并抵消灾难性遗忘的问题,希望在 Vision-language pre-training (VLP) 中固定视觉模型参数与语言模型参数。然而,由于语言模型在其单模态预训练期间没有看到图像,因此冻结它们使得视觉语言对齐尤其具有挑战性
    • 介绍:
      • BLIP-2, 一种通用而有效的预训练策略,它从现成的冻结预训练图像编码器和冻结的大型语言模型中引导视觉语言预训练。
      • 通过一个轻量级的 Querying Transformer (Q-Former是一个轻量级的 transformer,它使用一组可学习的查询向量来从冻结图像编码器中提取视觉特征,为LLM提供最有用的视觉特征,以输出所需的文本) 弥补了模态 gap,该 Transformer 分两个阶段进行预训练:
      • 第一阶段:从冻结图像编码器引导视觉语言表示学习,强制 Q-Former 学习与文本最相关的视觉表示;
      • 第二阶段:将视觉从冻结的语言模型引导到语言生成学习,将Q-Former的输出连接到冻结的LLM,并对Q-Former进行训练,使其输出视觉表示能够被LLM解释。

第三重 MiniGPT-4

第四重 VisualGLM-6B

  • 【LLMs 入门实战 —— 十七 】 VisualGLM-6B 模型学习与实战
    • Github 链接: github.com/THUDM/Visua…
    • Huggingface 链接:huggingface.co/THUDM/visua…
    • 动机:OpenAI 的GPT-4样例中展现出令人印象深刻的多模态理解能力,但是能理解图像的中文开源对话模型仍是空白。
    • 介绍:VisualGLM-6B 是一个开源的,支持图像、中文和英文的多模态对话语言模型,语言模型基于 ChatGLM-6B,具有 62 亿参数;图像部分通过训练 BLIP2-Qformer 构建起视觉模型与语言模型的桥梁,整体模型共 78 亿参数。VisualGLM-6B 依靠来自于 CogView 数据集的30M高质量中文图文对,与 300M 经过筛选的英文图文对进行预训练,中英文权重相同。该训练方式较好地将视觉信息对齐到 ChatGLM 的语义空间;之后的微调阶段,模型在长视觉问答数据上训练,以生成符合人类偏好的答案。
    • github 地址:github.com/THUDM/Visua…

第五重 Ziya-Visual

  • 【LLMs 入门实战 】 Ziya-Visual 模型学习与实战
    • Ziya-Visual模型开源地址:huggingface.co/IDEA-CCNL/Z…
    • Demo体验地址:huggingface.co/spaces/IDEA…
    • Ziya开源模型:huggingface.co/IDEA-CCNL/Z…
    • 封神榜项目主页:github.com/IDEA-CCNL/F…
    • 介绍:自从3月份OpenAI发布具有识图能力的多模态大模型GPT-4,大模型的能力便不再局限于文本输入-文本输出的形式,人们可以上传视觉图片来与大模型进行聊天和交互。遗憾的是,时至今日绝大部分用户也都还没有拿到GPT-4输入图片的权限,无法体验到结合视觉和语言两大模态的大模型的卓越能力,而且GPT-4也没有叙述或者开源GPT模型多模态预训练的方案。与之相对的是,学术界和开源界则充分探索了视觉预训练模型(比如ViT, Vision Transformer)与大语言模型(LLM,Large Language Model)结合,从而让目前的LLM获得输入图片、认识图片的能力。其中的代表工作包括国外团队开源的Mini-GPT4[1],LLaVA[2]等,国内团队开源的VisuaGLM[3],mPLUG-Owl[4]等工作。大部分的开源方案参考了BLIP2的训练方案[5],选择冻结LLM部分的参数训练或者采用Lora等parameter-efficient的微调训练方式。IDEA研究院封神榜团队在5月17日发布“姜子牙通用大模型v1”之后,继续发布Ziya-BLIP2-14B-Visual-v1多模态大模型(以下简称Ziya-Visual模型)。和Ziya大模型一样,Ziya-Visual模型具备中英双语能力,特别是中文能力较为突出。和所有基于BLIP2的方案类似,我们简单高效的扩展了LLM的识图能力。该模型对比VisualGLM、mPLUG-Owl模型,在视觉问答(VQA)评价和GPT-4打分评价[2]中,展现了一些优势。

第五层 LLMs to Automatic Speech Recognition (ASR)

第一重 Massively Multilingual Speech (MMS,大规模多语种语音)

第六层 LLMs to Text To Speech (TTS)

第一重 Massively Multilingual Speech (MMS,大规模多语种语音)

第七层 LLMs to Artifact

第一重 AutoGPT

  • AutoGPT 使用和部署
    • 介绍:Auto-GPT是一个基于ChatGPT的工具,他能帮你自动完成各种任务,比如写代码、写报告、做调研等等。使用它时,你只需要告诉他要扮演的角色和要实现的目标,然后他就会利用ChatGPT和谷歌搜索等工具,不断“思考”如何接近目标并执行,你甚至可以看到他的思考过程。

第八层 LLMs to Parameter Efficient Fine-Tuning (PEFT)

第一重 LLMTune

  • 【LLMs 入门实战 —— 十六 】 LLMTune 模型学习与实战
    • 动机:大语言模型虽然能力很强,目前开源生态也很丰富,但是在特定领域微调大模型依然需要大规格的显卡。例如,清华大学发布的ChatGLM-6B,参数规模60亿,在没有量化的情况下微调需要14GB显存(parameter-efficient fine-tuning,PEFT)。在没有任何优化的前提下,每10亿参数的全精度(32bit)模型载入到显存中就需要4GB,而int8量化后也需要1GB显存。而目前开源最强的模型LLaMA,其最高参数维650亿规模,全精度模型载入就需要260GB,显然已经超出了大部分人的硬件水平。更不要说对模型进行微调(微调需要训练更新参数,推理只需要前向计算即可,因此,微调需要更多的显存才能支持)。
    • 介绍:Cornell Tech开源的LLMTune就是为了降低大模型微调难度所提出的一种解决方案。对于650亿参数的LLaMA模型微调仅需要40GB显存即可。
    • github 地址: github.com/kuleshov-gr…

第二重 QLoRA

第三重 Parallel

  • 分布式训练神器 之 ZeRO 学习

    • 动机:虽然 DataParallel (DP) 因为简单易实现,所以目前应用相比于其他两种 广泛,但是 由于 DataParallel (DP) 需要 每张卡都存储一个模型,导致 显存大小 成为 制约模型规模 的 主要因素。
    • 核心思路:去除数据并行中的冗余参数,使每张卡只存储一部分模型状态,从而减少显存占用。
  • 分布式训练神器 之 分布式训练方法汇总

    • DataParallel分布式训练
    • Distributed分布式训练
    • multiprocess启动
    • AMP混合精度训练
    • horovod分布式训练
    • deepspeed分布式训练
    • accelerate分布式训练
    • transformers的Trainer分布式训练

第四重 Trick

第九层 LLMs to Vertical Field (VF)

第一重 金融领域

第二重 医疗领域

第三重 法律领域

  • 【LLMs 入门实战 】 LaWGPT 学习与实战:基于中文法律知识的大语言模型
    • 论文名称:
    • 论文地址:github.com/pengxiao-so…
    • 介绍:该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在法律领域的基础语义理解能力。在此基础上,构造法律领域对话问答数据集、中国司法考试数据集进行指令精调,提升了模型对法律内容的理解和执行能力。
  • 【LLMs 入门实战 】 LaWGPT 学习与实战:中文法律大模型
    • 论文名称:
    • 论文地址:github.com/CSHaitao/Le…
    • 介绍:LexiLaw 是一个基于 ChatGLM-6B微调的中文法律大模型,通过在法律领域的数据集上进行微调。该模型旨在为法律从业者、学生和普通用户提供准确、可靠的法律咨询服务,包括具体法律问题的咨询,还是对法律条款、案例解析、法规解读等方面的查询。
  • 【LLMs 入门实战 】 Lawyer LLaMA 学习与实战:中文法律LLaMA
    • 论文名称:
    • 论文地址:github.com/AndrewZhe/l…
    • 介绍:开源了一系列法律领域的指令微调数据和基于LLaMA训练的中文法律大模型的参数。Lawyer LLaMA 首先在大规模法律语料上进行了continual pretraining。在此基础上,借助ChatGPT收集了一批对中国国家统一法律职业资格考试客观题(以下简称法考)的分析和对法律咨询的回答,利用收集到的数据对模型进行指令微调,让模型习得将法律知识应用到具体场景中的能力。

第四重 教育领域

  • 【LLMs 入门实战 】 桃李(Taoli) 学习与实战
    • 论文名称:
    • 论文地址:github.com/blcuicall/t…
    • 介绍:一个在国际中文教育领域数据上进行了额外训练的模型。项目基于目前国际中文教育领域流通的500余册国际中文教育教材与教辅书、汉语水平考试试题以及汉语学习者词典等,构建了国际中文教育资源库,构造了共计 88000 条的高质量国际中文教育问答数据集,并利用收集到的数据对模型进行指令微调,让模型习得将知识应用到具体场景中的能力。

第五重 文化领域

参考

  1. Awesome-Chinese-LLM:收集和梳理中文LLM相关的开源模型、应用、数据集及教程等资料