在前几章中,我们已经看到大语言模型(LLMs)是极其复杂的,可能拥有数万亿个参数,并且其准确性很难量化。然而,使用这些系统的另一个固有挑战是它们的缺乏透明度。许多模型是专有的------例如,GPT-4的白皮书明确指出,"鉴于GPT-4等大规模模型的竞争环境和安全隐患,本报告不包含关于架构(包括模型大小)、硬件、训练计算、数据集构建、训练方法或类似内容的进一步细节。"1 由于缺乏关于模型的训练、精确架构和基础设施实现的细节,理解模型结构和性能中的创新以及在公司实验室之外进行改进变得具有挑战性。幸运的是,一些开源的LLM为我们提供了实验前沿模型的能力,这些模型通过宽松的许可,开辟了一个供独立分析使用的强大工具箱。
在本章中,我们将介绍一些开源模型,包括:
- Falcon2
- Mixral8x22B
- Dolly,由Databricks开源
- LLaMA模型,由Meta推出
- Grok-1
我们还将查看一些公开可用的数据集/基准,以便评估这些模型:
- Hellaswag,用于推理
- MMLU,用于语言评估
- HumanEval,用于编码
在整个过程中,我们将重点介绍通过HuggingFace库等便捷工具访问这些模型。让我们开始吧。
LLaMA模型
LLaMA模型系列是Meta开发的一组开源大语言模型(LLMs);该系列中最新的通用语言模型是LLaMA3。在介绍这个模型时,开发团队强调了几个关键的架构特点:
- 它是GPT-3/Palm模型的一个变体,重度使用了我们在前几章中见过的Transformer单元。
- 它在模型的输入上使用了均方根(RMS)归一化层,有助于管理梯度的大小;这种归一化通常应用于LLM中Transformer模块的输出。
- 我们在第二章中看到的SwiGLU激活函数。
- 旋转位置嵌入(Rotary Positional Embeddings),这是一种灵活表示输入字符相对位置(即它们彼此的接近度)的方法;它利用了嵌入令牌之间的内积,这种计算在Transformer模块中高效。
- 我们在第二章中看到的AdamW优化器。
重要的是,开发LLaMA模型所使用的所有数据源都是开源的;这些数据包括CommonCrawl互联网网页数据集、Wikipedia、ArXiv学术预印本数据库以及StackExchange问答网站。
原始的LLaMA模型通过使用"单次"任务(每个任务一个提示)或"多次"任务(一些示例)来评估一组常见任务,相关应用包括:
- 常识推理,例如多项选择题和关系理解
- 问答
- 数学
- 阅读理解
- 编程
它还针对多个有害内容和偏见类别(性别、种族)进行了评估。显然,LLaMA可以做很多事情,并作为一个通用资源开发,供那些有兴趣使用数据增强方法(如检索增强生成(RAG))和进行特定用途微调的人使用。事实上,LLaMA白皮书描述了成功的微调实验作为概念验证。然而,这些模型目前尚未支持多模态(无法生成文本以外的输出)。
LLaMA系列的最新版本是LLaMA3,提供7亿参数和700亿参数的变体。该模型与原始LLaMA白皮书中描述的架构非常相似,但增加了分组查询注意力(Grouped Query Attention,GQA)特性。GQA的基本思想是,我们之前看到的Transformer在自注意力操作中需要进行每个键、查询和值的矩阵计算,计算开销较大。如果所有查询映射到单一键和值(多查询注意力),则效率更高,但这会导致表现力丧失。GQA是一个中间组,将查询分组到共享的键和值集合中------图6.1展示了这些架构的可视化。LLaMA2中增加了一些更新,使得模型尽管有大量参数,仍能更加高效。有趣的是,LLaMA3性能的最大提升归功于数据集处理的改进,而不是模型架构本身的优化。

