【大模型理论篇】大模型能力评估、框架工具、评估指标、OpenAI Evals、大模型中文评测示例等

1. 关于大模型评估的几个问题

1.1 什么是大模型评估?

        大模型评估是测试和衡量大模型在现实世界情境中表现如何的过程,是了解大模型性能的关键。能够帮助开发者识别模型的优缺点,确保其在实际应用中的有效性。当测试这些模型时,观察它们理解并回答问题的能力,生成文本的流畅性和清晰度,以及它们的回应是否在上下文中讲得通。这一步可以帮助发现任何问题并改进模型,确保在上线前能够有效可靠地处理任务【1】。

1.2 为什么需要评估大模型

        评估大模型的主要原因是确保其能够胜任特定任务并满足相关要求。通过评估,确保模型能够准确理解和回应信息,使我们能够根据真实反馈微调其性能和可靠性。有效的评估确保模型满足用户需求,无论是回答问题、提供建议还是创造内容。

        具体来说,评估模型有三个主要原因,每个原因对应一个特定的问题。

原因1:我的模型训练得怎么样?训练方法是否得当?

        我们采用非回归测试,以确保小的改动不会影响整体功能。非回归测试的目的是确保大模型的预期行为不会因某些变化而受到影响。在训练中,任何预期的改动(如选择不同的训练数据、架构或参数)都不应损害模型的性能。例如,期望一个7B参数的基础大模型在MMLU测试中得分50到65分,如果得分在20到30分之间波动,则表明模型未有效学习。

        进行非回归评估时,需要关注:1)评估得分的轨迹(当前性能是否优于训练初期),2)评估得分的范围(性能是否在预期之内)。此评估的目的并非明确模型的实际能力,而是确认训练方法的合理性,以及模型是否表现得与其他模型相似。通常希望使用高信噪比的基准,以确保得分变化真实反映模型性能的变化。

原因2:哪个模型最优秀?我的模型是否优于你的模型?

        评估的另一个作用是对模型进行排序,以选择最佳架构和方法。即使排行榜上排名第一的模型在特定用例中表现不佳,排名第二的模型也不太可能有效。研究表明,由于得分容易受到不稳定因素的影响,评估模型的唯一稳健方式是通过排名。大模型在自动化基准测试中的得分容易受到提示微小变化的影响,因此采用稳健的评估方法,确保排名的一致性和稳定性至关重要。

原因3:模型能力处于什么位置?能否完成X任务?

        对于复杂能力,简单地说“这个模型是最好的”是不够的。目前我们缺乏关于机器学习模型能力的明确定义和框架,尤其是推理和心智理论方面。这个问题并不仅限于机器学习;在人类和动物的研究中,定义能力同样困难,尝试提供精确得分的指标(如智商)也存在争议。因此,我们可能无法定义这些广泛的能力,尤其是由于人类和动物的行为和假设与模型的不同。

1.3 大模型如何评估?

         目前有三种主要的评估方式:自动基准测试、使用人类作为评判者,以及使用模型作为评判者。每种方法都有其存在的理由、用途和局限性【2】。

