OpenAI 花幾個月完成的事,現(xiàn)在用它直接給你自動化了。
最近一段時間,不論大公司還是開發(fā)者都在造大語言模型(LLM),但有人認為,大模型應(yīng)用的速度有點落后。
為了構(gòu)建能實際使用的 AI 工具,我們需要基于基礎(chǔ)模型構(gòu)建定制化模型,中間的過程包含微調(diào)(Fine-tuning),這是一個復(fù)雜且耗時的過程,對于很多人來說,簡便易行的調(diào)試是不存在的。
(資料圖)
這個問題現(xiàn)在或許得到了解決:本周六,來自斯坦福的一群開發(fā)者發(fā)布了 Lamini,號稱可以為每個開發(fā)人員提供從 GPT-3 帶到 ChatGPT 的超能力。
鏈接:https://lamini.ai/
Lamini 是一個 LLM 引擎,供開發(fā)人員使用很多公司、機構(gòu)的基礎(chǔ)模型快速構(gòu)建定制化模型:你可以用 OpenAI、EleutherAI、Cerebras、Databricks、HuggingFace、Meta 等公司的技術(shù)做自己的,只要他們開源就可以。
將基礎(chǔ)模型構(gòu)建成強大的語言模型是一個極具挑戰(zhàn)性的過程,需要花費大量的時間和成本。首先,在特定數(shù)據(jù)集上進行微調(diào)的迭代周期以月為單位,需要花費大量時間找出微調(diào)模型失敗的原因。雖然使用 prompt 調(diào)整迭代以秒計時,但微調(diào)之后的模型性能只能穩(wěn)定幾個小時,而且能融入 prompt 的數(shù)據(jù)量非常有限。
OpenAI 的機器學(xué)習(xí)團隊花了幾個月的時間在其基本模型 GPT-3 上進行微調(diào),并使用 RLHF(基于人類反饋的強化學(xué)習(xí)方法)才構(gòu)建出強大的 ChatGPT。這個過程需要消耗大量的計算資源,還要求團隊具備專業(yè)的技術(shù)知識。
在 ChatGPT 開放 API 之后,很多公司都嘗試使用 OpenAI 提供的微調(diào) API,但結(jié)果卻不盡如人意,一些基礎(chǔ)模型經(jīng)過微調(diào)之后,性能變得更差,無法投入使用。還有一些公司表示不知道如何充分利用數(shù)據(jù)。
現(xiàn)在,名為「Lamini」的新工具解決了這些問題。Lamini 將微調(diào)封裝成一種服務(wù),使開發(fā)人員可以輕松將 GPT-3 微調(diào)成 ChatGPT。
簡單來說,Lamini 提供了一種托管化的數(shù)據(jù)生成器,只需執(zhí)行 Lamini 庫中的幾行代碼,用戶就能訓(xùn)練自己的大型語言模型(LLM)及其權(quán)重,而無需使用任何 GPU。
速成強大的 LLM
Lamini 是一個 LLM 引擎,它允許開發(fā)人員只使用 Lamini 庫中的幾行代碼,就能在大型數(shù)據(jù)集上訓(xùn)練出高性能的 LLM。Lamini 庫涵蓋對機器學(xué)習(xí)模型的多種優(yōu)化,包括簡單的優(yōu)化(例如消除模型「幻覺」)和更具挑戰(zhàn)性的優(yōu)化(例如 RLHF)。
那么,Lamini 庫在構(gòu)建 ChatGPT 般強大的 LLM 時能起到哪些作用?按照 OpenAI 構(gòu)建 ChatGPT 的流程,Lamini 的作用具體包括以下幾點:
1. 對 ChatGPT 或其他模型進行 prompt 調(diào)整。Lamini 庫的 API 提供快速調(diào)優(yōu)功能,只需一行代碼即可在 OpenAI 的模型和其他開源模型之間切換。Lamini 庫還提供了優(yōu)化之后的正確 prompt,以便于用戶根據(jù)模型設(shè)置不同格式的 prompt。
2. 構(gòu)建一個輸入輸出對的大型數(shù)據(jù)集。該數(shù)據(jù)集將讓模型理解它應(yīng)如何響應(yīng)其輸入。使用 Lamini 引擎,用戶可以僅用幾行代碼就快速從 100 個數(shù)據(jù)點生成 50k 數(shù)據(jù)點,而無需啟動任何 GPU。Lamini 也提供了一個 50k 的開源數(shù)據(jù)集。
3. 在數(shù)據(jù)集上微調(diào)基礎(chǔ)模型。Lamini 的研究團隊在其 50k 的開源數(shù)據(jù)集上微調(diào)出一個 LLM,后續(xù)他們將發(fā)布執(zhí)行此操作的功能和代碼。
4. 在經(jīng)過微調(diào)的模型上運行 RLHF。Lamini 庫讓用戶不再需要大型 ML 和人工標(biāo)記團隊來運行 RLHF。
5. 方便用戶將模型部署到云端。
數(shù)據(jù)生成器
?ChatGPT 風(fēng)靡全球是因為它可以遵循用戶的指令生成高質(zhì)量內(nèi)容,但其基礎(chǔ)模型 GPT-3 卻不總是能做到這一點。例如,向 GPT-3 提出一個問題,它可能會生成另一個問題而不是回答它。
ChatGPT 能做到這一點的原因是它使用了大量的「指令 - 執(zhí)行」數(shù)據(jù)。但對于普通的開發(fā)人員來說,這些數(shù)據(jù)是難以獲得的。
基于此,Lamini 提供了一個托管數(shù)據(jù)生成器,只需幾行代碼即可將 100 個樣本變成超過 50k 個樣本,而不需要啟動任何 GPU,并且生成的數(shù)據(jù)是商業(yè)可用的。用戶可以自定義最初的 100 多條指令,以便生成的 5 萬條符合要求的指令,最終得到一個大型指令遵循數(shù)據(jù)集。
Lamini 的數(shù)據(jù)生成器是一個 LLM pipeline,其靈感來自斯坦福的開源模型 Alpaca。這個生成 pipeline 使用 Lamini 庫來定義和調(diào)用 LLM,以生成不同但相似的指令 - 響應(yīng)對。
托管數(shù)據(jù)生成器生成的數(shù)據(jù)質(zhì)量參差不齊,有的數(shù)據(jù)很好,有的則很差。因此,Lamini 下一步將生成的數(shù)據(jù)過濾為高質(zhì)量數(shù)據(jù),這個過程只需要運行一個如下的簡單腳本。
importjsonlinesdefmain():dataset=list(load_dataset("data/lamini_dataset.jsonl"))questions=set()filtered_dataset=[]forexampleindataset:ifexample["question"]inquestions:continuefiltered_dataset.append(example)questions.add(example["question"])print(f"Removed{len(dataset)-len(filtered_dataset)}duplicatequestions")save_dataset("data/filtered_lamini_dataset.jsonl",filtered_dataset)defload_dataset(path):withopen(path)asdataset_file:reader=jsonlines.Reader(dataset_file)forexampleinreader:yieldexampledefsave_dataset(path,dataset):withopen(path,"w")asdataset_file:writer=jsonlines.Writer(dataset_file)forexampleindataset:writer.write(example)main()
然后,Lamini 通過在過濾后的高質(zhì)量數(shù)據(jù)集上訓(xùn)練基礎(chǔ)模型為用戶創(chuàng)建自定義 LLM。
總的來說,Lamini 把微調(diào)模型封裝成一種服務(wù),讓開發(fā)者們只用非常簡單的步驟就能把基礎(chǔ)模型微調(diào)成性能良好的垂類模型,這大幅降低了構(gòu)建 LLM 的技術(shù)門檻。
在社交網(wǎng)絡(luò)上,Lamini 獲得了不少人的歡迎。
不知在此類工具出現(xiàn)后,調(diào)大模型會不會變成一件容易的事。
https://lamini.ai/blog/introducing-lamini
關(guān)鍵詞:
推薦閱讀