跳至主要内容

使用 Mistral Large 模型的完整指南

关于 Mistral Large 模型的功能、对比与实际应用的详细教程。
· 12分钟 阅读

使用 AI 探索

Mistral Au Large cover image.

图片由作者提供

自从大型语言模型(LLM)出现以来,数据科学领域发生了翻天覆地的变化。OpenAI 的 GPT-3 等工具成为推动行业创新的关键力量,解锁了此前被认为不可企及的新能力。

虽然 OpenAI 的 GPT 系列最初占据市场主导地位,但随着时间推移,众多新模型相继面世,各自具备独特能力与专长应用场景。

其中,Mistral 的模型凭借先进的推理能力与多语言支持脱颖而出,同时在代码生成方面表现出色,标志着 AI 的重要飞跃。

本教程将带您了解 Mistral 最新的模型 Mistral Large,包括按需调用的 API 接入方式,深入解析其功能特性、与其他 LLM 的对比,以及实际应用。

无论您是经验丰富的数据科学家、希望扩展工具箱的开发者,还是渴望探索前沿技术的 AI 爱好者,这篇教程都为您量身打造。

什么是 Mistral AI?

Mistral AI 是一家法国公司,成立于 2023 年 4 月,由来自 Meta 和 Google DeepMind 的前员工创立。其主要目标是在提供 AI 产品与服务的同时,为社会输出稳健的开源 LLM。

该公司于 2023 年 9 月发布的 Mistral 7B 模型为市场带来变革。该模型拥有 73 亿参数,超越了当时最先进的开源模型(包括 LlaMa 2),使 Mistral AI 在开源 AI 领域占据领先地位。

近几个月来,Mistral AI 已成为人工智能行业的先锋力量,致力于提供能够解决复杂问题并简化流程的强大工具。

这也正是促使我们关注其最新发布——Mistral Large 模型的原因。

什么是 Mistral Large

Mistral Large 是 Mistral 于 2024 年 2 月推出的最新、最强大的大型语言模型。它定位为旗舰级文本生成模型,甚至能够与广受赞誉的 GPT-4 媲美。

该模型旨在具备强大的推理与知识能力,同时对多种编程语言有扎实理解,并支持多语言理解。它在以下核心任务上尤为出色:

推理与知识

Mistral Large 展现出强劲的推理能力。为评估这类能力,人们通常通过多种基准对 Mistral Large 或 GPT-4 等 LLM 的理解、推理、知识与处理不同类型数据的能力进行对比评测。

最常见的包括:

  • MMLU(Measuring massive multitask language understanding):测试模型在广泛学科(从专业领域到常识推理)上的理解能力。
  • HellaSwag:评估模型对常识场景的理解,以及对给定语境下最合理续写的预测能力。
  • Arc Challenge:衡量模型回答复杂的小学至初中水平科学问题的能力,这些问题需要逻辑推理与科学概念理解。

下图展示了这些预训练模型在上述三项及更多基准上的表现:

Performance on widespread common sense, reasoning and knowledge benchmarks of the top-leading LLM models on the market: MMLU (Measuring massive multitask language in understanding), HellaSwag (10-shot), Wino Grande (5-shot), Arc Challenge (5-shot), Arc Challenge (25-shot), TriviaQA (5-shot) and TruthfulQA.

图片来自 Mistral AI。图示为市面顶尖 LLM 在常识、推理与知识类主流基准上的表现:MMLU、HellaSwag(10-shot)、Wino Grande(5-shot)、Arc Challenge(5-shot/25-shot)、TriviaQA(5-shot)与 TruthfulQA。

如图所示,Mistral Large 在 ArcC 与 TruthfulQA 上表现最佳,并在几乎所有基准上与 GPT-4 分差接近。

多语言能力

不同于许多仅擅长单一语言的模型,Mistral Large 对英语、法语、西班牙语、德语与意大利语具备“母语级”流利度。

其多语言能力不仅限于翻译,更包含对语法与文化语境的深入理解,非常适合需要以母语化方式处理上述语言的全球化应用。

数学与编程

Mistral Large 在编程与数学任务中同样表现优异。比较不同 LLM 在数学与编码方面的能力,通常采用以下标准基准:

  • HumanEval:衡量模型为多种编程问题生成正确代码解法的能力。
  • MBPP:测试模型解决 Python 编程问题的熟练度。
  • GSM8K:评估模型在小学数学层面的问题求解能力。