1.3.1 基准测试

        自动基准测试通常是这样工作的:你想知道你的模型在某件事情上的表现。这件事情可以是一个明确的具体任务,例如“我的模型在垃圾邮件和非垃圾邮件分类上表现如何?”或者一个更抽象和一般的能力,例如“我的模型数学能力如何?”

        从中,构建一个评估,通常包括两部分:

  1. 一组样本,作为输入提供给模型,以查看输出结果,有时候会拿标准答案来对比一下。这些样本一般都是根据你想测试的东西设计的:比如说,你要是关心邮件分类,就会搞个包含垃圾邮件和非垃圾邮件的数据库,里面还得有一些模棱两可的边缘情况。对于大模型来说,主要有两个任务:生成评估(就是把生成的文本和标准答案比一比)或者多项选择(在提示后比较可能延续的相对对数概率)。

  2. 一种指标,用于计算模型的得分。例如,你的模型在垃圾邮件分类上准确率如何(正确分类的样本得分 = 1,错误分类 = 0)。在模型训练集未包含的数据上进行评估更有意义,测试它是否具有良好的泛化能力。我们不想要一个只能分类已经“见过”的电子邮件的模型。

        如果一个模型只能在它训练过的数据上做出准确预测,而没有学到更普遍的规律,这种情况我们称之为“过拟合”。换句话说,就是模型在训练集上表现很好,但一旦遇到新的、训练时没见过的数据模式,比如只学过怎么识别假银行的垃圾邮件,却要它去分类关于“健康”产品的垃圾邮件,它可能就无能为力了。

        对于非常具体的任务,这种方法很有效,模型的表现也“容易”衡量:比如在测试模型的垃圾邮件分类能力时,我们可以直接说“模型正确分类了n%的样本”。但是,对于大模型的基准测试,可能会遇到一些问题,比如模型在多项选择评估中可能会因为选项的展示顺序而产生偏好,或者生成的评估依赖于设计不佳的标准,这可能产生不公平性,但总的来说,它们还是在任务层面给出了一些信号。

        但是,要将能力分解成明确和精确的任务是很困难的:“数学能力强”到底意味着什么?是擅长算术?逻辑?还是能够推理数学概念?

        在这种情况下会更倾向于进行更“全面”的评估,而不是将能力分解成具体的任务,而是假设在一般样本上的表现是我们想要衡量的良好指标。比如GSM8K,它包含了真实的高中数学问题,解决这些问题需要一整套的能力。不过这也意味着成功和失败都很难解释。有些能力或主题,比如“这个模型擅长写诗吗?”或者“模型的输出是否有用?”甚至更难用自动化的指标来评估。同时,随着模型越来越具备通用能力,急需用更广泛的方式来评估它们的能力。

        自动基准测试往往面临另一个问题:一旦这些测试以明文形式公开发布,它们很可能会(通常是无意中)被纳入模型的训练数据中。此外,基准测试数量相当庞大,因此查找所有数据中意外的复制非常耗时。其他解决方案包括以加密形式提供基准测试,或者通过网关系统进行管理。不过,在评估封闭模型时,无法保证提供的数据不会随后被用于内部训练或微调。

        当评估数据集意外进入训练集时,这种现象一般称为污染。被污染的模型在基准测试中可能表现良好,但未必能在实际任务中很好地泛化。一种解决污染问题的方法是进行动态基准测试,即在定期更新的数据集上进行评估,以便对系统性未见的新数据进行评分,但这种方法长期来看成本较高。

1.3.2 使用人类作为评判者

        为了更加开放地评估模型并解决污染问题,可以邀请人对模型的输出进行评判。具体而言,通常先让人为模型提供提示,然后依据指导方针对模型的回答进行评分,或者对多个输出进行排序。借助人作为评判者,我们能够研究更为复杂的任务,并且相比自动指标具有更大的灵活性。此外,这种方法有助于避免大多数污染情况,因为人书写的提示通常是全新的。最后,这种评估与自然人的偏好具有较高的相关性。

        在评估模型时,存在多种不同的方法【2】。“氛围检查” 是指一些社区成员对模型进行的手动评估,一般在未公开的提示上进行,目的是获取对模型在众多用例中的整体 “感觉”。利用社区反馈建立大规模模型排名的方式被称为 “竞技场”。例如,聊天机器人竞技场就是一个广为人知的例子(比如由LMSYS组织的全球大模型竞技场(ChatBot Arena),是全球头部大模型企业同台竞技的权威盲测平台),社区用户被要求与模型聊天,直到找到更好的模型。这里用一个小例子展示下,对比的模型分别为谷歌的gemini和幻方量化的deepseek,从结果看gemini会更满足需求,所以我点击了A is better。

        正如上述例子所示,将投票汇总到比赛排名中,以确定哪个模型是 “最佳”。然而,这种方法存在明显的问题,那就是高度主观。很难强制众多社区成员使用广泛的指导方针进行一致评分,尤其是因为标注者的偏好往往受到文化影响(不同的人对不同的讨论主题有不同的偏好)。人们期望通过投票的规模来平滑这种影响,形成 “集体智慧” 效应。最后一种方法是系统注释,即向选定的付费标注者提供极其具体的指导方针,以尽可能消除主观性偏见。但是,这种方法可能会迅速变得代价昂贵,因为必须持续不断地对每个新模型进行评估,而且仍然可能受到人为偏见的影响。

        不过,人类评估者往往根据第一印象来估计答案的质量,而不是实际的真实性或忠实性。众包的标注者尤其对语气非常敏感,会低估果断回答中的事实或逻辑错误数量。换句话说,如果模型以自信的语气说错话,人类评估者就更不容易注意到,这可能会使评分向更果断的模型倾斜。(专家标注者不太可能受到这些偏见的影响。)人类更倾向于喜欢那些迎合他们观点或与他们的意见或错误一致的答案,而不是那些在事实上完全正确的答案。

        这些偏见也并不令人意外,但必须考虑到:并非所有用例都应该依赖人类标注者,尤其是非专业的众包标注者。任何要求真实性的任务(例如代码编写、模型知识评估等)都应该包含另一种更为稳健的评估方法,以补充基准测试。

