最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

用 Hugging Face 推理端點(diǎn)部署 LLM

2023-07-21 23:46 作者:HuggingFace  | 我要投稿

開(kāi)源的 LLM,如 Falcon、(Open-)LLaMA、X-Gen、StarCoder 或 RedPajama,近幾個(gè)月來(lái)取得了長(zhǎng)足的進(jìn)展,能夠在某些用例中與閉源模型如 ChatGPT 或 GPT4 競(jìng)爭(zhēng)。然而,有效且優(yōu)化地部署這些模型仍然是一個(gè)挑戰(zhàn)。

在這篇博客文章中,我們將向你展示如何將開(kāi)源 LLM 部署到 Hugging Face Inference Endpoints,這是我們的托管 SaaS 解決方案,可以輕松部署模型。此外,我們還將教你如何流式傳輸響應(yīng)并測(cè)試我們端點(diǎn)的性能。那么,讓我們開(kāi)始吧!

  1. 怎樣部署 Falcon 40B instruct 模型

  2. 測(cè)試 LLM 端點(diǎn)

  3. 用 javascript 和 python 進(jìn)行流響應(yīng)傳輸

在我們開(kāi)始之前,讓我們回顧一下關(guān)于推理端點(diǎn)的知識(shí)。

什么是 Hugging Face 推理端點(diǎn)

Hugging Face 推理端點(diǎn) 提供了一種簡(jiǎn)單、安全的方式來(lái)部署用于生產(chǎn)的機(jī)器學(xué)習(xí)模型。推理端點(diǎn)使開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家都能夠創(chuàng)建 AI 應(yīng)用程序而無(wú)需管理基礎(chǔ)設(shè)施: 簡(jiǎn)化部署過(guò)程為幾次點(diǎn)擊,包括使用自動(dòng)擴(kuò)展處理大量請(qǐng)求,通過(guò)縮減到零來(lái)降低基礎(chǔ)設(shè)施成本,并提供高級(jí)安全性。

以下是 LLM 部署的一些最重要的特性:

  1. 簡(jiǎn)單部署: 只需幾次點(diǎn)擊即可將模型部署為生產(chǎn)就緒的 API,無(wú)需處理基礎(chǔ)設(shè)施或 MLOps。

  2. 成本效益: 利用自動(dòng)縮減到零的能力,通過(guò)在端點(diǎn)未使用時(shí)縮減基礎(chǔ)設(shè)施來(lái)降低成本,同時(shí)根據(jù)端點(diǎn)的正常運(yùn)行時(shí)間付費(fèi),確保成本效益。

  3. 企業(yè)安全性: 在僅通過(guò)直接 VPC 連接可訪問(wèn)的安全離線端點(diǎn)中部署模型,由 SOC2 類型 2 認(rèn)證支持,并提供 BAA 和 GDPR 數(shù)據(jù)處理協(xié)議,以增強(qiáng)數(shù)據(jù)安全性和合規(guī)性。

  4. LLM 優(yōu)化: 針對(duì) LLM 進(jìn)行了優(yōu)化,通過(guò)自定義 transformers 代碼和 Flash Attention 來(lái)實(shí)現(xiàn)高吞吐量和低延遲。

  5. 全面的任務(wù)支持: 開(kāi)箱即用地支持 ?? Transformers、Sentence-Transformers 和 Diffusers 任務(wù)和模型,并且易于定制以啟用高級(jí)任務(wù),如說(shuō)話人分離或任何機(jī)器學(xué)習(xí)任務(wù)和庫(kù)。

你可以在 https://ui.endpoints.huggingface.co/ 開(kāi)始使用推理端點(diǎn)。

1. 怎樣部署 Falcon 40B instruct

要開(kāi)始使用,你需要使用具有文件付款方式的用戶或組織帳戶登錄 (你可以在 這里 添加一個(gè)),然后訪問(wèn)推理端點(diǎn) https://ui.endpoints.huggingface.co

然后,點(diǎn)擊“新建端點(diǎn)”。選擇倉(cāng)庫(kù)、云和區(qū)域,調(diào)整實(shí)例和安全設(shè)置,并在我們的情況下部署 tiiuae/falcon-40b-instruct 。

Select Hugging Face Repository

推理端點(diǎn)會(huì)根據(jù)模型大小建議實(shí)例類型,該類型應(yīng)足夠大以運(yùn)行模型。這里是 4x NVIDIA T4 GPU。為了獲得 LLM 的最佳性能,請(qǐng)將實(shí)例更改為 GPU [xlarge] · 1x Nvidia A100 。

注意: 如果無(wú)法選擇實(shí)例類型,則需要 聯(lián)系我們 并請(qǐng)求實(shí)例配額。

Select Instance Type

然后,你可以點(diǎn)擊“創(chuàng)建端點(diǎn)”來(lái)部署模型。10 分鐘后,端點(diǎn)應(yīng)該在線并可用于處理請(qǐng)求。

2. 測(cè)試 LLM 端點(diǎn)

端點(diǎn)概覽提供了對(duì)推理小部件的訪問(wèn),可以用來(lái)手動(dòng)發(fā)送請(qǐng)求。這使你可以使用不同的輸入快速測(cè)試你的端點(diǎn)并與團(tuán)隊(duì)成員共享。這些小部件不支持參數(shù) - 在這種情況下,這會(huì)導(dǎo)致“較短的”生成。

