如何评估大型语言模型

01 对大型语言模型(LLM)的

主客观评估

在评估大型语言模型时,我们可以进行客观评估和主观评估。

主观评估的方法是用户亲自尝试不同的模型,提出一些问题,然后根据自己的感受来判断哪个模型好,哪个模型不好。这种评价方法简单直接,但是它很难达到客观、可解释和可量化的程度。

如果需要进行更深入的测试,或者在技术选型和产品开发的前提下选择大型语言模型,那么仅依靠主观评估是不够的,我们还需要一些相对客观的方法。例如通过数据集进行自动化测试,从而获得一个可量化的评估结果。这就需要数据集和相应的验证指标来作为客观依据

02 评估数据集与评估方法

目前已有一些可用于评估大规模预训练模型的数据集,有英文、中文等多种语言语料,尤其是英文数据集,相当丰富。其中很大一部分数据来源于考试题目,例如小学生数学考试题,中学英语测试题,物理常识等。

这些数据集可以用于评估模型在简单常识和基础知识方面的表现。但当我们需要针对某个垂直领域进行深度评估时,这些数据就不够用了。尤其是对于一些较为冷门或需要精深专业知识的领域,公开的数据集往往难以满足需求。

在这种情况下,评估者就需要自己动手创建专业数据集。至于构建方法,最直接的:领域专家可以根据自己的知识和经验,人工创建问题,并自己给出对应答案,然后将这个问题和答案写出来,形成一个问题-答案对(QA pair)。通过创建若干个问题-答案对,就可以得到一份满足特定领域需求的问答数据集。

接下来,评估者可以使用这些QA pair的问题作为提示(prompt),分别输入给待测试的LLM。然后将它们的回应与预设的答案进行比较,以判断回答是否正确。这样就可以对模型的正确性进行评估。在正确性评估的基础上,还可以对语言模型带给用户的体验进行主观评分。

03 利用知识图谱构建评估数据集

然而,领域专家人工出题存在一定的随机性,而且,即使出题者本人也可能在几天后都无法回想起为什么会提出这样一个问题。此外,数据集中的问题是否具有足够的覆盖面、基础性或深度也是值得考虑的因素。

如何才能以尽量小的人工投入获得一份覆盖全面,既具备基础性又具备专业性的评估数据集呢?我们可以尝试基于专业知识图谱来创建专业评估数据集,也就是专业知识问答对。

首先当然需要构建一个专业知识图谱。这个知识图谱不需要过于庞大,几百个节点就可以达到良好的效果。

然后,基于这个知识图谱来创建问答对。这使得问答的知识覆盖面,以及问答难度都变得非常明显,且具有可追溯性。

我们一起来看一个例子,比如下图这个春秋战国知识图谱:

9a96202d472b52198da4ecccc9257ef4.png

从这个知识图谱中,我们可以看到春秋战国时期的人物、国家、事件和著作等实体,以及它们之间的关系。

