自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我用我的10萬條微信聊天記錄和 280 篇博客文章,做了我自己的數(shù)字克隆AI

人工智能
總的來說,現(xiàn)在存在的所有廣為人知的文本大模型,都是用海量的數(shù)據(jù)訓(xùn)練的,訓(xùn)練過程會盡可能包含全人類所產(chǎn)生的所有信息,這些信息讓模型的億萬參數(shù)得以不斷優(yōu)化,例如第2043475個參數(shù)增加4,第9047113456個參數(shù)減少17,然后得到更聰明的神經(jīng)網(wǎng)絡(luò)模型。

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

和多年前簡單通過關(guān)鍵詞匹配來回復(fù)的小黃雞,到現(xiàn)在已經(jīng)堪比人類智慧的 chatgpt,聊天AI一直在進(jìn)步,但他們和我想的都有一些區(qū)別。

我在微信上和很多人聊天,有的人聊得多,有的人聊的少,我在群里也會說話,我還會寫博客和公眾號,我會在很多地方留下評論,我也會發(fā)微博,這些是我在網(wǎng)絡(luò)世界留下的痕跡,某種程度上這些東西構(gòu)成了世界對我的認(rèn)知,從這個角度上,也就構(gòu)成了我。將這些數(shù)據(jù)——我對不同消息的回復(fù),我寫的每一篇文章,每一句話,我發(fā)過的每一條微博等,全部匯入一個神經(jīng)網(wǎng)絡(luò)模型之中,去更新其中的參數(shù),理論上就可以獲得一個我的數(shù)字拷貝。

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

圖片圖片

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

在 chatgpt 發(fā)布之后基于興趣去學(xué)習(xí)文本大模型的技術(shù)原理,有一種 49 年入國軍的感覺,因?yàn)閷€人愛好者來說,做出在任何方面或再細(xì)小的垂直領(lǐng)域超越 chatgpt 的可能性已經(jīng)不存在了,同時它又不開源,除了使用,沒有別的可打的主意。

但最近2個月出現(xiàn)的一些開源文本預(yù)訓(xùn)練模型,例如大名鼎鼎的 llama 和 chatglm6b,讓我那個克隆自己的想法又開始蠢蠢欲動起來,上周,我準(zhǔn)備試試看。

首先我需要數(shù)據(jù),足夠多且全部都由我產(chǎn)生的數(shù)據(jù),最簡單的數(shù)據(jù)來源是我的微信聊天記錄和博客,因?yàn)闆]有完全清空微信聊天記錄,從 2018 年到現(xiàn)在,我手機(jī)里的微信占了80G的儲存空間,對此我一直有一種家里被人強(qiáng)占一塊地兒的感覺,現(xiàn)在如果能把這里的數(shù)據(jù)利用起來,我會和這80G冰釋前嫌。

圖片圖片

 我在幾年前曾經(jīng)備份過我的微信聊天記錄,我又找到了當(dāng)年使用的工具,是一個在 github 開源的工具,叫做 WechatExporter,鏈接我會放到文末,使用這個工具,可以實(shí)現(xiàn)在 Windows 電腦上備份 iPhone 中的手機(jī)微信的所有聊天記錄,并導(dǎo)出成純文本格式,這是一個需要耐心的操作,因?yàn)槭紫刃枰獙⒄麄€手機(jī)備份在電腦上,然后這個工具會從備份文件中讀取到微信的記錄,并導(dǎo)出。

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

圖片圖片

這里面包括了群聊和一對一的聊天。

然后我開始做數(shù)據(jù)清洗,大多數(shù)群我都是潛水比較多,我篩選出一些我比較活躍的群,此外還篩出了一些和個人的聊天記錄,我和他們聊天很多,同時他們也愿意我把聊天記錄拿來這么做,最后大概50個聊天的文本文件夠我使用。

