LLM大模型工程师面试经验宝典--进阶版2(2024.7月最新)

目录

1 大模型怎么评测?

2 大模型的honest原则是如何实现的?模型如何判断回答 的知识是训练过的已知的知识,怎么训练这种能力?

3 如何衡量大模型水平?

4 大模型评估方法 有哪些?

5 大模型评估工具 有哪些?

6 训练大模型找数据集哪里找?

7 微调需要多少条数据?

8 有哪些大模型的训练集?

9 进行领域大模型预训练应用哪些数据集比较好?

10 如何选取和构建大模型微调数据?


1 大模型怎么评测?

        当前superGLUE, GLUE, 包括中文的CLUE 的benchmark都在不太合适评估大模型。可能评估推理能 力、多轮对话能力是核心。

2 大模型的honest原则是如何实现的?模型如何判断回答 的知识是训练过的已知的知识,怎么训练这种能力?

        大模型需要遵循的helpful,honest, harmless的原则。 可以有意构造如下的训练样本,以提升模型准守honest原则,可以算trick了: 微调时构造知识问答类训练集,给出不知道的不回答,加强honest原则; 阅读理解题,读过的要回答,没读过的不回答,不要胡说八道。

3 如何衡量大模型水平?

        要评估一个大型语言模型的水平,可以从以下几个维度提出具有代表性的问题。

理解能力:提出一些需要深入理解文本的问题,看模型是否能准确回答。

语言生成能力:让模型生成一段有关特定主题的文章或故事,评估其生成的文本在结构、逻辑和语 法等方面的质量。

知识面广度:请模型回答关于不同主题的问题,以测试其对不同领域的知识掌握程度。这可以是关 于科学、历史、文学、体育或其他领域的问题。一个优秀的大语言模型应该可以回答各种领域的问 题,并且准确性和深度都很高。

适应性:让模型处理各种不同类型的任务,例如:写作、翻译、编程等,看它是否能灵活应对。

长文本理解:提出一些需要处理长文本的问题,例如:提供一篇文章,让模型总结出文章的要点, 或者请模型创作一个故事或一篇文章,让其有一个完整的情节,并且不要出现明显的逻辑矛盾或故 事结构上的错误。一个好的大语言模型应该能够以一个连贯的方式讲述一个故事,让读者沉浸其 中。

长文本生成:请模型创作一个故事或一篇文章,让其有一个完整的情节,并且不要出现明显的逻辑 矛盾或故事结构上的错误。一个好的大语言模型应该能够以一个连贯的方式讲述一个故事,让读者 沉浸其中。

多样性:提出一个问题,让模型给出多个不同的答案或解决方案,测试模型的创造力和多样性。

情感分析和推断:提供一段对话或文本,让模型分析其中的情感和态度,或者推断角色间的关系。

情感表达:请模型生成带有情感色彩的文本,如描述某个场景或事件的情感、描述一个人物的情感 状态等。一个优秀的大语言模型应该能够准确地捕捉情感,将其表达出来。

逻辑推理能力:请模型回答需要进行推理或逻辑分析的问题,如概率或逻辑推理等。这可以帮助判 断模型对推理和逻辑思考的能力,以及其在处理逻辑问题方面的准确性。例如:“所有的动物都会 呼吸。狗是一种动物。那么狗会呼吸吗?”

问题解决能力:提出实际问题,例如:数学题、编程问题等,看模型是否能给出正确的解答。

道德和伦理:测试模型在处理有关道德和伦理问题时的表现,例如:“在什么情况下撒谎是可以接 受的?”

对话和聊天:请模型进行对话,以测试其对自然语言处理的掌握程度和能力。一个优秀的大语言模 型应该能够准确地回答问题,并且能够理解人类的语言表达方式。

