大模型实用指南,如何为自己的业务选择最佳大模型?

在当今的百模齐放的时代,大模型已经成为了一种重要的工具,各家争相发布自家大模型,并强调在某某榜单上排名第几,超越了某某某。然而,面对众多的模型和架构,我们应该如何选择最适合自己的模型呢?

本文将为你提供一种实用的指南,先从原理上帮助你简单理解不同的模型架构的适用场景,而后帮助你识别 不同 benchmark 是如何评价模型的性能,从而做出更明智的选择,为自己的业务助力。

通过模型架构选择

在开始本章之前,建议您先看看这篇文章《信我!这里有普通人也能理解的 Transformer》Encoder-Decoder 模型 这个章节,对 Encoder-Decoder 模型有个比较全面的了解。

这里也对 Encoder-Decoder 模型做一个简单介绍,Encoder-Decoder模型是一种广泛应用于自然语言处理、语音识别、图像识别等领域的模型架构。它的重要性在于,它能够处理一种输入(如一段文本、一段语音或一张图片),并生成一种可能完全不同的输出(如另一种语言的文本、一段文字描述或一种分类标签)。Transformer模型就是一种基于Encoder-Decoder架构的模型,它在处理长距离依赖和并行计算方面表现出了优越的性能。

Encoder-only

Encoder-only 是一类自编码模型,可以简单理解模型为了深入理解输入文本的含义,一直在自己做 "填词游戏",模型接收到一段文本,并将文本中的某部分遮住,尝试预测遮住的部分。这种方式使得模型能够学习到文本中的词语和句子的内在关系,以及它们的上下文含义。

显然 Encoder-only 架构的模型更擅长对文本内容进行分析、分类,包括情感分析,命名实体识别。

代表模型有 Google 的 BERT,ALBERT,Microsoft 的 DeBERTa,BERT,以及 Meta 的 RoBERTa。

Decoder-only

Decoder-only 是一类自回归模型,可以简单理解为"接龙游戏",模型会接收到一段文本,并尝试预测下一个词语。这种方式使得模型能够学习到文本中的词语和句子的生成规律。有比较强的根据上下文的推理能力。

显然 Decoder-only 架构的更擅长做 Q&A,聊天机器人等。并且因为 decoder 的架构中也包含了 Encoder 的 Self-Attention 层和 Feed-Forward 层,所以在分析分类上也和 Encoder-only 的LLM一样有效。目前大多数主流的 LLM 都是采用 Decoder-only

代表模型有 OpenAI 的 GPT 家族,以及 Meta 的 LLaMA。

Encoder-Decoder

完整的 Encoder-Decoder 模型,这种主要用于 NLP 领域,既需要理解输入的内容 NLU(自然语言理解),又能处理并生成内容 NLG(自然语言生成),尤其擅长处理输入和输出序列之间存在复杂映射关系的任务,以及捕捉两个序列中元素之间关系至关重要的任务。这块详细原理建议看 《信我!这里有普通人也能理解的 Transformer》

Encoder-Decoder 架构擅长输出强烈依赖输入的,比如翻译和文本总结。

代表模型有 Google 的 T5,以及 Meta 的 BART。

通过模型指标选择

通过架构选择了合适的模型大方向后,我们就应该通过评估各项指标来在大方向中选择出适合我们业务的最佳模型。

这里介绍一个评估大模型指标的重要概念 ------ Benchmark(基准),Benchmark 是一组标准化的测试集或任务,用于评估语言模型在不同自然语言处理任务上的表现。这些任务可以涵盖文本生成、文本分类、问答系统等多个领域。Benchmark 旨在提供一个公平和一致的基准,使研究人员和开发者能够比较不同语言模型的性能。

通过 Benchmark,我们可以在同样的任务和数据上测试不同的模型,然后比较它们的表现,选择出适合我们的模型。目前 Benchmark 大致被分为三类:General benchmarks,Specific benchmarks 和 Multi-modal benchmarks。

General benchmarks

一种全面的评测方法,它包含了各种各样的任务,可以测试模型在各个方面的性能。一般包含了多种自然语言处理任务,如情感分析、问答、文本蕴含等。就像是我们在学校里的期末考试,它包含了各种各样的题目,可以测试我们在各个科目上的知识和技能。

目前常用的 General benchmarks 有 Xiezhi,MMLU,C-Eval,OpenLLM,DynaBench,Chatbot Arena,AlpacaEval,HELM,BIG-bench,PandaLM,BOSS,GLUE-X,KoLA,AGIEval,PromptBench,MT-Bench ,LLMEval2 等

Chatbot Arena

聊天机器人竞技场(Chatbot Arena)是一个具有开创性的评估基准平台,它提供了一个独特且具有竞争力的环境,以及一系列标准化的基准测试任务和数据集,覆盖了各种领域和任务。这些基准测试专为评估聊天机器人在对话、问答、情感分析等方面的性能和能力而设计。用户可以与匿名模型进行互动,并通过投票表达他们的喜好。通过收集大量投票,该平台有助于在实际场景中评估模型的性能。

在评估过程中,使用预定义的测试集或验证集对不同的聊天机器人进行测试。聊天机器人将接收输入并生成相应的回复。然后,使用选定的评估指标对生成的回复进行评估,并计算相应的性能指标,以确定哪个聊天机器人在特定任务上表现最佳。