下表概览了其在多项知名基准上的表现,对比了主流 LLM 的编程与数学能力。

Performance on popular coding and math benchmarks of the leading LLM models on the market: HumanEval pass@1, MBPP pass@1, Math maj@4, GSM8K maj@8 (8-shot) and GSM8K maj@1 (5 shot).

图片来自 Mistral AI。图示为市面顶尖 LLM 在流行的编程与数学基准上的表现:HumanEval pass@1、MBPP pass@1、Math maj@4、GSM8K maj@8(8-shot)与 GSM8K maj@1(5-shot)。

与前述结果一致,Mistral Large 在大多数基准(MBPP、Math maj@4、GSM8K)中名列前茅,并在全部项目保持高分。

此外,Mistral Large 还带来一些新能力与优势:

  • 其32K 令牌上下文窗口可从长文档中更准确地检索信息。直观来说,与 Mistral 7B 的 8K 上下文窗口相比,Mistral Large 在生成或分析时最多可同时考虑 32,000 个令牌(词片)。
  • 其高精度的指令遵循能力使开发者能够自定义审核策略——我们利用该能力为 le Chat 建立了系统级审核。
  • 内置函数调用支持。这意味着 Mistral Large 能在其框架内原生处理与执行函数调用。模型可理解执行特定函数的请求,将其作为生成响应的一部分来执行,或根据函数逻辑处理数据。

所有 Mistral AI 模型均采用 Apache 2.0 许可协议发布,可不受限制地使用。您可通过阅读Mistral 官方网站与文档了解更多模型架构与性能信息。

Mistral Large 与其他 LLM 的对比

与 ChatGPT、Claude 等 LLM 相比,Mistral Large 的主要差异在于更具性价比。

在竞争激烈的 AI 领域,Mistral Large 在众多公认基准上取得了令人印象深刻的成绩,稳居可通过 API 使用的全球第二名模型。

这一成就凸显了其在文本理解与生成方面的有效性;在 MMLU(大规模多任务语言理解)等综合评测中,与 GPT-4、Claude 2、LLaMA 2 70B 等巨头同台对比表现优异。

Comparison of GPT-4, Mistral Large (pre-trained), Claude 2, Gemini Pro 1.0, GPT 3.5 and LLaMA 2 70B on MMLU (Measuring massive multitask language understanding).

图片来自 Mistral AI。图示为 GPT-4、Mistral Large(预训练)、Claude 2、Gemini Pro 1.0、GPT-3.5 与 LLaMA 2 70B 在 MMLU 基准上的对比。

ChatGPT 颠覆了交互式对话体验,Claude 2 提升了理解与生成能力;而 Mistral Large 更进一步,将深度推理融入高性价比框架,使先进 AI 更易于被更广泛用户群体获取与使用。

现在,是时候学习如何驾驭这头“猛兽”了!

Mistral Large 上手指南

使用 Mistral AI 的流程十分简洁,旨在让您快速开始。

访问模型主要有两种方式:

  • 使用 Mistral 借鉴 ChatGPT 的聊天界面“Le Chat”。
  • 通过 Mistral 的 API 端点集成到我们的代码中。

Using Mistral Large via API or via Le Chat.

图片由作者提供。

如果您想先从更简单的模型开始,强烈推荐先阅读这篇关于使用与微调 Mistral 7B 的指南。

Mistral 聊天机器人 - Le Chat

该界面允许您与 Mistral 进行文本对话,类似 OpenAI 或 Google 的商业产品。您可以提问或下达指令,Mistral 将尽力给出信息丰富的回答。

Mistral Le Chat Interface Screenshot.

Mistral Le Chat 界面截图。

要访问该界面,只需访问Mistral Le Chat 官网并注册。免费使用,无任何限制。

Mistral API

开发者可通过其 API 与 Mistral 交互,体验与 OpenAI API 十分类似。

该 API 允许您发送文本提示并接收模型生成的回复。在 Python 中使用 Mistral API 时,mistralai 等库可简化与 API 的交互。

下面我们完成与 Mistral Large 交互的基础步骤。

步骤 1 - 创建您的 Mistral 账户

首先访问Mistral 官网并点击“Build Now”按钮。

Screenshot of MistralAI main website.

MistralAI 官网截图。

系统会要求您创建新账户,或在已有账户的情况下登录。

Screenshot of MistralAI signing up interface.

MistralAI 注册界面截图。

登录后,如需通过 API 访问模型,需先订阅。

