方格精選

AWS SageMaker 開箱體驗

閱讀時間約 11 分鐘

前幾個禮拜,AWS 舉行 Startup Day Taiwan,因為我們公司雲端技術用 AWS,也跑去湊湊熱鬧。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬,其實我們內部也有在討論 AI 應用,只是從後端觀點來看,如何讓 AI 變成一門「工程」,而不是單純的「技術」,中間還有些問題要克服。

出乎意料的是,AWS 這次真的是有備而來,講了很多跟 Machine Learning 相關的服務,有點刷新我的認知,話不多說,直接上圖

raw-image

這張圖簡明扼要,圍繞基礎模型(Foundation Model),包括 Labeling, Fine-tuning, VectorDB, Embedding 等常見的應用都有,看得出來是從 ML 生命週期的角度來設計產品線。這恰好就是我原本在思考的工程問題。技術跟工程有時關注的焦點不太相同,例如,OpenAI 雖然有開箱即用的 API,可是它沒辦法保證服務水平,而將服務水平不確定的 API 放到生產環境,勢必會影響產品穩定度;又或者,OpenAI 雖然有提供 Fine-tuning 讓使用者微調,但如何管理 Fine-tuning 的資料集?如何有效的打標?這都需要開發者另外花功夫處理。

既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。

SageMaker vs Colab

首先來問問,什麼是 SageMaker?它做了哪些事情?這同樣可以用一張圖說明

raw-image

在我的理解中,SageMaker 可以看成是 AWS 的一個產品,底下有 JumpStart, Notebook 等工具,能幫助你建構自己的 ML 模型。用 AWS 官方的話,是

建置、訓練和部署機器學習 (ML) 模型,用於具有全受管基礎設施、工具和工作流程的任何使用案例

這麼聽起來,跟 Google Colab 是不是有 87 分像?確實,兩者有部分功能類似。Colab 的特色是輕量,它以 Jupyter Notebook 為底,提供現成的開發環境,開發者不用任何設置,只需打開瀏覽器就能使用。Colab 替開發者解決「環境設置」與「運算資源」兩個問題,但如果你需要進一步的功能,像是模型部署、模型微調等管理,或者是需要進一步存取外部資源,事情就比較麻煩了。相對的,SageMaker 的設定較為複雜,可是它能讓不同團隊更容易協作,一起處理 ML 的產品化問題。

創建 SageMaker Domain

在使用 SageMaker 前,需要先創建一個 SageMaker Domain。Domain 是一個獨立的運行環境,其中包含了使用者、授權、VPC 等配置,相同 Domain 的使用者,可以共享同一份空間。要創建 SageMaker Domain,需要登錄 AWS 控制台,進到 SageMaker 後,點選左側面板的 Domains,接著選擇 Create Domain。

raw-image

AWS 有 Quick setup 跟 Standard setup 兩種設置方式,差別在需不需要一些進階配置,如果只是簡單部署一套模型,選擇 Quick setup 即可(是說後面還標示要花費的時間,也太卷了吧)。Domain Name 需要取個 AWS 全域的 Domain 名稱,通常會加入跟專案有關的前綴避免撞名。

raw-image

按下 Submit,等待創建完成。

創建完成後,點選剛剛建好的 Domain,在 User Profile 的分頁下,選擇 Add user。原則上只需要填入 User Profile Name,其他設定直接用預設,一路 Next 就好。

raw-image

部署 LLM 模型

接著來部署 LLM 模型。如果有把前面的設定都做完,AWS 應該會替你建好 ML 開發環境,這時從左側面板點選 Studio,再點選 Open Studio,就能打開 Jupyter Lab。

raw-image

我們想部署的 LLM 是 Falcon-7B-Instruct,這是阿聯酋技術創新研究所(TII)基於 Falcon-7B 建立的模型,有經過 chat/instruct 數據集微調,特別適用聊天問答的場景。值得一提的是,這也是一套開源模型,採用 Apache 2.0 授權,而且能力足以跟科技巨頭的閉源模型相媲美。

