自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

生成式人工智能潛力的釋放:軟件工程師的MLOps和LLM部署策略

譯文
人工智能
本文將探索MLOps策略和LLM部署解決方案,以利用生成式人工智能,并在人工智能創(chuàng)新的變革時代釋放前所未有的潛力。

譯者 | 李睿

審校 | 重樓

生成式人工智能最近的爆發(fā)標志著機器學(xué)習(xí)模型的能力發(fā)生了翻天覆地的變化。像DALL-E 2、GPT-3和Codex這樣的人工智能系統(tǒng)表明,人工智能系統(tǒng)在未來可以模仿人類獨特的技能,例如創(chuàng)作藝術(shù)、進行對話,甚至編寫軟件。然而,有效地部署和管理這些新興的大型語言模型(LLM)給組織帶來了巨大的挑戰(zhàn)。

本文將為軟件工程師提供支持研究的解決方案策略,通過利用機器學(xué)習(xí)運營(MLOps)最佳實踐來順利集成生成式人工智能,并詳細介紹經(jīng)過驗證的技術(shù)以部署LLM以優(yōu)化效率,在生產(chǎn)中對其進行監(jiān)控,不斷更新以提高性能,并確保它們在各種產(chǎn)品和應(yīng)用程序中協(xié)同工作。通過遵循所提出的方法,人工智能從業(yè)者可以規(guī)避常見的陷阱,并成功地利用生成式人工智能的力量來創(chuàng)造商業(yè)價值并讓用戶受益。

生成式人工智能時代

生成式人工智能是人工智能進步的證明,標志著與傳統(tǒng)模型的重大背離。這種方法的重點是根據(jù)從大量數(shù)據(jù)中識別出的模式生成新的內(nèi)容,無論是文本、圖像還是聲音。這種能力具有深遠的含義。

由于生成式人工智能的應(yīng)用,從生命科學(xué)行業(yè)到娛樂行業(yè),各行各業(yè)都在見證著革命性的變化。無論是開發(fā)新的藥物還是創(chuàng)作音樂,這項技術(shù)的影響是不可否認的,并將繼續(xù)塑造許多行業(yè)的未來發(fā)展軌跡。

理解大型語言模型(LLM)

大型語言模型通常稱為LLM,是人工智能模型的一個子集,旨在理解和生成類似人類的文本。它們處理和產(chǎn)生大量連貫和場景相關(guān)的文本的能力使其與眾不同。然而,LLM具有革命性的特性也帶來了復(fù)雜性。考慮到這些模型的大小和計算需求,有效地部署和服務(wù)這些模型需要一種細致入微的方法。將LLM集成到應(yīng)用程序中的復(fù)雜性強調(diào)了對專門策略和工具的需求。

LLM部署框架

1.AI-Optimized vLLM

AI-Optimized vLLM是一個專門的框架,旨在滿足當(dāng)代人工智能應(yīng)用的需求。這一架構(gòu)經(jīng)過精心設(shè)計以處理大量數(shù)據(jù)集,能夠確保即使在困難的條件下也能快速響應(yīng)。

(1)關(guān)鍵特性

  • 高效的數(shù)據(jù)處理:能夠處理大型數(shù)據(jù)集,沒有明顯的延遲
  • 快速響應(yīng)時間:優(yōu)化周轉(zhuǎn)過程,確保及時交付結(jié)果
  • 靈活集:旨在與各種應(yīng)用程序和平臺兼容

(2)優(yōu)點

  • 可擴展性:可以輕松處理不斷增加的數(shù)據(jù)負載,而不會影響性能
  • 用戶友好界:簡化模型集成和預(yù)測過程

(3)缺點

  • 資源密集型:這可能需要大量的計算資源來實現(xiàn)最佳性能。
  • 學(xué)習(xí)曲線:雖然用戶友好,但對于入門的新手可能需要時間來充分利用它的功能。

(4)示例代碼

離線批量服務(wù):