Screenshot of MistralAI account.

MistralAI 账户页面截图。

接着,您需要填写个人与账单信息。

Screenshot of MistralAI signing up process.

MistralAI 注册流程截图。

如此一来,我们就创建好了可用的账户!

步骤 2 - 创建 API KEY

账户开通后,您需要生成一个 API Key,便于在 Python 代码中调用 Mistral Large。请前往 API Keys 区域。

Screenshot of MistralAI signing up process.

MistralAI 注册流程截图。

进入后,点击“Create new key”,为其命名并可选设置过期日期(此项可完全不填)。

Screenshot of MistralAI signing up process.

MistralAI 注册流程截图。

步骤 3 - 本地环境配置

要在 Python 代码中调用 Mistral 模型,您将使用 mistralai 库,可通过以下 pip 命令轻松安装:

pip install mistralai

由于需要使用 API Key,建议配合 dotenv 库来存储密钥。可通过以下 pip 命令轻松安装:

pip install python-dotenv

随后,您可将 Mistral API Key 写入 .env 文件,并通过以下代码加载:

import os
from dotenv import load_dotenv


# Load environment variables from the .env file
load_dotenv()

# Access the API key using os.getenv
api_key = os.getenv("MISTRAL_API_KEY")

Mistral Large 的实用场景

Mistral Large 可用于内容创作、客户支持自动化、编程辅助、数据分析、语言翻译与教育工具等多个领域。

这些应用展示了 Mistral LLM 在不同产业中提升生产力、创造力与决策质量的多面性。要开始实践,首先需要初始化模型。

为此,您将导入 mistralai.client 库与聊天补全函数以获取模型响应。随后,为简化与 API 的交互流程,定义一个 chat_mistral function:输入为提示词,输出为模型回复。

from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage

model = "mistral-large-latest"


client = MistralClient(api_key=api_key)

def chat_mistral(prompt: str):
   messages = [
       ChatMessage(role="user", content=prompt)
   ]

   # No streaming
   chat_response = client.chat(
       model=model,
       messages=messages,
   )

   return chat_response.choices[0].message.content

下面看看 Mistral 能处理的一些示例:

文本生成与处理

Mistral Large 擅长文本生成、理解与转换等任务。从创作引人入胜的叙事与文章,到总结复杂文档与变换文体,其在文本处理方面的主要应用包括:

文本生成

Mistral Large 乃至任何 LLM 的核心应用之一,都是基于您的初始提示生成文本。这一能力的基础在于模型在多领域海量文本数据上的广泛训练。

这使模型能够掌握不同写作风格、主题与语言结构,从而生成符合特定语气或内容需求的文本。

# Starting prompt for a fairytale poem
prompt = """Write a short story starting with "Once upon a time" """
print(chat_mistral(prompt))

_________________________________________ #OUTPUT

Once upon a time, in a bustling city filled with towering skyscrapers and endless traffic, there was a small, quaint bookstore named "Whispers of the Past". This wasn't an ordinary bookstore. It was a magical place where every book held a secret story, waiting to be discovered.

The owner of the store, Mr. Benjamin, was an old man with a heart full of kindness and a mind full of tales. He had a peculiar habit of recommending books to his customers, not based on their genre preference, but on their current life situations. His recommendations were always spot on, and people often found solace, guidance, or inspiration from the books he suggested.

One day, a young girl named Lily walked into the store. She was new in town and had a lost look in her eyes. Seeing this, Mr. Benjamin approached her and asked, "What can I help you find today, my dear?"

Lily…

您可在《What is Text Generation?》一文中进一步了解文本生成。

情感分析

Mistral Large 的情感分析能力基于其深度学习框架,能够理解语言语境,有效区分正面、负面与中性情绪。

通过分析输入文本,它可以推断词语背后的情感基调,并借助对多样化数据集的广泛训练,确保在各类内容中实现准确的情感识别。

一个不错的用法是让 Mistral 判断给定文本的情感倾向。

# Sample text
text = "This movie was absolutely fantastic! I highly recommend it."

prompt = f"""Analyze the sentime of the following {text}.
Generate a json like response with the corresponding sentiment (positive, neutral or negatie).

"""
print(chat_mistral(prompt))

_________________________________________ #OUTPUT

{
  "Sentiment": "Positive",
  "Text": "This movie was absolutely fantastic! I highly recommend it."
}

文本摘要

