基于Amazon Bedrock:一站式多模态数据处理新体验
目录
引言
关于Amazon Bedrock
基础模型体验
1、进入环境
2、发现模型及快速体验
3、打开 Amazon Bedrock 控制台
4、通过 Playgrounds 体验模型
(1)文本生成
(2)图片生成
关于资源清理
结束语
引言
在云计算和人工智能领域,亚马逊云科技 (AWS) 一直走在创新的前沿,就在最近,AWS 推出了 Amazon Bedrock,这是一个全新的服务,旨在为企业提供一种简单、灵活的方式来构建和管理多模型应用程序。那么本文就来分享关于在 Amazon Bedrock 上基础模型的初步体验,并研究它如何帮助开发者和企业实现多模态数据处理和应用开发。
关于Amazon Bedrock
Amazon Bedrock 是一项完全托管的服务,通过统一的 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等领先 AI 公司的高性能基础模型(FMs),同时提供广泛的功能,让你能够在确保安全、隐私和负责任 AI 的前提下构建生成式 AI 应用。
也就是说Amazon Bedrock 是一个多模型服务平台,它允许用户构建和管理包含多种数据模型的应用程序,这些数据模型可以包括关系型数据库、NoSQL数据库、搜索索引和机器学习模型等。Amazon Bedrock 的设计理念是提供一个统一的平台,让开发者能够轻松地处理多种数据模型,而无需担心底层的复杂性。使用 Amazon Bedrock,我们可以:
- 轻松地测试、评估你的用例在不同基础模型下的表现;
- 使用微调和检索增强生成(RAG)等技术定制化开发你的应用程序;
- 构建可以使用你的企业系统和数据源自动执行任务的智能 Agents。
由于 Amazon Bedrock 是 Serverless 的服务,我们无需管理任何基础设施,并且可以使用我们已经熟悉其它的亚马逊云科技服务安全地集成和部署生成式 AI 功能到我们的应用中,非常便捷。
基础模型体验
1、进入环境
点击 “开始实验” 按钮,即可扫码进入实验环境,需要注意的是:测试账号有效期仅为一天,过期后系统将自动回收清理,请不要上传重要数据。
同时,点击 “立即注册” AWS Console - Signup按钮即可免费注册属于你的亚马逊云科技海外区账号,开启个性化的系统构建之旅,进一步探索更广泛、更深入的云服务领域并保留实验中构建的系统应用,尽情享受云上构建的无限可能!
如果你在自己的亚马逊云科技账户上进行实验,请务必在实验完成后根据清理资源板块部分的说明删除和关闭所有实验资源,以避免产生不必要的费用。
注册成功之后,可以扫码登陆,具体如下图所示:
然后需要填写邮箱,如果你之前没有填写过邮箱,则需要填写一下邮箱,并勾选隐私协议,点击前往实验,及可进入实验室,具体如下图所示:
2、发现模型及快速体验
由于Amazon Bedrock 中包含了多个模型,从使用场景上可以分为 文本生成、图片生成、通过文本/图片生成 Embedding 等,不同场景中又包含了来自多个模型提供商的优秀模型,所以说我们可以根据自己的场景及模型效果选择适合的模型,以集成到自己的应用程序中。
另外,Amazon Bedrock 提供了两种方式访问模型,包括通过 Amazon Bedrock 控制台中的 Playground 以及 SDK,支持 Python、Java、Go 等多种编程语言。那么接下来,就来展示通过 Playgrounds 快速体验模型效果的方法。
3、打开 Amazon Bedrock 控制台
我们首先需要打开 Bedrock 控制台,访问链接 https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/ ,在右上角确认区域为 Oregon(us-west-2),如下所示:
点击概览(Overview),我们可以看到 Amazon Bedrock 支持的多种基础模型(Foundation Model),其中包括 Amazon Titan,Anthropic Claude,Jurassic,Command,Mistral,Stable Diffusion 以及 Llama3,如下所示:
4、通过 Playgrounds 体验模型
我们直接在左侧导航栏,在 Playgrounds 中我们可以看到 Chat, Text, Image 三个功能模块,含义分别为:
- Chat: 在对话式界面中,轻松尝试各种语言处理任务。你可以体验多种预训练模型。
- Text: 通过快速迭代,在各种语言处理任务中进行实验,尝试多种预训练模型。
- Image: 只需向预训练模型提供文字提示,即可轻松生成引人入胜的图像。
接下来,我们将通过 Chat、Image 分别体验文本生成及图像生成的效果。
(1)文本生成
需要我们先点击 Chat 按钮,然后在 Chat Playground 页面点击选择模型(Select model)以选择期望测试的模型,如下所示:
这里以 Meta Llama 3 70B 模型为例,来体验其强大的推理能力和中文处理能力,点击应用(Apply),如下所示:
接下来,我们让模型来帮我们安排一个上海2日游的行程,使用中文回答。可以将该问题输入到聊天窗口中,将响应长度调整到 2048(防止返回结果因为 token 限制被截断;UI 上的限制为 2048 token,此模型 API 支持的最大 token 为 8k),点击运行(Run),如下所示:
具体的示例结果如下所示:
**Day 1**
**上午**
* 9:00 am: 开始于上海的标志性建筑 - 东方明珠电视塔( Oriental Pearl Tower),登塔顶俯瞰上海全景。
* 10:30 am: 从东方明珠电视塔步行到浦东陆家嘴金融区,欣赏上海的摩天大楼和繁华都市景象。
**下午**
* 1:00 pm: 去人民广场(People's Square)附近的南京路步行街,感受上海的商业气息和人流。
* 3:00 pm: 访问上海博物馆(Shanghai Museum),了解上海的历史和文化。
**晚上**
* 7:00 pm: 去外滩(The Bund)欣赏黄浦江两岸的美景,观看夜晚的灯光秀。
* 9:00 pm: 在外滩附近的餐厅享用上海特色小吃和美食。
**Day 2**
**上午**
* 9:00 am: 访问豫园(Yu Garden),欣赏中国古典园林的美景。
* 11:30 am: 去城隍庙(City God Temple)附近的老城厢,感受上海的传统文化和生活气息。
**下午**
* 1:30 pm: 去法国梧桐街(French Concession)附近的徐汇区,欣赏上海的法式建筑和浪漫气息。
* 4:00 pm: 访问上海自然博物馆(Shanghai Natural History Museum),了解自然科学和生物多样性。
**晚上**
* 7:00 pm: 去静安寺(Jing'an Temple)附近的宁波路,感受上海的夜生活和娱乐气息。
* 9:00 pm: 结束上海 2 日游的行程,带着美好的回忆离开上海。
复制
接下来我们让 Amazon Bedrock 为我们生成代码,输入如下内容:
Write a short and high-quality python script for the following task, something a very skilled python expert would write. You are writing code for an experienced developer so only add comments for things that are non-obvious. Make sure to include any imports required. NEVER write anything before the ```python``` block. After you are done generating the code and after the ```python``` block, check your work carefully to make sure there are no mistakes, errors, or inconsistencies. If there are errors, list those errors in tags, then generate a new version with those errors fixed. If there are no errors, write "CHECKED: NO ERRORS" in tags. Here is the task: A web scraper that extracts data from multiple pages and stores results in a SQLite database. Double check your work to ensure no errors or inconsistencies.
具体的示例结果如下所示:
import requests
from bs4 import BeautifulSoup
import sqlite3
from urllib.parse import urljoin, urlparse
from concurrent.futures import ThreadPoolExecutor
# Database connection
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
# Create table if not exists
cursor.execute('''CREATE TABLE IF NOT EXISTS data
(id INTEGER PRIMARY KEY, url TEXT, title TEXT, content TEXT)''')
conn.commit()
# Base URL and pages to scrape
base_url = 'https://example.com'
pages_to_scrape = ['/page1', '/page2', '/page3']
def scrape_page(url):
# Send request and get HTML response
response = requests.get(urljoin(base_url, url))
soup = BeautifulSoup(response.text, 'html.parser')
# Extract title and content
title = soup.find('h1').text.strip()
content = soup.find('div', {'class': 'content'}).text.strip()
# Insert data into database
cursor.execute("INSERT INTO data (url, title, content) VALUES (?, ?, ?)",
(urljoin(base_url, url), title, content))
conn.commit()
print(f"Scraped {url}")
# Scrape pages concurrently
with ThreadPoolExecutor() as executor:
executor.map(scrape_page, pages_to_scrape)
# Close database connection
conn.close()
# CHECKED: NO ERRORS
复制
(2)图片生成
在左侧导航栏点击图片(Image)链接,进入图片生成的页面。这里我们点击下方的“Generate images from a text prompt” 选择内置的文本生成图片的示例:
然后点击运行(Run),默认情况下,模型会为我们生成 3 张图片,示例结果如下所示:
我们可以点击图片查看原始图片,并执行编辑或下载等操作。
关于资源清理
通过上面的实例操作之后,建议大家在实验完成之后,要及时清理实验资源,避免产生额外的费用,切记!具体的资源清理方法如下所示:
- 清理 S3 桶: 参考文档Deleting a bucket - Amazon Simple Storage Service
- 删除 Guardrails: 参考文档 What is Amazon Bedrock? - Amazon Bedrock
结束语
通过上文的初步体验,想必大家都感受到了 Amazon Bedrock 在多模态数据处理和应用开发方面的强大能力,它的易用性和灵活性为开发者提供了极大的便利,同时也为企业提供了一种高效的方式来构建和管理复杂的多模型应用程序。在具体的实例中,由于篇幅原因只展示了 Amazon Bedrock 的部分功能,包括基础模型、Playgrounds、模型评估、安全围栏Guardrails 等功能模块,但是如果大家感兴趣其他功能,可以自行去了解学习使用,这里不在赘述。在不久的未来,个人觉得Amazon Bedrock 能够继续扩展其功能,支持更多的数据模型和应用场景,而且会有更多开发者利用 Amazon Bedrock 创造出创新的应用程序,推动云计算和人工智能技术的发展。最后,期待大家的热情参与,共同体验这场技术的盛宴,一起成长,一起探索更广阔的科技天地。