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

如何采用最少的代碼啟動LLM?API服務(wù)器 原創(chuàng)

發(fā)布于 2024-6-14 06:54
瀏覽
0收藏

本文介紹了兩種無需編寫代碼即可設(shè)置開源LLM API服務(wù)器的解決方案。

近幾個月來,開源的大型語言模型一直在迅速發(fā)展。Meta公司發(fā)布了LLaMA,隨后又發(fā)布了一系列其他模型,這導(dǎo)致很多企業(yè)運行自己的LLM的興趣激增。

擁有自己的LLM(例如LLaMA2)提供了一些優(yōu)勢:企業(yè)可以更好地控制大型語言模型的使用,確保數(shù)據(jù)的隱私,允許定制以適應(yīng)特定需求,并促進(jìn)與現(xiàn)有系統(tǒng)的無縫集成。然而,企業(yè)運行自己的LLM也有許多挑戰(zhàn),其中包括設(shè)置必要的IT基礎(chǔ)設(shè)施,選擇適當(dāng)?shù)腖LM,使用自己的數(shù)據(jù)運行并可能微調(diào)模型,擴(kuò)展模型以滿足需求,以及解決許可問題。

幸運的是,有許多可用的解決方案可以簡化開始使用開源LLM的過程。本文將介紹兩種無需編寫代碼即可設(shè)置開源LLM API服務(wù)器的解決方案。

為什么選擇Web API服務(wù)器?

如何采用最少的代碼啟動LLM?API服務(wù)器-AI.x社區(qū)

web應(yīng)用程序和LLM服務(wù)器如何交互

機(jī)器學(xué)習(xí)項目的固有挑戰(zhàn)之一是開發(fā)周期長。當(dāng)企業(yè)希望將LLM功能添加到現(xiàn)有產(chǎn)品中時,將開發(fā)和部署模型所需的時間最小化是至關(guān)重要的。

開源LLM尤其具有挑戰(zhàn)性,因為這些大型語言模型是用各種編程語言和框架編寫的。當(dāng)嘗試將這些模型合并到現(xiàn)有應(yīng)用程序中時,這種多樣性可能會帶來集成挑戰(zhàn)。

最小化開發(fā)和集成時間的一個解決方案是建立一個Web API。如果企業(yè)已經(jīng)在使用像GPT-4或Cohere這樣的商業(yè)LLM API,那么為企業(yè)的開源LLM設(shè)置一個API可以讓企業(yè)在對現(xiàn)有代碼進(jìn)行最小更改的情況下測試和比較模型。這種方法提供了在開源API和商業(yè)API之間輕松切換的靈活性。

除了集成之外,Web API還可以解決其他挑戰(zhàn)。例如,企業(yè)的Web應(yīng)用程序可能運行在無服務(wù)器或虛擬機(jī)上,而沒有用于運行LLM的專用硬件。

在這種情況下,LLM API允許企業(yè)解耦應(yīng)用程序的不同部分并分別運行它們。例如,可以將LLM部署在配備A100 GPU的單獨虛擬機(jī)上,并使Web服務(wù)器可以通過API端點訪問它。這種解耦意味著隨著模型的開發(fā),可以修改底層服務(wù)器并對其進(jìn)行擴(kuò)展,而無需對Web服務(wù)器進(jìn)行任何更改。

需要注意的是,API部署可能不是應(yīng)用程序的最終解決方案。隨著企業(yè)在開發(fā)過程中的試驗和進(jìn)展,可能會發(fā)現(xiàn)將LLM集成到應(yīng)用程序中的更有效的方法。當(dāng)企業(yè)從原型轉(zhuǎn)移到生產(chǎn),保持靈活和開發(fā)的方法,因為可以深入了解其選擇的LLM的能力和潛力。

應(yīng)該使用哪種語言模型?

開源LLM領(lǐng)域的多樣性也使得為其應(yīng)用程序選擇正確的模型變得困難。LLaMA是一個很好的起點。其受歡迎程度使其成為一個引人注目的選擇,因為許多庫和項目都支持它。此外,已經(jīng)在LLaMA和LLaMA2之上構(gòu)建了許多模型,這意味著如果企業(yè)構(gòu)建的產(chǎn)品可以與其中一個模型一起工作,那么使其項目適應(yīng)其他模型的可能性很大。

尤其是LLaMA2,其令人印象深刻的基準(zhǔn)在開源模型中脫穎而出。如果企業(yè)的目標(biāo)是盡可能接近最先進(jìn)的API LLM,那么LLaMA2可能是其最好的選擇。它也有不同的大小,從70億個到700億個參數(shù)不等。這種可擴(kuò)展性允許企業(yè)調(diào)整模型的復(fù)雜性,而無需對應(yīng)用程序進(jìn)行重大更改(盡管需要檢查硬件設(shè)置以適應(yīng)模型的大小)。

LLaMA2的另一個優(yōu)點是其允許商業(yè)使用的許可。這實際上意味著可以將其用于幾乎任何應(yīng)用程序。許可證中有一些關(guān)于用戶數(shù)量的警告,但這些限制只適用于很少的產(chǎn)品。

然而,一旦企業(yè)使用選擇的模型進(jìn)行了測試,可能想要探索其他系列LLM。MPT和Cerebras GPT系列模型也具有很高的性能,并且可以為企業(yè)的特定用例提供獨特的優(yōu)勢。

在選擇了LLM之后,下一步是找到一個框架,該框架可以將LLM作為API端點服務(wù),只需很少的編碼或不需要編碼。以下將探討兩個框架,它們可以幫助企業(yè)快速有效地啟動并運行LLM API服務(wù)器。

