Skip to content
SWHL edited this page Jun 30, 2023 · 36 revisions

image

引言

  • 当前LLM模型火出天际,但是做事还是需要脚踏实地。
  • 此文只是日常学习LLM,顺手整理所得。
  • 本篇博文更多侧重对话、问答类LLM上,其他方向(代码生成)这里暂不涉及,可以去看综述来了解。

Guanaco(原鸵)(华盛顿大学)

Falcon(猎鹰)(阿联酋技术创新研究所)

  • 2023年5月25日,阿联酋技术创新研究所宣布阿联酋首个大型人工智能模型“猎鹰 40B”开源,供研究和商业使用。Falcon 是一种具有 400 亿个参数的基础大型语言模型 (LLM),在 1 万亿个令牌上进行了训练。

之前LLM模型梳理

img

BLOOM (BigScience)

  • BLOOM是一个自回归的大模型,可根据prompt来生成连续的文本。包括46种语言和13个编程语言。
  • 参数量为1760亿个参数。和GPT一样,使用的是decoder-only架构。
  • 训练所用数据集基本是手搓出来的。
  • 但是要想推理起来这个模型,起码需要8个A800 80G的显卡才能推理起来。小编前不久有幸推理了一下,模型将近就有328G,真是够大的。
  • 这个模型要想落地,可就需要很长一段时间了。

后BLOOM模型梳理

flowchart LR
A([BLOOM]) --> B([Firefly])
A --> C([BELLE])
A --> D([TigerBot])

TigerBot(虎博科技)

  • TigerBot 是一个多语言多任务的大规模语言模型(LLM)。根据 OpenAI InstructGPT 论文在公开 NLP 数据集上的自动评测,TigerBot-7B 达到 OpenAI 同样大小模型的综合表现的 96%,并且这只是我们的 MVP(Minimum Viable Product,最小可行产品),在此我们将如下探索成果开源:
    • 模型:TigerBot-7B, TigerBot-7B-base,TigerBot-180B (research version),
    • 代码:基本训练和推理代码,包括双卡推理 180B 模型的量化和推理代码,
    • 数据:预训练 100G,从 2TB 过滤后的数据中经过去噪去重清洗而得;监督微调 1G 或 100 万条数据,按比例涵盖用户指令常见的 10 大类 120 小类任务,
    • API: chat, plugin, finetune, 让用户能在半小时内无代码的训练和使用专属于自己的大模型和数据,
    • 领域数据:涵盖金融,法律,百科,广邀大模型应用开发者,一起打造中国的世界级的应用。
  • 我们在 BLOOM 基础上,在模型架构和算法上做了如下优化:
    • 指令完成监督微调的创新算法以获得更好的可学习型(learnability),
    • 运用 ensemble 和 probabilistic modeling 的方法实现更可控的事实性(factuality)和创造性(generativeness),
    • 在并行训练上,我们突破了 deep-speed 等主流框架中若干内存和通信问题,使得在千卡环境下数月无间断,
    • 对中文语言的更不规则的分布,从 tokenizer 到训练算法上做了更适合的算法优化。

Firefly(yangjianxin1)

  • Firefly(流萤) 是一个开源的中文对话式大语言模型,基于BLOOM模型,使用指令微调(Instruction Tuning)在中文数据集上进行调优。同时使用了词表裁剪、ZeRO、张量并行等技术,有效降低显存消耗和提高训练效率。 在训练中,使用了更小的模型参数量,以及更少的计算资源。构造了许多与中华文化相关的数据,以提升模型这方面的表现,如对联、作诗、文言文翻译、散文、金庸小说等。
  • 因为该项目首先采用LLMPrunner对原始BLOOM模型进行此表裁剪,所以效果有限,优势在于小,缺点也在这里。

BELLE (链家)

  • 本项目重点关注在开源预训练大语言模型的基础上,如何得到一个尽可能效果好的具有指令表现能力的语言模型,降低大家研究此方面工作的门槛,重点在于中文大语言模型。

  • 针对中文做了优化,模型调优仅使用了由ChatGPT生产的数据(不包含任何其他数据)

  • 调优BLOOMZ-7B1-mt模型,开放了四个不同大小规模的指令学习数据集训练模型

    Datasize 200,000 600,000 1,000,000 2,000,000
    Finetuned Model BELLE-7B-0.2M BELLE-7B-0.6M BELLE-7B-1M BELLE-7B-2M
  • 值得说明的是,该项目开源了一批由ChatGPT生成的中文数据集,具体如下:
    • 1.5M中文数据集:包含不同指令类型、不同领域的子集。
    • 10M中文数据集,包括25w条中文数学题数据、80w条用户与助手对话数据、40w条给定角色的多轮对话数据、200w条多样化指令任务数据。
  • ⚠️ 数据集开源协议均为GPL3.0,使用请注意。

