如何使用Python在AWS和Huggingface上部署Llama2

如何使用Python在AWS和Huggingface上部署Llama2

Meta将LLama2作为开源模型发布,这意味着他们向公众提供了培训代码和GitHub项目。更重要的是,经过训练的模型也是免费发布的,允许每个人下载和使用他们认为合适的模型,包括托管和部署。然而,部署该模型需要多个gpu的可用性,这可能非常昂贵。

一些云提供商已经将LLama2模型集成到他们的部署选项中。例如,亚马逊科技通过SageMaker提供部署,HuggingFace也支持它,我们将在本节中讨论这两者。

AWS Sagemaker

Sagemaker已经将Llama2作为一个模型集成到工作室环境中。只需单击几下,就可以将模型部署为端点。

1. 进入Sagemaker中的“studio”部分

如何使用Python在AWS和Huggingface上部署Llama2

2. 在“开始”框中,选择一个域,然后点击“Open Studio”

如何使用Python在AWS和Huggingface上部署Llama2

3. 选择Llama2实例

a.在工作室环境中,在侧边栏的“JumpStart”部分下选择“Model, notebooks solutions”部分

b.选择所需的Llama2模型。lama-2-7b-chat模型是推荐的起始选择。

如何使用Python在AWS和Huggingface上部署Llama2

4. 单击“部署”选项

如何使用Python在AWS和Huggingface上部署Llama2

5. 一旦部署了模型,就可以转到侧栏“部署”部分下的“端点”部分。你应该看到部署的端点处于“In service”状态

如何使用Python在AWS和Huggingface上部署Llama2

请注意,这些模型是与GPU实例一起部署的,因此根据你的AWS计划,实例可能可用,也可能不可用。一般来说,部署7b参数模型没有问题,它只需要1个gpu实例,但拥有13b或70b参数的更大的模型可能需要更大的实例。

在SageMaker外部,你可以使用boto3 invoke_endpoint方法调用端点。

  • 这个Python示例假设你已经通过AWS CLI登录在AWS中进行了身份验证。你必须使用端点名称来调用它

代码:

import boto3
import json

endpoint = ‘meta-textgeneration-llama-2-7b-f-2023-08-07-19-38-37-147’

runtime = boto3.Session().client(‘sagemaker-runtime’)

payload = {
“inputs”: [[
{
“role”: “system”,
“content”: “You are an expert python developer”,
},
{“role”: “user”, “content”: “Give me the code to create a GET endpoint with flask, that receives a parameter named number”},
]],
“parameters”: {“max_new_tokens”: 512, “top_p”: 0.9, “temperature”: 0.9}
}

request = json.dumps(payload)
response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType=’application/json’, Body=request, CustomAttributes=’accept_eula=true’)

result = json.loads(response[‘Body’].read().decode())

def print_dialog(payload, response):
dialog = payload[“inputs”][0]
for msg in dialog:
print(f”{msg[‘role’].capitalize()}: {msg[‘content’]}\n”)
print(f”> {response[0][‘generation’][‘role’].capitalize()}: {response[0][‘generation’][‘content’]}”)
print(“\n==================================\n”)

print_dialog(payload, result)

HuggingFace

Llama2也可以在HuggingFace中使用,并且可以部署一个为其服务的推理端点。要做到这一点,首先你必须请求对模型的元访问权限,通常他们会持续一天的访问权限。然后,你或你的组织必须为“拥抱脸”帐户添加有效的付款方式。然后:

  • 转到模型卡并选择“部署推理端点”
  • 等5分钟左右
  • 在提供的url上调用端点:

代码:

curl URL \
-X POST \
-d ‘{“inputs”: “INPUT “}’ \
-H “Authorization: Bearer XXXXXXX” \
-H “Content-Type: application/json”

成本

Llama2允许我们免费使用该模型;然而,用于部署和运行模型的基础设施不是。在AWS或其他平台的无服务器推理上部署Llama以按需使用它可能是一种具有成本效益的替代方案,可能比使用GPT API更实惠。不幸的是,GPU无服务器推理是不可用的,并且CPU推理的容器可以有高达6GB的RAM。相比之下,LLAMA2在8位量化时至少需要10GB,而在4位量化时则需要6.2GB。

如果没有无服务器推理,Llama2只能在生产环境中运行的实例上使用,该实例可以是HuggingFace或AWS端点、EC2实例或Azure实例。这些实例的平均成本约为每小时1.5美元。

考虑到所有这些信息,GPT显然仍然是大规模生产任务的更具成本效益的选择。只需调用API,它就能以最小的工作量提供快速响应,而且它的定价相当有竞争力。

虽然可以在CPU上使用有限资源的情况下使用量化的Llama2,但在大多数情况下,响应时间可能相当高。虽然这对于测试来说是可以接受的,但它可能无法满足生产应用程序的实时响应需求。

结论

可以通过各种选项部署用于文本生成的LLama2模型,包括AWS SageMaker和HuggingFace。这些平台提供了方便的方法来部署和利用模型作为端点。然而,重要的是要注意,部署模型可能需要多个gpu的可用性,这可能是昂贵的。

在考虑所涉及的成本时,必须考虑运行和部署模型的基础设施费用。虽然LLama2本身是免费的,但支持它所需的基础设施可能会产生成本,特别是在使用GPU实例时。

总之,通过AWS SageMaker和HuggingFace等平台为文本生成部署LLama2提供了灵活性和可访问性。然而,仔细考虑相关成本并将其与GPT-3 API的成本进行比较是至关重要的,由于该工具的健壮性和其API的可负担性,GPT-3 API可能仍然很方便。

原创文章,作者:华再,如若转载,请注明出处:https://www.zhiwaimao.com/deploy-llama2-on-aws-and-huggingface-with-python/

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注