利用Github和Railway搭建專屬的ChatGPT
ChatGPT
什么是 ChatGPT
ChatGPT 是一個基于人工神經(jīng)網(wǎng)絡(luò)技術(shù)的自然語言處理模型,由 OpenAI 開發(fā)。它可以理解和生成自然語言,用于進行對話、翻譯、文本摘要等任務(wù)。ChatGPT 是目前最先進的自然語言處理模型之一,它使用了大量的預(yù)訓(xùn)練數(shù)據(jù)和深度學(xué)習(xí)算法來實現(xiàn)高質(zhì)量的自然語言處理能力。
ChatGPT 的工作原理
ChatGPT 是一個基于 Transformer 模型的自然語言處理模型,其工作原理可以分為兩個階段:預(yù)訓(xùn)練和微調(diào)。下面分別對這兩個階段進行詳細介紹。
- 預(yù)訓(xùn)練階段
ChatGPT 使用了大量的文本數(shù)據(jù)進行無監(jiān)督的預(yù)訓(xùn)練,從而學(xué)習(xí)到了自然語言的表示方式。在這個階段中,ChatGPT 使用了一種稱為“掩碼語言建?!钡募夹g(shù)來訓(xùn)練模型。具體來說,它會將輸入的文本中的一些單詞隨機掩蓋掉,然后讓模型去預(yù)測這些被掩蓋掉的單詞。這樣的訓(xùn)練方式可以使得模型學(xué)習(xí)到單詞之間的關(guān)系,從而獲得更好的語言表示能力。
- 微調(diào)階段
在預(yù)訓(xùn)練完成后,ChatGPT 可以通過微調(diào)來適應(yīng)特定的任務(wù)。例如,對于對話任務(wù),我們可以通過給 ChatGPT 提供一些已知的對話歷史和當前回復(fù)來微調(diào)模型,從而使其能夠更好地生成有意義的回復(fù)。在微調(diào)階段中,ChatGPT 通常會使用有監(jiān)督的學(xué)習(xí)方法,即使用帶標注的數(shù)據(jù)進行訓(xùn)練,并通過優(yōu)化損失函數(shù)來更新模型參數(shù)??傊?,ChatGPT 的工作原理是通過預(yù)訓(xùn)練和微調(diào)兩個階段來學(xué)習(xí)自然語言表示,并在特定任務(wù)中使用這些表示來生成有意義的輸出。
ChatGPT 的使用場景
ChatGPT 是一種通用的自然語言處理模型,它的使用場景非常廣泛。以下是一些 ChatGPT 的主要應(yīng)用場景:
- 對話系統(tǒng):ChatGPT 可以被用來構(gòu)建聊天機器人、智能客服等對話系統(tǒng),通過學(xué)習(xí)大量的對話數(shù)據(jù)來生成自然流暢的回復(fù)。
- 機器翻譯:ChatGPT 可以被用來進行機器翻譯任務(wù),即將一種語言的文本自動翻譯成另一種語言的文本。
- 文本摘要:ChatGPT 可以被用來進行文本摘要任務(wù),即從一篇較長的文章中提取出關(guān)鍵信息,并生成一份簡潔的摘要。
- 問答系統(tǒng):ChatGPT 可以被用來構(gòu)建問答系統(tǒng),即回答用戶的問題。在這個場景下,ChatGPT 通常需要閱讀和理解輸入的問題,并通過搜索或推理來生成答案。
- 文本分類:ChatGPT 可以被用來進行文本分類任務(wù),例如情感分析、垃圾郵件檢測等。在這個場景下,ChatGPT 需要學(xué)習(xí)如何將文本映射到不同的類別。
哎,等等,這不都是說了一些廢話么?到底用在哪呢?
這就看你具體的需求了,比如這篇文章上面的內(nèi)容就是 ChatGPT 寫的。
還比如我叫它幫我寫一個創(chuàng)建 pipeline 的步驟。
這不比百度香?
下面就帶搭建一個無需科學(xué)上網(wǎng)的 ChatGPT。
注冊 ChatGPT
注冊的步驟并不復(fù)雜,主要包含以下幾步:
- 注冊 ChatGPT 賬號
- 通過短信接碼平臺[https://sms-activate.org/](https://sms-activate.org/)完成手機驗證。
- 通過[https://chat.openai.com/chat](https://chat.openai.com/chat)登錄使用。
獲取 API Token
賬號注冊完成過后,通過https://platform.openai.com/登錄。
然后點擊 Personal 獲取 API Keys。
創(chuàng)建一個新的 Secret Key 即可。
獲取 Github 代碼
項目自己寫?
不可能!白嫖才香。
將https://github.com/Chanzhaoyu/chatgpt-web項目 fork 到自己的倉庫中。
這不快哉?
開始部署
買服務(wù)器?安裝軟件?安裝 Docker?
No!??!
那樣的成本太高了。這里我們直接用國外的部署網(wǎng)站,目前比較著名的有:
- fly.io
- render.com
- railway.app
- vercel.com
我們選取 raliway.app 來進行我們的部署工作,訪問:https://railway.app/,點擊 Login,選擇 Github 登錄,并進行相關(guān)授權(quán):
創(chuàng)建項目
點擊New Project。
然后選擇Deploy from Github repo。
然后選擇 chatgpt-web 項目。
然后點擊Deploy Now即可。
部署過程中,會 Build 鏡像,可以查看具體的日志。
但是現(xiàn)在應(yīng)用是無法正常啟動的,因為我們沒有配置ChatGPT API Key,報錯如下:
添加配置
為了能夠正常啟動,我們需要添加OPENAI_API_KEY或者OPENAI_ACCESS_TOKEN參數(shù),我這里使用前者,另外還要添加一個PORT參數(shù),默認3002端口。除此之外我還添加了AUTH_SECRET_KEY參數(shù),主要是為我們自己的 GPT 增加一層訪問控制,避免任何人都能使用。
添加完成后如下:
我們再來看應(yīng)用日志,應(yīng)用啟動成功。
訪問
1、我們可以在 Settings 處生成一個隨機域名,如下:
然后就可以使用隨機的域名訪問了。
2、使用自定義域名,前提是需要自己準備一個可用的域名。
首先,添加一個自定義域名。
然后,添加一個 CNAME 即可。
然后就可以對話了。
更新
如果主代碼有更新,我們只需要到 Github 上同步最新的代碼。
然后 Railway 會自動更新。
關(guān)于 Railway
Railway 提供 5 美元,500 個小時/月的額度,用完了要么充錢,要么死亡,可以根據(jù)實際情況來選擇,個人使用其實是足夠了,無外乎多搞幾個賬號。