LLaMA (Meta)

  • 缺乏指令微调

后LLaMA模型整理

flowchart LR
A([LLaMA]) --> B([Alpaca]) --> D([FreedomGPT])
B --> B_00(Alaaca-LoRA)
B --> B_0(Alpaca.cpp)
B --> B_1(Chinese-alpaca-lora)
B --> B_2(japanese-alpaca-lora)
B --> B_3(Wombat)

A --> C([Vicuna])
A --> E([Koala])
A --> F([ChatLLaMA])
F --> F_1([Linly])
A --> G([ColossalChat])
A --> H([Baize])
A --> I([gpt4all])
A --> J([HuaTuo])
A --> K([OpenAssistant])
A --> L([Lit-LLaMA])
A --> M(llama.cpp)

C --> C_1([MiniGPT-4])
click A href "https://github.com/facebookresearch/llama" _blank
click B "https://github.com/tatsu-lab/stanford_alpaca" _blank
click C "https://github.com/lm-sys/FastChat" _blank
click D "https://github.com/ohmplatform/FreedomGPT" _blank
click E "https://github.com/young-geng/EasyLM" _blank
click F "https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama" _blank
click G "https://github.com/hpcaitech/ColossalAI/tree/main/applications/Chat/coati" _blank
click H "https://github.com/project-baize/baize-chatbot" _blank
click I "https://github.com/nomic-ai/gpt4all" _blank
click F_1 "https://github.com/CVI-SZU/Linly" _blank
click J "https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese" _blank
click C_1 "https://github.com/Vision-CAIR/MiniGPT-4" _blank
click K "https://github.com/LAION-AI/Open-Assistant" _blank
click L "https://github.com/Lightning-AI/lit-llama" _blank

在纯C/C++中推断LLaMA模型,支持LLaMA,Alpaca,GPT4All和Vicuna

Alpaca (斯坦福)

  • 由Meta的LLaMA 7B微调而来,52k数据,性能约等于GPT-3.5
  • Self-Instruct: Aligning Language Model with Self Generated Instructions论文启发,使用现有强语言模型自动生成指令数据
  • 衍生项目:

Vicuna (UC伯克利、卡内基梅隆大学、斯坦福大学和加州大学圣地亚哥分校)

  • 与GPT-4性能相匹配的LLaMA微调版本, 130亿参数
  • 通过在ShareGPT收集用户共享对话对LLaMA进行微调而来,在超过90%的情况下,实现了与Bard和ChatGPT相匹配的能力

image

flowchart LR
A(ShareGPT收集70k对话数据) --> B("优化Aplaca训练脚本,处理多轮对话和长序列问题") --> C("PyTorch FSDP 8个A100 一天训练")
C --> D("质量评估,80个问题,用GPT-4对模型输出进行评价")

三者之间汇总对比

image

  • 结合BLIP和Vicuna两个模型能力,可以对给定图像作chat image

Koala (UC伯克利 AI Research Institute(BAIR))

  • 使用网络获取的高质量数据进行训练,可以有效地回答各种用户的查询,比Alpaca更受欢迎,至少在一半的情况下与ChatGPT的效果不相上下
  • 得出有效结论:正确的数据可以显著改善规模更小的开源模型
  • 研究人员专注于收集一个小型的高质量数据集,包括ChatGPT蒸馏数据、开源数据等