Mistral Large 通过先进的自然语言处理能力,将长文档转化为简洁而信息密集的摘要。它能理解文本的主题与关键信息,识别并提炼最重要的内容,输出连贯精炼的总结。

这一能力特别适合快速把握海量文本的核心要点,是需要高效吸收并据此行动的专业人士的必备工具。

一个简单示例是让模型对一段文本进行摘要,如下所示:

# Sample text
text = """The quick brown fox jumps over the lazy dog. The rain in Spain falls mainly on the plain.
This is a longer sentence to show summarization capabilities."""

prompt = f"""Summarize the following {text} in 4 words.
"""
print(chat_mistral(prompt))

_________________________________________ #OUTPUT

Fox jumps, rain falls.

文本翻译与多语言任务

Mistral Large 在多语言任务上同样能力突出。mistral-large 专门训练以理解并生成多种语言文本,尤其是法语、德语、西班牙语与意大利语。

对于需要多语种沟通的企业与用户,Mistral Large 具有特别的价值。

一个简单示例就是将其用作翻译器。

# Sample text
text = """The quick brown fox jumps over the lazy dog. The rain in Spain falls mainly on the plain.
This is a longer sentence to show summarization capabilities."""

language_in = "english"
language_out = "spanish"

prompt = f"""Translate the following {text} that is written in {language_in} to {language_out} and
just output the translated text.
"""
print(chat_mistral(prompt))

_________________________________________ #OUTPUT
The quick brown fox jumps over the lazy dog. The rain in Spain falls mainly on the plain.
Translation to Spanish:
El rápido zorro marrón salta sobre el perro perezoso. La lluvia en España cae principalmente en la llanura.

This is a longer sentence to show summarization capabilities.
Translation to Spanish:
Esta es una oración más larga para mostrar las capacidades de resumen.

代码生成与数学问题求解

除了文本领域,Mistral Large 在代码生成与数学问题求解方面同样展现出色表现。通过提供简明的问题描述,您可以借助 Mistral Large 生成优化的代码片段,并解决数学难题,彰显其在教学、科研与开发场景中的实用价值。

代码生成

Mistral Large 能理解高层描述,并将其转化为多种编程语言中语法正确且高效的代码。

它借助对代码库、技术文档与开发者论坛的大量训练,生成符合要求、功能完备且优化良好的代码。

一个简单示例是让模型生成一个执行特定任务的函数。

# Prompt: Generate a Python function that takes a list of numbers and returns the sum of squares.

prompt = """def sum_of_squares(numbers):
   # Your code here
   pass

# Call the generated function with a sample list
numbers = [1, 2, 3]
result = sum_of_squares(numbers)

print(f"Sum of squares: {result}")  # Expected output: Sum of squares: 14"""

print(chat_mistral(prompt))

_________________________________________ #OUTPUT
Sure, I can help you define the function `sum_of_squares`. This function should take a list of numbers as an argument, square each number, and then return the sum of those squares. Here's how you could do it:

```python
def sum_of_squares(numbers):
    return sum(num ** 2 for num in numbers)
```

该能力有助于简化开发流程,帮助程序员快速原型构建、调试,并轻松实现复杂算法。

数学问题求解

Mistral Large 具备通过对数值概念的深入理解来解决数学问题的能力,并能处理与解释复杂的数学指令。

它利用在广泛数学数据上的训练所形成的算法,可处理从基础算术到更高级的微积分与代数问题。

例如,您可以让模型求解一道数学题。

# Prompt: Solve a system of linear equations with two variables.

prompt = """We have a system of equations:
 x + 2y = 5
 3x - y = 1

Solve for x and y.
"""

print(chat_mistral(prompt))

_________________________________________ #OUTPUT
Sure, I'd be happy to help you solve this system of equations. We can use the method of substitution or elimination. I'll use substitution for this example.

First, let's solve the first equation for x:

x = 5 - 2y

Now, we can substitute x in the second equation with the expression we just found:

3(5 - 2y) - y = 1

Expanding and simplifying this gives:

15 - 6y - y = 1
-7y = 1 - 15
-7y = -14

Now, divide both sides by -7 to solve for y:

y = -14 / -7
y = 2

Substitute y = 2 into the first equation:

x + 2(2) = 5
x + 4 = 5
x = 5 - 4
x = 1

So, the solution to the system of equations is x = 1 and y = 2.

这使 Mistral Large 成为教育者、学生与研究人员寻找数学问题解答或验证结果正确性的有价值工具。

