北京2024年2月28日 /美通社/ -- 近日,浪潮信息Yuan2.0大模型與FastChat框架完成全面適配,推出"企業快速本地化部署大模型對話平臺"方案。該方案主要面向金融、法律、教育等領域,且有數據隱私保護需求的本地化部署場景。全面開放的對話模板功能,用戶可基于FastChat平臺,快速對不同參數規模的Yuan2.0基礎模型進行訓練、評估和應用,將Yuan2.0系列基礎大模型部署于私有環境,快速部署企業級大模型應用。值得一提的是,FastChat提供標準API格式(OpenAI標準)的服務,因此,原本采用OpenAI API接口所構建的系列應用,用戶無需修改代碼,僅需更新API服務的接口地址,即可靈活、絲滑地切換為本地部署的Yuan2.0千億參數模型。
當(dang)前(qian),各類(lei)模(mo)型(xing)迭代更新飛快(kuai)。簡單且(qie)易用的(de)(de)對話(hua)模(mo)型(xing)框架(jia)成(cheng)為了(le)開發(fa)者解決(jue)本(ben)地(di)化構建對話(hua)系統的(de)(de)一大(da)利(li)器。標(biao)準(zhun)一致的(de)(de)工具和(he)(he)環境,可(ke)有(you)效(xiao)實(shi)現后端模(mo)型(xing)的(de)(de)平(ping)滑(hua)遷移(yi),開發(fa)者能夠在(zai)不(bu)改變原(yuan)有(you)代碼的(de)(de)情況下,輕松適(shi)應(ying)新的(de)(de)模(mo)型(xing)和(he)(he)技術要求。基(ji)于現成(cheng)的(de)(de)框架(jia)和(he)(he)工具,依(yi)托(tuo)繁榮的(de)(de)社區,進而有(you)效(xiao)地(di)解決(jue)了(le)技術門檻高、開發(fa)流程復(fu)雜、知(zhi)識共享困難、部署維護成(cheng)本(ben)高以及數據安全等一系列難題,不(bu)僅可(ke)提高開發(fa)效(xiao)率,也可(ke)為開發(fa)者帶來了(le)更多的(de)(de)便利(li)和(he)(he)可(ke)能性。
FastChat是(shi)加州大(da)(da)學伯(bo)克利分校(xiao)LM-SYS發(fa)布的(de)(de)(de)創新型(xing)(xing)開(kai)(kai)(kai)(kai)(kai)源項目,Github Star數超31k。旨(zhi)在為研究和開(kai)(kai)(kai)(kai)(kai)發(fa)人員(yuan)提供一(yi)個易于使用(yong)(yong)(yong)、可擴(kuo)展的(de)(de)(de)平臺,用(yong)(yong)(yong)于訓(xun)練、服務和評估基(ji)于LLM的(de)(de)(de)聊天機器人,大(da)(da)幅降(jiang)低開(kai)(kai)(kai)(kai)(kai)發(fa)人員(yuan)構建(jian)問答系(xi)統(tong)的(de)(de)(de)門檻(jian),實現知識管理平臺的(de)(de)(de)輕松(song)部署與高(gao)(gao)效維護。其核心(xin)功能包括提供最先進的(de)(de)(de)模(mo)(mo)型(xing)(xing)權重、訓(xun)練代(dai)碼和評估代(dai)碼(例(li)如Yuan2.0、Vicuna、FastChat-T5)以及帶有Web UI和兼容OpenAI RESTful API的(de)(de)(de)分布式(shi)多模(mo)(mo)型(xing)(xing)服務系(xi)統(tong)。Yuan2.0系(xi)列基(ji)礎大(da)(da)模(mo)(mo)型(xing)(xing)作為首個全面開(kai)(kai)(kai)(kai)(kai)源的(de)(de)(de)千億參數模(mo)(mo)型(xing)(xing),在編程(cheng)、推(tui)理、邏(luo)輯等方面表現優異。通過Fastchat平臺,企業級用(yong)(yong)(yong)戶可一(yi)鍵啟(qi)動標(biao)準(zhun)API(OpenAI標(biao)準(zhun))服務,滿足企業需(xu)求的(de)(de)(de)定制(zhi)化應(ying)用(yong)(yong)(yong)開(kai)(kai)(kai)(kai)(kai)發(fa),輕松(song)對接口進行封(feng)裝,高(gao)(gao)效且安(an)全地(di)開(kai)(kai)(kai)(kai)(kai)發(fa)智(zhi)能對話系(xi)統(tong)。在保證數據私(si)密性(xing)和安(an)全性(xing)的(de)(de)(de)同時,極大(da)(da)地(di)提升了模(mo)(mo)型(xing)(xing)本地(di)化部署的(de)(de)(de)效率、應(ying)用(yong)(yong)(yong)性(xing)能及穩定性(xing)。
基于FastChat使用Yuan2.0大模型,Step by Step實操教程!
* 如下步驟以Yuan2-2B-Janus-hf模型為例:
FastChat官方提供的兩(liang)種安裝(zhuang)方式--pip安裝(zhuang)與源碼安裝(zhuang)
官方提供的(de)采用pip安裝命令為pip3,建議(yi)大家(jia)采用python3.x,避免出現依(yi)賴包沖突(tu)。
pip3 install "fschat[model_worker,webui]"
先從github上下載源(yuan)碼(ma),在FastChat目錄下執行如下命令:
git clone //github.com/lm-sys/FastChat.git
cd FastChat
pip3 install --upgrade pip && pip3 install -e ".[model_worker,webui]"
模型 |
序列長度 |
下載(zai)鏈接(jie) |
Yuan2.0-102B-hf |
4K |
//www.modelscope.cn/models/YuanLLM/Yuan2.0-102B-hf/summary |
Yuan2.0-51B-hf |
4K |
//www.modelscope.cn/models/YuanLLM/Yuan2.0-51B-hf/summary |
Yuan2.0-2B-hf |
8K |
//www.modelscope.cn/models/YuanLLM/Yuan2.0-2B-hf/summary |
Yuan2-2B-Janus-hf |
8K |
//www.modelscope.cn/models/YuanLLM/Yuan2-2B-Janus-hf/summary |
采用如下(xia)命令啟動FastChat服務:
python3 -m fastchat.serve.cli --model-path /mnt/models/Yuan2-2B-Janus-hf
至此,基(ji)于Yuan2.0基(ji)礎大模(mo)型的FastChat推(tui)理服務(wu)就(jiu)已啟(qi)動完(wan)成了!服務(wu)啟(qi)動后會進入(ru)客戶端頁面。客戶端交(jiao)互實例如下:
——————————————————
user: 你好。
assistant: 您好,有什么可以幫助您的嗎?
user: 介紹一下北京。
assistant: 北京是中國的首都,位于華北平原中部。它是一個歷史悠久、文化燦爛的城市,也是現代化與傳統文化相結合的代表之一。北京擁有著豐富的歷史遺產和文化景觀,如紫禁城、天安門廣場、頤和園、長城等。此外,北京還有許多現代建筑和創意藝術作品,如798藝術區、木魚巷等。
user: 給我寫一個快速排序算法。
assistant: 快速排序是一種基于比較的排序算法,其時間復雜度為O(nlogn)。具體來說,快速排序通過選取一個基準元素,將數組分為兩部分,使得左邊的元素都小于基準元素,右邊的元素都大于基準元素,然后遞歸地對左右兩部分進行排序。
以下是一個簡單的快速排序算法實現:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
```
這個算法的優點是它通常能夠很好地處理小規模數據,而且它具有很好的可擴展性,可以輕松地處理不同規模的數據。但是,它也有一些缺點,例如它需要額外的空間來存儲中間結果,并且它的最壞時間復雜度為O(n^2)。因此,在實際應用中,我們通常使用更高效的排序算法,如歸并排序、插入排序等。
user: 能提供一些測試用例嗎
assistant: 當然可以。以下是一些常見的測試用例:
```python
def test_quick_sort():
assert quick_sort([]) == []
assert quick_sort([1]) == [1]
assert quick_sort([3, 2, 1]) == [1, 2, 3]
assert quick_sort([5, 8, 2, 1, 6, 3, 4, 7, 9]) == [1, 2, 3, 4, 5, 6, 7, 8, 9]
assert quick_sort([9, 8, 7, 6, 5, 4, 3, 2, 1]) == [1, 2, 3, 4, 5, 6, 7, 8, 9]
```
這些測試用例包括了各種不同規模和不同順序的輸入數據。
user: 很好,你知道它的時間復雜度嗎?
assistant: 是的,我知道它的時間復雜度為O(nlogn)。
user:
————————————————
同時,也可選(xuan)用WebUI,需要(yao)先(xian)啟動(dong)fastchat的(de)controller和worker,在(zai)命令(ling)行輸入如下命令(ling)即可啟動(dong):
python3 -m fastchat.serve.controller
python3 -m fastchat.serve.model_worker --model-path /mnt/models/Yuan2-2B-Janus-hf
python3 -m fastchat.serve.gradio_web_server
啟(qi)動完成后,默(mo)認(ren)會彈出WebUI頁面,選(xuan)擇Yuan2.0模板即可與Yuan2.0大模型進(jin)行對話。以下為使用WebUI與Yuan2.0進(jin)行交互的示(shi)例:
更多更新,請關注Github "源"交流專區,
前往GitHub搜索"IEIT-Yuan/Yuan-2.0"