目錄
這些模型變得越來越聰明,但它們更像是人類的,而非個體的,當我用我自己的這些數據去重新訓練模型時,我能得到完全不一樣的東西,一個更靠近個體的模型,雖然無論是我產生的數據量,還是我採用的預訓練模型的參數量和結構,可能都無法支撐起一個能夠和我的腦子差不多的模型,但對此進行的嘗試,依然非常有趣。
首頁 科技週邊 人工智慧 '我用個人微信聊天記錄和部落格文章打造了自己的數位化克隆AI'

'我用個人微信聊天記錄和部落格文章打造了自己的數位化克隆AI'

Apr 23, 2023 am 10:52 AM
微信 資訊 資料訓練

除了開飛機,做出完美的烤肋排,獲得6塊腹肌以及讓公司賺大錢之外,我一直以來也想做成的一件事,是實現一個聊天機器人。

和多年前簡單透過關鍵字配對回覆的小黃雞,到現在已經堪比人類智慧的 chatgpt,聊天AI一直在進步,但他們和我想的都有一些區別。

我在微信上和很多人聊天,有的人聊得多,有的人聊的少,我在群組裡也會說話,我還會寫博客和公眾號,我會在很多在地方留下評論,我也會發微博,這些是我在網路世界留下的痕跡,某種程度上這些東西構成了世界對我的認知,從這個角度上,也就構成了我。將這些數據——我對不同訊息的回复,我寫的每一篇文章,每一句話,我發過的每一條微博等,全部匯入一個神經網路模型之中,去更新其中的參數,理論上就可以獲得一個我的數位拷貝。

從原理上,這和對chatgpt 說「請扮演一個叫小王的人,他的經歷是XXX」不同,雖然以chatgpt  的智慧,這樣的扮演毫不費力且可能以假亂真,但其實chatgpt 的參數並沒有改變,這更像是“扮演”而非“重塑”,chatgpt  的上千億個參數並沒有改變一個,它從你之前的文本中獲取一些信息,然後用它的智慧來應對你。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我喜歡在文章裡寫一些沒有太大用處的比喻,並喜歡在最後做一些總結,跟人聊天的時候,我喜歡用「可以的」來敷衍,同時用臥槽來表示驚訝,我某些時候少言寡語,另一些時候則滔滔不絕,這是我自己能夠感知的一些特點,此外還有更多我自己都無法察覺的固定習慣,但這些微妙又模糊的東西,我無法告訴chatgpt,這就像你做自我介紹,可以介紹的很豐富,但和真正的你,依然差之千里,甚至有時候截然相反,因為當我們意識等到自己的存在的時候,我們其實是在表演自己,只有在我們沒有意識到自己的存在,而融入生活的時候,我們才是真正的自己。

在chatgpt 發布之後基於興趣去學習文本大模型的技術原理,有一種49 年入國軍的感覺,因為對個人愛好者來說,做出在任何方面或再細小的垂直領域超越chatgpt 的可能性已經不存在了,同時它又不開源,除了使用,沒有別的可打的主意。

但最近2個月出現的一些開源文字預訓練模型,例如大名鼎鼎的 llama 和 chatglm6b,讓我那個克隆自己的想法又開始蠢蠢欲動起來,上週,我準備試試看。

首先我需要數據,足夠多且全部都由我產生的數據,最簡單的數據來源是我的微信聊天記錄和博客,因為沒有完全清空微信聊天記錄,從2018 年到現在,我手機裡的微信佔了80G的儲存空間,對此我一直有一種家裡被人強佔一塊地兒的感覺,現在如果能把這裡的數據利用起來,我會和這80G冰釋前嫌。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

 

我在幾年前曾經備份過我的微信聊天記錄,我又找到了當年使用的工具,是一個在github 開源的工具,叫做WechatExporter,連結我會放到文末,使用這個工具,可以實現在Windows 電腦上備份iPhone 中的手機微信的所有聊天記錄,並導出成純文字格式,這是一個需要耐心的操作,因為首先需要將整支手機備份在電腦上,然後這個工具會從備份檔案讀取到微信的記錄,並匯出。

