本篇文章主要介紹如何使用新的Hugging Face LLM推理容器將開源LLMs,比如BLOOM大型語言模型部署到亞馬遜云科技Amazon SageMaker進行推理的示例。我們將部署12B Open Assistant Model,這是一款由開放助手計劃訓練的開源Chat LLM。
這個示例包括:
設置開發環境
獲取全新Hugging Face LLM DLC
將開放助手12B部署到亞馬遜云科技Amazon SageMaker
進行推理并與我們的模型聊天
清理環境
什么是Hugging Face LLM Inference DLC?
Hugging Face LLM DLC是一款全新的專用推理容器,可在安全的托管環境中輕松部署LLM。DLC由文本生成推理(TGI)提供支持,這是一種用于部署和服務大型語言模型(LLM)的開源、專門構建的解決方案。TGI使用張量并行和動態批處理為最受歡迎的開源LLM(包括StarCoder、BLOOM、GPT-Neox、Llama和T5)實現高性能文本生成。文本生成推理已被IBM、Grammarly等客戶使用,Open-Assistant計劃對所有支持的模型架構進行了優化,包括:
張量并行性和自定義cuda內核
在最受歡迎的架構上使用flash-attention優化了用于推理的變形器代碼
使用bitsandbytes進行量化
連續批處理傳入的請求以增加總吞吐量
使用safetensors加速重量加載(啟動時間)
Logits扭曲器(溫度縮放、topk、重復懲罰…)
用大型語言模型的水印添加水印
停止序列,記錄概率
使用服務器發送事件(SSE)進行Token流式傳輸
官方支持的模型架構目前為:
BLOOM/BLOOMZ
MT0-XXL
Galactica
SantaCoder
gpt-Neox 20B(joi、pythia、lotus、rosey、chip、redPajama、open Assistant)
FLAN-T5-XXL(T5-11B)
Llama(vicuna、alpaca、koala)
Starcoder/santaCoder
Falcon 7B/Falcon 40B
借助亞馬遜云科技Amazon SageMaker上推出的全新Hugging Face LLM Inference DLC,亞馬遜云科技客戶可以從支持高度并發、低延遲LLM體驗的相同技術中受益,例如HuggingChat、OpenAssistant和Hugging Face Hub上的LLM模型推理API。
1.設置開發環境
使用SageMaker python SDK將OpenAssistant/pythia-12b-sft-v8-7k-steps部署到亞馬遜云科技Amazon SageMaker。需要確保配置一個亞馬遜云科技賬戶并安裝SageMaker python SDK。
如果打算在本地環境中使用SageMaker。需要訪問具有亞馬遜云科技Amazon SageMaker所需權限的IAM角色??梢栽谶@里找到更多關于它的信息。
2.獲取全新Hugging Face LLM DLC
與部署常規的HuggingFace模型相比,首先需要檢索容器URI并將其提供給HuggingFaceModel模型類,并使用image_uri指向該鏡像。要在亞馬遜云科技Amazon SageMaker中檢索新的HuggingFace LLM DLC,可以使用SageMaker SDK 提供的get_huggingface_llm_image_uri方法。此方法允許根據指定的 “后端”、“會話”、“區域” 和 “版本”檢索所需的Hugging Face LLM DLC 的 URI。
要將[Open Assistant Model](openAssistant/Pythia-12b-sft-v8-7K-steps)部署到亞馬遜云科技Amazon SageMaker,創建一個HuggingFaceModel模型類并定義終端節點配置,包括hf_model_id、instance_type等。使用g5.4xlarge實例類型,它有1個NVIDIA A10G GPU和64GB的GPU內存。
亞馬遜云科技Amazon SageMaker現在創建端點并將模型部署到該端點。這可能需要10-15分鐘。
4.進行推理并與模型聊天
部署終端節點后,可以對其進行推理。使用predictor中的predict方法在端點上進行推理??梢杂貌煌?a target="_blank">參數進行推斷來影響生成。參數可以設置在parameter中設置。
溫度:控制模型中的隨機性。較低的值將使模型更具確定性,而較高的值將使模型更隨機。默認值為0。
max_new_tokens:要生成的最大token數量。默認值為20,最大值為512。
repeption_penalty:控制重復的可能性,默認為null。
seed:用于隨機生成的種子,默認為null。
stop:用于停止生成的代幣列表。生成其中一個令牌后,生成將停止。
top_k:用于top-k篩選時保留的最高概率詞匯標記的數量。默認值為null,它禁用top-k過濾。
top_p:用于核采樣時保留的參數最高概率詞匯標記的累積概率,默認為null。
do_sample:是否使用采樣;否則使用貪婪的解碼。默認值為false。
best_of:生成best_of序列如果是最高標記logpros則返回序列,默認為null。
details:是否返回有關世代的詳細信息。默認值為false。
return_full_text:是返回全文還是只返回生成的部分。默認值為false。
truncate:是否將輸入截斷到模型的最大長度。默認值為true。
typical_p:代幣的典型概率。默認值null。
水?。荷蓵r使用的水印。默認值為false。
可以在swagger文檔中找到TGI的開放api規范。
openAssistant/Pythia-12b-sft-v8-7K-steps是一種對話式聊天模型,這意味著我們可以使用以下提示與它聊天:
先試一試,問一下夏天可以做的一些很酷的想法:
現在,使用不同的參數進行推理,以影響生成。參數可以通過輸入的parameters屬性定義。這可以用來讓模型在“機器人”回合后停止生成。
現在構建一個快速gradio應用程序來和它聊天。
程序運行成功后,顯示如下聊天窗口:
現在已經成功地將Open Assistant模型部署到亞馬遜云科技Amazon SageMaker并對其進行了推理。此外,還構建了一個快速的gradio應用程序,可以與模型聊天。
現在,可以使用亞馬遜云科技Amazon SageMaker上全新Hugging Face LLM DLC構建世代人工智能應用程序的時候了。
5.清理環境
刪除模型和端點。
6.總結
從上面的部署過程,可以看到整個部署大語言模型的過程非常簡單,這個主要得益于SageMaker Hugging Face LLM DLC的支持,還可以通過將Amazon SageMaker部署的端點與應用集成,滿足實際的業務需求。
審核編輯 黃宇
-
語言模型
+關注
關注
0文章
439瀏覽量
10064 -
亞馬遜
+關注
關注
8文章
2493瀏覽量
82433 -
LLM
+關注
關注
0文章
207瀏覽量
240
發布評論請先 登錄
相關推薦
評論