使用 Amazon Bedrock 简化资助提案审查 机器学习博客

使用 Amazon Bedrock 简化资助提案审核

由 Carolyn Vigil, Ben West, Lauren Hollis 和 Mike Haggerty于2025年1月30日发布于 ,

分享

政府和非营利组织在评估资助提案时面临重大挑战:从数百份详细的提交材料中筛选出独特优点的申请,以识别出最有前景的项目。这一繁琐且耗时的过程通常是资助管理的第一步,对推动有意义的社会影响至关重要。

AWS 社会责任与影响(SRI)团队认识到可以利用增强这一功能。该团队开发了一种创新解决方案,通过使用 优化资助提案审核和评估流程。Amazon Bedrock 是一项完全托管的服务,允许您通过单一 API 使用领先 AI 公司(如 AI21Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon)提供的高性能基础模型(FMs),以及构建生成式 AI 应用所需的广泛功能,以确保安全性、隐私性和负责任的 AI 。

历史上,AWS 健康公平倡议的申请是由审核委员会手动审核的,每个周期需要 14 天或更长时间才能完成所有申请的审核。该项目的平均每个周期收到 90份申请。2024 年 6 月的 AWS 健康公平倡议申请周期收到 139份申请,是该项目迄今为止最大的一次涌入。如果手动处理这些申请,预计审核委员会会花费约 21 天的时间。采用 Amazon Bedrock的方法将审核时间缩短至 2 天(减少了 90%)。

目标是提高审核流程的效率和一致性,使客户能够更快地构建具有影响力的解决方案。通过将 Amazon Bedrock 的高级 NLP能力与精心设计的提示工程相结合,团队创建了一种动态、数据驱动且公平的解决方案,展示了大型语言模型 (LLMs) 在社会影响领域的变革潜力。

在本文中,我们探讨了该团队基于 Amazon Bedrock 的资助提案审核解决方案的技术实现细节和关键经验,为希望优化其资助管理流程的组织提供蓝图。

关键要点

关键要点

  • AWS SRI 团队利用 Amazon Bedrock 的 NPL 能力显著缩短资助提案的审核时间,效率提升高达 90%。
  • 通过多种提示工程技术,确保模型响应量身定制、有结构且具有可操作性,以满足特定评价标准。
  • 使用 Streamlit、Amazon Bedrock 和 DynamoDB 构建快速原型,为动态提案审核提供基础,增强用户体验。

使用生成式 AI 构建有效的资助提案审核提示

提示工程是指设计高效提示以指导生成式 AI 模型(如 LLMs)产生预期输出的艺术。通过精心设计提示,实践者可以发挥生成式 AI系统的全部潜力,并将其应用于各种实际场景。

在为 Amazon Bedrock模型构建审核资助提案的提示时,我们采用了多种提示工程技术,以确保模型的响应量身定制、结构化且可操作。这包括分配给模型特定的人物角色、提供逐步指示和规定所需的输出格式。

我们首先为模型分配了公共卫生专家的角色,专注于改善弱势群体的医疗卫生结果。这一背景帮助模型从主题专家 (SME) 的角度评估提案,全面考虑全球挑战和社区层面的影响。通过明确定义角色,我们确保模型的响应符合预期的评估视角。

接下来,我们将审核过程拆分为一组结构化的指令,以便模型遵循。包括审核提案、在特定维度(影响潜力、创新、可行性、可持续性)上进行评估,然后提供总体摘要和评分。概述这些逐步指令为模型的每个任务元素提供了明确的指导,有助于产生全面一致的评估。

最后,我们指定所需的输出格式为 JSON,明确包括维度评估、总体摘要和整体评分的不同部分。规范这种结构化响应格式确保模型的输出可被我们的资助审核团队读取、存储和分析,而不是以自由格式文本交付。这种对输出的控制有助于精简模型评估的后续使用。