我大概花了4個小時備份,然後很快就導出了我所有的微信聊天記錄,其按照聊天對象,被導出到了許多個文本文件中

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

#這裡麵包含了群組聊天和一對一的聊天。

然後我開始做數據清洗,大多數群我都是潛水比較多,我篩選出一些我比較活躍的群,此外還篩出了一些和個人的聊天記錄,我和他們聊天很多,同時他們也願意我把聊天記錄拿來這麼做,最後大概50個聊天的文字檔案夠我使用。

我寫了一個python 腳本,遍歷這些文本文件,找出我的所有發言,以及上一句,做成對話的格式,然後存入json,這樣,我就擁有了一個我自己的微信聊天資料集。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

此時我也讓同事用爬蟲爬取了我自己的所有博客文章,他爬完發給我之後我才想起來,我其實可以用博客後台內建的匯出功能直接匯出。雖然部落格資料也很乾淨,但我一開始並不知道如何利用,因為我要訓練的是聊天的模型,而部落格文章是一大段一大段的話,並不是聊天,所以我第一次訓練,只用了微信的這些純聊天記錄。

我選擇了chatglm-6b 作為預訓練模型,一方面它的中文效果已經被訓練的足​​夠好了,另一方面它的參數是60 億,我的機器能不太費力的跑起來,還有個原因是,在github 已經有好幾個對其進行微調訓練的方案了(我會一起列在文末),此外它還可以簡稱為6B,和我做的6pen 都姓6,這也讓我更傾向於用它。

考慮到我的微信聊天資料最終可用大約10 萬條,我設定了比較低的學習率,同時增加了epoch,在幾天前的一個晚上,睡前,我寫完訓練腳本,並開始運行,然後我就開始睡覺,希望睡醒之後能跑完,但那個晚上我差不多每隔一個小時就醒一次。

早上起床之後,模型訓練完了,遺憾的是loss 下降的並不好,也就意味著12個小時訓練出來的模型,並不算好,但我是個深度學習的菜雞,能跑完不報錯我已經謝天謝地了,所以我並沒有感到失望,而是開始用這個模型來跑對話。

為了增加一點儀式感,我不想用jupyter 筆記,或在黑黢黢的終端裡去聊天,我找了個開源的前端聊天頁面,略做修改,然後把模型部署起來,封裝了API ,然後用前端頁面去呼叫這個API,於是就可以實現比較像那麼回事的聊天了。

請不笑話我,我用自己的10 萬條微信聊天記錄,訓練出的模型,以下是我和他(或者它?)的第一次對話

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

 

我又試了下,結果依然不是很好,我不是那種不優化到極致就不好意思拿出手的人,因此我毫不害羞的直接發給了幾個朋友,他​​們給我的回饋是,有點像你,同時他們給我回了對話截圖。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

#第一個版本,這個模型確實具備某些跟我比較類似的點,我說不好,但有一點這種感覺。

如果你問它,你哪裡讀的大學,或者你老家是哪裡,它並不會回答出準確的信息,並且肯定說的是錯的,因為我的聊天記錄中並不會有很多人這麼問我,從某個角度上,這個模型並不了解我,它像是個克隆。

當我收到一條微信訊息,內容為A,我回覆了B,那麼這裡是有一些原因的,這些原因中的一部分,儲存在我物理腦袋的七八十億個神經元裡,理論上,如果我產生的數據夠多,也許幾千億條,那麼一個參數夠大的人工智慧模型,就能非常接近我的腦子,10萬條也許少了一些,但也足以讓模型的60億個參數改變一部分,使其相較於原始的預訓練模型,更接近我一點。

此外它還有個更大的缺點,就是蹦不出來幾個字,回答非常簡略,這雖然符合我很多時候的微信聊天風格,但並不是我想要的,我想要它說更多話。