我寫了一個 python 腳本,遍歷這些文本文件,找出我的所有發(fā)言,以及上一句,做成對話的格式,然后存入 json,這樣,我就擁有了一個我自己的微信聊天數(shù)據(jù)集。

圖片圖片

此時我也讓同事用爬蟲爬取了我自己的所有博客文章,他爬完發(fā)給我之后我才想起來,我其實(shí)可以用博客后臺內(nèi)置的導(dǎo)出功能直接導(dǎo)出。博客數(shù)據(jù)雖然也很干凈,但我一開始并不知道如何利用,因?yàn)槲乙?xùn)練的是聊天的模型,而博客文章是一大段一大段的話,并不是聊天,所以我第一次訓(xùn)練,只用了微信的這些純聊天記錄。

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

考慮到我的微信聊天數(shù)據(jù)最終可用大約 10 萬條,我設(shè)置了比較低的學(xué)習(xí)率,同時增加了epoch,在幾天前的一個晚上,睡前,我寫完訓(xùn)練腳本,并開始運(yùn)行,然后我就開始睡覺,希望睡醒之后能跑完,但那個晚上我差不多每隔一個小時就醒一次。

早上起來之后,模型訓(xùn)練完了,遺憾的是 loss 下降的并不好,也就意味著12個小時訓(xùn)練出來的模型,并不算好,但我是個深度學(xué)習(xí)的菜雞,能跑完不報(bào)錯我已經(jīng)謝天謝地了,所以我并沒有感到失望,而是開始用這個模型來跑對話。

為了增加一點(diǎn)儀式感,我不想用 jupyter 筆記,或在黑黢黢的終端里去聊天,我找了個開源的前端聊天頁面,略做修改,然后把模型部署起來,封裝了 API ,然后用前端頁面去調(diào)用這個 API,于是就可以實(shí)現(xiàn)比較像那么回事的聊天了。

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

 

我又試了下,結(jié)果依然不是很好,我不是那種不優(yōu)化到極致就不好意思拿出手的人,因此我毫不害羞的直接發(fā)給了幾個朋友,他們給我的反饋是,有點(diǎn)像你,同時他們給我返了對話截圖。 

圖片圖片

圖片圖片

圖片圖片

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

如果你問它,你哪里讀的大學(xué),或者你老家是哪里,它并不會回答出準(zhǔn)確的信息,并且肯定說的是錯的,因?yàn)槲业牧奶煊涗浿胁⒉粫泻芏嗳诉@么問我,從某種角度上,這個模型并不了解我,它像是一個克隆。

當(dāng)我收到一條微信消息,內(nèi)容為 A,我回復(fù)了 B,那么這里是有一些原因的,這些原因中的一部分,儲存在我物理腦袋的七八十億個神經(jīng)元里,理論上,如果我產(chǎn)生的數(shù)據(jù)足夠多,也許幾千億條,那么一個參數(shù)夠大的人工智能模型,就能非常接近我的腦子,10萬條也許少了一些,但也足以讓模型的60億個參數(shù)里改變一部分,使其相較于原始的預(yù)訓(xùn)練模型,更接近我一點(diǎn)。

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

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

圖片圖片

某些時候 chatgpt 會返回一些不符合格式的內(nèi)容,所以我寫了一個校對腳本,來將各種不符合規(guī)則的返回,統(tǒng)統(tǒng)修改為標(biāo)準(zhǔn)的json,且字段名不變。

然后我將其封裝為一個接口,放在了香港的服務(wù)器上,并在我的電腦上寫了一個腳本,把我的博客文章按照500字劃分,拿去批量轉(zhuǎn)成問答,受限于chatgpt的接口速度,我差不多又花了一晚上,才把我的兩百多篇博文,轉(zhuǎn)換成了差不多 5000 個對話數(shù)據(jù)集。

此時我面臨一個選擇,如果將博客對話加到微信對話數(shù)據(jù)集里去訓(xùn)練,那么博客對話占比太低,可能影響會非常小,也就是說跟之前的模型差別不大;另一個選擇是單純用文章的這些數(shù)據(jù),去訓(xùn)練一個新模型。

