我們先從快速瀏覽整個程序
- 首先, 我們需要資料, 要盡可能使用CSV/Json格式, 基于這些資訊, 我們要讓AI獲取所有所需要的資訊來正確的完成它的作業
- 準備資料, 微調程序需要很長的書劍才能運行, 我們肯定是不希望出現錯誤的, 所以我們使用OpenAI的資料準備工具(CLI tool)來處理我們的資料, 讓格式正確, 這樣就不會被拒絕
- 上傳資料, 告訴OpenAI來制作我們的微調模型, 同樣的, 我們同樣使用CLI tool來執行此操作, 啟動是很快的, 但這可能需要很長時間來處理請求
- 當上面這個程序結束的時候, 我們會有自己特殊的端點, 然后我們可以使用我們新訓練的模型來進行對話了
以上就是這整個程序的作業原理, 下面讓我們一步一步的開始操作
1.Get Data
我們需要一些資料來微調我們的模型, 那第一個問題來了: 微調模型需要多少資料?
OpenAI給出了我們建議:
原文: You should provide at least a fewhundred high-quality examples,ideally vetted by human experts.
翻譯: 你應該提供至少幾百個高質量的例子, 最好由人類專家審查
更重要是, OpenAI說:
原文: Increasing the number of examples isusually the best and most reliable wayofimproving performance.
翻譯: 增加示例數量, 通常是提高性能最好最可靠的方法
所以, 以上是微調模型的原則, 這是絕對要記住的
那有了資料量, 我們再來談談資料格式
下面是OpenAI官方給出的要求, 希望資料為 Json-L格式, 并給我們一個示例

Json-L是每行都用Json格式化的資料, 每行都必須是有效的Json, 而且每行都必須以換行符結尾
當然, 你如果不會寫也不要緊, 我們會使用一種特殊的工具來創建它
現在讓我們來使用更簡單的CSV或逗號分隔值資料, 然后讓OpenAI tool來完成繁重的作業
OpenAI對于我們的資料給了一些進一步的標準
原文: Each prompt should end with a separator to showwhere the prompt ends and the completion begins.
翻譯: 每個提示都已分隔符結尾來顯示提示結束位置和完成的開始位置
原文: Each completion should start with a whitespace
翻譯: 每個完成都應該以空白開始
原文: Each completion should end with a stop sequence toinform the model where the completion ends.
翻譯: 每個完成都應該以一個停止序列結束,以告知模型完成的終點
stop sequence是什么我們暫時還不需要, 等我們后面到專案用的時候再來討論它
壞訊息是: 官方并沒有告訴我們到底想要什么, 甚至是什么是停止序列, 什么樣的分隔符, 甚至連個例子都沒有
好訊息是: 它提供了工具, ↓

看一下這次訓練我準備的資料

prompt里給的是關鍵詞, completion里給的是回復, 每個資料都是來自于真實的資料
當然, 你也可以不必局限于這個格式, 你也可以直接在下面寫一段總結式的內容, 直接作為 prompt
理想情況下, 我們需要更多的資料來訓練, 但這里, 我們用這部分資料來嘗試微調的作業原理
下面我們開始進行資料處理前的準備
我們將會使用終端來進行資料處理, 使用的python3 以及pip(自己安裝)
升級pip到最新版 python3 -m ensurepip --upgrade
安裝OpenAI工具 pip install --upgrade openai

這里要特別說明一下, 我們創建的微調模型是只有我們自己才能使用的, 所以, OpenAI工具需要我們的API秘鑰
你可以使用export OPENAI_API_KEY="sk-vXXXXXXXXXXXXXXXXXXXXXXXXXXX4QbUMjo"這個命令添加openAI秘鑰
PS: windows系統是不認export指令的
所以到這里我們就開始使用CentOS系統了, 上面的操作都在CentOS系統上執行一遍

到這個命令為止, 系統并不會回傳我們執行的結果, 說明已經成功接受了我們的秘鑰
2.Prep Data
截止到當前操作, 我們已經成功安裝OpenAI CLI并指定上了我們的秘鑰
下面我們開始用它來準備我們的資料
現在, 我已經將準備好的資料放到了服務器上

然后讓我們進入到這個檔案夾下, 并執行
openai tools fine_tunes.prepare_data -f XXXX.csv
這個命令就是來告訴OpenAI使用微調工具來準備我們的資料, -f標識將識別資料檔案
這里我們遇到了一個問題
我們的終端一直在報: openai: 未找到命令
查閱了一些資料后發現, 可能是由于在使用OpenAI CLI命令時尚未激活虛擬環境(Virtual Environment)所致
所以我們再來創建一個虛擬環境
python3 -m venv myenv
source myenv/bin/activate
pip install openai
openai --version

可以看到, 現在確實能夠使用OpenAI CLI了
繼續重復上面的命令, 我們又遇到了新的問題

OK, 繼續安裝pandas
pip install openai pandas

pandas安裝成功, 我們再來試一下


然后下面的, 都選y就可以了

然后就得到了OpenAI CLI給處理好的Jsonl檔案
現在我們已經準備好我們的資料了, 下面就開始進行模型微調~
關注一下, 持續更新~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556143.html
標籤:其他
上一篇:(C#) IIS 回應標頭過濾敏感資訊(如:Server/X-Powered-By等) 運維知識
下一篇:返回列表