Hugging Face 上有 Falcon-7B-Instruct 的相關資料,但要使用 Hugging Face 的開源模型,最快的方法是直接利用 SageMaker JumpStart。這套工具能結合開源生態系,幫助我們更快建置 ML 模型。在 Jupyter Lab 左方面版找到 JumpStart,點選 Models, notebooks, solutions,然後在搜尋列輸入 Falcon,列出 JumpStart 支援的模型。

raw-image

選好你要的模型,點 Deploy 一鍵部署

raw-image

等待部署結束

raw-image

開始使用

基本上,我們已經完成所有部署模型需要的事了,接下來就是使用它,這裡同樣使用 Jupyter Notebook 來操作。你應該能夠在部署頁面看到 Use Endpoint from Studio,底下有個 Open Notebook,給它按下去,開啟 Jupyter Notebook。

raw-image

現成的範例都準備好了,只需要依照順序執行。先來看看 API Payload 長怎樣

import json
import boto3

payload = {
"inputs": "Who is the greatest basketball player of all time?\nAnswer:",
"parameters": {
"max_new_tokens": 50,
"return_full_text": False,
"do_sample": True,
"top_k":10
}
}

跟 OpenAI API Payload 很類似,Prompt 跟參數分開,Prompt 放在 inputs,其他參數則放在 parameters。丟個引戰問題讓模型回答:誰是有史以來最偉大的籃球員。

建立 Client,呼叫 LLM,印出答案

newline, bold, unbold = '\n', '\033[1m', '\033[0m'
endpoint_name = 'xxxxx-hf-llm-falcon-7b-instruct-bf16'

def query_endpoint(payload):
client = boto3.client('runtime.sagemaker')
response = client.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/json', Body=json.dumps(payload).encode('utf-8'))
model_predictions = json.loads(response['Body'].read())
generated_text = model_predictions[0]['generated_text']
print (
f"Input Text: {payload['inputs']}{newline}"
f"Generated Text: {bold}{generated_text}{unbold}{newline}")

query_endpoint(payload)

得到

Input Text: Who is the greatest basketball player of all time?
Answer:
Generated Text: There are many great basketball players, so it's hard to pick just one. However, some of the most popular and successful ones include LeBron James, Michael Jordan, and Shaquille O'Neal.

效果還不錯,畢竟答案因人而異,Falcon 能給出 LeBron James / Jordan / O'Neal,算是符合多數人認知(雖然沒有 Kobe)。

再來問個時事題:你聽過「芭比海默」嗎?

Input Text: What is the Barbenheimer? Have you ever heard it?
Answer:
Generated Text: “Barbenheimer” was the name of a 19th century German family, which had a lot of money. They were not very well liked and the money went to the wrong hands.
The Barbenheimer family had a house in Berlin

果然出現幻覺了,現在的 LLM 應該都有這問題,真的要處理,還是得透過 Prompt Engineering。

Notebook 底下還有一些常見的應用,像是情緒分析(Sentiment Analysis)或文本總結(Summarization),有興趣的人可以自己玩玩。

小結

相對 Colab,SageMaker 是套較重的工具。我猜兩者當初的設計理念應該差很多,Colab 是由 Google Research 推出的服務,以免費與社群友善為號召,用起來也更傾向小規模驗證(當然,免費跟付費方案的穩定度差很大);而 SageMaker 是從商用場景出發,適合開發者在原有的雲端規模上放大。如果只是評估性質,也許用用 API 或免費資源就好了,但如果想要使用穩定可靠的系統,AWS 應該會更具優勢(吧)。

最後小小提醒,AWS SageMaker 需要付費,而且價格不便宜,要是還在評估階段,建議開完機器跟 Jupyter Notebook 後記得關掉,避免帳單超支。

延伸閱讀

