试想一下:你开了一家餐厅,但不需要自己买菜、洗菜、切菜、炒菜。你只需要告诉供应商“我要一份宫保鸡丁”,然后一份热气腾腾的菜就端上桌了。你甚至可以在不同供应商之间自由切换——今天想吃川菜,明天换鲁菜,后天试试西餐。AWS Bedrock 就是这样一个“云上 AI 自助餐厅”:它把各种顶尖大模型(Claude、Llama、Titan)统一放在一个“取餐窗口”后面,你不需要购买昂贵的 GPU 服务器,不需要自己部署模型,只需要调用一个 API,就能让大模型为你工作。更妙的是,你还可以给这个“餐厅”加上“专属菜单”(知识库集成),甚至训练“服务员”(Agent)帮你完成复杂任务。
对于 AI 从业者来说,Bedrock 是连接大模型能力与业务应用的“最后一公里”基础设施。掌握它,你就能在 AWS 生态中快速、安全、合规地搭建生产级生成式 AI 应用,而无须从零训练模型。
可视化演示
展示AWS Bedrock服务架构、基础模型对比与知识库RAG流程,交互切换模式查看服务全貌。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Bedrock服务架构 客户端经API调用基础模型,统一接口管理 支持多模型路由,按需选择最优FM Latency = T_infer + T_network 调节Token数查看延迟与成本变化
认识 Bedrock
假设你是一家创业公司的技术负责人,老板要求“三天内给产品加上 AI 智能问答功能”。你面临两个选择:第一,买几块昂贵的 GPU 服务器,下载开源模型自己部署——光配置环境就得花两个星期;第二,直接调用某家大模型厂商的 API——但这样就被一家厂商“绑定”了,以后价格涨了、模型变差了,你也只能忍着。AWS Bedrock 给出了第三个选择:它像是一个“云上大模型自助餐厅”,把 Anthropic 的 Claude、Meta 的 Llama、亚马逊自家的 Titan 等主流大模型都“请”进了餐厅后厨。你不需要关心每个模型是怎么做出来的,只需要在 Bedrock 的“菜单”上挑选想要的模型,然后通过一个统一的“取餐窗口”(API)下单即可。
Bedrock 的核心优势在于“统一”和“灵活”。所谓“统一”,是指你只需要学习一套 API 的调用方式,就能访问所有主流大模型——就像学会了用筷子,无论中餐还是西餐都能吃。所谓“灵活”,是指你可以随时切换底层模型,今天觉得 Claude 回答质量高就用 Claude,明天发现 Llama 价格更便宜就换 Llama,业务代码完全不用改动。AWS 负责底层服务器的运维、扩容和故障处理,你就像餐厅的顾客,只负责“点菜”,完全不操心“后厨”是怎么运转的。
从架构上看,Bedrock 位于应用和大模型之间,扮演“中间层”的角色。当你的应用发出一个请求时,Bedrock 会校验你的 AWS 凭证、选择你指定的模型、将请求转发给对应的模型提供商,再把模型返回的结果传回给你的应用。整个过程对用户完全透明,你感知不到任何中间环节。
要理解 Bedrock 的定位,可以把它想象成“AI 能力的中介”。你不需要成为“大厨”(不需要会训练模型),只需要学会“点菜”(调用 API),就能享受到米其林级别的“美食”(大模型的智能能力)。对于大多数企业和开发者来说,这种“租用智能”的模式远比“自建厨房”(自己训练模型)要经济得多。
- 多个大模型这是 Bedrock 的“食材库”。Claude、Llama、Titan 等模型各有特色,就像不同类型的食材,有的擅长文字创作,有的擅长代码生成。
- 统一 API 接口这是一份固定的“点餐方式”。无论你点哪家“后厨”的菜,都通过相同的接口完成,应用代码不必为每个模型单独适配。
- 数据加密这是“外卖的保温箱”。你的数据在传输过程中经过 TLS 加密,存储时经过 KMS 加密,防止“中途被偷看”。
- IAM 权限控制这是“餐厅的门禁系统”。只有持有有效凭证的“顾客”(IAM 用户或角色)才能进入,且每个顾客的权限可以被精确控制到“只能点哪几道菜”。
模型访问方式
当你坐在 Bedrock 这家“自助餐厅”里,面前摆着一份“菜单”,上面列着各种“招牌菜”:Claude——来自 Anthropic 的“法餐主厨”,以出色的对话和写作能力著称;Llama——来自 Meta 的“家常菜大厨”,以开放和高效闻名;Titan——AWS 自家的“融合菜师傅”,深度整合 AWS 生态。每一道“菜”(模型)都有自己擅长的“口味”(能力特点),你需要根据具体的业务场景来选择合适的模型。
在技术层面,访问这些模型的核心是理解 Bedrock 的 API 形态。AWS 提供了两种访问方式:Bedrock API(管理模型列表、获取模型信息)和 Bedrock Runtime API(实际调用模型进行推理)。你可以用 AWS CLI、SDK(boto3)或直接通过 HTTP 请求来调用。以 Python 为例,使用 boto3 库可以这样调用 Claude 模型:
选择模型时,需要权衡三个维度:能力(模型回答的质量)、成本(每次调用的价格)、延迟(响应速度)。Claude 能力较强但成本较高,Llama 开放且性价比高,Titan 在 AWS 生态内集成最顺畅。这个选择过程就像在餐厅点菜——你可以根据“今天的预算”和“想吃什么口味”来决定选哪个“主厨”。
parameters(如温度 temperature)会影响模型的“创造力”。- 选择模型 ID每道“菜”都有编号。模型 ID 是 Bedrock 中每个模型的唯一标识符,例如
anthropic.claude-v3、meta.llama3-70b。 - 构造请求体这是“点菜时注明的口味偏好”。请求体包含
prompt(给模型的指令)和max_tokens(回答的最大长度)、temperature(控制随机性)等参数。 - 指定数据类型不同“餐厅”传递菜品的方式不同。Claude 使用 JSON 格式接收请求,一些其他模型可能使用不同的格式,因此需要在请求头中指定
content-type。 - 解析响应体这道菜端上来后,你需要“拆开包装”。模型的响应是一个 JSON 结构,需要从中提取出
completion字段才能获得模型的文本输出。
知识库集成
假设你开了一家高级定制西餐厅,顾客经常问:“你们的牛排用的哪种牛?”“红酒来自哪个酒庄?”——这些问题在你老板脑中都有答案,但“厨师”(大模型)并不知道,因为它是外部请来的“临时工”。怎么办?你可以在厨房旁边建一个“专属食材库”(知识库),把餐厅的食材来源、酒单信息都存进去。当顾客提问时,服务员先查一下这个资料库,再带着相关资料去问厨师,厨师就能给出准确的回答。这就是知识库集成的核心思想:检索增强生成(RAG,Retrieval-Augmented Generation)。
在 Bedrock 中,知识库集成由 Amazon Bedrock Knowledge Bases 服务实现。它的工作流程可以分为三步:数据准备(将你的文档上传到 Amazon S3)、向量化(用嵌入模型将文档转换为向量存入向量数据库)、检索增强(用户提问时先检索相关文档片段,再将片段和问题一起交给大模型生成答案)。
知识库集成的意义在于:它让大模型从“什么都懂一点的通才”变成了“精通你业务的专家”。没有知识库,你问模型“我们的退款政策是什么”,它可能编造一个听起来合理但完全错误的回答。有了知识库,它会先从你的政策文档中检索相关段落,再基于这些真实信息进行回答。对于企业来说,这意味着 AI 应用可以做到“言之有据”。
- 文档切分这是一个“把大块食材切成适合烹饪的小块”的过程。原始文档可能需要按章节、段落或固定长度切分成较小的 chunk(块),便于后续处理。
- 向量化这是“给每小块食材贴上营养成分标签”的过程。用嵌入模型(如 Titan Embeddings)把每个 chunk 转换为一个高维向量,语义相似的文本在向量空间中距离更近。
- 向量存储这是“把贴好标签的食材放进冷藏库”的过程。向量数据库(如 Amazon OpenSearch Serverless)负责存储和索引这些向量,支持高效的相似性检索。
- 相关性检索这是“顾客提问后,服务员去食材库找最相关的几样食材”的过程。将用户问题也转换为向量,然后在数据库中查找最相似的 K 个向量对应的文档片段。
Agent 构建
你是一家高端会所的经理,会所有一个超级智能的“大厨”(大模型),他什么菜都会做,但他有个缺点——他只会待在厨房里,你让他“去冰箱拿一块牛排”,他做不到,因为他的手不会动。这时候,你需要一个“服务员”(Agent)来协助:服务员负责理解你的指令、去冰箱取食材、把食材递给大厨、再把做好的菜端给你。在 Bedrock 中,Agent(代理)就是这样一个“能够调用工具的智能服务员”。
Amazon Bedrock Agents 可以看作是大模型的“增强版”。它不仅仅是“回答问题”,而是能够自主规划、调用工具、执行动作。比如你让它“帮我把上周的销售数据整理成图表发到 Slack 上”,它会分解任务:先调用数据库查询 API 获取数据,再用代码解释器生成图表,最后调用 Slack API 发送消息。整个过程不需要你干预,Agent 自主完成。
Agent 是 Bedrock 中最具想象力的功能。它让 AI 从“回答问题”迈向了“完成任务”。你可以构建一个内部客服 Agent,它不仅能回答产品问题,还能直接查询订单系统、发起退货流程;你也可以构建一个数据分析 Agent,它能从数据库中提取数据、编写 Python 代码进行分析、最后生成一份完整的报告。在这个“自助餐厅”的比喻里,Agent 就是那个能帮你取菜、倒水、结账的“全能服务员”。
- LLM 大脑这是“服务员的判断力”。Agent 的决策全部由大模型驱动,大模型理解用户意图并规划下一步动作。
- Planning 能力这是“服务员的实操思路”。复杂任务被分解为一系列子步骤,例如“查数据→生成图表→发消息”。
- Tools 调用这是“服务员的双手”。Agent 可以调用预定义的工具(API),实现与外部系统的交互。每个工具都有名称、描述和参数格式。
- Memory 记忆这是“服务员的备忘录”。Agent 需要在多轮交互中记住上下文,包括用户的偏好和之前的对话历史。
安全与合规
餐厅里人来人往,如果你不设置“门禁”、不给顾客“分桌”、不安装“监控”,很容易出乱子。Bedrock 的安全与合规体系,正是为“AI 自助餐厅”装上的三道“安全防线”:数据加密(保护数据在“运输”和“储存”过程中的安全)、权限管理(精确控制谁能“点哪道菜”)、审计监控(记录每个顾客的“点餐记录”)。
数据加密方面,Bedrock 支持多种加密机制。数据在传输过程中使用 TLS 协议加密,在存储时可以使用 AWS KMS 托管的密钥进行加密。你还可以选择使用自己的加密密钥(Customer Managed Key),实现对数据的完全控制。这就像外卖的“密封保温箱”——即使被人截获了,也打不开箱子、看不到里面的内容。
权限管理方面,Bedrock 深度集成 AWS IAM(身份与访问管理)服务。你可以创建精细的权限策略,控制用户、角色对模型和知识库的访问权限。例如,可以设置某个 IAM 角色只能调用 Claude 模型、不能调用 Llama 模型;某个用户只能访问某个特定的知识库。这就像餐厅的门禁系统——你的员工卡只能刷开你权限范围内的门。
内容安全也是 Bedrock 安全体系的重要一环。通过 Amazon Bedrock Guardrails,你可以配置内容过滤规则,阻止模型生成仇恨言论、暴力内容、敏感信息等不当输出。这就像餐厅对菜品进行“品控检查”——不合格的菜绝对不能端上桌。在生产环境中,“安全合规”不是可选项,而是必备的基础设施。
- 身份认证这是“出示员工证”。AWS 通过 IAM 用户、角色或联合身份验证来确认调用者的身份。程序的
aws_access_key_id和aws_secret_access_key就像是你的“身份证”。 - 权限控制这是“门禁系统决定你能进哪个房间”。IAM Policy 定义了允许或拒绝的具体操作,例如
bedrock:InvokeModel权限允许调用模型。 - 数据加密这是“给食材加密封装”。TLS 加密传输通道中的内容,KMS 加密存储在 AWS 中的敏感数据。密钥管理服务确保护密过程的安全。
- 审计跟踪这是“安保室的监控录像”。CloudTrail 记录所有 API 调用日志,包括谁、在什么时间、调用了哪个模型、传入了什么参数。
应用实战
掌握了前面所有概念后,现在我们来“实战演练”一次完整的点餐流程:从环境准备到成功调用 Claude 模型。这个流程就像第一次去“自助餐厅”用餐:先办一张“会员卡”(创建 AWS 账号),再在“菜单”上确认你要的菜(开通 Bedrock 模型访问权限),最后向“服务员”下单(调用 API)。
环境准备的第一步是确认你的 AWS 账号有 Bedrock 的访问权限。你需要确保创建了具有 bedrock:InvokeModel 权限的 IAM 用户,并配置了 aws configure。然后确认你要用的模型已经开通——在 Bedrock 控制台的"Model access"页面中,勾选你需要的模型并提交申请,通常在几分钟内就能通过。
接下来,我们使用 boto3 这个 Python SDK 来实际调用一次 Claude 模型。在代码中,bedrock-runtime 客户端是我们的“点餐窗口”,invoke_model 方法就是“下单”动作:
完成最基础的 API 调用后,你可以进一步扩展:将多个调用封装成一个“问答助手”函数,传入用户问题返回模型回答;将部署好的函数接入 API Gateway,对外提供 HTTP 接口;再加上知识库集成的能力,让问答助手能够回答“只有你的资料库才知道”的问题。从“会用 Bedrock”到“用好 Bedrock”,关键是不断把基础能力组合成完整的业务解决方案。
- 导入 SDK就像“走进餐厅”的第一步——拿好餐具、准备好“开吃”。
boto3是 AWS 的官方 Python SDK,它封装了所有 AWS 服务的 API。 - 创建客户端这是“走到点餐窗口”。
bedrock_runtime = boto3.client('bedrock-runtime')创建一个与 Bedrock 服务通信的客户端对象,后续所有请求都通过它发出。 - 构造请求体这是“向服务员描述你要的菜”。请求体是一个 JSON 字符串,包含模型的参数设置。对于 Claude 模型,
anthropic_version字段是必需的版本号,max_tokens表示最大输出长度。 - 调用模型这是“服务员下单到后厨”。调用
invoke_model方法后,Bedrock 会将请求路由到指定的模型,并返回响应。 - 解析结果这是“服务员把菜端到你面前”。模型的响应是一个 JSON 结构,需要从中提取
completion字段才能拿到最终的文本输出。
AI 应用场景
企业内部智能客服
阶段:模型调用 + 知识库集成
解决的问题:企业客服团队面临大量重复性问题(“如何退款”“密码怎么重置”),传统方案需要人工一一回复,成本高且响应慢。通过 Bedrock 知识库集成,可以将企业 FAQ、政策文档上传到 S3,自动构建知识库,并让大模型基于这些资料回答用户问题,实现“7×24 小时在线客服”。
具体案例:某电商平台将 500 份客服文档接入 Bedrock Knowledge Bases,构建了一个基于 Claude 的智能问答机器人。当用户询问“怎么申请退货”时,机器人先从知识库检索退货政策,再生成自然流畅的回答。上线后,客服团队人力需求下降 40%,首次响应时间从平均 10 分钟缩短到 3 秒。
智能文档分析 Agent
阶段:Agent 构建 + 工具调用
解决的问题:企业每天产生大量合同、报表、邮件,人工逐份阅读耗时费力。传统方案依赖关键词匹配,无法理解语义。使用 Bedrock Agent,可以构建自动化的文档分析流程,让 Agent 自动调用文本提取、数据存储和通知发送等工具。
具体案例:某金融公司使用 Bedrock Agent 构建了“合同审查助手”。用户上传合同后,Agent 自动调用 OCR 工具提取文本,调用大模型分析关键条款(如违约金额、合同期限),将结果存入数据库,并通知法务团队。原本需要 3 小时的合同初审流程缩短到 5 分钟。
Python 演示
import boto3import json # 创建 Bedrock Runtime 客户端bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-east-1') def call_claude(prompt, max_tokens=1024, temperature=0.7): """调用 Claude 模型生成回复""" # 构造请求参数 body = json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": max_tokens, "temperature": temperature, "messages": [ { "role": "user", "content": prompt } ] }) # 调用 Bedrock API response = bedrock_runtime.invoke_model( modelId='anthropic.claude-3-sonnet-20240229-v1:0', contentType='application/json', accept='application/json', body=body ) # 解析响应 result = json.loads(response['body'].read()) return result['content'][0]['text'] def call_titan(prompt, max_tokens=512, temperature=0.7): """调用 Titan 模型生成回复""" body = json.dumps({ "inputText": prompt, "textGenerationConfig": { "maxTokenCount": max_tokens, "temperature": temperature, "topP": 1.0 } }) response = bedrock_runtime.invoke_model( modelId='amazon.titan-text-express-v1', contentType='application/json', accept='application/json', body=body ) result = json.loads(response['body'].read()) return result['results'][0]['outputText'] def main(): """主函数:演示调用不同模型""" question = "用一句话解释什么是生成式AI" print("=== Claude 的回答 ===") answer = call_claude(question) print(answer) print("\n=== Titan 的回答 ===") answer = call_titan(question) print(answer) if __name__ == "__main__": main()
boto3 调用 AWS Bedrock 上的 Claude 和 Titan 两种不同模型,演示统一 API 的调用方式。import boto3导入 AWS 官方 Python SDK,它是与 AWS 服务交互的“通行证”。boto3.client('bedrock-runtime')创建 Bedrock Runtime 客户端,它专门负责模型推理调用。body = json.dumps({...})构造请求体,里面包含了模型的所有参数设置。invoke_model(modelId='...', ...)核心 API 调用,指定模型 ID 并传入请求体。response['body'].read()从 HTTP 响应中读取返回的 JSON 数据。result['content'][0]['text']提取 Claude 响应中的文本内容(Claude 的响应格式)。result['results'][0]['outputText']提取 Titan 响应中的文本内容(Titan 的响应格式)。def call_claude(...)定义调用 Claude 的封装函数,方便复用。def call_titan(...)定义调用 Titan 的封装函数,展示“同门 API、不同响应格式”。if __name__ == "__main__":Python 标准入口,确保只有直接运行时才执行主逻辑。
常见误区
误区很多初学者担心,一旦用了 Bedrock 就会被 AWS 绑定,以后想换到其他云平台(如 Azure OpenAI、Google Vertex AI)需要重写所有代码。
正解这种担忧部分合理但被过度放大了。Bedrock 的定价确实是 AWS 生态的一部分,但它的设计初衷恰恰是“避免模型锁定”——通过统一 API 让你可以自由切换不同底层模型。如果将来要迁移到其他平台,核心业务逻辑(prompt 设计、应用代码)可以复用,只需要修改 API 客户端的实现层(约 30% 的代码)。
为何常见:人们容易把“云服务商”和“模型供应商”混为一谈。Bedrock 不是模型本身,而是一个“模型分销平台”,把它类比为“外卖平台”会更准确——你点的是“商家”的菜,只是通过“外卖平台”送的。
误区有初学者认为,把文档接入 Bedrock Knowledge Bases 就相当于对模型做了“微调”或“训练”,模型从此“记住”了这些知识。
正解知识库集成(RAG)并不会改变模型的参数和权重。模型仍然“不知道”你的文档内容,它只是在回答问题时,被额外提供了相关的文档片段作为参考。就像开卷考试——试卷上还是那些题,但你可以翻书找答案。如果要让模型真正“学会”(改变行为),需要使用微调(Fine-tuning)技术,那是另一条完全不同的技术路线。
为何常见:因为 RAG 的效果看起来很像“模型学到了新知识”,用户容易把“推理时检索”和“训练时学习”混为一谈。
误区一些初学者认为,Agent 是万能的,只要给它一个目标,它就能无限自主地完成任何任务,不需要任何人类监督。
正解当前的 Agent 仍然有严格的边界。Agent 的“自主性”建立在预先定义的工具集和明确的指令基础之上。它需要开发者精心设计 Prompt、定义工具清单、配置防护策略。在复杂的真实场景中,Agent 仍然可能出现规划失误、工具调用错误、陷入循环等问题。生产环境中的 Agent 通常仍然需要人工审核关键步骤(Human-in-the-loop)。
为何常见:厂商宣传中大量渲染 Agent “自主决策”的能力,加上人们对 AI 的浪漫想象,容易产生“万能 Agent”的误解。
误区在开发初期,为了方便调试,一些开发者会使用 `AdministratorAccess` 策略,或者在 IAM 中给 Bedrock 相关权限设置为“允许所有操作”,认为这样效率最高。
正解权限过于宽松是严重的安全隐患。在生产环境中,每个 IAM 角色应该遵循“最小权限原则”——只授予完成任务所需的最小权限集。例如,某个服务只需要调用 Claude 模型,那么它的 IAM 策略应该只包含 bedrock:InvokeModel,并且通过 Resource 字段限制为特定的模型 ARN。
为何常见:开发阶段的“临时方便”思维容易延续到生产环境。此外,IAM 策略的细节较多,初学者往往想先“跑通再说”,导致安全问题被后置。
误区有人担心:我把客户数据发给 Bedrock,Anthropic 或 Meta 是不是就能看到我的数据?出于这种担忧,一些企业不敢采用 Bedrock。
正解这是对 Bedrock 数据流转机制的误解。当你使用 Bedrock 时,AWS 在数据传输和存储层面提供了多层保护:TLS 加密传输、KMS 加密存储、模型供应商不接收你的原始数据(除非你显式开启模型训练数据共享)。AWS 有承诺:默认情况下,你的输入和输出数据不会用于训练底层模型。
为何常见:Bedrock 是“中间代理”,底层确实有第三方模型,用户天然担心数据是否会被模型厂商“拿走”。但这种担忧需要建立在了解实际数据流(AWS 中转、加密传输、不落盘训练)的基础上才够准确。
面试题
Q1. 在 AWS Bedrock 中,“统一 API 访问多个模型”的核心价值是什么?
- A.让所有模型共享同一个 GPU 服务器
- B.用一套代码调用多种大模型,减少模型锁定← 正确答案
- C.彻底消除了对模型能力的全部差异化需求
- D.让 AWS 能自动训练出更好的模型
答案:B。统一 API 的价值在于你可以用相同接口调用 Claude、Llama、Titan 等模型,降低切换成本,避免绑定单一模型厂商。选项 A 是误解,模型仍在供应商侧运行。选项 C 过于绝对,模型能力差异依然存在。选项 D 是错误,Bedrock 不训练模型。
Q2. 在 Bedrock 中使用 boto3 调用模型时,"body" 参数的作用是什么?
- A.存放 AWS 凭证信息
- B.指定使用的模型 ID
- C.存放模型输入(prompt)和参数配置← 正确答案
- D.控制请求的 AWS 区域
答案:C。body 参数是传给模型的请求数据,通常包括 prompt、max_tokens、temperature 等。模型 ID 是通过 modelId 参数单独指定的,选项 B 错误。AWS 凭证在客户端创建时配置,选项 A 错误。区域也是创建客户端时指定的,选项 D 错误。
Q3. 在 Amazon Bedrock 中,使用 IAM 权限策略的主要目的是什么?
- A.提高模型推理速度
- B.控制用户对模型和资源的访问权限← 正确答案
- C.调整模型的生成温度参数
- D.加密传输中的数据
答案:B。IAM 权限策略决定了谁(Principal)能对哪些资源执行哪些操作,是权限管理的基础。选项 A 是性能问题,与权限无关。选项 C 是 API 请求中的模型参数,不是 IAM 的职责。选项 D 是传输层安全(TLS/KMS)负责的。
Q4. 知识库集成(RAG)的主要目的是什么?
- A.替代微调,让模型永久记住新知识
- B.通过检索外部文档增强模型回答的准确性← 正确答案
- C.让多个模型共享同一份数据库
- D.将数据复制到模型的生产机房
答案:B。
Q5. 在 Bedrock 中,构建 Agent 需要哪些核心组成要素?
- A.大模型(LLM)作为决策大脑← 正确答案
- B.工具定义(Tools)供 Agent 调用← 正确答案
- C.自建的 GPU 服务器集群
- D.记忆(Memory)保存多轮交互上下文← 正确答案
答案:ABD。Agent 的完整链路 = LLM(推理决策)+ 工具定义(执行动作)+ 记忆(保存上下文)。GPU 服务器是自建模型才需要的,Bedrock 本身已经帮你管理好了底层算力,选项 C 不成立。
Q6. 在 Bedrock 的 OpenSearch Serverless 中,存储的“向量”主要用于什么操作?
- A.压缩模型体积
- B.按语义相似度检索文档片段← 正确答案
- C.加速网络数据传输
- D.对文档进行加密
答案:B。向量是文本的数值化表示,相近的文本在向量空间中的距离更近。当用户提问时,系统将问题转为向量,并在向量数据库中查找最相近的文档向量,实现语义层面的检索。选项 A、C、D 与向量在 RAG 中的作用关系不直接。
Q7. 关于 Bedrock 的安全机制,以下哪个描述是正确的?
- A.数据在传输过程中用 KMS 加密,在存储过程中用 TLS 加密
- B.数据在传输过程中用 TLS 加密,在存储过程中可用 KMS 加密← 正确答案
- C.数据只能用 AWS 默认密钥加密,不能自定义密钥
- D.Bedrock 本身就默认保护所有数据,无须配置 IAM
答案:B。传输中加密使用 TLS 协议,存储中加密使用 KMS 服务(且支持自定义客户管理密钥)。选项 A 说反了两者的应用位置。选项 C 错误,KMS 支持客户自带密钥(Customer Managed Key)。选项 D 错误,IAM 权限是实现访问控制的必要配置项。
Q8. 在 Bedrock 知识库中,“文档切分”(Chunking)策略的合理设计会直接影响哪个效果?
- A.模型被“训练”的速度
- B.检索的准确率和回答质量← 正确答案
- C.底层模型的推理延迟
- D.S3 存储空间的大小
答案:B。切分策略决定了一个 chunk 包含多少信息。如果切分过大,检索到的内容可能过于宽泛;过小则可能丢失关键上下文,都会拉低检索准确率。选项 A、C、D 不被切分策略直接影响——模型训练与否、推理延迟由模型和算力决定,存储空间主要看文档大小。
Q9. 在 IAM 策略中,"Effect/ Action / Resource" 三段式结构的作用是?
- A.决定“允许”还是“拒绝”某个操作← 正确答案
- B.指定具体的操作名称(如 InvokeModel)← 正确答案
- C.指定操作施加的具体资源(如某个模型 ARN)← 正确答案
- D.自动清除所有账号的旧凭证
答案:ABC。IAM 策略的核心是三个要素:Effect 决定 Allow/Deny,Action 指定操作名,Resource 指定作用于哪类资源。三项共同构成一条完整的访问控制规则。选项 D 与 IAM 策略的用途无关。
Q10. 想使用 Bedrock 进行模型调用,必须满足哪些前提条件?
- A.有有效的 AWS 账号和 IAM 凭证← 正确答案
- B.已在 Bedrock 控制台开通所需模型的访问权限← 正确答案
- C.已预先购买专门的 GPU 服务器
- D.已安装 boto3 等 AWS SDK 工具← 正确答案
答案:ABD。调用 Bedrock 需要:有效 AWS 账号和凭证(认证)、开通模型访问(权限)、安装用于发起请求的 SDK(工具链)。选项 C 不需要,Bedrock 是托管服务,底层的算力由 AWS 管理和付费。