前往
大廳
主題

text-generation-webui 快速使用各種語言模型的工具

塔克蘭斯 | 2023-07-26 21:53:47 | 巴幣 9326 | 人氣 7563

一.簡介
oobabooga開發的 text-generation-webui 是一個統合各種不同語言模型執行方式的AI主持程式,不僅可以用同函示庫去執行一個語言模型,還能夠透過他做文字生成寫作與AI聊天,硬體夠力的還能使用他簡便的介面去做語言模型的Lora

二.安裝
Git頁面中能夠下載快速安裝包,下載對應你作業系統的壓縮檔,在這裡我們以windows為例
(舊)
------
10/13更新:
目前版本的oogaboga更新了安裝方式,點開右上的Code,選擇下載ZIP,如果你有安裝Git可以直接在你喜歡的地方執行「git clone https://github.com/oobabooga/text-generation-webui
(舊)
下載之後點start_windows執行,第一次執行會將所有需要的東西通通抓下來
10/13更新
雖然更新後資料夾底下有一堆東西,不過仍然是直接執行start_windows.bat,後續的安裝方式一致

點開之後,跑一下會問你的顯卡是甚麼
接著依據你顯卡輸入對應的選項
若是你的卡是Nvidia的卡,輸入A後按Enter
若是你的卡是AMD的卡,輸入B後按Enter抱歉了兄弟,Windows不能用AMD,請乖乖選D
若是你的卡是Apple的晶片,輸入C後按Enter
若是你想(或只能)用CPU,輸入D後按Enter
輸入後等下載安裝,這會花一點時間
安裝有點久,請在網路環境良好的地方安裝
最後看到Running on local URL: http://127.0.0.1:7860時就代表你已經下載完並且已經啟動了 text-generation-webui ,接下來請不要關掉這個小黑窗,開啟你的瀏覽器,輸入127.0.0.1:7860就能看到頁面
只要看到這個畫面就代表你已經成功執行了 text-generation-webui,但此時此刻裡面是沒有語言模型的,你不管打甚麼都不會有回應!

三.取得語言模型
首先我們到huggingface上,可以看到各式各樣的AI模型,而我們要找的是專門產生文字的語言模型
語言模型有些小小的差別,目前主要分為GPT系,llama系與其他Transformers,他們的能力不一,能夠回應的語言也不一,我在這裡做幾個推薦
1.tiiuae/falcon-7b
來自阿拉伯的Transformers語言模型,只會回應英文,但能理解中文
2.WizardLM/WizardLM-7B-V1.0
一個微調過的llama系語言模型,只會回應英文
3.lmsys/vicuna-7b-v1.3
一個微調過的llama系語言模型,只會回應英文
4.meta-llama/Llama-2-7b
Meta(臉書母公司)開發的第二代llama系語言模型,某些情況下能回應中文,但主要以英文為主,需要申請才能獲得權限下載
5.THUDM/chatglm2-6b
中國清華大學開發的Transformers語言模型,能夠很好的回應中文與英文,主要會回應簡體中文但她可以讀繁體中文;會迴避政治問題

在text-generation-webui的頁面頂端點選Model頁籤,在Download custom model or LoRA這裡輸入要下載的語言模型,輸入後點Download就會開始下載你指定的語言模型
一個語言模型需求不少Vram
通常來說
20B需要總計64GB的VRAM
13B需要總計32GB的VRAM
6B需要總計16GB的VRAM
2.7B需要總計8GM的VRAM
1.3B需要4GB的VRAM
不過如Bloom這種有支援多國語系的語言模型,可能會要求更高的大小,例如中研院的ckip-joint/bloom-3b-zh,雖然只有3B但本體12GB,推理大約會吃到14GB,下載前可以看一下

而一些語言模型會有特製版本,舉例來說:
GPTQ代表量化版的語言模型,這個版本犧牲了一些精度,但需求的Vram會大幅下降
8bit大概會減少一半
4bit大概會減少至四分之一
GGUF(GGML已被取代,你應該去獲得更新的模型)代表針對CPU+GPU做優化,這個版本讓語言模型能夠更好在CPU與GPU混用,以及在單純CPU下執行的效率
以下是一些讀取的設定範例:
1.Vram足夠的語言模型
Model loader選取Transformers後直接點load
2.Vram不夠,但在4bit情況下能Vram足夠
Model loader選取Transformers後勾選load-in-4bit再點load
3.使用量化的模型
Model loader選取AutoGPTQ後設定對應的wbits與qroupsize(在Model檔名上通常會提示)後點load
4.使用量化過的llama系語言模型
Model loader選取GPTQ-for-LLaMa後設定對應的wbits與qroupsize(在Model檔名上通常會提示)後點load
5.GGUFGGML
Model loader選取llama.cpp後設定對應的threads,n-gpu-layers(這個數字你要自己抓,每個人的CPU不一樣)後點load
6.ExLlamav2Ex-LLAMA
多數LLAMA系的語言模型可以使用Ex-LLAMA來獲得絕佳的速度,不過不能調低精度讀取
10/13後安裝的oogaboga只能使用v2來讀取
這個模式可以加載一個Lora
另外是量化的Mistral 7B(如TheBloke/Mistral-7B-Instruct-v0.1-GPTQ)可以用Exllamav2執行