1.3.3 模型作为评判者

        为了降低人类标注者的成本,可以使用模型来评估模型的输出。有两种方法可以用于评分:使用通用的、高能力的模型,或者使用专门针对偏好数据进行训练的小专家模型。大模型作为评估者有几个局限性:它们在评分答案时倾向于偏爱自己的输出,不擅长提供一致的得分范围,实际上与人类排名的一致性并不高。会在答案选择中引入非常微妙且难以解释的偏见。通过使用大模型来选择和训练大模型,同样有可能引入微小的变化,这些变化在几代之后会产生更大的影响。

总结:虽然评估方式各有各的限制,但仍然能够提供一些有用信号,表明哪些新的训练方法或数据集是有希望的或不是,既可以通过观察性能如何落在预期范围内(非回归测试),也可以通过模型总体上的排名(评估足够稳定)。结合足够多的主题和任务上的数据点,将为我们提供足够的信号,以了解整体模型性能。

2. 大模型评估指标及一些框架

2.1 指标及工具简介

        在将大模型应用投入生产之前,考虑以下重要评估指标:

  • 响应的完整性和简洁性:确定大模型的响应是否完全解决用户查询。简洁性则评估生成响应的相关性。
  • 文本相似性指标:将生成的文本与参考文本进行比较,评估它们的相似度,并给出得分以理解大模型的表现。
  • 问答准确性:衡量大模型基于事实的正确性回答问题的能力。
  • 相关性:确定大模型对特定提示或用户问题的响应相关性。
  • 幻觉指数:识别大模型生成的信息多少是虚构的,或是否对特定提示输出了偏见内容。
  • 有害性:确定大模型输出中冒犯性或有害语言的百分比。
  • 任务特定指标:这取决于任务类型和应用(如摘要、翻译等),存在的专业指标,例如机器翻译的BLEU分数。

        常用的一些指标【10】:

        大部分的指标都很容易理解,这里对NLP中的困惑度、BLEU、ROUGE展开讲一下:

困惑度

        困惑度(Perplexity,PPL)是评估语言模型性能的重要指标,应用于语言模型的评估中。通过计算给定文本序列概率的倒数的几何平均值,反映模型对语言的建模能力。具体而言,困惑度被定义为模型对参考文本 \mathbf{u} 的建模概率P(\mathbf{u}) 的 N 次方根的倒数,其数学表达式为:

PPL(\mathbf{u}) = P(\mathbf{u})^{-\frac{1}{T}}

        这里,\mathbf{u} 表示参考文本,T 是文本 \mathbf{u} 中词元的总数,P(\mathbf{u}) 是模型对文本 \mathbf{u} 的建模概率。

        困惑度为不同模型或相同模型在不同参数设置下的性能提供一个客观且统一的评估标准。模型的困惑度越低,表示其对参考文本的建模概率越高,进而表明模型的语言建模能力更强。

        在实践中,为了避免计算中的数值下溢问题,通常采用对数概率加和的方法来计算困惑度。这种方法不仅简化了运算过程,还提高了计算的稳定性。因此,困惑度的计算可以通过累加对数概率表示为:

PPL(\mathbf{u}) = \exp\left(-\frac{1}{T} \sum_{t=1}^{T} \log P(u_t | \mathbf{u}_{<t})\right)

BLEU

        BLEU(Bilingual Evaluation Understudy)【11,12】是应用于机器翻译领域的评估指标,通过计算机器翻译输出(称为“候选文本”)与参考翻译文本(称为“参考文本”)之间的词汇相似度来评估翻译质量。BLEU主要通过计算候选文本与参考文本的 n 元组(n-gram)共现频率来得出评分,评分结果在 [0, 1] 之间,具体计算方式如下:

\text{BLEU} = \text{BP} \times \exp\left( \sum_{n=1}^{N} w_n \times \log p_n \right)

        其中,w_n​ 是 n 元组的权重,用于调整不同长度的 n 元组对最终评分的影响。在实际应用中,研究者通常设定 n = 4,并均匀分配 w_n。BP 表示长度惩罚因子,用于修正候选文本长度过短所导致的评分偏差,其计算方式为:

\text{BP} = \begin{cases} 1 & \text{if } l_c > l_r \\ \exp\left(1 - \frac{l_r}{l_c}\right) & \text{if } l_c \leq l_r \end{cases}

        这里,l_c​ 和 l_r 分别表示候选文本的长度和最短的参考文本长度。公式中的 p_n​ 表示 n 元组的精确率,其计算公式为:

p_n = \frac{\sum_{n\text{-gram} \in C} \min(\text{count}_C(n\text{-gram}), \max_{R \in R} \text{count}_R(n\text{-gram}))}{\sum_{n\text{-gram} \in C} \text{count}_C(n\text{-gram})}

        在这个公式中,C 代表候选文本,R 是所有参考文本集合,\text{count}_C(n\text{-gram})\text{count}_R(n\text{-gram}) 分别指 n 元组在候选文本和参考文本中的出现次数。

ROUGE

        Recall-Oriented Understudy for Gisting Evaluation【13】是一种应用于机器翻译和文本摘要评估的指标。与BLEU指标主要关注精确率不同,ROUGE强调的是召回率,侧重于评估文本信息的覆盖度和完整性。

        ROUGE-n通过计算候选文本与参考文本之间的n-gram召回率来评估文本的质量。其计算公式如下:

\text{ROUGE-n} = \frac{\sum_{n\text{-gram} \in R} \min(\text{count}_C(n\text{-gram}), \text{count}_R(n\text{-gram}))}{\sum_{n\text{-gram} \in R} \text{count}_R(n\text{-gram})}

其中:

  • C 代表候选文本。
  • R 代表参考文本。
  • 分子部分计算的是候选文本与参考文本中匹配的n-gram数量,而分母则是所有参考文本中n-gram的总数。

大模型评估框架和工具

        大模型评估框架和工具也非常重要,因为它们提供了标准化的基准,以衡量和提升语言模型的性能、可靠性和公正性。以下是一些大模型评估框架和工具:

  • DeepEval【4】:一个开源框架,帮助组织通过量化其在各种重要指标上的表现来评估LLM应用。
  • promptfoo【5】:用于评估大模型输出质量和性能的CLI和库,能够系统性地测试预定义测试下的提示和模型。
  • EleutherAI LM Eval【6】:在广泛任务上进行少样本评估和性能测试,几乎不需要微调。
  • CMMLU【7】:衡量中文的大规模多任务语言理解。
  • BLEU(双语评估):用于测量机器翻译文本与已基准化的高质量参考翻译之间相似性的指标,范围从0到1。
  • SQuAD(斯坦福问答数据集):用于评估LLM在问答任务中的表现的数据集,包含一组上下文段落和对应问题。
  • OpenAI Evals【8】:OpenAI的标准评估框架,是一个开源基准注册表,用于测试LLM模型以确保其准确性。
  • UpTrain:一个开源LLM评估工具,提供预构建的指标以检查LLM响应的正确性、幻觉和有害性等方面。
  • H2O LLM EvalGPT:一个开放工具,用于理解模型在多种任务和基准上的表现。