Python 
 # Install the required library
 # pip install ai_vllm_library
 from ai_vllm import Model, Params, BatchService

 # Load the model
 model = Model.load("ai_model/llm-15b")

 # Define parameters
 params = Params(temp=0.9, max_tokens=150)

 # Create a batch of prompts
 prompts = ["AI future", "Generative models", "MLOps trends", "Future of robotics"]

 # Use the BatchService for offline batch predictions
 batch_service = BatchService(model, params)

 results = batch_service.predict_batch(prompts)

 # Print the results
 for prompt, result in zip(prompts, results):
 print(f"Prompt: {prompt}\nResult: {result}\n")

API服務(wù)器:

Python 
 # Install the required libraries
 # pip install ai_vllm_library flask

 from ai_vllm import Model, Params
 from flask import Flask, request, jsonify
 app = Flask(__name__)

 # Load the model
 model = Model.load("ai_model/llm-15b")

 # Define parameters
 params = Params(temp=0.9, max_tokens=150)
 @app.route('/predict', methods=['POST'])

 def predict():
 data = request.json
 prompt = data.get('prompt', '')
 result = model.predict([prompt], params)
 return jsonify({"result": result[0]})

 if __name__ == '__main__':
 app.run(port=5000)

2.GenAI文本推理

GenAI文本推理是一個在處理基于語言的任務(wù)時以其適應(yīng)性和效率而表現(xiàn)突出的框架。它提供了一種精簡的文本生成方法,強調(diào)速度和連貫性。

(1)關(guān)鍵特性

  • 自適應(yīng)文本生成:能夠生成場景相關(guān)和連貫的文本
  • 優(yōu)化架構(gòu):完成快速文本生成任務(wù)
  • 多功能應(yīng)用:適用于各種基于文本的人工智能任務(wù),而不僅僅是生成

(2)優(yōu)點

  • 高質(zhì)量輸出始終如一地生成連貫且與場景相關(guān)的文本
  • 易于集成簡化的API和功能使其易于集成到項目中

(3)缺點

  • 專用性:雖然對于文本任務(wù)非常出色,但對于非文本人工智能操作可能不太通用。
  • 資源要求:最佳性能可能需要相當(dāng)大的計算能力。

與Docker集成的Web服務(wù)器示例代碼

(1)Web服務(wù)器代碼(app.py)

Python 
 # Install the required library
 # pip install genai_inference flask

 from flask import Flask, request, jsonify
 from genai_infer import TextGenerator
 app = Flask(__name__)
 
 # Initialize the TextGenerator
 generator = TextGenerator("genai/llm-15b")
 @app.route('/generate_text', methods=['POST'])
 
 def generate_text():
  data = request.json
  prompt = data.get('prompt', '')
  response = generator.generate(prompt)
  return jsonify({"generated_text": response})
 
 if __name__ == '__main__':
 app.run(host='0.0.0.0', port=5000)

(2)Dockerfile

Dockerfile 
 # Use an official Python runtime as the base image
 FROM python:3.8-slim

 # Set the working directory in the container
 WORKDIR /app

 # Copy the current directory contents into the container
 COPY . /app

 # Install the required libraries
 RUN pip install genai_inference flask

 # Make port 5000 available to the world outside this container
 EXPOSE 5000

 # Define environment variable for added security
 ENV NAME World

 # Run app.py when the container launches
 CMD ["python", "app.py"]

(3)構(gòu)建和運行Docker容器要構(gòu)建Docker鏡像并運行容器,通常會使用以下命令:

Shell 
 docker build -t genai_web_server .
 docker run -p 5000:5000 genai_web_server

(4)API調(diào)用:一旦服務(wù)器啟動并在Docker容器中運行,API調(diào)用就可以使用curl或任何HTTP客戶端工具對/generate_text端點進行調(diào)用:

Shell 
 curl -X POST -H "Content-Type: application/json" -d '{"prompt":"The future of AI"}' http://localhost:5000/g

3.MLOps OpenLLM平臺深入研究

MLOps OpenLLM平臺是人工智能框架海洋中的一個燈塔,特別是為LLM量身定制的。它的設(shè)計理念促進了LLM在各種環(huán)境中的無縫部署、管理和擴展。