ChatLLaMA (Nebuly)

  • 一个可以使用自己的数据和尽可能少的计算量,来创建个性化的类似ChatGPT的对话助手
  • 库的目的是通过抽象计算优化和收集大量数据所需的工作,让开发人员高枕无忧
  • ChatLLaMA旨在帮助开发人员处理各种用例,所有用例都与RLHF训练和优化推理有关。以下是一些用例参考:
    • 为垂直特定任务(法律、医疗、游戏、学术研究等)创建类似ChatGPT的个性化助手;
    • 想在本地硬件基础设施上使用有限的数据,训练一个高效的类似ChatGPT的助手;
    • 想创建自己的个性化版本类ChatGPT助手,同时避免成本失控;
    • 想了解哪种模型架构(LLaMA、OPT、GPTJ等)最符合我在硬件、计算预算和性能方面的要求;
    • 想让助理与我的个人/公司价值观、文化、品牌和宣言保持一致。
  • 本项目向社区提供中文对话模型 Linly-ChatFlow 、中文基础模型 Linly-Chinese-LLaMA 及其训练数据。 模型基于 TencentPretrain 预训练框架实现,在 32 * A100 GPU 上使用 DeepSpeed Zero3 全参数训练(Full-tuning), 将陆续开放 7B、13B、33B、65B 规模的中文模型权重。
  • 其中,中文基础模型 Linly-Chinese-LLaMA 以 LLaMA 为底座,利用中文和中英平行增量预训练,将它在英文上强大语言能力迁移到中文上,使用的语料包括中英平行语料中文维基、社区互动、新闻数据科学文献等。更进一步,本项目汇总了目前公开的多语言指令数据,对中文模型进行了大规模指令跟随训练,实现了 Linly-ChatFlow 对话模型。Linly-ChatFlow 支持简繁体中文、英文、日文等多语言。

FreedomGPT (Age of AI)

  • 建立在Alpaca之上,回答问题没有偏见或偏袒,并且会毫不犹豫第回答有争议或争论性的话题
  • 克服了审查限制,在没有任何保障的情况下迎合有争议性的话题。标志是自由女神像,象征自由。

ColossalChat (UC伯克利)

  • 基于LLaMA模型,只需不到100亿个参数就能达到中英文双语能力,效果与ChatGPT和GPT3.5相当。
  • 复刻了完整的RLHF过程,是目前最接近ChatGPT原始技术路线的开源项目
  • 使用了InstrutionWild中英双语训练数据集,其中包含大约100,000个中英文问答对。
    • 该数据集是从社交媒体平台上的真实问题场景中收集和清理的,作为种子数据集,使用self-instruct进行扩展,标注成本约为900美元。
    • 与其他self-instruct方法生成的数据集相比,该数据集包含更真实和多样化的种子数据,涵盖更广泛的主题。该数据集适用于微调和RLHF训练。
    • 在提供优质数据的情况下,ColossalChat可以实现更好的对话交互,同时也支持中文。
  • 完整的RLHF管线,共有三个阶段:
    1. RLHF-Stage1: 使用上述双语数据集进行监督指令微调模型
    2. RLHF-Stage2: 通过对同一提示的不同输出手动排序来训练奖励模型,分配相应的分数,然后监督奖励模型的训练
    3. RLHF-Stage3: 使用强化学习算法,这是训练过程中最复杂的部分。

Baize (加州大学圣迭戈分校、中山大学和微软亚研)

  • 包括四种英文模型(白泽-7B、13B、30B)和一个垂直领域的白泽医疗模型,计划未来发布中文的白泽模型。

  • 值得注意的是,该方法的数据处理、训练模型、Demo等全部代码均已开源,真是良心,由衷点赞。

  • 作者提出一种自动收集ChatGPT对话的流水线,通过从特定数据集中采样[种子]的方式,让ChatGPT自我对话,批量生成高质量多轮对话数据集。如果使用特定领域数据集,比如医学问答数据集,就可以生成高质量垂直领域语料。

    image

gpt4all(Nomic AI)

  • 基于GPT-3.5-Turbo的800k条数据进行训练,包括文字问题、故事描述、多轮对话和代码。
  • 该方案提供了完整的技术报告,包括收集数据、整理数据、训练代码和模型权重。

Huatuo-Llama-Med-Chinese(哈工大)

OpenAssistant (LAION-AI)

  • 一种基于聊天的助手,可以理解任务,可以与第三方系统交互,并动态检索信息。

Lit-LLaMA (Lightning-AI)

  • 基于nanoGPT的LLaMA的独立实现