使用vLLM啟動API服務(wù)器

vLLM是一個功能強(qiáng)大的Python庫,可以快速方便地訪問各種模型。vLLM由加州大學(xué)伯克利分校的研究人員開發(fā),不僅支持LLaMA和LLaMA2,還支持其他先進(jìn)的開源語言模型,例如MPT、OPT、Falcon、Dolly和BLOOM。

vLLM最引人注目的特性之一是它運行的速度。在一些實驗中,它吞吐量已經(jīng)證明比Hugging Face的LLM要高14~24倍。這種速度加上其現(xiàn)成的API端點功能,使vLLM成為啟動語言模型Web API服務(wù)器的高效工具。

要運行vLLM,需要一臺配備Python3.8或更高版本、CUDA 11.0-11.8和合適GPU的Linux服務(wù)器?;蛘?,可以使用NVIDIA PyTorch Docker鏡像,該鏡像附帶了所有必要的預(yù)安裝包和庫。(如果選擇Docker鏡像,必須在使用vLLM之前卸載Pytorch)。

使用一個簡單的命令就可以輕松安裝vLLM:

pip install vllm

其安裝過程可能需要幾分鐘,具體取決于網(wǎng)絡(luò)連接。在安裝之后,啟動LLaMA2 API端點就像運行以下命令一樣簡單:

python -m vllm.entrypoints.api_server --env MODEL_NAME=openlm-research/open_llama_13b

該命令在http://localhost:8000上啟動服務(wù)器。企業(yè)可以使用-host和-port參數(shù)指定地址和端口,并且可以用自己的模型的名稱替換MODEL_NAME參數(shù)。

要檢查服務(wù)器,可以運行curl命令:

curl http://localhost:8000/generate \
    -d '{
        "prompt": "The most famous book of J.R.R. Tolkien is",
        "temperature": 0,
        "max_tokens": 50
    }'

如果一切正常,應(yīng)該從服務(wù)器接收模型的輸出。

vLLM的主要優(yōu)點之一是它與OpenAI API的兼容性。如果其應(yīng)用程序已經(jīng)與OpenAI模型一起工作,可以運行一個模仿OpenAI API的vLLM服務(wù)器:

python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-13b-hf

之后,只需要改變其代碼指向API調(diào)用到服務(wù)器,而不是OpenAI API:

openai.api_key = "EMPTY"
openai.api_base = "http://localhost:8000/v1"

如果使用-host和-port參數(shù)更改默認(rèn)設(shè)置,可以相應(yīng)地更改api_base變量。

vLLM還支持跨多個服務(wù)器的并行GPU推理和分發(fā)。如果服務(wù)器有多個GPU,可以通過使用tensor-parallel-size參數(shù)輕松調(diào)整vLLM來利用它們:

python -m vllm.entrypoints.api_server \
    --env MODEL_NAME=openlm-research/open_llama_13b \
    --tensor-parallel-size 4

這個特性對于需要高計算能力的應(yīng)用程序特別有用。

vLLM的另一個顯著特性是令牌流。這意味著模型可以在生成輸出標(biāo)記時返回它們,而不是等待整個序列完成。如果企業(yè)的應(yīng)用程序生成較長的響應(yīng),并且不想讓用戶等待很長時間,則這一特性特別有用。

但是vLLM并非沒有其局限性。它不支持LoRA和QLoRA適配器,這是在不修改原始模型權(quán)重的情況下對開源LLM進(jìn)行微調(diào)的常用技術(shù)。vLLM也不支持量化,量化是一種使LLM足夠緊湊以適應(yīng)較小GPU的技術(shù)。盡管存在這些限制,vLLM仍然是快速測試LLM的非常方便的工具。

創(chuàng)建OpenLLM服務(wù)器

OpenLLM是另一個廣泛使用的為語言模型創(chuàng)建Web服務(wù)器的平臺。它以其簡單性和多功能性而聞名,使其成為開發(fā)人員和研究人員的熱門選擇。

要安裝OpenLLM,需要確保其服務(wù)器滿足必要的先決條件。一旦確認(rèn),安裝過程就很簡單了。執(zhí)行如下命令:

pip install openllm

在成功安裝后,可以直接從命令行啟動服務(wù)器。下面是如何做到這一點的一個例子:

openllm start llama --model-id openlm-research/open_llama_7b_v2 \
  --max-new-tokens 200 \
  --temperature 0.95 \

OpenLLM的一個突出特性是它對適配器(如LoRA)的支持。該特性允許企業(yè)將完整的LLM和幾個輕量級適配器組合在一起,從而使企業(yè)能夠在單個模型上運行多個應(yīng)用程序。

OpenLLM還與LangChain等流行庫無縫集成。這種集成簡化了編寫應(yīng)用程序或?qū)⒋a移植到新的LLM的過程,節(jié)省了開發(fā)人員寶貴的時間和精力。

然而,OpenLLM也不是沒有缺點。與vLLM不同,它不支持批處理推理,這可能成為高使用率應(yīng)用程序的瓶頸。此外,OpenLLM缺乏對跨多個GPU的分布式推理的內(nèi)置支持。盡管存在這些限制,OpenLLM仍然是部署語言模型服務(wù)器的健壯且用戶友好的平臺。它對于構(gòu)建LLM應(yīng)用程序的原型特別有用,特別是如果想要進(jìn)行LLM微調(diào)的話。

原文標(biāo)題:How to launch an LLM API server with minimal coding,作者:Ben Dickson

鏈接:https://bdtechtalks.com/2023/08/14/llm-api-server-nocode/。

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
已于2024-6-14 07:04:09修改
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