为了账号安全,请及时绑定邮箱和手机立即绑定

我用Python轻松驾驭Llama 3.1模型!

如果Meta的Llama 3.1是个朋友,它可能是个超级聪明但总会把咖啡洒在衬衫上的朋友。毕竟,即使是天才,也难免会有小缺点!不过话说回来,Llama 3.1确实是个强大的工具,既高端又易上手,特别是在与AWS Bedrock一起使用时。

快来加入我们,加入Woyora的Llama 3.1特快专线之旅,我们将技术化为魔法,我们不需要真正的羊驼。准备好开始创造了吗?点击这里,开始你的冒险之旅!

对于视觉型学习者,点击这里观看我们的视频教学!

为什么Llama 3.1成了大家的新宠

Meta在Llama 3.1上的表现真的非常出色。这款最新的Llama模型不仅开放了源代码,还带来了惊人的改进。尤其是meta.llama3-1-405b-instruct-v1:0模型,拥有4050亿个参数,性能卓越,语言理解能力也大大提升,这绝对是一次质的飞跃!

无论你是在处理复杂的对话式人工智能,还是深入细致的数据分析,这款模型都旨在让生活更轻松,和让AI更智能。

如何通过 AWS Bedrock 一步一步访问 Llama 3.1

现在,让我们开始了解如何设置并开始使用AWS Bedrock上的Llama 3.1。即使你不是编程高手也没关系,我会一步步详细地教你,不用担心。

  1. *设置 AWS Bedrock 服务\
  • 首先,如果你还没有 AWS 账户,现在去注册一个。访问 AWS 管理控制台并创建你的账户。
  • 准备好账户后,进入 AWS Bedrock 服务页面。

  • 点击“开始使用”后进入基岩版页面。

  • 进入基岩页面后,使用左侧菜单,向下滚动直到找到“模型访问权限”

  • 点击修改模型访问

  • 你会被带到模型访问页面,这是一个列表,向下滚动直到找到 Meta 下的 Llama 3.1 模型,然后勾选它们

  • 在选中了 Llama 3.1 模型的复选框后,一直往下拉到页面最底部并点击“下一步”按钮

会出现一个页面,上面会显示条款。然后点击提交按钮。

  • 等几分钟,权限就会自动授予。别忘了刷新页面检查一下!

2. 搭建一个Bedrock客户端

现在我们有了Llama 3.1模型的使用权,可以开始了。我们可以调用API。下面我来分解一下你需要的代码,如果你不需要解释,可以直接跳到最后的代码部分。

  • 进口:
    import boto3  # 导入AWS SDK for Python
    from botocore.exceptions import ClientError  # 导入客户端错误异常
    import json

**boto3**:AWS 的 Python 工具包,用于与 AWS 服务交互,例如这里的 Bedrock Runtime。

**ClientError**:处理AWS客户端错误的异常。

**json**:用于将Python对象转换为JSON格式,并从JSON格式转换回Python对象,常用于创建请求和处理响应。

  • 初始化客户端:
client = boto3.client("bedrock-runtime", region_name="us-west-2", aws_access_key_id="YOUR_ACCESS_KEY", aws_secret_access_key="YOUR_SECRET_ACCESS_KEY")

使用 **boto3** 库创建一个 AWS Bedrock Runtime 客户端。该客户端连接到 us-west-2 区域,并使用特定的 AWS 凭据(这些凭据需要替换为有效的凭据)。

**bedrock-runtime**:一个用于在AWS上运行如Llama等语言模型的服务。

  • 型号信息:
模型ID为:meta.llama3-1-8b-instruct-v1:0

指定 Meta Llama 3.1 模型(8亿参数)的ID,该模型用于根据提示生成响应。

  • 提示:

提示:我去市场买了10个苹果。我给了朋友2个苹果,还给了帮手2个。之后我又买了5个苹果,吃掉了1个。我还剩下多少个苹果?让我们一步一步地想。

发送给Llama 3.1模型(或Llama 3.1)的问题或提示。在这里你可以提出你的问题。

Llama 3的提示格式

<|begin_of_text|>
<|start_header_id|>用户:<|end_header_id|>
{prompt}
<|eot_id|>
<|start_header_id|>助手:<|end_header_id|>

