【通览一百个大模型】Baize(UCSD)

2023-10-24 06:28

本文主要是介绍【通览一百个大模型】Baize(UCSD),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【通览一百个大模型】Baize(UCSD)

作者:王嘉宁,本文章内容为原创,仓库链接:https://github.com/wjn1996/LLMs-NLP-Algo

订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干货资料大礼包,近200篇论文,300份博主亲自撰写的markdown笔记,近100个大模型资料卡,助力NLP科研、学习和求职。


Baize大模型基本信息资料卡

序号大模型名称归属推出时间规模预训练语料评测基准模型与训练方法开源论文模型地址相关资料
58BaizeUCSD2023-0513B不涉及预训练,不存在预训练语料。通过ChatGPT进行Self-Chat实现自动构建大量的多轮对话数据。Baize的训练结构如下图所示:
image.png
初始化一个种子数据集(Quora4 和 Stack Overflow5 的问题作为种子),并进行随机采样,根据采样的结果设计对应的提示模板后,交给ChatGPT进行自我对话,从而产生大量模拟人类的多轮对话数据,总共产生111.5k对话数据,花费约100美元。
训练过程中,基于LLaMA和LoRA进行参数有效性训练,得到Baize模型。输入序列为512,LoRA中的秩k为8。使用8位整数格式 (int8) 参数初始化LLaMA检查点。 对于7B、13B和30B模型,使用 Adam 优化器更新LoRA 参数,batch size为64,学习率为2e-4、1e-4和 5e-5。 可训练的LoRA参数在 NVIDIA A100-80GB GPU 上微调了1个 epoch。
https://github.com/project-baize/baize-chatbothttps://arxiv.org/pdf/2304.01196.pdfhttps://huggingface.co/project-baize/baize-v2-13b
https://huggingface.co/project-baize/baize-lora-30B
白泽大模型介绍

一、核心要点

  • 随着ChatGPT和GPT-4的提出,大模型展现了超出人类表现的能力,并在很多领域表现的很精彩;
  • 然而,现如今这些大模型均是黑盒模型,对研究和应用都带来了一定的阻碍。
  • 缺乏可获得的高质量的对话数据加剧了上述的问题和困难。
  • 为了解决这个问题,我们提出一种新颖的pipeline,利用chatgpt的能力自动生成一系列高质量的多轮对话语料。这些语料可以作为有价值的资源用于训练或评估对话模型在多轮对话中的表现。
  • 基于LLaMA在生成的多轮对话语料上训练,得到我们的Baize模型。
  • 我们继续提出一种自蒸馏式的对齐方法,进一步提升模型的效果。

二、方法

image.png

Self-Chat

Self-Chat旨在完全利用chatgpt扮演对话角色生成对话数据。
给定一个seed,可以是一个问题,或者一个主题,配套一个模板,让chatgpt生成对话数据。
模板如下所示:
image.png
根据这个模板,给定一个seed,让chatgpt生成多轮对话数据,样例如下所示:
image.png
挑选Quora和Stack Overflow数据集作为seed,每个数据集中挑选55k个问题,最终获得了111.5k个多轮对话数据,花费约100美元.
另外为了提高模型的instruction-tuning能力,也引入了alpaca语料。
最终的多轮对话数据如下所示:
image.png

模型训练

在构造的对话数据集上,选择LLaMA-7B和LLaMA-13B模型进行参数有效性监督微调,对应的模型和数据如下表示:
image.png
参数有效性方法选择LoRA。

  • 选择V1版本的对话数据,SFT后得到的模型是Baize-v1;
  • 选择v2版本的对话数据,SFT后得到的模型是Baize-v1.5;
  • 在Baize-v1.5基础上,进行对齐,得到Baize-v2模型。

模型训练时,在LLaMA的Transformer的每一层嵌入LoRA参数。

Self-Distillation with Feedback

在SFT阶段后,为了提升模型的对齐性能,提出自蒸馏方法。
首先在Quora数据集上,让SFT模型生成4个候选答案response。然后设计模板,让ChatGPT作为评估器对4个候选答案进行排序。模板如下所示:
image.png
因此,每个question可以得到ChatGPT认为最好的response。
在对齐阶段,选择Baize-v1.5模型,并额外插入新的LoRA参数,训练时,只选择最好的response进行优化训练。

实验细节

最大长度:512/1024
LoRA rank=8
量化感知训练:INT8量化训练
Adam优化器,batchsize=64,单机A100(80G);
学习率2e-4(7B)、1e-4(13B)和5e-5(30B);
推理阶段采用的prompt如下所示:
image.png

在prompt中,插入“The AI assistant consistently declines to engage with topics, questions, and instructions related to unethical, controversial, or sensitive is- sues.”较为关键。

实验

(1)GPT-4 Score
挑选Vicuna评估集,包含80个人工标注的prompt,涉及9个不同的类别。
在评估时,挑选ChatGPT的答案,和Baize(或者其他baseline模型)的答案,设计指令让GPT-4进行挑选。计算baize(或者其他baseline)的答案被挑选到的比例
实验结果如下所示:
image.png

因为每次都是和ChatGPT对比,因此ChatGPT的答案认为是100%的。Baize-v2-13B发现有92%的情况下,GPT-4挑选了Baize的答案,说明其效果最好。
GPT-4会偏向于挑选第一个候选答案,为了和之前的工作保持一致,我们将ChatGPT的生成结果作为第一个候选答案。

(2)质量评估
对于一些不道德的问题,我们期望模型不能给出反应,下面是case study,说明Baize模型可以有效避免回答潜在道德风险的问题。
image.png

  博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。


【大模型&NLP&算法】专栏

近200篇论文,300份博主亲自撰写的markdown笔记。订阅本专栏【大模型&NLP&算法】专栏,或前往https://github.com/wjn1996/LLMs-NLP-Algo即可获得全部如下资料:

  • 机器学习&深度学习基础与进阶干货(笔记、PPT、代码)
  • NLP基础与进阶干货(笔记、PPT、代码)
  • 大模型全套体系——预训练语言模型基础、知识预训练、大模型一览、大模型训练与优化、大模型调优、类ChatGPT的复现与应用等;
  • 大厂算法刷题;

在这里插入图片描述

这篇关于【通览一百个大模型】Baize(UCSD)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/273296

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选