4 大模型评估方法 有哪些?

        人工评估:LIMA、Phoenix

        使用 GPT-4 的反馈进行自动评估:Vicuna、Phoenix、Chimera、BELLE指标评估(BLEU-4、 ROUGE分数):ChatGLM-6B;对于像ROUGE-L分数的指标评估,有些地方称其为非自然指令评 估(Unnatural Instruction Evaluation)。

        Chatbot Arena:目前用来衡量一个模型好不好的东西基本都是基于一些学术的benchmark,比如 在一个某个NLP任务上构建一个测试数据集,然后看测试数据集上准确率多少。

        然而,这些学术 benchmark(如HELM)在大模型和聊天机器人上就不好用了。其原因在于: 由于评判聊天机器人聊得好不好这件事是非常主观的,因此,现有的方法很难对其进行衡 量。 这些大模型在训练的时候就几乎把整个互联网的数据都扫了一个遍,因此,很难保证测试 用的数据集没有被看到过。甚至更 进一步,用测试集直接对模型进行「特训」,如此一来表现必 然更好。 理论上我们可以和聊天机器人聊任何事情,但很多话题或者任务在现存的benchmark里 面根本就不存在。 因此,Chatbot Arena 的做法是放弃benchmark,通过对抗,实时聊天,两两比对人工进行打分,采用 elo分数进行评测。

5 大模型评估工具 有哪些?

        OpenAI evals:OpenAI的自动化评估脚本,核心思路就是通过写prompt模版来自动化评估。

        PandaLM:其是直接训练了一个自动化打分模型,0,1,2三分制用模型对两个候选模型进行打分

6 训练大模型找数据集哪里找?

推荐Alpaca-COT,数据集整理的非常全,眼花缭乱。

7 微调需要多少条数据?

        取决于预训练数据和微调任务的数据分布是否一致,分布一致,100条就够,分布差异大就需要多些数 据,千条或者万条以上为佳。

         自己的任务复杂或者下游任务行业比较冷门,如药品名称识别任务,则需要较多监督数据。还有微调大 模型时,一遍是记不住的。100条的微调数据,epochs=20才能稳定拟合任务要求。

8 有哪些大模型的训练集?

        预训练数据集togethercomputer/RedPajama-Data-1T「红睡衣」开源计划总共包括三部分: 1. 高质量、大规模、高覆盖度的预训练数据集; 2. 在预训练数据集上训练出的基础模型; 3. 指令调优数据集和模型,比基本模型更安全、可靠。 预训练数据集RedPajama-Data-1T已开源,包括七个子集,经过预处理后得到的token数量大致可以匹 配Meta在原始LLaMA论文中报告的数量,并且数据预处理相关脚本也已开源。 完整的RedPajama-Data-1T数据集需要的存储容量为压缩后3TB,解压后5TB。 CoT微调数据集:Alpaca-CoT 里面包括常用的alpaca,CoT等数据集,有中文的。

9 进行领域大模型预训练应用哪些数据集比较好?

        通过分析发现现有的开源大模型进行预训练的过程中会加入数据、论文等数据。主要是因为这些数据的 数据质量较高,领域相关性比较强,知识覆盖率(密度)较大,可以让模型更适应考试。给我们自己进 行大模型预训练的时候提供了一个参考。同时领域相关的网站内容、新闻内容也是比较重要的数据。

10 如何选取和构建大模型微调数据?

1. 动机:在 微调大模型时,首先需要解决的问题是“选取和构建大模型微调数据”,那如何选择呢?

2. 问题一:什么样的 数据 才是 最优的 大模型微调数据?

3. 数据的多样性:

        一般情况下我们数据的分布都是符合一个长尾分布的。主要的几个类别数据占据了90%的数据量,剩下 的90%的类别只有10%的数据量。 举个栗子:小红书上,query的意图识别里,美食,穿搭,旅游攻略类非常多,但是还有一些同学去搜 大模型微调的数据技巧。

        如果说我们直接采样一批线上的图文文本,直接送给标注的话,会存在一个严重的问题:他们标注的数 据大部分都是攻略类,技术类比较少,标了3个月才攒了几千条大模型技术文本,但是攻略类已经成几万 了。

        这样搞肯定是不行的,人力成本方面的消耗是在是太大了,并且模型因为数据平衡的问题也没有特别好

1. 数据的标注质量;

2. 数据的不确定性;

3. 问题二:如何构建 大模型微调数据?

        方法一:“self-instruct”的框架,通过自我生成来提升指令跟随能力。文章的流程是从语言模型中生 成指令、输入和输出样本,然后在使用这些数据微调原始模型之前进行清洗。

        方法二:“主动学习” .主动学习有两个基本原则,在监督训练的时候,注意主动发现数据的两个方面,一个是数据多样性,另 外一个是数据的不确定性。这样讲是比较抽象的概念,那我们在大模型实践中如何体现呢?