此時我忽然想到了我的博客,如何能把這些博客轉換為問答呢,我想到了chatgpt ,在我精心構造的prompt 之下,它成功把我博客文章的一段文本,變成了多個對話形式的問答:

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

某些時候chatgpt 會回傳一些不符合格式的內容,所以我寫了一個校對腳本,來將各種不符合規則的返回,統統修改為標準的json,且欄位名稱不變。

然後我將其封裝為一個接口,放在了香港的伺服器上,並在我的電腦上寫了一個腳本,把我的部落格文章按照500字劃分,拿去批量轉成問答,受限於chatgpt的介面速度,我差不多又花了一晚上,才把我的兩百多篇博文,轉換成了差不多5000 個對話資料集。

此時我面臨一個選擇,如果將部落格對話加到微信對話資料集裡去訓練,那麼部落格對話佔比太低,可能影響會非常小,也就是說跟之前的模型差別不大;另一個選擇是單純用文章的這些數據,去訓練一個新模型。

我向 6pen 的演算法老哥尋求幫助,在確定模型權重可以融合併想辦法從他那順到融合腳本後,採用了後一種方式。

5000個問答,訓練速度很快,一兩個小時就夠了,下午我一邊寫文檔一邊瞅一眼訓練進度,下班之前訓練完畢,我開始進行模型的融合,讓之前的用微信聊天記錄訓練的模型,和用我的部落格訓練的模型進行融合。

兩個模型的權重可以自由配置,我嘗試了多種不同的比例,考慮到模型收斂過程中loss 還有一些反彈,我還嘗試了不同步數的模型版本

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我整晚整晚和這些模型對話,找到效果最好的,但我發現,我似乎很難找出來,這些模型,有一些不同的表現,有的會比較暴躁,有的像舔狗一樣,有些特別高冷,有些則很熱情,然後我意識到,某種程度上,這或許是我的不同面,這麼理解雖然肯定會讓搞深度學習,並對其中原理爛熟於胸的人嗤之以鼻,但不失一些浪漫。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

最終我發現,聊天和文章兩個模型,權重比為7 比2 ,且採用第6600 步保存的模型,融合效果在更多時候,都要更好一點,當然也可能是那個時候已經半夜兩點,我的判斷力有所下降,但無論如何,我就把他確定為最終模型了。

我跟他聊了很多。

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

我用我的10万条微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI

##很明顯,他和chatgpt 差的極遠,沒辦法幫我寫代碼,或者寫文案,也不夠聰明,因為訓練用的數據不包含多輪對話,所以多輪對話的理解力更差,與此同時,他對我也不算特別了解,除了知道自己的名字(也就是我的名字),我的其他很多信息,他其實並不能準確回答,但是,他經常會說一些簡單的幾個字,讓我有一種熟悉的感覺,也可能是錯覺,誰知道呢。

總的來說,現在存在的所有廣為人知的文本大模型,都是用海量的數據訓練的,訓練過程會盡可能包含全人類所產生的所有信息,這些信息讓模型的億萬參數得以持續優化,例如第2043475個參數增加4,第9047113456個參數減少17,然後得到更聰明的神經網路模型。

這些模型變得越來越聰明,但它們更像是人類的,而非個體的,當我用我自己的這些數據去重新訓練模型時,我能得到完全不一樣的東西,一個更靠近個體的模型,雖然無論是我產生的數據量,還是我採用的預訓練模型的參數量和結構,可能都無法支撐起一個能夠和我的腦子差不多的模型,但對此進行的嘗試,依然非常有趣。

我將這個網頁重新部署了一下,並在中間加了一層serverless 做保護,因此,現在所有人都可以去試試和這個我的數位版聊天,服務由我的祖傳V100伺服器提供,而且只有一台,所以如果人多的話,可能會有各種問題,連結我會放在最下面。