2.2 OpenAI Evals

2.2.1 基本原理

        大模型的评估框架很多,这里以OpenAI Evals为例【9】稍微展开说说:

        evals包含两个不同的部分:

1. 一个用于评估大模型或建立在大模型之上的系统框架。

2.一个挑战性评估的注册库。

        evals要做的事,是给定一个输入提示,系统生成一个输出。我们用一组理想答案来评估这个输出,并评价大模型系统的质量。        

        evals需要安装Git LFS,evals registry是存储在Git LFS。Git LFS(Large File Storage)是 Git 的一个扩展,为了解决 Git 处理大文件时遇到的问题。Git LFS 的核心思想是将大文件存储在独立的远程服务器上,而不是直接存储在 Git 仓库中。在 Git 仓库中,只保留一个指向实际文件的指针,称为 LFS 指针。当用户在本地进行 Git 操作时,如提交、推送或拉取,Git LFS 会拦截这些操作,并将实际的大文件上传或下载到远程 LFS 服务器,而 Git 仓库中只处理 LFS 指针。通过这种方式,Git LFS 可以显著减小 Git 仓库的大小,加快克隆和拉取的速度,同时还能保持 Git 的分布式特性和版本控制功能。            

cd evals
git lfs fetch --all
git lfs pull

        拉取所有的指针文件到evals/registry/data。包含所有类型的评估样本。

        文件格式是jsonl,里面的每一行包含了完整的一个json,表示一条评估样本。JSONL 文件(JSON Lines)是一种每行包含一个独立的 JSON 对象的文本文件格式。每行都是一个有效的 JSON 对象,使用换行符分隔。相比于 JSON 文件,JSONL 文件更加轻量,每行为独立的 JSON 对象,没有逗号或其他分隔符。

        OpenAI定义了两种类型的评估模板:

 1. 基本评估模板: 这些包含确定性函数,用于将输出与理想答案进行比较

 2. 模型评分模板: 这些包含函数,其中LLM将输出与理想答案进行比较,并尝试判断准确率。

        首先是基本评估模板, 当我们要评估的输出内容和结构变化非常小的时候,这些模板最有用。

        比如:当输出是布尔值(真/假)时, 是多种选择之一(多项选择题中的选项), 或者非常简单(基于事实的答案) 可以使用以下3种比较方法:

        匹配: 检查是否有任何理想答案以输出开始

        包含: 检查输出是否包含在任何理想答案中

        模糊匹配: 检查输出是否包含在任何理想答案中,或者任何理想答案包含在输出中

        基本评估的工作流程如下:

        给定一个输入提示和理想答案,然后从大模型系统生成输出,并使用匹配算法将输出与理想答案集进行比较。

        其次是模型评分评估模板,当生成的输出有显著变化,甚至可能有不同的结构时,这些模板将发挥作用。

        比如:

        回答一个开放式问题

        总结一大块文本

        搜索一组文本

        对于这些用例,可以使用模型来自我评分,利用大模型的推理能力。GPT-4在复杂比较方面会特别好,而GPT-3.5(更快、更便宜)适用于简单比较。可以使用相同的模型进行生成或不同的模型。

        模型评分评估模板有一个通用分类方法。

基于模型的分类 流程包括:

        1. 接收用于生成的输入提示

        2. 提示的输出生成

        3. 可选的参考理想答案

        然后它用这3部分提示大模型,并期望它对输出是好还是不好进行分类。evals指定了3种分类方法:

cot_classify - 模型被要求定义一个思考链,然后得出答案(推理,然后回答)。这是推荐的分类方法。

classify_cot - 模型被要求提供答案,然后解释其背后的推理。