这个图谱本身是人工生成的,我们的实习生用了大概2周的时间创建了整个图谱的逻辑结构,并利用开源的SmartKG(https://github.com/microsoft/smartkg)进行了存储管理与可视化。

图谱的规模并不大,总共包含300多个节点,即300多个实体。从可视化效果也不难看出,实体之间的关系并不非常稠密,而是相对联通的。

基于这一图谱内蕴含的知识,我们首先生成了一个非常小的数据集,总共只包含20个问题。并用这个微小数据评估了文心一言、讯飞星火、GPT4和GPT3.5,具体过程和结果前面的文章已经有所阐述。

需要注意的是,这个微小数据集并不适合作为一个真正的评估数据来使用。它只是为了让大家了解,在这个非常小的数据集上,我们也可以得出一些有趣的结论。然而,它的规模实在是太小了。

那么我们有没有可能基于同一个知识图谱,来构建更多的问题答案对呢?当然是可以的。不仅可以,而且这个构建过程可以自动化完成。

04 自动化构建评估数据集

实际上,自动构建问题答案对一个并不复杂的过程。这样做的关键在于利用知识图谱的结构。

在知识图谱中,一个实体和一个源自该实体的关系可以组合成一个问题。这个关系所对应的目标实体就是这个问题的答案。

以春秋战国图谱中的一个小片段为例

788bfe7a764aea28a1c26657130fa2df.png

我们看实体为“李悝”,源自它的关系是“创作”,这一关系的目标实体是“法经六篇”。因此,我们可以构造出一个问题:“李悝创作了什么著作?”答案便是“法经六篇”。

图谱中,有许多这类一级关系,因此可以构成许多问题和答案。

除了一级关系,还有二级、三级甚至四五六七八级的关系。通过这些关系,我们同样可以构成新的问题。

来看一个图谱中的二级关系

ab573d7a40b3ccd70fa2e97b77b580e5.png

据此,我们可以提一个问题——“与伍子胥有关的成语都有什么?” 答案是:“道行逆师和日暮途穷。”

实际上,“伍子胥”并不能直接连接到某个成语,但是通过他参与的事件——“吴国攻打楚国”——我们可以找到两条衍生出的成语:“道行逆师”和“日暮途穷”。这样的问题同样可以构成一个问答对,只不过它不再是一步到位,而是进行了一个一级的推理。

类似的例子还有很多,通过这种方式,我们可以构建出更多的问题和答案。

依据知识图谱的内在结构,我们仅需一些简单的程序,便能自动生成这些问题和答案。

05 自动化评估LLM

同样,我们可以自动地将这些提示抛给LLM,收集其响应。对于这些响应,最简单的方法是在对其和正确答案都进行嵌入(embedding)后,比较它们的相似度,从而判断LLM的响应是否正确回答了问题。

此外,如果我们有更多的资金,我们可以将响应和答案同时提交给已知质量较高的LLM,让这个LLM判断它们的含义是否近似,是否陈述了相同的事实……通过这种方式,我们可以判断答案的对错。

然后通过将主观评价的规则输入给LLM,来对收集到的相应进行主观评分。这些都是我们可以自动化执行的方法和手段。

加入社群

f35be6433ea2c6ec065750359aeb23dd.gif

我们聚焦科技创新和行业发展,欢迎加入我们的社群,你将与优秀的人士共同探讨行业趋势、分享经验和思考未来的发展方向。

Step1|添加小助理微信(DTPfuneng),留言:“加入社群”+关注方向;

Step2|说明姓名+工作单位/学校,并发送名片(需提供名片验证)

加入Public100

7a6459193ec6c1bb830c8caf2cb06e70.gif

如果您有与AIGC相关的故事,欢迎来到Public 100,与我们一起畅聊.

ATP Public100是一项公益活动,聚焦科技行业,专注垂直领域的知识、观点和行业剖析,并将其传达给全球的伙伴们,欢迎你加入我们!

欢迎关注微软 ATP 官方账号

微软 ATP 一手资讯抢先了解

9158c589554ba6056f878bf459a5f9fe.jpeg

26f42c7a4fa7b7df3d99cf00d572b904.jpeg

6aa119fe25249b7c43ab2a58dc4ff6f8.jpeg

74fb3d1db64471b93d023a54485aad50.jpeg

570dfb3020b903accfacfa5091874b56.gif

点击“阅读原文” | 了解更多 AI 赋能案例

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github一些有趣的使用场景和基本使用方法

文章目录 github的使用入门安装 Git创建 GitHub 帐户在本地设置 Git克隆仓库进行修改和提交推送更改拉取更新 删除Github上废弃的仓库注意 github更多有趣的使用场景协作和社交编程文档和知识库学习和教育自动化工作流程数据科学和可视化用来写blogGitHub PagesJekyllHexo第三方…

App自动化测试持续集成效率提高50%

持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品…

Java线上故障排查(CPU、磁盘、内存、网络、GC)+JVM性能调优监控工具+JVM常用参数和命令

CPU/堆/类/线程 根据服务部署和项目架构,从如下几个方面排查: (1)运用服务器:排查内存,cpu,请求数等; (2)文件图片服务器:排查内存,cpu,请求数等…

leetcode427. 建立四叉树(java)

建立四叉树 题目描述递归代码演示 题目描述 难度 - 中等 leetcode - 427. 建立四叉树 给你一个 n * n 矩阵 grid ,矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。 你需要返回能表示矩阵 grid 的 四叉树 的根结点。 四叉树数据结构中,每个内部节…

Redis 三种特殊的数据类型 - Geospatial地理位置 - Hyperloglog基数统计的算法 - Bitmaps位图(位存储)

目录 Redis 三种特殊的数据类型: Geospatial:地理位置 Geospatial类型常用的命令: GEOADD:添加地理位置 GEOPOS:获取地理位置 GEODIST:返回两个给定位置之间的距离 GEORADIUS:以给定的经纬…

Linux —— 信号阻塞

目录 一,信号内核表示 sigset_t sigprocmask sigpending 二,捕捉信号 sigaction 三,可重入函数 四,volatile 五,SIGCHLD 信号常见概念 实际执行信号的处理动作,称为信号递达Delivery;信…

【实例项目:基于多设计模式下的日志系统(同步异步)】

本项目涉及的到所有源码见以下链接: https://gitee.com/ace-zhe/wz_log 一、项目简介 1.日志的概念(白话版) 日志类似于日记,通常是指对完成某件事情的过程中状态等的记录,而计算机中的日志是指日志数据&#xff0c…

centos编译升级cmake,痛苦的Linux小白

环境 root 用户 下载 cmake官网下载地址:https://cmake.org/download/ 获取下载地址,右击cmake-3.27.4.tar.gz 命令行输入链接地址,下载 wget https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4.tar.gz解压 tar -zx…

Docker基础-cgroup

cgroup cgroup什么是 cgroups为什么使用 cgroupscgroups 的用途cgroups 可以控制的子系统基础命令pidstatstress cgroup试验cgroups 信息查看cgroups 版本查看cgroups 子系统查看cgroups 挂载信息查看查看一个进程上的 cgroup 限制 使用 cgroups 对内存进行控制使用 cgroups 对…

新加坡市场最全开发攻略

作为东盟经济的“发动机”!新加坡是继纽约、伦敦、香港之后的第四大国际金融中心。据《2022年全球竞争力》报告显示,新加坡是亚洲地区排名最高的,位列全球三甲之一。 同时,新加坡作为东盟(ASEAN)的核心成员国,还是世贸…

算法:经典贪心算法--跳一跳[2]

1、题目: 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 返回到达 nums[n - 1] 的最小跳跃次数。生…

Hugging News #0904: 登陆 AWS Marketplace

每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…