(1)關(guān)鍵特性

  • 可擴展架構(gòu):用于處理小規(guī)模應(yīng)用程序和企業(yè)級系統(tǒng)的需求
  • 直觀的API:簡化的接口,減少學(xué)習(xí)曲線,提高開發(fā)人員的生產(chǎn)力
  • 優(yōu)化LLM:專門的組件迎合大型語言模型的獨特要求

(2)優(yōu)點

  • 多功能性:適用于許多應(yīng)用程序,從聊天機器人到內(nèi)容生成系統(tǒng)
  • 效率:簡化操作,確??焖夙憫?yīng)時間和高吞吐量
  • 社區(qū)支持:由一個充滿活力的社區(qū)支持,有助于持續(xù)改進

(3)缺點

  • 初始設(shè)置的復(fù)雜性雖然平臺是用戶友好的,但初始設(shè)置可能需要更深入的了解。
  • 資源強度對于更大的模型,平臺可能需要大量的計算資源。

Web服務(wù)器代碼(Server .py):

Python 
 # Install the required library
 # pip install openllm flask
 
 from flask import Flask, request, jsonify
 from openllm import TextGenerator
 app = Flask(__name__)
 
 # Initialize the TextGenerator from OpenLLM
 generator = TextGenerator("openllm/llm-15b")

 @app.route('/generate', methods=['POST'])
 def generate():
  data = request.json
  prompt = data.get('prompt', '')
  response = generator.generate_text(prompt)
  return jsonify({"generated_text": response})
 
 if __name__ == '__main__':
 app.run(host='0.0.0.0', port=8080)

進行API調(diào)用:在服務(wù)器活動運行的情況下,API調(diào)用可以定向到/generate端點。下面是一個使用curl命令的簡單示例

Shell 
 curl -X POST -H "Content-Type: application/json" -d '{"prompt":"The evolution of MLOps"}' http://localhost:8080/gene

4.RayServe:一個具有見地的檢查

RayServe是Ray生態(tài)系統(tǒng)的一個重要組成部分,在開發(fā)人員和研究人員中越來越受歡迎。它是一個模型服務(wù)系統(tǒng),從頭開始設(shè)計,可以快速將機器學(xué)習(xí)模型(包括大型語言模型)投入生產(chǎn)。

(1)關(guān)鍵特性

  • 無縫擴展:RayServe可以從一臺機器擴展到一個大型集群,而無需修改代碼。
  • 框架不可知:它支持任何機器學(xué)習(xí)框架的模型,沒有約束。
  • 批處理和調(diào)度:高級功能,如自適應(yīng)批處理和調(diào)度是內(nèi)置的,優(yōu)化服務(wù)管道。

(2)優(yōu)點

  • 靈活性:RayServe可以同時服務(wù)于多個模型,甚至同一模型的多個版本。
  • 性能:高性能設(shè)計,確保低延遲和高吞吐量。

與Ray生態(tài)系統(tǒng)集成:作為Ray生態(tài)系統(tǒng)的一部分,它受益于Ray的功能,例如分布式訓(xùn)練和細粒度并行性。

(3)缺點

  • 學(xué)習(xí)曲線:雖然功能強大,但由于其廣泛的功能,新手最初可能會覺得具有挑戰(zhàn)性。
  • 資源管理:在集群環(huán)境中,謹慎的資源分配對于防止瓶頸至關(guān)重要。

Web服務(wù)器代碼(Server .py):

Python 
 # Install the required library
 # pip install ray[serve]
 import ray
 from ray import serve
 from openllm import TextGenerator
 
 ray.init()
 client = serve.start()
 
 def serve_model(request):
  generator = TextGenerator("ray/llm-15b")
  prompt = request.json.get("prompt", "")
  return generator.generate_text(prompt)
 
 client.create_backend("llm_backend", serve_model)
 client.create_endpoint("llm_endpoint", backend="llm_backend", route="/generate")

 if __name__ == "__main__":
  ray.util.connect("localhost:50051")

