GenAI 技術堆棧架構師指南 - 十種工具

這篇文章于 2024 年 6 月 3 日首次出現在 The New Stack 上。

我之前寫過關于現代數據湖參考架構的文章,解決了每個企業面臨的挑戰——更多的數據、老化的Hadoop工具(特別是HDFS)以及對RESTful API(S3)和性能的更大需求——但我想填補一些空白。

現代數據湖(有時稱為數據湖倉一體)是基于一半數據湖和一半開放表格式規范 (OTF) 的數據倉庫。兩者都建立在現代對象存儲之上。

同時,我們深入思考了組織如何構建能夠支持您所有 AI/ML 需求的 AI 數據基礎設施,而不僅僅是訓練集、驗證集和測試集的原始存儲。換句話說,它應該包含訓練大型語言模型、MLOps 工具、分布式訓練等所需的計算。基于這一思路,我們整理了另一篇關于如何使用現代數據湖參考架構來支持您的 AI/ML 需求的論文。下圖展示了現代數據湖參考架構,并突出顯示了生成式 AI 所需的功能。

來源:現代數據湖中的 AI/ML

1. 數據湖

企業數據湖建立在對象存儲之上。不是老式的、基于設備的對象存儲,它服務于廉價和深入的存檔用例,而是現代的、高性能的、軟件定義的和 Kubernetes 原生對象存儲,它們是現代 GenAI 堆棧的基石,它們可以作為服務(AWS、GCP、Azure)或本地或混合/兩者提供,例如 MinIO。這些數據湖必須支持流式工作負載,必須具有高效的加密和糾刪碼,需要以原子方式存儲對象的元數據,并支持 Lambda 計算等技術。鑒于這些現代替代方案是云原生的,它們將與其他云原生技術的整個堆棧集成 - 從防火墻到可觀測性再到用戶和訪問管理 - 開箱即用。

2. 基于OTF的數據倉庫

對象存儲也是基于 OTP 的數據倉庫的底層存儲解決方案。將對象存儲用于數據倉庫可能聽起來很奇怪,但以這種方式構建的數據倉庫代表了下一代數據倉庫。這是由 Netflix、Uber 和 Databricks 編寫的 OTF 規范實現的,這些規范使得在數據倉庫中無縫使用對象存儲成為可能。

OTF——Apache Iceberg、Apache Hudi 和 Delta Lake——之所以被編寫,是因為市場上沒有可以處理創作者數據需求的產品。 從本質上講,它們(以不同的方式)所做的是定義一個可以構建在對象存儲之上的數據倉庫。對象存儲提供了可擴展容量和高性能的組合,這是其他存儲解決方案無法做到的。由于這些是現代規范,因此它們具有老式數據倉庫所不具備的高級功能,例如分區演變、模式演變和零拷貝分支。

兩個可以在 MinIO 之上運行基于 OTF 的數據倉庫的 MinIO 合作伙伴是 Dremio 和 Starburst。

Dremio Sonar(數據倉庫處理引擎)

Dremio Arctic(數據倉庫目錄)

開放數據湖倉一體 |Starburst(目錄和處理引擎)

3. 機器學習操作 (MLOps)

MLOps 之于機器學習,就像 DevOps 之于傳統軟件開發一樣。兩者都是一組旨在改善工程團隊(開發或 ML)和 IT 運營 (Ops) 團隊之間協作的實踐和原則。目標是使用自動化來簡化開發生命周期,從規劃和開發到部署和運營。這些方法的主要好處之一是持續改進。

MLOps 技術和功能在不斷發展。您需要一個由主要參與者支持的工具,確保該工具不斷開發和改進,并將提供長期支持。這些工具中的每一個都在后臺使用 MinIO 來存儲模型生命周期中使用的工件。

MLRun(Iguazio,被麥肯錫公司收購)

MLflow (Databricks)

Kubeflow (谷歌)

4. 機器學習框架

機器學習框架是用于創建模型并編寫訓練模型的代碼的庫(通常用于 Python)。這些庫具有豐富的功能,因為它們為神經網絡提供了不同的損失函數、優化器、數據轉換工具和預構建層的集合。這兩個庫提供的最重要的功能是張量。張量是可以移動到 GPU 上的多維數組。它們還具有自動微分功能,可在模型訓練期間使用。

當今最流行的兩個機器學習框架是 PyTorch(來自 Facebook)和 Tensorflow(來自 Google)。