classify 只期望最终答案作为输出。

        模型评分评估工作流程如下:

  模型评分评估举例1: 事实性评估

        给定一个输入问题、生成的输出和一个参考理想答案,模型输出以下五个选项之一:        

        "A" 如果 a⊆b,即输出是理想答案的一个子集,并且与之完全一致。

        "B" 如果 a⊇b,即输出是理想答案的一个超集,并且与之完全一致。

        "C" 如果 a=b,即输出包含与理想答案完全相同的细节。

        "D" 如果 a≠b,即输出与理想答案之间存在不一致。

        "E" 如果 a≈b,即输出和理想答案有所不同,但这些差异在事实层面上并不重要。

模型评分评估举例2: 封闭域问答(Closed Domain Q&A)

        封闭域问答是一种使用大模型系统来回答问题的方式,前提是提供了解答该问题所需的所有上下文。这是目前最常见的问答类型,具体步骤如下:

  1. 从用户查询中提取上下文(主要来自向量数据库),
  2. 将问题和上下文输入到大模型系统中,
  3. 期望系统合成正确的答案。给定输入提示、用于回答问题的上下文或标准,以及生成的输出。模型生成推理并将评估结果分类为“Y”或“N”,以表示输出的准确性。

2.2.2 实现OpenAI评估(Evals)

        了解评估的基本原理(包括基本评估和模型评分评估)后,可以使用评估库根据需求评估模型。参考【9】中案例,我们将为用例创建一个自定义评估,尝试使用一组提示和生成结果来运行它,并观察如何实时运行评估。

1. 开始创建评估

        需要准备的内容

  • 测试数据集(JSONL格式)。
  • 要使用的评估模板。

        创建一个评估,测试一个大模型系统从文本段落中提取机构主体的能力。

2. 创建数据集

        使用ChatCompletions进行评估,因此数据集应采用聊天消息格式,包含:

  • 输入:要提供给完成系统的提示。
  • 理想输出:理想答案。

        示例格式如下:

"input": [{"role": "system", "content": "<input prompt>","name":"example-user"}, "ideal": "correct answer"]

        使用以下提示模板从文本段落中提取机构主体信息:

列出您在以下文本中找到的所有机构主体。

文本:{{passage_text}}

机构主体:

        通过在提示模板中填写段落来创建输入数据集:

{
  "input": [
    {
      "role": "user",
      "content": "列出您在以下文本中找到的所有机构主体。\n\n文本:阿里巴巴集团由曾担任英语教师的马云与其他来自不同背景的伙伴共18人,于1999年在杭州创立。\n\n机构主体:"
    }
  ],
  "ideal": "阿里巴巴集团"
}

        将文件保存为inputs.jsonl以备后续使用。

3. 创建自定义评估

        扩展evals.Eval基类以创建自定义评估。需要重写类中的两个方法:

  • eval_sample:评估数据集中单个样本的主要方法。在此方法中,我们创建提示,从所选模型获取完成结果,并评估答案是否令人满意。
  • run:此方法由oaieval CLI调用以运行评估。eval_all_samples函数将迭代调用eval_sample函数。
import evals
import evals.metrics
import random
import openai

openai.api_key = "<OPENAI KEY>"

class ExtractOrganizations(evals.Eval):
    def __init__(self, test_jsonl, **kwargs):
        super().__init__(**kwargs)
        self.test_jsonl = test_jsonl
    
    def run(self, recorder):
        test_samples = evals.get_jsonl(self.test_jsonl)
        self.eval_all_samples(recorder, test_samples)
        # 记录整体指标
        return {
            "accuracy": evals.metrics.get_accuracy(recorder.get_events("match")),
        }
    
    def eval_sample(self, test_sample, rng: random.Random):
        prompt = test_sample["input"]
        result = self.completion_fn(
            prompt=prompt,
            max_tokens=25
        )
        sampled = result.get_completions()[0]
        evals.record_and_check_match(
            prompt,
            sampled,
            expected=test_sample["ideal"]
        )