让我们来看一些使用7亿参数模型的例子。
在Hugging Face上探索LLaMA 8B
Hugging Face的pipelines模块为我们提供了一个易于使用的接口来探索LLaMA 7B模型。要访问LLaMA3存储库,你需要执行以下步骤:
- 在huggingface.co/join 创建一个Hugging Face账户。
- 在huggingface.co/settings/to...生成一个令牌,用于认证。确保在令牌页面选择"Read access to contents of all public gated repos"的复选框。
- 将令牌值复制并粘贴到Collab笔记本界面左侧工具栏的"secrets"选项卡中,命名为HF_TOKEN。
- 最后,你需要在此页面签署LLaMA3使用协议:huggingface.co/meta-llama/...。该请求需要得到批准;一旦批准,你可以使用以下命令来访问LLaMA3 7B:
ini
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B"
pipeline = transformers.pipeline("text-generation", model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16}, device_map="auto")
我们可以通过打印这个管道的输出,来检查模型结构:
pipeline.model
输出结果显示,嵌入表示的是一个128,256字符的词汇表,嵌入令牌的维度是4096。一旦文本令牌被嵌入为4096维的向量,LLaMA模型会通过32层处理。每一层都由一个Transformer单元组成,采用稀疏点积注意力。简而言之,每个令牌经历以下一系列计算:
- 通过查询层计算一个查询值,输出长度为4096
- 通过键层计算一个键值,输出长度为1024
- 通过值层计算一个值,输出长度为1024
- 将(查询键)和(值)的乘积通过点积归一化,以保持方差为1
- 通过残差层计算输出,将输入的4096维向量加到Transformer模块的输出中
- 一个位置嵌入
在Transformer块后,我们应用多层感知器(MLPs,前馈网络),它将多头注意力的输出压缩为一个较小的向量(下投影),然后再扩展回来(上投影)。对于每一个32个Transformer MLP块,我们都会对输入和输出进行归一化。
例子:使用LLaMA3解决Human Eval基准中的编程问题
首先,我们需要安装human eval模块:
javascript
from human_eval.data import write_jsonl, read_problems
HumanEval是一个编程问题基准,用于评估LLMs在协助代码开发方面的能力。实际上,LLMs的许多重要应用之一就是在开发人员输入时提供推荐代码,从而减少开发人员需要自己编写的"模板"代码量,加速软件开发过程。HumanEval最初是为支持GitHub Copilot的Codex模型开发的,但此后也用于评估其他LLMs的代码补全能力。
一旦我们导入了human eval,我们就可以检查基准中包含的164个Python编码问题列表。让我们来看第一个问题:
ini
problems = read_problems()
problems是一个字典,包含164个键,每个键与基准中的一个编码示例相关。我们可以使用HumanEval/n(其中n是从0到163的数字)来访问它们。我们可以查看第一个问题,它是一个包含以下常见键的字典,这些键在所有问题中都会出现:
less
print(list(problems['HumanEval/0'].keys()))
输出如下:
css
['task_id', 'prompt', 'entry_point', 'canonical_solution', 'test']
task_id是键HumanEval/0。prompt是我们提供给LLM并要求回答的文本。你可以看到,这个prompt包含一个Python代码的存根,给出了一个函数声明和一个描述函数作用的docstring;LLM应该使用这个prompt来提供实现该功能的代码主体:
css
print(problems['HumanEval/0']['prompt'])
以下是一个这样的prompt的例子:
python
from typing import List
def has_close_elements(numbers: List[float], threshold: float) -> bool:
""" Check if in given list of numbers, are any two numbers closer to each other than given threshold.
>>> has_close_elements([1.0, 2.0, 3.0], 0.5) False
>>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) True """
entry_point包含正在实现的函数名称(在这里是has_close_elements
)。canonical_solution键提供标准答案:
python
for idx, elem in enumerate(numbers):
for idx2, elem2 in enumerate(numbers):
if idx != idx2: distance = abs(elem - elem2) if distance < threshold:
return True
return False
test提供了用于评估解决方案的测试用例:
python
METADATA = { 'author': 'jt', 'dataset': 'test' }
def check(candidate):
assert candidate([1.0, 2.0, 3.9, 4.0, 5.0, 2.2], 0.3) == True
assert candidate([1.0, 2.0, 3.9, 4.0, 5.0, 2.2], 0.05) == False
assert candidate([1.0, 2.0, 5.9, 4.0, 5.0], 0.95) == True
assert candidate([1.0, 2.0, 5.9, 4.0, 5.0], 0.8) == False
assert candidate([1.0, 2.0, 3.0, 4.0, 5.0, 2.0], 0.1) == True
assert candidate([1.1, 2.2, 3.1, 4.1, 5.1], 1.0) == True
assert candidate([1.1, 2.2, 3.1, 4.1, 5.1], 0.5) == False
因此,为了评估LLaMA3对HumanEval中的一个编程问题的回答,我们可以将答案附加到prompt中,编译该函数,并将其传递给test中的check函数,后者接受一个参数candidate作为输入。
让我们将这些步骤结合起来:
css
answer = pipeline(problems["HumanEval/0"]["prompt"])
我们可以看到输出中包含了generated_text
键,这是推荐的代码,用来完成prompt;我们可以通过设置num_return_sequences
参数来要求给定prompt返回多个响应,但在这里,我们仅生成了一个响应,存储在answer数组的第0个位置:
css
print(answer[0]["generated_text"])
输出结果是:
python
from typing import List
def has_close_elements(numbers: List[float], threshold: float) -> bool:
""" Check if in given list of numbers, are any two numbers closer to each other than given threshold. >>> has_close_elements([1.0, 2.0, 3.0], 0.5) False
>>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) True """
for i in range(len(numbers)):
for j in range(i + 1, len(numbers)):
if abs(numbers[i] - numbers[j]) < threshold:
return True
return False
LLaMA现在已经完成了函数主体;我们只需要执行这段文本作为Python代码,并将其作为candidate传递给check函数。我们可以使用Python中的exec
和eval
函数来解释字符串作为代码:
css
exec(answer[0]["generated_text"])
exec(problems['HumanEval/0']['test'])
check(eval(problems['HumanEval/0']["entry_point"]))
没有抛出断言错误,表明LLaMA成功解决了这个编程问题!我们还可以通过提供错误答案并查看是否会抛出断言错误来验证这一点:
python
def wronga(numbers, threshold):
pass
check(wronga)
另一个我们可以用来验证LLaMA3解决问题能力的数据集是MMLU(大规模多任务语言理解),它是一组涵盖物理学、地理学等学科的多项选择题。我们可以使用以下命令在Collab中下载此数据集:
bash
!curl https://people.eecs.berkeley.edu/~hendrycks/data.tar -o data.tar
!tar -xvf data.tar
我们可以看到,该目录包含每个学科的子文件夹。