積極的,發自內心的產出更多的數據,就越有可能在未來獲得更接近你的數字拷貝,這或許會有一些道德,甚至倫理問題,但這是大概率會發生的事情,之後我的資料累積的更多,或有更好的預訓練模型,訓練方式,我可能隨時都會重新再次嘗試訓練,這不會是一個盈利,或任何跟商業沾邊的項目,這某種程度上算是我自己追尋自己的一種方式。

這樣一想,人生似乎都少了一些孤獨感。

  • 我的數位克隆線上聊天:https://ai.greatdk.com
  • 你也可以透過點擊最下面的閱讀原文去體驗,不過因為只有一台祖傳V100顯示卡在提供推理,所以我設定了請求限制,即便如此,它也可能掛掉,我會每隔10分鐘重啟一下這個服務,如果你確實有興趣,且發現它掛了,可以過段時間再試試看
  • 我使用和參考的項目:
  • WechatExporter:https://github.com/BlueMatthew/WechatExporter
  • #chatglm-6b :https://github.com/THUDM/ChatGLM-6B
  • zero_nlp:https://github.com/yuanzhoulvpi2017/zero_nlp
chatglm_finetuning:https://github.com/ssbuild######chatglm_finetuning:https://github.com/ssbuild######chatglm_finetuning:https://github。 /chatglm_finetuning######MoeChat:https://github.com/Fzoss/MoeChat######Alpaca: https://crfm.stanford.edu/2023/03/13/alpaca.html## ####LLAMA:https://github.com/facebookresearch/llama######

以上是'我用個人微信聊天記錄和部落格文章打造了自己的數位化克隆AI'的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1653
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1251
29
C# 教程
1224
24
公司安全軟件導致應用無法運行?如何排查和解決? 公司安全軟件導致應用無法運行?如何排查和解決? Apr 19, 2025 pm 04:51 PM

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

H5頁面製作和微信小程序有什麼不同 H5頁面製作和微信小程序有什麼不同 Apr 05, 2025 pm 11:51 PM

H5更靈活,可定制性強,但需要嫻熟的技術;小程序上手快,維護便捷,但受限於微信框架。

企業微信中的JS資源緩存問題如何解決? 企業微信中的JS資源緩存問題如何解決? Apr 04, 2025 pm 05:06 PM

企業微信的JS資源緩存問題探討在進行項目功能升級時,常常會遇到部分用戶未能成功升級的情況,尤其是在企�...

歐易交易所app國內下載教程 歐易交易所app國內下載教程 Mar 21, 2025 pm 05:42 PM

本文提供國內安全下載歐易OKX App的詳細指南。由於國內應用商店限制,建議用戶通過歐易OKX官方網站下載App,或使用官網提供的二維碼掃描下載。下載過程中,務必核實官網地址,檢查應用權限,安裝後進行安全掃描,並啟用雙重驗證。 使用過程中,請遵守當地法律法規,使用安全網絡環境,保護賬戶安全,警惕詐騙,理性投資。 本文僅供參考,不構成投資建議,數字資產交易風險自負。

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

公司安全軟件與應用衝突怎麼辦? HUES安全軟件導致常用軟件無法打開如何排查? 公司安全軟件與應用衝突怎麼辦? HUES安全軟件導致常用軟件無法打開如何排查? Apr 01, 2025 pm 10:48 PM

公司安全軟件與應用兼容性問題及排查方法許多企業為了保障內網安全,會安裝安全軟件。然而,安全軟件有時...

H5和小程序如何選擇 H5和小程序如何選擇 Apr 06, 2025 am 10:51 AM

H5和小程序的選擇取決於需求。對於跨平台、快速開發和高擴展性的應用,選擇H5;對於原生體驗、豐富功能和平台依附性的應用,選擇小程序。

H5和小程序的開發工具有哪些 H5和小程序的開發工具有哪些 Apr 06, 2025 am 09:54 AM

H5開發工具推薦:VSCode、WebStorm、Atom、Brackets、Sublime Text;小程序開發工具:微信開發者工具、支付寶小程序開發者工具、百度智能小程序IDE、頭條小程序開發者工具、Taro。

See all articles