11會員
14內容數
關於電影的雜談。
留言0
查看全部
發表第一個留言支持創作者!
Ken Chen的沙龍 的其他內容
這期收錄的兩篇文章剛好都在談生產力,我認同指標的重要性,但如何讓指標跟實際工作結合不是容易的事。曾經聽過一個故事:老闆認為只要客服處理的效率增加,客戶滿意度就能提高,因此壓了一個服務件數的 KPI,結果他的客服人員無論有沒有解決客戶問題,都會在 2 分鐘內掛掉電話,跑去服務新的客戶。
聽到陳皓過世的消息,覺得非常可惜。軟體開發之所以能蓬勃發展,就是因為有一群像他一樣的開發者不吝於分享自己的經驗。有時會覺得時間流逝得很快,以前自己是個接收者,受到來自各方的幫助,才能成長到現在,也希望哪天自己能找到回饋的方式,將資源交給需要的人。
本週熱門話題依然圍繞在 AI 上,從 Google I/O 後,AI 對搜尋引擎生態造成衝擊似乎已經是必然的事了。看過幾篇討論,自己也有些想像,但要說未來會怎麼走,好像還是太早。讓我們回想一下,當初德國提出工業 4.0,一時間「少量多樣」變成趨勢,可是將近 10 年過去,仍然有許多的技術困難。究竟
這幾天刷網頁、追科技新聞,忍不住想,這些行為真的有產出嗎?會不會只是自我感覺良好,好像自己看很多看其實經不起檢驗?不行不行,既然說到產出,還是得來驗證一下,於是腦海中冒出個念頭:如果把讀過有意思的新聞集結起來,會不會有誰有興趣呢?這個專題會嘗試把看過的資訊匯聚起來,要是看完覺得有意思,歡迎留言互動。
在讀書會跟朋友聊起《信任邊際》這本書,信任一直是巴菲特事業的核心。巴菲特有時會說,他的成功是幸運的意外,是股東們彼此信任的優雅結構,每每讓聽的人大夢初醒。大道至簡,原來我們只要信任合作的夥伴,我們也可以像巴菲特一樣屢次創造奇蹟。可是,如果道理真的如此簡單明瞭,為什麼沒有人成功複製巴菲特的成功呢?
「不論是聽人說故事,或是讓人把故事說完,都需要時間。在你理出真正的脈絡之前,大多數人的故事聽起來都雜亂無章,我的故事也不例外。」也許,傾聽是關係的第一步,種種繁複的行為背後,都關乎著信任。
這期收錄的兩篇文章剛好都在談生產力,我認同指標的重要性,但如何讓指標跟實際工作結合不是容易的事。曾經聽過一個故事:老闆認為只要客服處理的效率增加,客戶滿意度就能提高,因此壓了一個服務件數的 KPI,結果他的客服人員無論有沒有解決客戶問題,都會在 2 分鐘內掛掉電話,跑去服務新的客戶。
聽到陳皓過世的消息,覺得非常可惜。軟體開發之所以能蓬勃發展,就是因為有一群像他一樣的開發者不吝於分享自己的經驗。有時會覺得時間流逝得很快,以前自己是個接收者,受到來自各方的幫助,才能成長到現在,也希望哪天自己能找到回饋的方式,將資源交給需要的人。
本週熱門話題依然圍繞在 AI 上,從 Google I/O 後,AI 對搜尋引擎生態造成衝擊似乎已經是必然的事了。看過幾篇討論,自己也有些想像,但要說未來會怎麼走,好像還是太早。讓我們回想一下,當初德國提出工業 4.0,一時間「少量多樣」變成趨勢,可是將近 10 年過去,仍然有許多的技術困難。究竟
這幾天刷網頁、追科技新聞,忍不住想,這些行為真的有產出嗎?會不會只是自我感覺良好,好像自己看很多看其實經不起檢驗?不行不行,既然說到產出,還是得來驗證一下,於是腦海中冒出個念頭:如果把讀過有意思的新聞集結起來,會不會有誰有興趣呢?這個專題會嘗試把看過的資訊匯聚起來,要是看完覺得有意思,歡迎留言互動。
在讀書會跟朋友聊起《信任邊際》這本書,信任一直是巴菲特事業的核心。巴菲特有時會說,他的成功是幸運的意外,是股東們彼此信任的優雅結構,每每讓聽的人大夢初醒。大道至簡,原來我們只要信任合作的夥伴,我們也可以像巴菲特一樣屢次創造奇蹟。可是,如果道理真的如此簡單明瞭,為什麼沒有人成功複製巴菲特的成功呢?
「不論是聽人說故事,或是讓人把故事說完,都需要時間。在你理出真正的脈絡之前,大多數人的故事聽起來都雜亂無章,我的故事也不例外。」也許,傾聽是關係的第一步,種種繁複的行為背後,都關乎著信任。
本篇參與的主題策展
在生成式AI與大型語言模型(Large Language Model, LLM)蓬勃發展下,有許多工具可以幫助我們學習與撰寫程式,這篇文章提供了實作範例與一些經驗,分享如何使用ChatGPT(免費的GPT-3.5)協助程式語言的學習,並且完成屬於自己的程式。
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
最近玩到了一個我覺得很新奇有趣的軟體,叫做SillyTavern。 SillyTavern是專用於創建虛擬角色的AI聊天軟體,SillyTavern是TavernAI的分支,但SillyTavern走上了自己的路,加進了許多額外功能,並且仍在積極的持續更新中。 然後,可以色色!
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
在生成式AI與大型語言模型(Large Language Model, LLM)蓬勃發展下,有許多工具可以幫助我們學習與撰寫程式,這篇文章提供了實作範例與一些經驗,分享如何使用ChatGPT(免費的GPT-3.5)協助程式語言的學習,並且完成屬於自己的程式。
前幾個禮拜,AWS 舉行 Startup Day Taiwan。想當然爾,最熱門的主題非生成式 AI (Generative AI) 莫屬。既然 AWS 有現成的工具,身為一名工程師,自然看看無妨,這篇文章算是新手開箱文,會說明如何部署一套基礎模型,並使用 AWS SDK 與其互動。
前言 我在工作中沒有什麼機會接觸到機器學習,學生時期也沒有學習過相關知識。 作為一個業餘小白,我對機器學習非常感興趣。在自學的過程中,我逐漸意識到利用機器學習可以做很多有趣的事情。 因此,我決定嘗試使用 AWS SageMaker JumpStart 來實驗文字生成式繪圖 AI ,以了解機
最近玩到了一個我覺得很新奇有趣的軟體,叫做SillyTavern。 SillyTavern是專用於創建虛擬角色的AI聊天軟體,SillyTavern是TavernAI的分支,但SillyTavern走上了自己的路,加進了許多額外功能,並且仍在積極的持續更新中。 然後,可以色色!
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
你可能也想看
Google News 追蹤
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
大型語言模型(Large Language Model, LLM)是當前AI/ML的熱門領域,短時間內在自然語言處理和文本生成等領域的應用上有顯著突破。兩年內,隨著深度學習和硬體的發展,大型語言模型取得了顯著進展,並在語言處理相關領域帶來革命性影響。
Thumbnail
先來一點心得 終於拿到證照了。 儘管我是在重考一次之後,才拿到證照,但還是十分開心。 從上課+準備第一次考試+準備重考,前前後後花了兩個月的時間,同時也花了不少的金錢和精力,真的是付出不少。 所以我打算分享一下自己的心得,給正在準備這個證照的人。 預計是分成兩篇來談,這次應該是先談考試的部分,下次再
Thumbnail
2020 年 Covid-19 爆發後,各產業都面臨資源調度的瓶頸,加上工業 4.0 時代的催化下,數位轉型加速、遠端作業、自動化等策略,具象化了智慧製造的概念。近年來,全球智慧製造市場呈現急速增長。為加速全球智慧化,雲端服務作為硬體驅動的核心關鍵,AWS 積極協助新創、中小企業、傳產等快速佈局,
Thumbnail
「任何背景, 學習雲端也能輕鬆上手!」 「好想來學新知識!」「一起來認識雲端產業吧!」 最完整的 AWS Educate 註冊大解析來囉~~~ 🚀 馬上開啟 AWS Educate 免費雲端學習 🚀
Thumbnail
Amazon 公佈了第三季的財報,Q3營收年增15%(去年同期是37%)至1108億低於預期的1116億,EPS $6.12也遠低於市場預期的 $8.92。消費者們重返實體店讓基期高的電商遭遇成長放緩,預計Q4的銷售年增會在4-12%之間,也比預期的13.2%低。
Thumbnail
初稿 筆者目前的工作環境是採用 AWS 的 Cloud9 服務,機房是選擇印度的孟買,會採用這個方案主要是筆者很懶惰:原因是之前在 Upwork 上面找到的印度軟體開發工程師很多團隊,每一次都要幫忙設置每組團隊的開發環境,幾乎每次第一個問題就是詢問 FTP 帳號、密碼,天啊!這是什麼時代了,居然還要
Thumbnail
一張圖講完今年會議重點,幾乎都放在台灣企業的數位轉型浪潮上面,主要包含雲端與AI技術的導入 今年第二次參與AWS高峰會,一如往常的每年都有很多新的嘗試與實驗,跟去年大玩AI應用的路線不同的地方在於,今年的會議帶出很多企業轉型與DevOps的議題
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
大型語言模型(Large Language Model, LLM)是當前AI/ML的熱門領域,短時間內在自然語言處理和文本生成等領域的應用上有顯著突破。兩年內,隨著深度學習和硬體的發展,大型語言模型取得了顯著進展,並在語言處理相關領域帶來革命性影響。
Thumbnail
先來一點心得 終於拿到證照了。 儘管我是在重考一次之後,才拿到證照,但還是十分開心。 從上課+準備第一次考試+準備重考,前前後後花了兩個月的時間,同時也花了不少的金錢和精力,真的是付出不少。 所以我打算分享一下自己的心得,給正在準備這個證照的人。 預計是分成兩篇來談,這次應該是先談考試的部分,下次再
Thumbnail
2020 年 Covid-19 爆發後,各產業都面臨資源調度的瓶頸,加上工業 4.0 時代的催化下,數位轉型加速、遠端作業、自動化等策略,具象化了智慧製造的概念。近年來,全球智慧製造市場呈現急速增長。為加速全球智慧化,雲端服務作為硬體驅動的核心關鍵,AWS 積極協助新創、中小企業、傳產等快速佈局,
Thumbnail
「任何背景, 學習雲端也能輕鬆上手!」 「好想來學新知識!」「一起來認識雲端產業吧!」 最完整的 AWS Educate 註冊大解析來囉~~~ 🚀 馬上開啟 AWS Educate 免費雲端學習 🚀
Thumbnail
Amazon 公佈了第三季的財報,Q3營收年增15%(去年同期是37%)至1108億低於預期的1116億,EPS $6.12也遠低於市場預期的 $8.92。消費者們重返實體店讓基期高的電商遭遇成長放緩,預計Q4的銷售年增會在4-12%之間,也比預期的13.2%低。
Thumbnail
初稿 筆者目前的工作環境是採用 AWS 的 Cloud9 服務,機房是選擇印度的孟買,會採用這個方案主要是筆者很懶惰:原因是之前在 Upwork 上面找到的印度軟體開發工程師很多團隊,每一次都要幫忙設置每組團隊的開發環境,幾乎每次第一個問題就是詢問 FTP 帳號、密碼,天啊!這是什麼時代了,居然還要
Thumbnail
一張圖講完今年會議重點,幾乎都放在台灣企業的數位轉型浪潮上面,主要包含雲端與AI技術的導入 今年第二次參與AWS高峰會,一如往常的每年都有很多新的嘗試與實驗,跟去年大玩AI應用的路線不同的地方在於,今年的會議帶出很多企業轉型與DevOps的議題