第一,数据的多样性。 多样性即为数据的去重,去重这件事的核心是相似度度量,现在的相似度度量方法大家用的比较多的是 基于对比学习构造的语义向量这套思路,当然简单的基于词袋或者tfidf的方案也是可以的。有了核心的 相似度度量方法后,我们可以使用简单的onepass聚类方法进行过滤,考虑复杂一点的话,我们可以使 用带优化目标的聚类:比如K-Center-Greedy算法,其约束条件是在最大化多样性的情况下,使指令数 据集最小。

另外,如果我们已经有了一批已经去重的人工处理过的高质量数据,那么我们如何寻找与这批数据不一 样的数据呢?

        这里有一个非常简单实用的方案,并且这个方案可以用在很多其他的地方。 我们简单地把已有的数据全部当成正样本打上1,然后待筛选的数据全部当成负样本打上0,我们使用 deberta等构建二分类模型,并进行K-fold的交叉验证,在交叉验证过程中,选出每一个fold过程中的测 试集合里概率接近于0的样本。 通过这样的操作,就能把长得与已有数据不一样的数据给选出来了,并且这个过程是半监督的。

        这套方案也可以用在很多其他地方,比如数据质量选择,只要我们有一批已经确定标签/结果/标注的种 子数据,就能通过这样的方法选出与种子数据长得比较像的,长得不像的。

        第二,数据的不确定性。 数据的不确定性主要体现数据的质量筛选上,选取模型学的不那好的数据,模型没有把握的数据。 最简单的,我们可以选出模型对应PPL值比较差的那批数据。如果是指令数据的话,比如大模型做题和 对应的答案。我们可以把所有选项对应的概率之和计算出来,然后过滤出概率和比较低的那一批数据, 这批数据就是模型“不太肯定”的样本,我们需要加强针对性的训练。

        当然这样可能有一个副作用,就是这批数据是质量比较差而不是模型学的不太好的。

为此,我们还要借助reward model,这个reward model是广义的,他是一个质量的二分类模型。可以 祭出我们的deberta,继续用标注数据进行做二分类,进行数据质量的判断。

有了质量打分模型后,我们就可以判断一些指令数据的质量高低,并且据此选出模型真正不确定的数 据。

这个过程类似于手动的拒绝采样,核心是选择“模型不确定”+“数据质量达标”的那部分数据。

        总结一下:监督学习中主动学习的两个基本原则是寻找多样性的数据,模型不确定性的数据,在寻找 的过程中,我们使用了一些小技巧,比如聚类去重,对抗半监督过滤,自建reward二分类等方 法。这几个小技巧,学术上没有什么高深莫测的东西,都是实践中总结出来的好用的方法。

LLM面试宝典进阶版1:http://t.csdnimg.cn/g78gf

LLM面试宝典基础版:http://t.csdnimg.cn/MMLPY

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/764660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux——查找文件-find(详细)

查找文件-find 作用 - 按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 格式 find 查找路径 查找条件 具体条件 操作 注意 - find命令默认的操作是print输出 - find是检索文件的,grep是过滤文件中字符串 参数 参数 …

S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)

S7-1500PLC通过工艺对象实现V90总线伺服定位控制,伺服驱动器工作在速度模式,S7-1500PLC工作在位置模式,具体控制原理框图,可以参考下面文章链接: 1、S7-1200PLC和V90总线伺服位置控制 S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_v90伺服 报文3 设…

Python 获取字典中的值(八种方法)

Python 字典(dictionary)是一种可变容器模型,可以存储任意数量的任意类型的数据。字典通常用于存储键值对,每个元素由一个键(key)和一个值(value)组成,键和值之间用冒号分隔。 以下是 Python 字典取值的几…

创新校园服务模式 跑腿小程序平台源码构建与实践 前后端分离 带完整的安装代码包以及部署教程

系统概述 本项目是一个集任务发布、接单、支付、评价于一体的跑腿服务小程序平台,专为高校校园设计。系统采用前后端分离架构,前端负责用户界面展示和交互逻辑,后端处理业务逻辑、数据存取等,两者通过API接口进行通信&#xff0c…

MySQL数据核心技术:理解主键与外键的关系与作用

在进行数据库设计时,合理的添加主键和外键能有效保障数据的完整性和一致性,使得数据管理更加科学高效。本文将详细介绍MySQL中主键和外键的基本概念、它们之间的关系、作用及一些高级知识点。 一、主键(Primary Key)的概念 主键…