通过结合角色分配、逐步指令和输出格式化等提示工程技术,我们能够制定出能够引导模型给出全面、客观且可操作的资助提案评估的提示。这种结构化的方法使我们能够有效利用模型的能力以支持我们的资助审核流程,实现可扩展和高效的管理。

使用 Streamlit 和生成式 AI 构建动态提案审核应用程序

为了展示和测试动态提案审核解决方案的能力,我们使用、Amazon Bedrock 和

构建了一个快速原型实现。需要注意的是,该实现并不打算用于生产,而是作为一个概念验证和进一步开发的起点。该应用程序允许用户定义和保存多种角色和评估标准,这些角色和标准在审核提案时可以动态应用。这种方法使每个提案能够根据指定标准进行量身定制和相关的评估。

应用程序的架构包括几个关键组件,我们将在本节中讨论。

团队使用 DynamoDB(一个 NoSQL 数据库)存储角色、评估标准和提交的提案。存储在 DynamoDB 中的数据被发送到 Streamlit 作为 web 应用程序界面。在 Streamlit 上,团队将角色和评估标准添加到提示中,并将提示发送到 Amazon Bedrock。


from api.personas import Persona from api.rubrics import Rubric fromapi.submissions import Submission

bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")

def _construct_prompt(persona: Persona, rubric: Rubric, submission:
Submission): rubric_dimensions = [
f"{dimension['name']}|{dimension['description']}|{dimension['weight']}" fordimension in rubric.dimensions ]

    
    
    # 在维度列表前添加提示所期望的表头
    rubric_dimensions[:0] = ["dimension_name|dimension_description|dimension_weight"]
    rubric_string = "\n".join(rubric_dimensions)
    print(rubric_string)
    
    with open("prompt/prompt_template.txt", "r") as prompt:
        prompt = prompt.read()
        print(prompt)
        return prompt.format(
            PROPOSAL=submission.content,
            PERSONA=persona.description,
            RUBRIC=rubric_string,
        )
    

Amazon Bedrock 使用 Anthropic 的 Claude 3 Sonnet FM根据提示评估提交的提案。模型的提示是基于所选择的角色和评估标准动态生成的。Amazon Bedrock 会将评估结果返回 Streamlit 供团队审核。

Rubric): prompt = _construct_prompt(persona, rubric, submission)

    
    
    body = json.dumps(
        {
            "anthropic_version": "",
            "max_tokens": 2000,
            "temperature": 0.5,
            "top_p": 1,
            "messages": [{"role": "user", "content": prompt}],
        }
    )
    response = bedrock.invoke_model(
        body=body, modelId="anthropic.claude-3-haiku-20240307-v1:0"
    )
    response_body = json.loads(response.get("body").read())
    return response_body.get("content")[0].get("text")
    

以下图表展示了前述内容的工作流步骤:

删除)

工作流包括以下步骤:

删除)
![用户界面示例 删除)

  1. 当用户提交提案进行审核时,可以从可用选项中选择所需的角色和评估标准。
    ![用户界面示例 删除)
  2. Streamlit 应用程序为 Amazon Bedrock 模型生成动态提示,包含所选角色和评估标准的详细信息。
  3. Amazon Bedrock 模型根据动态提示评估提案,并返回评估结果。
  4. 评估结果被存储在 DynamoDB 数据库中,并通过 Streamlit 应用程序呈现给用户。
    ![用户界面示例 删除)

影响

这个快速原型展示了可扩展且灵活的提案审核流程的潜力,使组织能够:

  • 将申请处理时间缩短多达 90%
  • 通过自动化评估任务简化审核流程
  • 捕获提案和评估的结构化数据以便进一步分析
  • 通过启用多个角色和评估标准融入多样的视角

在整个实现过程中,AWS SRI 团队专注于创建互动和用户友好的体验。通过与 Streamlit应用程序的实际操作以及观察动态角色和评分标准选择所产生的影响,用户可以获得构建 AI 驱动应用程序的实用经验,以应对实际挑战。

