Promptwright 是 Stacklok 的一個 Python 函式庫,設計用於使用本機 LLM 產生大型綜合資料集。該庫提供了一組靈活且易於使用的介面,使用戶能夠產生提示的合成資料集。
Promptwright 的靈感來自於 redotvideo/pluto,事實上,它一開始是 fork,但最終是一個重寫,允許針對本地 LLM 模型生成資料集,而不是 OpenAI,後者的成本可能非常昂貴。
該庫與 Ollama 接口,可以輕鬆提取模型並運行 Promptwright。
本地 LLM 用戶端整合:與基於 Ollama 的模型交互
可設定指令和提示:定義自訂指令和系統提示
Push to Hugging Face :將產生的資料集推送到 Hugging Face Hub。
Python 3.11+
已安裝promptwright
庫
Ollama CLI 已安裝並正在運作(請參閱 Ollama 安裝
透過 Ollama 拉取的模型(請參閱模型相容性)
若要安裝先決條件,您可以使用以下命令:
pip 安裝提示 烏拉馬服務 ollama pull {model_name} # 無論您想使用哪個模型
examples
目錄中有一些範例,示範如何使用該庫產生不同的基於主題的資料集。
運行一個例子:
確保您已透過執行ollama serve
啟動 Ollama。
驗證是否已下載所需的模型(例如llama3.2:latest
)。
將所選範例檔案中的model_name
設定為您已下載的模型。
engine = LocalDataEngine( args=LocalEngineArguments( instructions="產生創意寫作提示和範例回應。", system_prompt="您是創意寫作講師,提供寫作提示和範例回應。", model_name="llama3.2:latest", temp =0.9, # 更高的溫度以獲得更多創意變化max_retries=2,
運行您選擇的範例文件:
python 範例/creative_writing.py
產生的資料集將會儲存到 JSONL 檔案中,並儲存到dataset.save()
中設定的任何內容。
{「訊息」:[ { "role": "system", "content": "你的任務是設計一種身臨其境的虛擬實境體驗,將使用者帶入一個奇幻的奇幻世界。" }, { "role": "user", "content": "建立一段關於角色發現其隱藏才能的描述性段落。" }, { "role": "assistant", "content": "當艾瑪凝視畫布時,她的手指懸停在畫筆上方,似乎在猶豫是否要釋放她內心鎖住的色彩。筆觸以大膽的放縱開始,旋轉著藍色和綠色融合成令人著迷的光影之舞,她感覺自己變成了藝術——她的本質就像春天風暴中的水彩畫一樣滲透到畫布上,周圍的世界消失了,只剩下充滿活力的東西。 } ] }
Dataset :用於管理產生的資料集的類別。
LocalDataEngine :負責與LLM客戶端互動並產生資料集的主引擎。
LocalEngineArguments :一個配置類,定義用於產生資料的指令、系統提示、模型名稱溫度、重試和提示範本。
OllamaClient :用於與 Ollama API 互動的客戶端類
HFUploader :用於將資料集上傳到 Hugging Face 的實用程式類別(傳入資料集和令牌的路徑)。
如果您在執行腳本時遇到任何錯誤,以下是一些常見的故障排除步驟:
重新啟動奧拉馬:
Killall ollama && ollama 發球
驗證模型安裝:
ollama 拉 {model_name}
檢查 Ollama 日誌:
檢查日誌中是否有任何錯誤訊息,這些訊息可能會提供有關錯誤原因的更多上下文,這些訊息可以在~/.ollama/logs
目錄中找到。
該庫應該適用於大多數 LLM 模型。到目前為止,它已經在以下模型上進行了測試:
LLaMA3 :該函式庫旨在與 LLaMA 模型配合使用,特別是llama3:latest
模型。
Mistral :該函式庫與 Mistral 模型相容,該模型是 GPT-3 模型的分支。
如果您繼續測試,請提出拉取請求來更新此清單!
如果此處有需要改進的地方,請提出問題或提交拉取請求。
此專案根據 Apache 2 許可證獲得許可。有關更多詳細信息,請參閱LICENSE
文件。