开发生成式人工智能应用程序以改善教学和学习体验
打造生成式人工智能应用,优化学习与教学体验
最近,教师和机构一直在寻找不同的方法将人工智能(AI)纳入课程中,无论是教授机器学习(ML)还是将其应用于制定课程计划、评分或其他教育应用。生成式AI模型,特别是大型语言模型(LLMs),显著加快了AI在教育方面的影响。生成式AI和自然语言编程(NLP)模型具有通过生成个性化学习内容和为学生提供有趣学习体验的潜力,从而增强教学和学习的效果。
本文中,我们为教师和学生创建了一个生成式AI解决方案,用于创建课程材料和学习英语单词和句子。当学生提供答案时,该解决方案会提供实时评估,并为学生提供个性化反馈和指导,以改进他们的答案。
具体而言,教师可以使用该解决方案进行以下操作:
- 根据提示生成问题和答案,为学生创建作业
- 根据提示创建一个图像来代表作业
- 将新作业保存到数据库中
- 浏览数据库中的现有作业
学生可以使用该解决方案进行以下操作:
- 从作业数据库中选择并查看作业
- 回答所选择作业的问题
- 实时检查答案的评分
- 查看对答案的语法改进建议
- 查看对答案的句子改进建议
- 阅读推荐答案
我们将通过使用Amazon Bedrock、Amazon Elastic Container Service(Amazon ECS)、Amazon CloudFront、Elastic Load Balancing (ELB)、Amazon DynamoDB、Amazon Simple Storage Service(Amazon S3)和AWS Cloud Development Kit(AWS CDK),为您介绍创建该解决方案的步骤。
解决方案概述
以下图表显示了解决方案中使用的资源和服务。
该解决方案作为可扩展的服务运行。教师和学生使用浏览器访问应用程序。内容通过带有应用程序负载均衡器作为源的Amazon CloudFront分发进行服务。它将生成的图像保存到S3存储桶,并将教师的作业以及学生的答案和评分保存到不同的DynamoDB表中。
该解决方案使用Amazon Bedrock来生成问题、答案、作业图像和评分学生答案。Amazon Bedrock是一个全面管理的服务,通过易于使用的API接口提供领先的AI初创企业和Amazon的基础模型。该解决方案还使用AI21的语法错误修正API和改写API来推荐单词和句子的改正建议。
您可以在以下章节中找到具体的实施细节,源代码在GitHub仓库中可用。
先决条件
您应该具备生成式AI、机器学习(ML)以及本解决方案中使用的服务,包括Amazon Bedrock、Amazon ECS、Amazon CloudFront、弹性负载均衡器、Amazon DynamoDB和Amazon S3的相关知识。
我们使用AWS CDK来构建和部署该解决方案。您可以在自述文件中找到设置说明。
创建作业
教师可以使用以下GUI页面从输入文本中创建作业。一个作业包括一个输入文本,从文本中生成的问题和答案,以及从输入文本生成的图像来代表作业。
对于我们的例子,一位教师输入了美国交通运输部的儿童和自行车安全指南。对于输入文本,我们使用了文件bike.safe.riding.tips.txt。
以下是生成的图像输出。
以下是生成的问题和答案:
"问题": "骑自行车时应该始终穿戴什么?",
"答案": "骑自行车时应该始终戴着合适的自行车头盔。头盔可以保护你的大脑,在事故中能挽救你的生命。"
"问题": "骑自行车时如何确保司机能看到你?",
"答案": "为了确保司机能看到你,应该穿着明亮的霓虹色或荧光色。还可以使用反光胶带、标记或闪光灯,使自己更加可见。"
"问题": "在骑自行车之前应该做什么?",
"答案": "骑行前,应该检查自行车是否所有部件都安全并正常工作。检查轮胎是否充气,刹车是否正常运作,反光器是否安装正常。"
"问题": "为什么晚上骑自行车更危险?",
"答案": "晚上骑行更危险,因为其他机动车辆中的人更难在黑暗中看到你。"
"问题": "骑自行车时如何避免危险?",
"答案": "向前看,发现坑洞、破碎玻璃和狗等危险物。向后的骑行者指出和大声喊出危险。避免在夜间骑行,因为在此时更难看到危险。"
教师希望学生通过阅读输入文本并回答生成的问题来完成作业。
该门户网站使用Amazon Bedrock来创建问题、答案和图像。Amazon Bedrock通过API接口公开基础模型,加快了生成式人工智能解决方案的开发速度。你可以在文件1_Create_Assignments.py中找到源代码。
该门户网站调用了两个基础模型:
- 稳定扩散XL使用函数
query_generate_image_endpoint
生成图像 - Anthropic Claude v2使用函数
query_generate_questions_answers_endpoint
生成问题和答案
该门户网站使用load_file_to_s3
函数将生成的图像保存到S3存储桶中。它根据输入文本、教师ID、生成的问题和答案,以及加载图像的S3存储桶链接来创建作业。它使用函数insert_record_to_dynamodb
将作业保存到DynamoDB表assignments中。
你可以在文件cdk_stack.py中找到创建DynamoDB表的AWS CDK代码。
显示作业
教师可以使用下面的GUI页面浏览作业和生成的作品。
该门户网站使用函数 get_records_from_dynamodb
从DynamoDB表 assignments 中提取作业。它使用函数 download_image
从S3存储桶下载图像。你可以在文件 2_Show_Assignments.py 中找到源代码。
回答问题
学生选择并阅读教师的作业,然后回答作业中的问题。
该门户网站提供了一个引人入胜的学习体验。例如,当学生提供答案“I should wear hat protect brain in crash”时,门户网站会实时通过将答案与正确答案进行比较来评分。该门户网站还对同一问题的所有学生答案进行排名,并显示前三名分数。你可以在文件 3_Complete_Assignments.py 中找到源代码。
该门户网站将学生的答案保存到名为 answers 的 DynamoDB 表中。你可以在文件 cdk_stack.py 中找到创建 DynamoDB 表的 AWS CDK 代码。
为了评分学生的答案,该门户网站调用 Amazon Titan Embeddings 模型 将学生的答案和正确答案转化为数值表示,并计算它们的相似度作为得分。你可以在文件 3_Complete_Assignments.py 中找到解决方案。
该门户网站为学生的答案生成建议的语法修改和句子改进。最后,门户网站显示问题的正确答案。
该门户网站使用 AI21 的语法纠错 API 和释义 API 来生成推荐的语法和句子改进。AI21 的释义模型在 SageMaker 中作为基础模型提供。你可以将 AI21 的释义模型部署为 SageMaker 中的推理点,并调用推理点生成句子改进。
文件 3_Complete_Assignments.py 中的函数 generate_suggestions_sentence_improvements
和 generate_suggestions_word_improvements
展示了使用 AI21 REST API 端点的另一种方法。你需要创建一个 AI21 账号,并找到与你的账号相关联的 API 密钥来调用这些 API。试用期过后,你需要支付调用的费用。
结论
本文向你展示了如何使用一种 AI 辅助解决方案,通过使用多个生成型 AI 和 NLP 模型来改善教学和学习体验。你可以使用相同的方法来开发其他生成型 AI 原型和应用。
如果您对生成AI的基础知识以及如何使用基础模型(包括高级提示技术)感兴趣,可以查看实践课程使用LLMs的生成AI。这是一门面向数据科学家和工程师的按需3周课程,旨在教您如何使用LLMs构建生成AI应用。这是开始使用Amazon Bedrock的良好基础。访问Amazon Bedrock功能页面并注册,了解更多关于Amazon Bedrock的信息。