7.其他
其他如chatGLM在執行時需要另外跑python程式,要勾trust-remote-code再點load才會跑起來

六.使用
1.直接使用
在預設的模式下直接到text genaration頁籤就可以直接和AI對談
在chat setting可以設定AI的人格
如果你不知道從何開始,他有一個example可以參考,或是你可以上beta.character.ai抄AI人格
2.文字生成
在session頁籤中將Mode改為default後點apply and restart
聊天的頁籤會變成這樣:
左邊輸入文字,點generate會依據你的前文生成一些字,在max_next_token可以設定要產生多少字,看起來會像這樣,我拿我之前寫的攻略片段讓AI生成一些內容,寫小說但靈感枯竭可以嘗試用這個來寫
3.NoteBook
Session選Notebook後點restart,畫面會像這樣
與defult很像但文字內容只會一直往下長
而其中的Markdown與html則指是以其他方式顯示文字
4.API
在session頁勾選API後點apply and restart
之後你就可以在其他前端使用API串接
例如小屋提到的 SillyTavernTavernAI

10/13更新:
應前些時候一鍵安裝被被整進專案後有些地方會稍稍不一樣,更新安裝教學,並將GGML的部分更新為GGUF

常見問題
1.那個語言模型最厲害?
huggingface上有開源語言模型排行榜,越上面的越強,唯一的問題是你的電腦跑不了,其實6B的語言模型或一些有調教的小模型能耐也不錯,沒必要追求大
2.語言模型好多好亂,有沒有懶人包?
你想用中文》下載ckip-joint/bloom-3b-zh 》啟動設定遵照"1.Vram足夠的語言模型"(Vram不夠記得勾4bit)
你想用中文又不在乎中國的中文語言模型》下載THUDM/chatglm2-6b 》啟動設定遵照"其他"(Vram不夠記得勾4bit)
你的英文不差》下載tiiuae/falcon-7b 》啟動設定遵照"1.Vram足夠的語言模型"(Vram不夠記得勾4bit)
3.推薦哪個語言模型?
(10-13更新)
目前Mistral-7B-Instruct-v0.1展現出了驚人的能耐,其回答問題與閒聊的能力能夠略勝高一級的Llama 13B,甚至有些微調的版本與Llama 70B相當,另外是Mistral-7B有微弱的中文能力,絕對是值得一試的模型
Meta的llama2是目前最強的語言模型,下載需要獲得meta許可,不過你可以下載TheBloke/Llama-2-7b-Chat-GPTQ(Model loader選取GPTQ-for-LLaMa)來使用他
4.你怎麼沒提到訓練?
訓練要準備資料集與一張不錯的顯卡(Vram最好有15GB以上),我在小屋另一篇文中寫了訓練的部分
5.你推薦koboldAI還是 text-generation-webui ?
兩者都有其優缺點,我現在是用 text-generation-webui比較多,畢竟他能夠用更多方式讀語言模型

創作回應

lovelikepp
好的感謝你!🙏
2023-12-26 10:34:01
Max
你好 我想要嘗試撰寫R18的小說文本,想請問你在文章中提到的這些中文模型,他們是有內容規制的嗎?
2024-01-29 13:17:53
塔克蘭斯
你這個問題我很難回答,我只能跟你說這些模型都不希望用於非研究用途
2024-01-29 15:23:14
Max
感謝回答,看來我只能先暫時用Uncensored的英文模型了: https://huggingface.co/TheBloke/Wizard-Vicuna-7B-Uncensored-GPTQ?fbclid=IwAR0nQeFLh8t-9OOEd5l_gRDp7ErB7l2IHVBaE5omzj-IEgkMXMQmV6VWWc8

至少還能事後翻譯
2024-01-29 20:41:28
南猴主
請問我想開trust_remote_code 他說To enable this option, start the web UI with the --trust-remote-code flag.
start the web UI with the --trust-remote-code flag是要在哪裡加上--trust-remote-code? start_windows.bat嗎

還有為什麼我的Session中沒有api的available extensions 需要自己額外下載嗎
2024-03-02 15:19:27
塔克蘭斯
trust-remote-code在讀取模型的地方應該有給你勾的地方喔https://truth.bahamut.com.tw/s01/202403/a232531f68e708404686d03252562954.JPG
2024-03-02 15:35:23
塔克蘭斯
api目前統整進Available extensions中的openai裡,勾起來就可以用了
2024-03-02 16:02:39
南猴主
api的部份成功了 但鼠標在trust-remote-code的方格時變了禁止符號 硬是按上去也沒用 其他幾格選項倒是能按
2024-03-02 17:17:02
塔克蘭斯
在webui的路徑底下有個CMD_FLAGS.txt,加上 --trust-remote-code後再啟動應該就可以點了https://truth.bahamut.com.tw/s01/202403/eeed9067066a88856e1eadd68ad0f743.PNG
2024-03-02 17:37:25

更多創作