Test Inference Widget

該小部件還會(huì)生成一個(gè)你可以使用的 cURL 命令。只需添加你的 hf_xxx 并進(jìn)行測(cè)試。

你可以使用不同的參數(shù)來(lái)控制生成,將它們定義在有效負(fù)載的 parameters 屬性中。截至目前,支持以下參數(shù):

  • temperature: 控制模型中的隨機(jī)性。較低的值會(huì)使模型更確定性,較高的值會(huì)使模型更隨機(jī)。默認(rèn)值為 1.0。

  • max_new_tokens: 要生成的最大 token 數(shù)。默認(rèn)值為 20,最大值為 512。

  • repetition_penalty: 控制重復(fù)的可能性。默認(rèn)值為 null 。

  • seed: 用于隨機(jī)生成的種子。默認(rèn)值為 null 。

  • stop: 停止生成的 token 列表。當(dāng)生成其中一個(gè) token 時(shí),生成將停止。

  • top_k: 保留概率最高的詞匯表 token 數(shù)以進(jìn)行 top-k 過(guò)濾。默認(rèn)值為 null ,禁用 top-k 過(guò)濾。

  • top_p: 保留核心采樣的參數(shù)最高概率詞匯表 token 的累積概率,默認(rèn)為 null

  • do_sample: 是否使用采樣; 否則使用貪婪解碼。默認(rèn)值為 false 。

  • best_of: 生成 best_of 序列并返回一個(gè)最高 token 的 logprobs,默認(rèn)為 null

  • details: 是否返回有關(guān)生成的詳細(xì)信息。默認(rèn)值為 false

  • return_full_text: 是否返回完整文本或僅返回生成部分。默認(rèn)值為 false 。

  • truncate: 是否將輸入截?cái)嗟侥P偷淖畲箝L(zhǎng)度。默認(rèn)值為 true

  • typical_p: token 的典型概率。默認(rèn)值為 null 。

  • watermark: 用于生成的水印。默認(rèn)值為 false

3. 用 javascript 和 python 進(jìn)行流響應(yīng)傳輸

使用 LLM 請(qǐng)求和生成文本可能是一個(gè)耗時(shí)且迭代的過(guò)程。改善用戶體驗(yàn)的一個(gè)好方法是在生成 token 時(shí)將它們流式傳輸給用戶。下面是兩個(gè)使用 Python 和 JavaScript 流式傳輸 token 的示例。對(duì)于 Python,我們將使用 Text Generation Inference 的客戶端,對(duì)于 JavaScript,我們將使用 HuggingFace.js 庫(kù)。

使用 Python 流式傳輸請(qǐng)求

首先,你需要安裝 huggingface_hub 庫(kù):

我們可以創(chuàng)建一個(gè) InferenceClient ,提供我們的端點(diǎn) URL 和憑據(jù)以及我們想要使用的超參數(shù)。

print 命令替換為 yield 或你想要將 token 流式傳輸?shù)降暮瘮?shù)。

Python Streaming

使用 Javascript 流式傳輸請(qǐng)求

首先你需要安裝 @huggingface/inference 庫(kù)

我們可以創(chuàng)建一個(gè) HfInferenceEndpoint ,提供我們的端點(diǎn) URL 和憑據(jù)以及我們想要使用的超參數(shù)。

process.stdout 調(diào)用替換為 yield 或你想要將 token 流式傳輸?shù)降暮瘮?shù)。

Javascript Streaming

結(jié)論

在這篇博客文章中,我們向你展示了如何使用 Hugging Face 推理端點(diǎn)部署開(kāi)源 LLM,如何使用高級(jí)參數(shù)控制文本生成,以及如何將響應(yīng)流式傳輸?shù)?Python 或 JavaScript 客戶端以提高用戶體驗(yàn)。通過(guò)使用 Hugging Face 推理端點(diǎn),你可以只需幾次點(diǎn)擊即可將模型部署為生產(chǎn)就緒的 API,通過(guò)自動(dòng)縮減到零來(lái)降低成本,并在 SOC2 類型 2 認(rèn)證的支持下將模型部署到安全的離線端點(diǎn)。

感謝你的閱讀!如果你有任何問(wèn)題,請(qǐng)隨時(shí)在 Twitter 或 LinkedIn 上聯(lián)系我。

英文原文: https://hf.co/blog/inference-endpoints-llm

作者: Philipp Schmid

譯者: innovation64

審校/排版: zhongdongy (阿東)


用 Hugging Face 推理端點(diǎn)部署 LLM的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
珲春市| 抚松县| 二连浩特市| 南康市| 庆城县| 娄底市| 虎林市| 邮箱| 昌都县| 綦江县| 临颍县| 浦江县| 周口市| 杭锦后旗| 桂东县| 南昌县| 乳源| 阳信县| 黄梅县| 府谷县| 安国市| 金川县| 石河子市| 舞钢市| 绥芬河市| 湟中县| 明溪县| 星座| 永吉县| 黄平县| 托克逊县| 祁阳县| 双城市| 浙江省| 普兰店市| 文成县| 丹寨县| 盐源县| 扬中市| 武陟县| 建昌县|