我向 6pen 的算法老哥尋求幫助,在確定模型權(quán)重可以融合并想辦法從他那順到融合腳本后,采用了后一種方式。

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

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

圖片圖片

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

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

我和他聊了很多。

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

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

總的來說,現(xiàn)在存在的所有廣為人知的文本大模型,都是用海量的數(shù)據(jù)訓(xùn)練的,訓(xùn)練過程會盡可能包含全人類所產(chǎn)生的所有信息,這些信息讓模型的億萬參數(shù)得以不斷優(yōu)化,例如第2043475個參數(shù)增加4,第9047113456個參數(shù)減少17,然后得到更聰明的神經(jīng)網(wǎng)絡(luò)模型。

這些模型變得越來越聰明,但它們更像是人類的,而非個體的,當(dāng)我用我自己的這些數(shù)據(jù)去重新訓(xùn)練模型時,我能得到完全不一樣的東西,一個更靠近個體的模型,雖然無論是我產(chǎn)生的數(shù)據(jù)量,還是我采用的預(yù)訓(xùn)練模型的參數(shù)量和結(jié)構(gòu),可能都無法支撐起一個能夠和我的腦子差不多的模型,但對此進(jìn)行的嘗試,依然非常有意思。

我將這個網(wǎng)頁重新部署了一下,并在中間加了一層 serverless 做保護(hù),因此,現(xiàn)在所有人都可以去試試和這個我的數(shù)字版聊天,服務(wù)由我的祖?zhèn)鱒100服務(wù)器提供,并且只有一臺,所以如果人多的話,可能會有各種問題,鏈接我會放在最下面。

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

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

我的數(shù)字克隆在線聊天:https://ai.greatdk.com

你也可以通過點(diǎn)擊最下面的閱讀原文去體驗(yàn),不過因?yàn)橹挥幸慌_祖?zhèn)鱒100顯卡在提供推理,所以我設(shè)置了請求限制,即便如此,它也可能掛掉,我會每隔10分鐘重啟一下這個服務(wù),如果你確實(shí)有興趣,且發(fā)現(xiàn)它掛了,可以過段時間再試試看

我使用和參考的項(xiàng)目:

  • 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
  • MoeChat:https://github.com/Fzoss/MoeChat
  • Alpaca: https://crfm.stanford.edu/2023/03/13/alpaca.html
  • LLAMA:https://github.com/facebookresearch/llama
責(zé)任編輯:武曉燕 來源: 超級王登科
相關(guān)推薦

2021-09-07 08:26:07

微信微信收費(fèi)騰訊

2021-05-14 07:18:07

監(jiān)控微信聊天

2021-09-08 14:54:51

微信功能備份

2025-03-06 13:10:32

2012-04-28 09:14:50

編程編程語錄

2022-07-15 15:11:27

SQLite微信數(shù)據(jù)庫

2021-03-29 09:23:08

微信聊天記錄移動應(yīng)用

2021-04-16 11:27:16

Python表情微信

2018-09-27 18:40:21

技術(shù)管理項(xiàng)目管理

2018-09-07 09:33:52

技術(shù)管理程序員

2018-05-23 09:11:42

微信Android開發(fā)面試

2017-07-17 09:27:09

Python 爬蟲編程

2017-07-12 10:25:17

Python微信itchat 包

2015-08-06 16:19:52

微信聊天恢復(fù)數(shù)據(jù)

2021-07-12 05:00:54

python道路數(shù)據(jù)

2017-12-26 09:10:43

Python微信圣誕帽

2023-11-09 14:40:56

大數(shù)據(jù)自動化工具

2022-08-17 11:20:23

Python微信

2017-08-21 10:05:57

Python影評 爬蟲

2020-08-08 13:19:39

微信聊天記錄法院
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號