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