这种提示以Llama模型使用的特定格式嵌入。

**< |对话开始标志|>**: 标记对话开始。

**< |start_header_id|>用户< |end_header_id|>**:表示以下消息是由用户发送的。

提示/问题的实际内容将按照此格式插入。

**< |start_header_id|>助手<|end_header_id|>**: 表示这里将是助手回应的开始。

  • 创建请求:
将native_request转换为JSON格式的字符串:
native_request = {  
    "prompt": formatted_prompt,  
    "max_gen_len": 512,  
    "temperature": 0.5  
}  
request = json.dumps(native_request)

构建一个用于发送到模型的JSON格式请求:

这里包含了一个格式化的提示(例如:prompt)。

**max_gen_len**: 设置最大回复长度。

**温度设置**:控制回复的创意性(0.5 是一个比较平衡的值)。

  • 调用这个模型:

(保留了更口语化的表达,并考虑了停顿的自然性,但去掉了逗号,以更符合口语习惯。)

response = 客户端调用模型(
    modelId=model_id,  # 模型ID
    body=request,      # 请求体
    contentType="application/json"  # 内容类型
)

通过 AWS Bedrock Runtime 发送 JSON 请求到模型。

**invoke_model**:AWS Bedrock 的方法,用于调用指定提示和参数的语言模型。

  • 如何处理响应:

  • 处理响应的方法:

选择一种更符合上下文的表达方式。

model_response = json.loads(response["body"].read())  
response_text = model_response["generation"]  
print(response_text)

这段代码从响应体中读取JSON数据,提取生成的文本,并将其打印出来。

模型的回复被处理了

响应正文被读取并解析为 JSON。

**响应文本**: 获取模型生成的回复,即对提示的响应。

最后,它输出回复。

最后的剧本:

    # 使用Converse API(对话API)向Llama 2 Chat 70B发送一条文本消息。  
    import boto3  
    from botocore.exceptions import ClientError  
    import json  

    # 在您希望使用的AWS区域中创建Bedrock运行时客户端。  
    client = boto3.client("bedrock-runtime", region_name="us-west-2", aws_access_key_id="YOUR_ACCESS_KEY", aws_secret_access_key="YOUR_SECRET_ACCESS_KEY")  

    # 设置模型ID,例如Meta Llama 3.1。  
    model_id = "meta.llama3-1-8b-instruct-v1:0"  

    # 用用户的消息开始对话。  
    prompt = "我去市场买了10个苹果。我给了朋友2个苹果,又给了助手2个。然后我买了5个更多的苹果,并吃了一个。我最后剩下多少个苹果?让我们一步一步来分析。"  

    # 将提示嵌入到Llama 3的指令格式中。  
    formatted_prompt = f"""  
    <|begin_of_text|>  
    <|start_header_id|>user<|end_header_id|>  
    {prompt}  
    <|eot_id|>  
    <|start_header_id|>助手<|end_header_id|>  
    """  

    native_request = {  
        "prompt": formatted_prompt,  
        "max_gen_len": 512,  
        "temperature": 0.5  
    }  

    # 将原生请求转换为JSON格式。  
    request = json.dumps(native_request)  

    try:  
        # 使用请求调用模型。  
        response = client.invoke_model(  
            modelId=model_id,  
            body=request,  
            contentType="application/json"  
        )  

        # 解码响应正文。  
        model_response = json.loads(response["body"].read())  
        response_text = model_response["generation"]  
        print(response_text)  

    except (ClientError, Exception) as e:  
        print(f"ERROR: 无法调用'{model_id}'。原因:{e}")

结果如下:

收尾了

就这样!你刚刚已经学会了如何使用 AWS Bedrock 访问并和 Meta 的 Llama 3.1 进行互动。我们一步一步地教你如何设置环境,连接到 AWS Bedrock,并与这个最先进语言模型之一进行了一点对话。现在不妨试一试,看看 Llama 3.1 能为你做些什么吧?

需要关于AI的建议吗?来我们的网站www.woyera.com,我们会帮您和您的业务解决所有问题。

可以在这里看看我们的视频哦。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消