让我们将其中一个数据加载到pandas中,并查看数据格式:
python
import pandas as pd
df = pd.read_csv('data/dev/high_school_geography_dev.csv', header=None)
df.head()
从输出中可以看到,数据包括一个问题(在第0列),该问题的多项选择答案(在第1列到倒数第二列),以及问题的答案(在最后一列)。为了让LLaMA回答这个多项选择题,我们可以构建一个提示并通过以下代码提供给pipeline函数:
swift
pipeline("The following are multiple choice questions (with answers) about high school geography, provide the answer from the four listed options using A, B, C, D"+"\n".join(df.iloc[0,:-1])+"\nAnswer:")
前面的代码生成了正确的响应,并附带解释!
vbnet
The following are multiple choice questions (with answers) about high school geography, provide the answer from the four listed options using A, B, C, D
The rate of natural increase of a population is found by subtracting the
crude death rate from the crude birth date.
crude birth rate from the crude death rate.
doubling time from the crude birth rate.
fertility rate from the crude death rate.
Answer: A
Explanation: The rate of natural increase of a population is found by subtracting the crude death rate from the crude birth rate. The crude birth rate is the number of live births in a population per 1,000 people. The crude death rate is the number of deaths in a population per 1,000 people.
接下来我们将看一个例子,来自HellaSwag推理数据集,该数据集由一组不完整的句子组成,模型需要从一组选项中选择最合逻辑的延续。这个问题对于传统的NLP方法来说是具有挑战性的,但正如我们所看到的,LLM在这个问题上表现得相当出色。
首先,我们下载数据集:
ruby
!curl https://raw.githubusercontent.com/rowanz/hellaswag/refs/heads/master/data/hellaswag_train.jsonl -o hellaswag_train.jsonl
然后,我们可以通过将数据集加载到pandas中来检查条目:
ini
import json
hswag = pd.read_json(path_or_buf='hellaswag_train.jsonl', lines=True)
hswag.head()
数据包括一个上下文(ctx),即提示,允许的结尾集(endings),以及正确答案标签(给出结尾集合中的基于0的索引)。如果我们将这些数据提供给LLaMA,它会生成正确的答案,正如我们通过查看第0行的标签来验证的那样:
css
pipeline("Pick the best ending to the quoted context from the four listed options using label 0,1,2,3: "+"the context is: ""+hswag.loc[0,'ctx']+""" "\n. The endings are: "+"\n".join(hswag.loc[0,"endings"])+
"\n. The best ending for this context and the reasoning is: ")
输出如下:
csharp
Pick the best ending to the quoted context from the four listed options using label 0,1,2,3: the context is: "Then, the man writes over the snow covering the window of a car, and a woman wearing winter clothes smiles. then"
. The endings are:
, the man adds wax to the windshield and cuts it.
, a person boards a ski lift, while two men supporting the head of the person wearing winter clothes snow as the girls sled.
, the man puts on a Christmas coat, knitted with netting.
, the man continues removing the snow on his car.
. The best ending for this context and the reasoning is: 3. the man continues removing the snow on his car.
Because the context is about removing snow from the car, the best ending is the one that continues this action, and not the one that starts a new action.
Hugging Face的pipeline API的一个优点是,我们只需通过替换构造函数中的模型名称,就可以对其他模型进行相同的练习,这使得使用相同的评估代码比较多个模型变得非常容易。
正如你所看到的,开源的LLaMA系列模型在多个问题解决领域非常强大,包括代码补全、常识推理和推理任务------而我们甚至没有使用LLaMA中参数最多的模型。接下来,让我们看看其他一些同样可以通过Hugging Face访问的开源模型。
Mixtral
另一个受欢迎的开源LLM系列由法国公司Mistral.ai开发。由于它拥有来自Apache软件基金会的宽松2.0许可,它是一个很好的实验工具,甚至适用于潜在的商业用途。我们之前描述了LLaMA系列LLM使用GPT-2类型的Transformer架构。虽然Mixtral也在LLM中使用Transformer模块,但Mistral的最新模型Mixtral基于专家混合(Mixture of Experts,MoE)架构。在MoE模型中,输入(用户提示文本)像LLaMA和其他类似模型一样被编码为向量化的嵌入。然而,这种架构随后引入了一个路由器(图6.3),它将每个输入令牌路由到一个子集(这里是8个中的2个)专家或模型中的Transformer层集合。