除了传统的模型指标,如:准确率(Accuracy),召回率(Recall),F1分数(F1 Score)等,常见用于 LLM 的评估指标有:

  • BLEU 分数:BLEU(Bilingual Evaluation Understudy)是一种常用的自动评估指标,用于衡量生成的回复与参考答案之间的相似度。它基于n-gram匹配和短语级别的精确匹配来计算分数,范围从0到1,越接近1表示生成的回复与参考答案越相似。(而BLEU主要用于机器翻译任务中评估生成的翻译结果与参考翻译之间的相似度。)
  • ROUGE 分数:ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一组用于评估文本摘要和生成回复的指标。用于衡量生成的回复与参考答案之间的重叠和相似度。(ROUGE主要用于评估文本摘要任务中生成的摘要与参考摘要之间的相似度。它可以衡量生成的摘要是否包含了参考摘要中的重要信息。)
  • TER(Translation Edit Rate):TER是一种基于编辑距离的评估指标,用于衡量机器翻译系统生成的翻译结果与参考翻译之间的编辑操作数量。它表示将生成的翻译结果转换为参考翻译所需的编辑操作的比例,范围从0到1,越接近0表示生成的翻译结果越接近参考翻译。
  • 人工评估:除了自动评估指标,Chatbot Arena还可以使用人工评估来衡量聊天机器人的性能。人工评估可以通过专家评分、用户调查或人工对话交互等方式进行,以获取更准确和全面的评估结果。
  • 对话质量:对话质量是评估聊天机器人性能的重要指标之一。它可以通过评估对话的流畅性、逻辑性、信息准确性和上下文理解等方面来衡量。
  • 任务完成率:对于特定任务导向的聊天机器人,任务完成率是一个重要的评估指标。它表示聊天机器人在特定任务上成功完成的比例,例如回答问题、提供服务等。

这类指标一般由自动评估得出,自动评估是一种常见且可能是最流行的评估方法,通常使用标准指标和评估工具来评估模型的性能。当自动评估不适用时,也会通过人的参与来评估模型生成结果的质量和准确性。与自动评估相比,人工评估更接近实际应用场景,可以提供更全面和准确的反馈。但由于文化和个体差异所致,人工评估具有高度的差异性和不稳定性,在实际应用中,这两种评估方法会根据实际情况进行综合考虑和权衡。

MT-Bench

后续 UC 伯克利又推出了全新评价机制:MT-bench,一套专门设计用于评估模型在处理多轮对话中的能力的问题,包含80个高质量的多轮问题。作为对 Chatbot Arena 的质量控制补充,它在模拟真实世界环境中的对话场景方面表现出色,从而更精确地评估模型的实际性能。

Specific benchmarks

这是一种专门的评测方法,它只包含一个或几个特定的任务,可以测试模型在这些任务上的性能。就像是我们参加的数学竞赛或英语演讲比赛,它只测试我们在一个特定领域的知识和技能。

目前常用的 Specific benchmarks 有 SOCKET,Choice-75,CUAD,TRUSTGPT,MATH,APPS,CELLO,EmotionBench,CMMLU,API-Bank,M3KE,ARB,MultiMedQA,C-Eval 等。

如 MultiMedQA 就是一个医学问答基准,重点关注医学考试、医学研究和消费者健康问题。它包括七个与医学问答相关的数据集,包括六个现有数据集和一个新数据集。

C-Eval(Huang等,2023b),是第一个广泛评估基础模型在中文方面的高级知识和推理能力的基准。

Multi-modal benchmarks

一种综合的评测方法,它包含了多种类型的任务,主要用于测试模型如何处理多模态的数据。

目前常用的 Multi-modal benchmarks 有 MME,VQA,MMBench,SEED-Bench,MM-Vet,LAMM,LVLM-eHub 等。

如 VQA 是一个常用的 Multi-modal benchmarks,它包含了图像和文本两种类型的数据,用来测试模型在视觉问答任务上的性能。

总而言之

尽管在 LLMs 评估现有研究成果方面投入了大量精力,但目前尚无明确证据表明某种特定的评估协议或基准测试具有最佳的实用性和成功性。相反,不同的评估方法和基准测试各具特点和侧重点。

这意味着在不同任务和领域中,需要采用不同的评估标准来衡量模型的性能。没有一个单一的模型可以在所有任务和领域中都表现出色。因此,在实际应用中,研究人员和工程师需要根据具体任务和需求选择合适的模型,并针对特定问题进行优化和调整。这有助于确保所选模型能够在特定场景中实现最佳性能,同时避免了过度依赖某一通用模型的风险。

想深入了解评估方法和 benchmark,以及 LLMs 评估未来的发展的趋势和面临的困境,可参考这篇论文:A Survey on Evaluation of Large Language Models

这里也提供几个 banchmark 的资源供大家使用。

  1. Papers With Code:这是一个非常全面的资源,提供了各种领域的基准测试和相应的最新研究成果。
  2. Google AI Hub:提供的资源,包含了各种领域的数据集和基准测试。
  3. Kaggle:这是一个数据科学竞赛平台,提供了各种领域的数据集和竞赛,可以看到各种任务的基准测试。
  4. OpenAI Gym:提供的强化学习环境和基准测试。
  5. GLUE Benchmark:用于自然语言处理(NLP)领域的基准测试。
相关推荐
sinovoip1 分钟前
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
人工智能·科技·物联网·开源·risc-v
搏博24 分钟前
神经网络问题之一:梯度消失(Vanishing Gradient)
人工智能·机器学习
z千鑫24 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr32 分钟前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
威桑34 分钟前
CMake + mingw + opencv
人工智能·opencv·计算机视觉
爱喝热水的呀哈喽38 分钟前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
我感觉。2 小时前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
YRr YRr2 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络