# [AWS] AWS DEV DAY 2023
### :small_blue_diamond: Date: 2023/10/20(五)
### :small_blue_diamond: Location: 南港展覽館二館
### :small_blue_diamond: https://aws.amazon.com/tw/events/devday-2023/
## :white_check_mark: Opening Keynote
### :clock10: 在AWS上改善開發者體驗—深入探討產業最佳實踐(英文議程)
##### :microphone: Teddy Aryono, Senior Solutions Architect, AWS DevAx
> 在2019-2023年 資訊過於分散
> 如何打造一個良好的DX(developer experience)環境
:star: Reduce cognitive load
- 建立有組織性的架構程式與文件
- 擁有易於使用的開發工具
- 開發/測試/部署自動化
:star:Core dimensions

[[reference](https://queue.acm.org/detail.cfm?id=3595878)]
- Feedback loops:對回應的速度與質量的執行
- cognitive load:開發人員執行任務所需的認知任務的承載量
- Flow state:一種精神狀態,開發人員執行某項任務可以完全沉浸在其中

*Example DevEx Metrics (Abi Noda et al., 2023)*
:sunny: AWS Coding Companion
- AWS CodeCatalyst : 建立一個專案並做CICD、開發、測試與正式環境配置
- AWS CodeCommit : 程式碼託管
- AWS CodeBuild : 編譯程式、執行測試、封裝
- AWS CodeDeploy : 自動化部署服務到各雲端空間、內部伺服器等
### :clock11: 用生成式 AI 翻轉數位體驗:影片搜尋和內容審查
##### :microphone: Gordon Wang, Senior AI/ML Specialist, AWS Hong Kong
如何利用生成式AI對數位內容進行搜尋與審查是否符合規範
內容審核方法(content moderation)
- explicit nudity 分類
- suggestion image > data labeling > train > result
新的規範或是問題可再透過提示詞(prompt)增加再訓練
### :clock1130: 與NVIDIA共舞: 聚焦生成式AI軟體生態系
##### :microphone: Dr. William Wong,NVIDA 開發者關係經理
NVIDA 除了提供硬體設備,近年提供SDK [NeMo][1],只要下載下套件就可以在非本機(不需雲端平台)即可使用生成式AI創造新的應用
[1]: https://github.com/NVIDIA/NeMo
### :clock1130: 出版產業 stable diffusion 的應用
##### :microphone: Veck Hsiao,Going Cloud Senior Solution Architect
AWS協力廠商Going Cloud 提供stable diffusion應用服務在出版產業的Demo
## :heavy_check_mark: 下午分場
### Track1 - 運用 Amazon 向量資料庫促進 Generative AI 創新應用
##### :microphone: Shih-Yong Wang, Mgr, Solutions Architecture, AWS
機器學習模型訓練都有Input & Output
Input可能是圖片、影音、語言等,餵給機器訓練就需要轉為「向量體(vector embedding)」
轉向量化模型重點:轉出來的大小.
> Word to Word Embedding 範例
[[reference](https://medium.com/@eugene-s/the-rise-of-embedding-technology-and-vector-databases-in-ai-4a8db58eb332)]
存放這些向量體的資料庫「向量資料庫(vector-databases)」
講者特別說明的向量資料庫有 :
- chroma(開源軟體,不包含搜尋功能)
- postgresql + pgvector(db&search)
向量化訓練出一個模型,各向量體可以視覺化成2D 或 3D 線圖
可見在視覺化後,各詞的座落位置差距就是詞語間的差異
使用模型時就從座落的位置尋找最接近為output
其尋找的方式有分成多個不同的演算法
講者特別提出下列尋找最接近的演算法(approximate nearest neighbor):
- HNSW(分層往下找)
- IVF(先預處理分類與類別)
> A typical search flow
[[reference](https://github.com/chatchat-space/Langchain-Chatchat)]
### Track1 - VMFIVE 如何結合 Amazon Bedrock 及 Stable Diffusion 打造面向行銷人的AI工具
##### :microphone: Ting-Yao Chang, Solutions Architect, AWS . 白宗儒 BlakePai, 產品暨技術總監, VMFIVE
AWS協力廠商VMFIVE提供服務在行銷方面的應用
### Track1 - 利用 AWS 雲服務,構建端到端的 Generative AI 應用
##### Dennis Chang, Sr Partner Solutions Architect, AWS
**Generative AI** 利用已預訓練過的模型,以提示詞(新的題問or問題)再訓練
「prompt」相關技術:Zero-shot.few-shot.chain of thoughts...
如要專注在某個領域,講者建議如能用prompt方法就不要走到fine-tuning
如要為了達到更好的效果,進行fine-tuning會需要更多資料才能再次進行模型訓練,否則會讓模型overfitting
:blue_book: ReadMore
[【遷移學習】一個訓練大型網路重要的技巧:Fine Tuning][1]
[1]: https://jason-chen-1992.weebly.com/home/fine-tuning "游標顯示"
### Track3 - 玩轉 CDK:打造端雲架構的積木
##### :microphone: Cliff Lu Senior Solutions Architect, AWS
利用CDK可堆疊(封裝)多個AWS雲端的服務產品進行啟動與控制並能建立起版本控制
以達到基礎設施設定成為可控狀態
雲端基礎設施建置可利用.yaml或.json等配置檔調整進行,但可能與現行規格不符造成死機風險
CDK則可以提早一點做確認在上線前就可以提供適當的配置資訊
import CDK 創建元素
cdk = core framework(app.stacks.resources) + cli + construct library
運用時機
cdk stack(deploy) & cdk construct(build)

[[reference](https://azole.medium.com/aws-cdk-%E5%88%9D%E6%8E%A2-5b481d3970bd)]
AWS CLI = elastic LB + fargate Service (+ ECS task)
傳統作法與cdk差異:
- Source Code + Package = Source Code + constructs Artifact
- cloud assembly Process + Resources = stack + Resources
## 名詞註釋
DX(developer experience)
: 開發者體驗
生成式AI(Generative AI)
: 利用已做過訓練的機器學習模型做為基礎模型(FM)創造成新的對話、圖片、音樂等
Stable Diffusion
: 2022年發布的深度學習文字到圖像生成模型。它主要用於根據文字的描述產生詳細圖像
CDK(cloud development kit)
: to definition of infrastrcture