Mistral Large 的高级特性与最佳实践

定价与访问

Mistral AI 的 API 服务采用按量计费模式,聊天补全与嵌入 API 的费率不同。价格按百万令牌计费,随模型复杂度而异,提供包括 Mistral 7B、Mixtral 8x7B 以及不同规模(Small、Medium、Large)的 Mistral 模型选项。

平台提供多个档位,包括 Mistral Small、Medium 与 Large,以满足不同项目需求与预算限制。最低价格仍为 Mistral 7B(每令牌 0.25 美分),Mistral Large 的输出为 8 美元、输入为 24 美元(均按百万令牌计)。

这种灵活性使您能够选择最合适的模型版本,在性能与成本间取得最佳平衡。

Mistral AI models pricing table.

Mistral AI 模型定价表。

平台默认的速率限制为每秒 5 次请求、每分钟 200 万令牌、每月 100 亿令牌,可按需申请调整。

有关详细定价与速率限制信息,请访问 Mistral AI 定价页面。

性能优化

选择合适的 Mistral 模型需要在性能与成本之间权衡。您的需求决定了选择,并可能随着模型演进而变化。

通常,模型越大性能越好。在 MMLU(我们在上文介绍过的“大规模多任务语言理解”基准)等评测中,Mistral Large 表现领先,其后为 Mistral Medium、Small、Mixtral 8x7B 与 Mistral 7B。

Comparing Mistral Models performance. Image by Mistral AI.

Mistral 模型性能对比。图片来自 Mistral AI。

为在控成本的同时最大化 Mistral Large 的效果,您可以精细化构造查询,并为任务选择最合适的模型版本。想进一步了解 LLM 微调,可参阅这篇LLM 微调入门指南

Mistral AI 提供五个 API 端点,覆盖五款主力大型语言模型:

  • open-mistral-7b(又名 mistral-tiny-2312)
  • open-mixtral-8x7b(又名 mistral-small-2312)
  • mistral-small-latest(又名 mistral-small-2402)
  • mistral-medium-latest(又名 mistral-medium-2312)
  • mistral-large-latest(又名 mistral-large-2402)

最新版 Mistral 模型提供三个变体,可根据应用需求在成本与性能间取舍:

  • Mistral Small:针对分类、客服、基础文本生成等简单、大批量任务进行优化。适合如垃圾邮件检测等成本敏感型场景。
  • Mistral Medium:面向中等复杂度任务,在数据抽取、文档摘要与描述性内容生成方面表现出色,能力与效率较为均衡。
  • Mistral Large:几乎在所有基准上表现优异,最适合复杂、重推理任务或特定领域应用,包括合成文本与代码生成。其在高级推理与问题求解上具备更强性能。

Mistral Large 的下一步是什么?

随着 Mistral Large 持续演进,未来还将迎来更多更新、社区贡献与功能增强。

对于希望充分利用 Mistral Large 能力并将最新特性集成到项目中的用户而言,及时跟进这些进展至关重要。

模型的路线图承诺将持续创新,重点提升推理能力、语言支持与可用性。

结语

Mistral Large 代表了 AI 与数据科学领域的重大进步:在提供多语言支持与先进推理能力的同时,还能为用户带来编程与数学方面的助力。

这是我们首次拥有开源且价格亲民、同时在多个基准上领先并超越 OpenAI GPT-4 或 Google Gemini 等商用模型的方案。

这意味着借助 Mistral Large,您可以以更低预算与更优性能,解锁新可能、简化流程,并打造以往难以实现的创新解决方案。

您可在以下GitHub 仓库查看完整代码。

如果您希望在 LLM 领域不断精进,强烈建议继续学习更进阶的教程。若您对该领域尚属入门,可从 DataCamp 的LLM 概念课程开始,涵盖诸多关键训练方法与最新研究。

对于更高级的用户,以下资源同样值得关注:

Josep Ferrer

作者

Josep Ferrer

Josep 是一名专注于欧洲项目的自由职业数据科学家,擅长数据存储、处理、高级分析,以及具有影响力的数据叙事。 

作为一名教育者,他在纳瓦拉大学硕士项目教授大数据课程,并在 Medium、KDNuggets 和 DataCamp 等平台发表文章分享见解。Josep 还在其通讯 Databites(databites.tech)撰写有关数据与技术的内容。 

他拥有加泰罗尼亚理工大学工程物理学学士学位,以及庞培法布拉大学智能交互系统硕士学位。

主题