Bootstrap 缩略图

Bootstrap 缩略图 引言 Bootstrap 是一个流行的前端框架,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式和移动优先的网页。缩略图(Thumbnails)是 Bootstrap 中的一种组件,用于展示图片或其他媒体内容,通常与标题和文本描述一起使用,形成一个整洁的布局。本文…

Flink实现准确和高效流处理的关键问题

时间相关: Watermark 水位线 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据。水位线主要的内容是一个时间戳,用来表示当前事件时间的进展。水位线是基于数据的时间戳生成的。水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进,进展。水位线…

linux 离线安装docker

测试服务器:银河麒麟V10 x86_64 注意:推荐使用国内的镜像站下载,因为官网不挂梯子无法访问,我用的是清华大学开源软件镜像站 一、下载离线包: 官网下载docker离线包 下载地址:https://download.docker.c…

C# 计算椭圆上任意一点坐标

已知圆心坐标 (x0,y0),横轴 A(长半轴),竖轴 B(短半轴),角度 a,则圆边上点(x,y)的坐标为: 方法一 …

金蝶云星空字段之间连续触发值更新

文章目录 金蝶云星空字段之间连续触发值更新场景说明具体需求:解决方案 金蝶云星空字段之间连续触发值更新 场景说明 字段A配置了字段B的计算公式,字段B配置了自动C的计算公式,修改A的时候,触发了B的重算,但是C触发不…

BIOS设置与系统分区

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 目录 一BIOS 1破解密码的前提 2B…

机器学习实战20-利用AnoSVGD算法探索多指标的异常检测的应用

大家好,我是微学AI,今天给大家介绍一下机器学习实战20-利用AnoSVGD算法探索多指标的异常检测的应用。SVGD(Stein Variational Gradient Descent)是一种通用的变分推断算法,它是优化中梯度下降的自然对应物。SVGD通过应用一种功能性梯度下降来…

游戏AI的创造思路-技术基础-tanh函数详解

又来搞事情,总想着把sigmoid函数替换成其他函数作为激活函数,或者找到更合适某一段训练的函数,所以今天来聊聊tanh函数(谁让咱当年差点去了数学系,结果还是在数学系转过去计算机的) 目录 3.9. tanh函数详解…

让采购和工程师们既爱又恨的任务——BOM

在项目研发与生产过程中,有一个常常让采购经理和工程师们既爱又恨的任务,那就是整理BBOMB。BOM作为连接设计与制造的桥梁,其重要性不言而喻,它详细列出了产品构成所需的所有零部件、材料及其规格、数量,是成本估算、采…

如何选择品牌推广公司?哪家好?收费标准及评价!

不管是什么品牌,推广对公司的成败起了很关键的作用。然而,面对市面上琳琅满目的品牌推广公司,如何选择一家既熟悉又靠谱的公司,成为许多企业主面临的难题。 作为一家手工酸奶品牌的创始人,目前全国也复制了100多家门店…

超简洁Django个人博客系统(适合初学者)

一、环境介绍 Django4.2.13Markdown3.3.4PyMySQL1.1.1Python3.8PyCharm 2023.1.2 (Professional Edition) 二、功能简介 用户登录 通过在pycharm终端执行以下命令创建超级管理员。python manage.py create createsuperuser 创建完成后再通过新建的超级管理员账号进行登录 …

Java的日期类常用方法

Java_Date 第一代日期类 获取当前时间 Date date new Date(); System.out.printf("当前时间" date); 格式化时间信息 SimpleDateFormat simpleDateFormat new SimpleDateFormat("yyyy-mm-dd hh:mm:ss E); System.out.printf("格式化后时间" si…

【Arduino】小飞鱼通达二开实验ESP32使用激光传感器(图文)

激光在我们的生活中应用很多,比如激光雷达、激光焊接、激光笔等等,今天我们来实验一下这个激光传感器模块。 这个模块的使用非常的简单,模块一共有3个针脚,正负极针脚和一个信号输入S针脚,当给到S针脚一个高电平时即可…

动手RAG: ocr调研

对于rag应用来说,文档是第一步,对于部分扫描件的文件来讲,主要就需要OCR. OCR tesseractppocrmmocr OCR包含几类, 自然场景中的文字识别,文档中的文字识别pipeline: 文本检测,文本识别,文…