在2019年的亚马逊云科技re:Invent上,亚马逊云科技发布了Inferentia芯片和Inf1实例这两个基础设施。Inferentia是一种高性能机器学习推理芯片,由亚马逊云科技定制设计,其目的是提供具有成本效益的大规模低延迟预测。时隔四年,2023年4月亚马逊云科技发布了Inferentia2芯片和Inf2实例,旨在为大型模型推理提供技术保障。
Inf2实例的应用场景
使用亚马逊云科技Inf2实例运行流行的应用程序,例如文本摘要、代码生成、视频和图像生成、语音识别、个性化等。Inf2实例是Amazon EC2中的第一个推理优化实例,引入了由NeuronLink(一种高速、非阻塞互连)支持的横向扩展分布式推理。现在可以在Inf2实例上跨多个加速器高效部署具有数千亿个参数的模型。Inf2实例的吞吐量比其他类似的Amazon EC2实例高出三倍,延迟低八倍,性价比高出40%。为了实现可持续发展目标,与其他类似的Amazon EC2实例相比,Inf2实例的每瓦性能提高了50%。
使用Inf2实例运行GPT-J-6B模型
GPT-J-6B是由一组名为EleutherAI的研究人员创建的开源自回归语言模型。它是OpenAI的GPT-3最先进的替代方案之一,在聊天、摘要和问答等广泛的自然语言任务中表现良好。
该模型由28层组成,模型维度为4096,前馈维度为16384。模型维度分为16个头,每个头的维度为256。旋转位置嵌入(RoPE)应用于每个头的64个维度。使用与GPT-2/GPT-3相同的一组BPE,使用50257的标记化词汇训练模型。
Hyperparameter | Value |
n_parameters | 6,053,381,344 |
n_layers | 28* |
d_model | 4,096 |
d_ff | 16,384 |
n_heads | 16 |
d_head | 256 |
n_ctx | 2,048 |
n_vocab | 50,257 (same tokenizer as GPT-2/3) |
GPT-J-6B基础设施有60亿个参数,非常适合大语言模型(LLM)学习的入门版本,进行文本生成测试。在部署过程中,用到了Neuron SDK和transformers-neuronx。transformers-neuronx是由AWS Neuron团队构建的开源库,可帮助使用AWS Neuron SDK运行转换器解码器推理工作流程。目前,它提供了GPT2、GPT-J和OPT模型类型的演示脚本,它们的前向函数在编译过程中重新实现,以进行代码分析和优化,并且可以基于同一个库实现其他模型架构。AWS Neuron优化的转换器解码器类已使用称为PyHLO的语法在XLA HLO(高级操作)中重新实现。该库还实现了张量并行(Tensor Parallelism),以跨多个NeuronCore对模型权重进行分片。