5. 分布式訓練

分布式模型訓練是跨多個計算設備或節點同時訓練機器學習模型的過程。這種方法加快了訓練過程,特別是當需要大型數據集來訓練復雜模型時。

在分布式模型訓練中,數據集被劃分為更小的子集,每個子集由不同的節點并行處理。這些節點可以是集群中的單個計算機、單個進程或 Kubernetes 集群中的單個 Pod。他們可能有權訪問 GPU。每個節點獨立處理其數據子集,并相應地更新模型參數。下面的五個庫使開發人員免受分布式訓練的大部分復雜性的影響。如果您沒有集群,您可以在本地運行它們,但您需要一個集群才能看到訓練時間的顯著減少。

6. 模型中心

模型中心并不是現代數據湖參考架構的真正組成部分,但我還是將其包括在內,因為它對于快速開始使用生成式 AI 非常重要。Hugging Face 已成為大型語言模型的去處。Hugging Face 擁有一個模型中心,工程師可以在其中下載預先訓練的模型并共享他們自己創建的模型。Hugging Face 還是 Transformers 和 Datasets 庫的作者,這些庫使用大型語言模型 (LLMs) 以及用于訓練和微調它們的數據。

還有其他模型中心。所有主要的云供應商都有某種方式上傳和共享模型,但 Hugging Face 憑借其模型和庫集合,已成為該領域的領導者。

7. 應用框架

應用程序框架有助于將 合并LLM到應用程序中。使用 an LLM 與使用標準 API 不同。必須做很多工作才能將用戶請求轉化為LLM可以理解和處理的內容。例如,如果您構建了一個聊天應用程序,并且想要使用 Retrieval Augmented Generation (RAG),則需要對請求進行標記化,將標記轉換為向量,與向量數據庫集成(如下所述),創建提示,然后調用 LLM.生成式 AI 的應用程序框架將允許您將這些操作鏈接在一起。當今使用最廣泛的應用程序框架是LangChain。它與其他技術集成,例如,Hugging Face Transformer 庫和用于文檔處理的 Unstructured 庫。它功能豐富,使用起來可能有點復雜,所以下面列出了一些替代方案,適合那些沒有復雜要求并想要比LangChain更簡單的東西的人。

8. 文件處理

大多數組織沒有一個包含干凈和準確文檔的存儲庫。相反,文檔以多種格式分布在組織中的各種團隊門戶中。為生成式 AI 做好準備的第一步是構建一個管道,該管道僅獲取已批準用于生成式 AI 的文檔,并將它們放置在矢量數據庫中。對于大型全球組織來說,這可能是生成式人工智能解決方案中最艱巨的任務。

文檔管道應將文檔轉換為文本,對文檔進行分塊,并通過嵌入模型運行分塊文本,以便將其向量表示形式保存到向量數據庫中。幸運的是,一些開源庫可以對許多常見的文檔格式做到這一點。下面列出了一些庫。這些庫可以與LangChain一起使用,以構建完整的文檔處理管道。

9. 向量數據庫

向量數據庫有助于語義搜索。了解這是如何完成的需要大量的數學背景,而且很復雜。但是,語義搜索在概念上很容易理解。假設您想找到所有討論與“人工智能”相關的任何內容的文檔。要在傳統數據庫上執行此操作,您需要搜索“人工智能”的所有可能的縮寫、同義詞和相關術語。

看起來像這樣:

SELECT?snippet
FROM?MyCorpusTable
WHERE?(text?like?'%artificial?intelligence%'?OR
?text?like?'%ai%'?OR
?text?like?'%machine?learning%'?OR
?text?like?'%ml%'?OR
??...?and?on?and?on?...
????

這種手動相似性搜索不僅費力且容易出錯,而且搜索本身也非常緩慢。向量數據庫可以接受如下所示的請求,并更快、更準確地運行查詢。如果您希望使用 Retrieval Augmented Generation,那么快速準確地運行語義查詢的能力非常重要。

{
Get?{
?MyCorpusTable(nearText:?{concepts:?["artificial?intelligence"]})?

??????{snippet}
????}
}?

下面列出了四種流行的向量數據庫。Milvus

Pgvector

Pinecone

Weaviate

10. 數據探索和可視化

擁有允許您整理數據并以不同的方式可視化數據的工具始終是一個好主意。下面列出的 Python 庫提供數據操作和可視化功能。這些似乎是傳統 AI 才需要的工具,但它們在生成式 AI 中也派上用場。例如,如果你正在做情緒分析或情緒檢測,那么你應該檢查你的訓練、驗證和測試集,以確保你在所有類中都有適當的分布。

結論

這就是:可以在現代數據湖參考架構中找到的 10 項功能,以及每種功能的具體供應商產品和庫。下表總結了這些工具。

1 . Data Lake - MinIO, AWS, GCP, Azure

2 . OTF-based data warehouse - Dremio, Dremio Sonar, Dremio Arctic, Starburst, Open Data Lakehouse | Starburst

3 . Machine learning framework - PyTorch, TensorFlow

4 . Machine learning operations - MLRun (McKinsey & Company), MLflow (Databricks), Kubeflow (Google)

5 . Distributed training - DeepSpeed (from Microsoft), Horovod (from Uber), Ray (from Anyscale), Spark PyTorch Distributor (from Databricks), Spark Tensoflow Distributor (from Databricks)

6 . Model hub - Hugging Face

7 . Application framework - LangChain, AgentGPT, Auto-GPT, BabyAGI, Flowise, GradientJ, LlamaIndex, Langdock, TensorFlow (Keras API)

8 . Document processing - Unstructured, Open-Parse

9 . Vector database - Milvus, Pgvector, Pinecone, Weaviate

10 . Data exploration and visualization - Pandas, Matplotlib, Seaborn, Streamlit

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44324.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《javascript語言精粹》學習筆記之函數特性

分析javascript javascript比較好的思想:函數、弱類型、動態對象、對象字面量表示法 不好的思想:基于全局變量的編程模型 函數 函數對象 函數就是對象,新創建的函數會連接到Function.prototype上,沒和函數創建時附帶有兩個隱藏…

前端--第一個前端程序

第一個前端程序 第一步: 使用記事本,編寫代碼 在你的一個磁盤里面創建一個文件夾,名為前端,然后在里面新建一個記事本,在里面寫如下代碼,注意一定要使用英文,然后把后綴名稱改為.html。 第二…

你明白C++中的多態嗎?(暑假提升-多態專題)

內不欺己,外不欺人。———孔子 有趣的多態 1、前言2、概念3、多態定義與產生條件4、多態的重要組成成員-(虛函數)5、虛函數的重寫(覆蓋)6、輔助關鍵字override與final(了解即可)7、重載,重定義(隱藏),重寫(覆蓋)8、抽象類9、多態的原理9、1、…

PHP老照片修復文字識別圖像去霧一鍵摳圖微信小程序源碼

🔍解鎖復古魅力,微信小程序黑科技大揭秘!老照片修復&更多神奇功能等你來試! 📸 【老照片修復,時光倒流的美顏術】 你是否珍藏著一堆泛黃的老照片,卻因歲月侵蝕而模糊不清?現在…

實驗02 黑盒測試(組合測試、場景法)

1. 組合測試用例設計技術 指出等價類劃分法和邊界值分析法通常假設輸入變量相互獨立,但實際情況中變量間可能存在關聯。全面測試:覆蓋所有輸入變量的所有可能組合,測試用例數量隨輸入變量的增加而指數增長。 全面測試需要對所有輸入的各個取…

2008年上半年軟件設計師【上午題】真題及答案

文章目錄 2008年上半年軟件設計師上午題--真題2008年上半年軟件設計師上午題--答案 2008年上半年軟件設計師上午題–真題 2008年上半年軟件設計師上午題–答案

按模版批量生成定制合同

提出問題 一個儀器設備采購公司,商品合同采購需要按模版生成的固定的文件,模板是固定的,只是每次需要替換信息,然后打印出來寄給客戶。 傳統方法 如果手工來做這個事情,準備好數據之后,需要從Excel表格中…

Qt5 Ubuntu18 QStackedWidget

1、在實際項目開發過程遇到,如果通過UI插件的屬性設置,通過對默認的兩個頁面進行提升需要切換操作的對象,如果該對象需要外部接口傳入數據,實現界面信息的實時刷新,這樣會失敗,失敗的原因很好理解&#xff…

Ubuntu安裝Pytorch3d

查看對應版本的pytorch3d https://anaconda.org/pytorch3d/pytorch3d/files?page2下載后保存到服務器上安裝 conda install pytorch3d-0.7.7-py310_cu118_pyt210.tar.bz2檢查是否安裝成功 python -c "from pytorch3d.io import load_ply" # Check for pytorch3d i…

高效應對網絡攻擊,威脅檢測響應(XDR)平臺如何提升企業應急響應能力

在數字化時代,企業面臨的網絡攻擊威脅持續增加,如惡意軟件、勒索軟件、釣魚攻擊、DDoS攻擊等。這些威脅不僅危及企業數據安全、系統穩定,還損害了品牌形象和市場信任。隨著云計算、大數據、物聯網的廣泛應用,企業網絡攻擊面擴大&a…

簡單分享下prettytable--快速制作表格

一、安裝: pip install prettytable 二、實例: from prettytable import PrettyTabletable PrettyTable()table.field_names ["學號", "姓名", "語文", "數學", "英語", "物理", "化…

MAVLink代碼生成-C#

一. 準備Windows下安裝環境 Python 3.3 – 官網鏈接下載Python future模塊 –pip3 install future TkInter (GUI 工具). – python for Windows自帶,無需下載環境變量PYTHONPATH必須包含mavlink存儲庫的目錄路徑。 –set PYTHONPATH你的mavlink源碼路徑 源碼下載在…

【昆工主辦|7月昆明】第三屆綠色建筑、土木工程與智慧城市國際會議(GBCESC 2024)

隨著全球城市化進程的加速,綠色建筑、土木工程與智慧城市等議題逐漸成為了行業內外關注的焦點。在這一背景下,第三屆綠色建筑、土木工程與智慧城市國際會議(GBCESC 2024)的召開,無疑將為相關領域的研究者、學者及從業者…

原理和組成

能力要素:(1)人員要素:“正確選人”。(2)過程要素:“正確做事”。(3)技術要素:“高效做事”。(4)資源要素:“保障做事”。…

【ARM】MDK-解決Flexnet服務的error:-13.66

【更多軟件使用問題請點擊億道電子官方網站】 1、 文檔目標 記錄MDK網絡版部署服務器error :-13.66的問題解決方案,后續有相關發現持續更新。 2、 問題場景 在客戶的服務器上部署Flexnet服務,將license文件檢查過后,確認MAC地址…

如何才能半個月學習完自動化測試,成功跳槽漲薪?

一直想寫類似的文章&#xff0c;但是一直沒有時間&#xff0c;正好乘此周末&#xff0c;終于可以寫寫我的見解了<關于如何學習自動化測試>&#xff0c;其實自動化測試的知識很寬泛&#xff0c;具體細分又可以分為&#xff1a;Web自動化測試&#xff08;PythonSelenium&am…

全新UI自助圖文打印系統小程序源碼 PHP后端 附教程

最新自助圖文打印系統和證件照云打印小程序源碼PHP后端&#xff0c;為用戶用戶自助打印的服務&#xff0c;包括但不限于文檔、圖片、表格等多種格式的文件。此外&#xff0c;它們還提供了諸如美顏、換裝、文檔打印等功能&#xff0c;以及后臺管理系統&#xff0c;方便管理員對打…

QianfanLLMEndpoint和QianfanChatEndpoint的區別

一、功能定位 QianfanLLMEndpoint&#xff1a; 功能定位&#xff1a;專注于提供基礎的文本補全能力&#xff0c;主要適用于需要純文本輸出的場景。輸入/輸出&#xff1a;接受字符串提示作為輸入&#xff0c;并返回字符串形式的補全結果。應用場景&#xff1a;適用于文本生成、…

【密碼學】公鑰密碼的基本概念

在先前我寫的密碼學體制文章中談到&#xff0c;現代密碼學分為兩大體制&#xff0c;介紹了一些有關對稱密碼體制諸如流密碼和分組密碼的內容。本文的主要內容則切換到公鑰密碼體制&#xff08;又稱非對稱密碼體制&#xff09;&#xff0c;簡述了公鑰密碼體制的基本思想和應用方…

六個Python實用技巧,大幅提升你的編程效率!

關注星標&#xff0c;每天學習Python新技能 Python作為當下最流行的編程語言之一&#xff0c;以其簡潔易懂的語法和強大的第三方庫支持&#xff0c;深受開發者的喜愛。在實際開發中&#xff0c;掌握一些實用的Python小技巧&#xff0c;可以大大提升編程效率和代碼質量。 本文…