4. 运行评估

        要运行ExtractOrganizations评估,我们可以为CLI注册它。让我们在evals/registry/evals文件夹下创建一个名为extract_organizations.yaml的文件,并为我们的评估添加一个条目。        

# 定义基本评估
extract_organizations:
  # id指定此评估所别名的评估
  id: extract_organizations.dev.match-v1
  
  # 此评估记录的指标
  metrics: [accuracy]
  description: 评估是否从段落中提取了所有国家
  
# 定义评估
extract_organizations.dev.match-v1:
  class: evals.elsuite.extract_organizations:ExtractOrganizations
  args:
    test_jsonl: /tmp/inputs.jsonl
使用oaieval CLI运行此评估,如下所示:

pip install .
oaieval gpt-3.5-turbo extract_organizations

5. 查看评估日志

        评估日志位于/tmp/evallogs,每次评估运行会创建不同的日志文件。

3. 中文大模型测评示例

        github上看到一个中文测评项目chinese-llm-benchmark,覆盖chatgpt、gpt-4o、谷歌gemini、百度文心一言、阿里通义千问、百川、讯飞星火、商汤senseChat、minimax等商用模型, 以及qwen2.5、llama3.1、glm4、书生internLM2.5、openbuddy、AquilaChat等开源大模型。有意思的,是该项目提供所有模型的原始输出结果。

        分成四个能力来评估,另外每一表格的最左侧是prompt,右侧每一列是对应大模型针对对应问题的输出。这个问题可以和结果输出帮助直观理解大模型能力评估。

(1)分类能力       

(2)信息抽取能力

(3)阅读理解能力

(4)表格问答能力(提供了label标准答案信息)

4. 参考材料

【1】LLM Evaluation: Metrics, frameworks, and best practices

【2】Let's talk about LLM evaluation

【3】A Survey on Evaluation of Large Language Models

【4】GitHub - confident-ai/deepeval: The LLM Evaluation Framework

【5】https://github.com/promptfoo/promptfoo

【6】https://github.com/EleutherAI/lm-evaluation-harness

【7】CMMLU

【8】GitHub - openai/evals

【9】Decoding OpenAI Evals

【10】RUC AI BOX

【11】BLEU指标的计算示例

【12】Learn the BLEU metric by examples

【13】Learn the ROUGE metric by examples

### QQ DeepSeek 集成功能概述 对于希望将DeepSeek大模型能力集成至QQ应用中的开发者而言,可以通过访问DeepSeek开放平台来获取API key并利用该API实现多种智能化功能[^1]。这不仅限于简单的消息回复,还包括但不限于自然语言处理、图像识别等功能。 #### 获取API Key 为了能够顺利调用DeepSeek所提供的服务接口,在开始任何开发之前都需要先前往官方指定页面注册账号并申请获得个人专属的API密钥(API key)[^1]。 ```python import requests api_key = "your_api_key_here" headers = {"Authorization": f"Bearer {api_key}"} response = requests.get('https://deepseek.com/api/v1/endpoint', headers=headers) print(response.json()) ``` 此段Python代码展示了如何通过HTTP请求的方式向DeepSeek服务器发送查询,并附带必要的认证信息以便验证身份合法性。 #### 实现具体应用场景 当考虑将这些强大的AI工具嵌入即时通讯软件如QQ时,则可以设想如下几个实际的应用场景: - **智能客服机器人**:基于DeepSeek的语言理解技术构建自动应答系统,帮助用户解决问题或提供所需资讯。 - **内容审核过滤器**:运用图像及文本分析算法检测不良信息,维护健康和谐交流环境。 - **个性化推荐引擎**:依据聊天记录学习用户的偏好习惯,进而推送可能感兴趣的话题或者产品链接。 以上提到的功能均需依赖于稳定高效的网络通信协议以及合理的数据结构设计才能得以良好运作。 #### 测试与优化 在完成初步编码之后,建议使用专门为此类大型语言模型(LLM)准备的测试框架PromptFoo来进行性能评测和调整[^2]。这样可以帮助发现潜在问题所在之处,并确保最终版本的质量达到预期标准。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源泉的小广场

感谢大佬的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值