生产级实现的注意事项

虽然快速原型展示了该解决方案的潜力,但生产级实现需要更多考虑和额外的 AWS 服务。以下是一些关键考虑因素:

  • 可扩展性和性能 - 为了处理大量申请和并发用户,可以使用 、、DynamoDB 和 Amazon Simple Storage Service (Amazon S3) 的无服务器架构,将提供更好的可扩展性、稳定性和可靠性。
  • 安全性和合规性 - 根据所处理数据的敏感性,必需采取额外的安全措施,如加密、身份验证和访问控制、审计等。像 AWS Key Management Service (KMS)、、AWS Identity and Access Management (IAM) 和 的服务可以帮助满足这些需求。
  • 监控和日志记录 - 使用 和 等服务实施强有力的监控和日志记录机制,以跟踪性能、识别问题和维护合规性。
  • 自动化测试和部署 - 使用 、 和 等服务实施自动化测试和部署管道,有助于提供一致和可靠的部署,减少错误和停机的风险。
  • 成本优化 - 实施成本优化策略,例如使用 和 ,可以帮助管理成本,并保持高效的资源利用率。
  • 负责任的 AI 考虑 - 实施保护措施——例如 ——和监控机制,以帮助强制实施生成式 AI 模型的负责任和道德使用,包括偏见检测、内容审核和人工监督。尽管 AWS 健康公平倡议申请表收集了客户信息,例如姓名、电子邮件地址和操作国家等,但在发送到 Amazon Bedrock 工具时,该信息按照系统要求被省略,以避免对模型的偏见并保护客户数据。

通过使用全面的 AWS 服务组合并遵循安全性、可扩展性和负责任的 AI的最佳实践,组织可以构建一套符合自身要求的生产就绪解决方案,同时实现合规性、可靠性以及成本效益。

结论

依靠 Amazon Bedrock 和有效的提示工程,AWS SRI 能在几天内审核资助提案并将奖励授予客户,而非几周。这个项目中开发的技能,例如使用 Streamlit 构建 web 应用程序、与 NoSQL 数据库如 DynamoDB 集成以及自定义生成式 AI提示,具有高度转移性,并适用于广泛的行业和用例。


作者介绍

![Carolyn Vigil删除)CarolynVigil 是 AWS社会责任和影响客户参与的全球负责人。她推动一些利用云计算实现全球社会影响的战略举措。作为一名热衷于支持弱势群体的倡导者,她共同创办了两个非营利组织,服务于具有发展性障碍的人群及其家庭。闲暇时间,Carolyn喜欢与家人和朋友一起进行山区冒险。

![Lauren Hollis删除)LaurenHollis 是 AWS 社会责任和影响的项目经理。她利用自己在经济学、医疗研究和技术方面的背景,帮助使命驱动的组织利用 AWS云技术实现社会影响。闲暇时,Lauren 喜欢阅读和弹奏钢琴或大提琴。

![Ben West删除)BenWest 是一名实践者,拥有机器学习、大数据分析和全栈软件开发的经验。作为 AWS 社会责任与影响团队的技术项目经理,Ben 利用各种云、边缘和物联网 (IoT) 技术开发创新原型,帮助公共部门组织在全球产生积极影响。Ben 是一名退伍军人,喜欢烹饪和户外活动。

![Mike Haggerty删除)MikeHaggerty 是亚马逊网络服务 (AWS) 的高级系统开发工程师(Sr. SysDE),工作于 PACE-EDGE 团队。在这一角色中,他为 AWS在全球公共部门 (WWPS) 组织的 PACE(原型设计与客户工程)团队的边缘计算项目贡献力量。在专业业务之外,Mike 还担任宠物治疗志愿者,和他的狗 Gnocchi 一起在当地社区设施提供支持服务。

加载评论

Leave a Reply

Required fields are marked *