基于CMS的私有知識庫與公共人工智能的集成
人工智能可以說是未來10年的一個趨勢和風口웃유ღ♋♂,其中OpenAI是首先推出的一種人工智能技術驅動的自然語言處理工具♀☿☼☀☁☂☄,它基于Transformer神經網絡架構❻❼❽❾❿⓫⓬⓭⓮⓯⓰,這是一種用于處理序列數據的模型⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,擁有語言理解和文本生成能力㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,可以不斷學習和升級☾☽❄☃,不僅僅是傳統的檢索功能❻❼❽❾❿⓫⓬⓭⓮⓯⓰。
人工智能的出現ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,對很多行業㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,很多產業ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,很多應用都是顛覆性的改革ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。
其中對于科研⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓、教學⑰⑱⑲⑳⓪⓿❶❷❸❹❺、圖書館領域內⒜⒝⒞⒟⒠⒡⒢⒣⒤,通過人工智能工具⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,提煉和學習現有知識✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,學習私有領域的知識⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,然后疊加AI本身的知識웃유ღ♋♂,可以實現更高級更專業的人工智能機器人✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴、生成新的學習素材❣❦❧♡۵。
本文就如何訓練一個私有化的ChatGPT人工智能模型做一個簡單介紹⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,類似于訓練一個專業領域的人工智能機器人✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴。

訓練私有化ChatGPT的方法
目前根據ChatGPT的官網文檔❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,有兩類方式訓練自己的ChatGPT
1. Embeddings
2. Finetune
第一個Embeddings⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,類似于聯合查詢ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,將自有的數據進行向量化存儲✺ϟ☇♤♧♡♢♠♣♥,通過OpenAI和Embedding的向量數據進行聯合查詢ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。
第二個FinetuneⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,類似于私有化一個自定義的模型⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,這個模型進行投喂了大量的私有數據ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,所以AI就會比較專業的進行回答相關問題⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾。
Embeddingsⓚⓛⓜⓝⓞⓟⓠⓡⓢ,
主要功能是通過OpenAI的Embedding生成接口⑰⑱⑲⑳⓪⓿❶❷❸❹❺,來將本地的數據生成向量數據⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,為什么要用OpenAI的embeddings接口呢♀☿☼☀☁☂☄?
因為OpenAI通過人工智能的方式ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,生成的向量數據更加準確❣❦❧♡۵,所以Embeddings的方式主要是接口生成的向量數據☈⊙☉℃℉❅,然后可以將這些向量數據保存到本地的向量數據庫❣❦❧♡۵,比如MongoDB等等⒜⒝⒞⒟⒠⒡⒢⒣⒤,然后通過向量查詢獲取自己想要的結果❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣。
具體可以參考youtube這個介紹:
https://www.youtube.com/watch?v=ySus5ZS0b94

當然ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,還有另外一種應用㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,是在上面的步驟上增加一個OpenAI API接口的調用㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
1. 生成Embeddings⒜⒝⒞⒟⒠⒡⒢⒣⒤,存儲向量
2. 用戶搜索⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,通過input搜索向量♀☿☼☀☁☂☄,將搜到的結果發送給ChatGPTⓣⓤⓥⓦⓧⓨⓩ,讓ChatGPT根據輸入的內容進行回答
最終生成的prompt類似下面結構:
請用下面的文章來回答如下問題ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,
文章摘要:xxxx
文章摘要:xxx
...
問題:請問xxxx
具體的代碼可以參考這篇文章介紹:
https://cookbook.openai.com/examples/question_answering_using_embeddings


Finetune
Finetune是一種類似于對模型的優化ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,他是長期的持續的❻❼❽❾❿⓫⓬⓭⓮⓯⓰,對于大量數據或者對于某個特定領域的綜合知識可以采用這種方式㈠㈡㈢㈣㈤㈥㈦。
Finetune一旦完成☾☽❄☃,那么后續就是可以持續的調用這模型獲取答案웃유ღ♋♂,所以后續的prompt就無需再給ChatGPT更多的提示和樣例參考⒜⒝⒞⒟⒠⒡⒢⒣⒤。
Finetune可以有下面幾步:
1. 準備數據
2. 訓練一個模型
3. 評估訓練結果ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,可以不斷重復步驟2
4. 使用訓練好的模型
需要注意的是FineTune的模型會是私有的ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,比如my_modalⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,另外一個是上傳的數據是有大小限制的ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,目前最大1GB限制⑰⑱⑲⑳⓪⓿❶❷❸❹❺。
1. 數據格式的要求參考
https://cookbook.openai.com/examples/chat_finetuning_data_prep
2. OpenAI可視化操作界面:
https://platform.openai.com/finetune
3. 具體可以參考OpenAI的官方文檔
https://platform.openai.com/docs/guides/fine-tuning

私有化Embeddings和Finetune的區別
私有化Embeddings和Finetune有什么區別呢✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴?
目前來看主要是應用場景不同⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,Embedding主要偏向更加準確的結果❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,精準的結果ⓣⓤⓥⓦⓧⓨⓩ,并且時效性短❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,不需要長時間記憶❣❦❧♡۵,另外✺ϟ☇♤♧♡♢♠♣♥,更多配合向量數據庫查詢ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,應用于更垂直的領域ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。
而對于Finetune來說ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,其答案更加通用性❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,常識性⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,為一般應用目的❣❦❧♡۵,給其投喂數據的主要目的是彌補其知識面不足⑰⑱⑲⑳⓪⓿❶❷❸❹❺,增加更多物料ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。
主要應用場景如下:
1. 答案檢索
2. 內容分類
3. 相關推薦
4. 異常檢測
而Finetune的應用場景主要表現在如下幾個方面:
1. 新建一個新的回答風格⒜⒝⒞⒟⒠⒡⒢⒣⒤、方式
2. 對于原有模型的內容提升ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ、內容糾錯
3. 處理更多邊緣性問題
可以看OpenAI這篇討論 https://community.openai.com/t/fine-tuning-vs-embedding/35813/10
可以參考Youtube的這個介紹
https://www.youtube.com/watch?v=_wtfszFzqt0
后記
不管是那種數據投喂方式⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,最終都需要數據的準備ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,所以CMS的內容管理系統在此刻發揮了重要作用✺ϟ☇♤♧♡♢♠♣♥,如果在具備原始數據的情況下☾☽❄☃,訓練一個自定義個ChatGPT模型那么將是非常快速和高效的⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯。
因此웃유ღ♋♂,ChatGPT與內容管理的最終整合⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,能夠將AI應用到具體的數據應用層面❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,發揮更高作用⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯。
創作不易⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,轉載請注明出處①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯!
更多Drupal CMS相關內容ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,請參考我們其他相關文章✵✶✷✸✹✺✻✼❄❅,
1⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯、常見開源可視化低代碼頁面構建框架對比
2♦☜☞☝✍☚☛☟✌✽✾✿❁❃、Drupal 的OpenAI模塊使用介紹
3①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯、基于ChatGPT的Drupal模塊應用
4㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂、常見的CMS平臺比較
5㈠㈡㈢㈣㈤㈥㈦、在線展覽和多媒體展示建設方案
6㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂、構建英文網站應該用什么框架⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾?
7ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ、如何通過Drupal Rector來快速升級Drupal