API調(diào)用的查詢隨著RayServe服務(wù)器的運行,API查詢可以被分派到/generate端點。下面是使用curl命令的示例:

Shell 
 curl -X POST -H "Content-Type: application/json" -d '{"prompt":"The intricacies of RayServe"}' http://localhost:8000/generate

軟件工程師的注意事項

隨著技術(shù)的發(fā)展,軟件工程師發(fā)現(xiàn)自己處于創(chuàng)新和實用性的十字路口。部署大型語言模型(LLM)也不例外。由于這些模型具有大的功能,它們帶來了挑戰(zhàn)和慮,工程師必須解決這些挑戰(zhàn)和慮,以充分利用它們的潛力。

部署LLM的技巧和最佳實踐:

  • 資源分配:考慮到LLM的計算量,確保足夠的資源分配是必不可少的。這包括內(nèi)存和處理能力,以確保模型運行最佳。
  • 模型版本控制:隨著LLM的發(fā)展,維護一個透明的版本控制系統(tǒng)可以幫助跟蹤變化,調(diào)試問題,并確??稍佻F(xiàn)性。
  • 監(jiān)控和記錄:密切關(guān)注模型的性能指標和記錄異常情況,可以先發(fā)制人,確保順利操作。
  • 安全協(xié)議:考慮到LLM可能處理的數(shù)據(jù)的敏感性,實施強大的安全措施是不可協(xié)商的。這包括數(shù)據(jù)加密、安全API端點和定期漏洞評估。

CI/CD在MLOps中的作用

持續(xù)集成和持續(xù)部署(CI/CD)是MLOps實現(xiàn)的支柱。它們的意義是多方面的:

  • 簡化更新:隨著LLM的不斷發(fā)展,CI/CD管道確保更新,改進或錯誤修復(fù)無縫集成和部署,而不會中斷現(xiàn)有服務(wù)。
  • 自動化測試:在任何部署之前,自動化測試可以驗證模型的性能,確保任何新的更改不會對其功能產(chǎn)生不利影響。
  • 一致性:CI/CD確保了從開發(fā)到生產(chǎn)的一致環(huán)境,減輕了“它在我的機器上工作”綜合癥。
  • 快速反饋循環(huán):任何問題,無論是模型還是基礎(chǔ)設(shè)施,都可以快速識別和糾正,從而使系統(tǒng)更具彈性。

總之,對于踏上LLM部署之路的軟件工程師來說,將最佳實踐與CI/CD的健壯性相結(jié)合,可以為在不斷發(fā)展的MLOps環(huán)境中取得成功鋪平道路。

原文標題:Generative AI Unleashed: MLOps and LLM Deployment Strategies for Software Engineers


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-10-31 11:40:06

2023-08-25 18:33:56

人工智能神經(jīng)網(wǎng)絡(luò)

2017-08-31 14:00:35

軟件工程師人工智能機器學(xué)習(xí)

2023-06-13 14:40:50

人工智能AI

2021-01-11 11:04:53

人工智能AI人工智能技術(shù)

2023-05-05 14:02:59

人工智能聊天機器人

2023-07-07 10:52:18

2023-09-18 10:39:53

2023-09-28 15:04:53

人工智能AI

2023-08-29 11:36:49

2023-08-02 18:26:31

2009-12-03 12:29:54

嵌入式軟件工程師

2009-02-26 10:49:29

軟件工程師職業(yè)生涯職業(yè)規(guī)劃

2024-02-28 16:30:15

人工智能云計算AI

2023-07-17 13:41:26

人工智能測試數(shù)據(jù)

2023-10-31 14:04:29

人工智能AI

2013-09-03 09:30:44

軟件工程師軟件工程師頭銜

2022-09-16 08:00:00

軟件工程師求職薪酬

2022-07-29 09:12:44

軟件硬件開發(fā)

2023-04-25 16:21:13

人工智能ChatGPT機器人
點贊
收藏

51CTO技術(shù)棧公眾號