ChatYuan-large-v2 (元语智能)

  • 这个模型的商业气息较浓一些。不过,这也是无奈之举。
  • ChatYuan-large-v2是一个支持中英双语的功能型对话语言大模型。ChatYuan-large-v2使用了和 v1版本相同的技术方案,在微调数据、人类反馈强化学习、思维链等方面进行了优化。
  • ChatYuan-large-v2是ChatYuan系列中以轻量化实现高质量效果的模型之一,用户可以在消费级显卡、 PC甚至手机上进行推理(INT4 最低只需 400M )。

ChatGLM-6B (清华)

GLM-130B(清华)

ChatGLM周边梳理

flowchart LR
A([ChatGLM]) --> B([langchain-ChatGLM])
A --> C([ChatGLM-Med])
A --> D([ChatGLM-webui])
A --> E([chatglm-maths])
A --> F([CreativeChatGLM])
A --> G([nonebot_plugin_ChatGLM6B])
A --> H([wenda])

chatglm-maths: 数学微调

CreativeChatGLM: 续写工具

nonebot_plugin_ChatGLM6B: 基于chatglm的nonebot实现

  • 该项目是基于本地知识的ChatGLM应用实现。基于本地文档类知识来增强ChatGLM的回答。这应该是最能落地的项目了。

  • 整体流程如下图:

    image

Med-ChatGLM(哈工大)

  • 针对特定环境的内容生成是LLM使用中的一项重要应用,实现这一目的,主要有全量微调、lora微调、和本项目方法。但个人没有做全量微调的,lora微调只能牺牲基础能力换单任务效果(用6B模型lora调出来的单任务效果,专门设计一个0.5B模型也能实现,且推理成本更低)。

IDPChat (白海)

  • 中文多模态模型,基于预训练大模型LLaMA和开源文生图预训练模型Stable Diffusion为基础,快速构建而来。
  • 开发者可以根据场景需求,便捷地对其进行微调优化。

StableLM (Stability-AI)

  • 发布这个模型的公司与发布Stable Diffusion模型是同一个公司
  • Stable LM的发布建立在EleutherAI(一个非营利性研究中心)开源早期语言模型之上的。包括GPT-J、GPT-NeoX和Pythia套件,这些模型是在 The Pile开源数据集上进行训练的(许多最近开源的大语言模型也用它训练的,包括Cerebras-GPT和Dolly-2。)
  • Stable LM是在The Pile的基础上建立的,但规模是它的三倍,包含1.5万亿条清洗、标注过的数据。官方将在适当的时候公布有关数据集的详细信 息。尽管其规模只有30亿到70亿个参数(相比之下,GPT-3有1750亿个参数),但该数据集的丰富性使得Stable LM在对话和编码任务中表现出惊 人的高性能。
  • Stability AI还发布了一组经过指令微调的研究模型。这些微调模型使用的是最近的开源数据集的组合:Alpaca、GPT4All、Dolly、ShareGPT和 HH。这些微调模型仅用于研究目的,并根据斯坦福大学的Alpaca许可证发布,遵守非商业CC BY-NC-SA 4.0许可证。

WebLLM(陈天奇团队)

  • 基于LLM的类ChatGPT也能引进来,而且还是不需要服务器支持、WebGPU加速

MOSS (复旦大学自然语言处理实验室)

  • MOSS是一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张 3090显卡运行,在INT4/8精度下可在单张3090显卡运行。MOSS基座语言模型在约七千亿中英文以及代码单词上预训练得到,后续经过对话指令 微调、插件增强学习和人类偏好训练具备多轮对话能力及使用多种插件的能力。
  • 开源了模型和数据。但是还没有出相关的论文或技术报告。

UltraChat(清华thunlp)

  • 该项目旨在构建一个开源、大规模、多轮的基于 Turbo APIs 的对话数据,方便研究者开发具有通用对话能力的强大语言模型。 此外,考虑到隐私保护等因素,该项目不会直接使用互联网上的数据作为提示。
  • 为了确保生成数据质量,研究者在生成过程中采用了两个独立的 ChatGPT Turbo API,其中一个模型扮演用户角色来生成问题或指令,另一个模型 生成反馈。
  • 这个项目类似于Baize项目,但是比白泽生成的数据样式更加多样。白泽是基于种子对话和问题生成的,而UltraChat进行了细致的提示工程设计。

Big Bang Transformer乾元 (超对称技术公司)

  • 探索包括ChatGPT在内的大预言模型在金融领域的应用。
  • 包括智能投顾,量化交易,低代码开发三个方向。

参考资料