在数学上,MoE对每个令牌计算8个专家中的前2个softmax得分:

其中,Wg是"门控"的权重矩阵,表示介于0和1之间的八个输出,这些输出表示应用于令牌x的权重,x被路由到特定的专家,而TopK表示选择(对于Mistral来说是前2个)前n个权重,其他的设置为负无穷。然后,Softmax函数对这些顶级专家的相对权重进行归一化。换句话说,这个计算定义了我们在评估令牌x时应给每个前2个专家的相对权重,x是我们文本提示中的嵌入令牌。使用这个门控权重G,Mistral模型随后进行评估:

其中,E是给定专家的输出(这里是前2个具有最高权重G的专家之一),G是我们在路由器中的前一步计算的权重。我们将这些单独专家的输出加在一起,得到最终的输出。
这种架构的实用性在于,它允许各个专家层专注于特定任务,而不是要求网络能够通用地解决各种任务。
让我们在Hugging Face中加载Mixtral-8x7B。你首先需要在这里请求访问该模型: huggingface.co/mistralai/M...
然后运行以下代码实例化模型------这个模型非常大(93 GB),所以你需要一个大实例在云中运行:
ini
from transformers import pipeline
import torch
model = "mistralai/Mixtral-8x7B-v0.1"
pipeline = pipeline(
"text-generation",
model=model,
model_kwargs={"torch_dtype": torch.float16},
)
为了加速模型的推理,我们将使用flash attention库,首先需要安装它:
css
pip install -U flash-attn --no-build-isolation
flash attention库实现了GPU优化,使得Transformer模块中的自注意力计算更加快速。
我们可以使用与上述相同的命令,在HumanEval代码生成基准上评估Mixtral,它同样能成功回答这些问题。Mistral还发布了一个代码生成模型,Codestral,可以用于HumanEval和类似任务。
Dolly
LLaMA3和Mixtral-8x7B都在大量的网络数据上进行了训练。接下来我们要介绍的开源模型是"Dolly",由DataBricks公司创建,旨在展示如何使用较小的数据集进行微调的强大功能。Dolly模型的原始版本是由DataBricks创建的,目的是展示如何使用高质量数据集在较小的模型中复制InstructGPT论文中描述的ChatGPT的指令跟随能力。
指令跟随模型通过在初始训练后进一步训练LLMs创建,初始训练专注于根据输入文本的上下文窗口预测下一个令牌。这个下一个令牌预测器生成的文本输出并不适合复杂的任务,如头脑风暴、内容总结或问答,也没有商业使用所需的有害内容和安全过滤器。
因此,这些第一阶段的模型通过人类反馈强化学习(RLHF)进一步精炼,在这种方法中,复杂任务的输出由人类评估员打分,并使用这些反馈来微调原始模型的参数。在Dolly模型的第一个版本中,DataBricks团队展示了使用一小组指令跟随提示(类似于OpenAI用于ChatGPT的并由OpenAI开源的提示)可以在比ChatGPT本身参数少得多的模型中创建相同的复杂行为。Dolly这个名字来自1996年在苏格兰克隆的羊Dolly。
尽管这种通过高质量数据集微调将最先进的模型"克隆"到较小模型中的演示在技术上令人印象深刻,但由于OpenAI的指令数据集的许可限制,商业应用受到限制。具体来说,DataBricks团队指出,用于开发ChatGPT指令跟随能力的数据集具有限制性许可证,禁止用于开发可能与OpenAI系统竞争的模型。
为了解决这一限制,DataBricks创建了自己的高质量指令跟随数据集,通过向5000名员工内部征集提示,生成了一个高质量的15000个提示的数据集,用于开发基于Pythia系列模型的Dolly 2.0。Pythia系列模型是GPT-3的变体,采用不同数量的参数和方法进行训练。最终生成的12亿参数模型Dolly 2.0可以用于与ChatGPT、LLaMA和Mixtral相同的许多应用。然而,正如我们将看到的,它在某些任务上有局限性,如编程。我们可以使用与上面类似的pipeline命令加载Dolly 2.0模型:
ini
from transformers import pipeline
import torch
model = "databricks/dolly-v2-12b"
pipeline = pipeline(
"text-generation",
model=model,
torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto"
)
然而,如果我们尝试在HumanEval基准问题上执行该模型,我们会发现它与LLaMA和Mixtral相比表现不一致。
Falcon
在LLM训练的一个关键设计决策是,公开可用的数据是否足以训练出一个强大的模型。前面的Dolly 2.0例子展示了如何使用相对较小的15K提示高质量数据集,微调一个12B参数的模型,以近似175B参数的ChatGPT的性能。然而,也有证据表明,仅使用网络数据,在经过足够的归一化和过滤后,且无需人工策划,也能产生高质量的模型。Falcon系列模型(开源)就是这个理念的一个例证。Falcon模型大量使用了RefinedWeb数据集,这个数据集是经过过滤、去重和归一化的公开可用的网络数据,并且还包括一些精心策划的附加数据。
我们可以使用以下命令加载Falcon-7B模型:
ini
import transformers
import torch
model = "tiiuae/falcon-7b"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map="auto",
)
Grok-1
我们将在本节讨论的最后一个开源模型是Grok-1,它由Xai公司于2024年初发布。像Mixtral一样,Grok-1使用专家混合(MoE)架构,并不是为特定产品领域而构建的。它的灵感来自科幻经典《银河系漫游指南》,旨在相较于其他模型具有幽默的个性。
与本章中的其他模型不同,我们不能直接在管道模块中加载Grok。相反,我们可以使用以下代码加载权重并执行模型:
ini
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
torch.set_default_dtype(torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("hpcai-tech/grok-1", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
"hpcai-tech/grok-1",
trust_remote_code=True,
device_map="auto",
torch_dtype=torch.bfloat16,
)
model.eval()
text = "Replace this with your text"
input_ids = tokenizer(text, return_tensors="pt").input_ids
input_ids = input_ids.cuda()
attention_mask = torch.ones_like(input_ids)
generate_kwargs = {} # Add any additional args if you want
inputs = {
"input_ids": input_ids,
"attention_mask": attention_mask,
**generate_kwargs,
}
outputs = model.generate(**inputs)
print(outputs)
总结
在本章中,我们探讨了多种可公开使用的LLM:
- LLaMA
- Mixtral
- Dolly
- Falcon
- Grok
与封闭源代码模型不同,这些开源模型暴露了架构和模型参数。这为灵活的微调打开了大门,我们可以通过定制不同的网络层,使用量化或蒸馏等技术来压缩模型(如我们将在第10章讨论的那样),或者在输出上实现自定义转换。我们还可以通过直接访问权重,更透明地管理版本更新,而服务型模型的更新可能更难以追踪。
我们已经看到,如何使用这些开源模型执行编码任务、回答常识问题和解决推理问题。通过Hugging Face的管道API,我们还看到如何检查这些模型的结构,并在模型间创建可重用的代码示例。
参考文献
- Achiam, Josh, et al. 2023. "GPT-4 Technical Report." arXiv. arxiv.org/abs/2303.08....
- Roziere, Baptiste, et al. 2023. "Code Llama: Open Foundation Models for Code." arXiv. arxiv.org/abs/2308.12....
- Touvron, Hugo, et al. 2023. "LLaMA: Open and Efficient Foundation Language Models." arXiv. arxiv.org/abs/2302.13....
- Chowdhery, Aakanksha, et al. 2023. "PaLM: Scaling Language Modeling with Pathways." Journal of Machine Learning Research 24 (240): 1--113.
- Zhang, Biao, and Rico Sennrich. 2019. "Root Mean Square Layer Normalization." Advances in Neural Information Processing Systems 32.
- Su, Jianlin, Yu Lu, Shengfeng Pan, Ahmed Murtadha, Bo Wen, and Yunfeng Liu. 2021. "RoFormer: Enhanced Transformer with Rotary Position Embedding." arXiv. arxiv.org/abs/2104.09....
- Ainslie, Joshua, et al. 2023. "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints." arXiv. arxiv.org/abs/2305.13....
- The LLaMA3 Herd of Models: scontent-iad3-1.xx.fbcdn.net/v/t39.2365-....
- Chen, Mark, et al. 2021. "Evaluating Large Language Models Trained on Code." arXiv. arxiv.org/abs/2107.03....
- Jiang, Albert Q., et al. 2024. "Mixtral of Experts." arXiv. arxiv.org/abs/2401.04....
- Dao, Tri, et al. 2022. "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness." arXiv. arxiv.org/abs/2205.14....
- Ouyang, Long, et al. 2022. "Training Language Models to Follow Instructions with Human Feedback." Advances in Neural Information Processing Systems 35: 27730--27744.
- Dolly the sheep, the first mammal cloned from an adult somatic cell: en.wikipedia.org/wiki/Dolly_....
- Databricks. 2025. "Hello Dolly: Democratizing the Magic of ChatGPT with Open Models." www.databricks.com/blog/2023/0....
- Databricks. 2025. "Free Dolly: Introducing the World's First Truly Open Instruction-Tuned LLM." www.databricks.com/blog/2023/0....
- Biderman, Stella, et al. 2023. "Pythia: A Suite for Analyzing Large Language Models across Training and Scaling." International Conference on Machine Learning. PMLR.
- Almazrouei, Ebtesam, et al. 2023. "The Falcon Series of Open Language Models." arXiv. arxiv.org/abs/2311.16....
- Penedo, Guilherme, et al. 2023. "The RefinedWeb Dataset for Falcon LLM: Outperforming Curated Corpora with Web Data, and Web Data Only." arXiv. arxiv.org/abs/2306.01....
- Hendrycks, Dan, et al. 2020. "Measuring Massive Multitask Language Understanding." arXiv. arxiv.org/abs/2009.03....
- Zellers, Rowan, et al. 2019. "HellaSwag: Can a Machine Really Finish Your Sentence?" arXiv. arxiv.org/abs/1905.07....
- Open Release of Grok-: x.ai/blog/grok-o...
- Announcing Grok! on X: x.com/xai/status/...
- Repository containing the model and weights of the torch version of Grok-1 open-weights model: huggingface.co/hpcai-tech/...
- Mistral AI team introduces Codestral: mistral.ai/en/news/cod...