“我用个人微信聊天记录和博客文章打造了自己的数字化克隆AI”

除了开飞机,做出完美的烤肋排,获得6块腹肌以及让公司赚大钱之外,我一直以来也想做成的一件事,是实现一个聊天机器人。

和多年前简单通过关键词匹配来回复的小黄鸡,到现在已经堪比人类智慧的 chatgpt,聊天AI一直在进步,但他们和我想的都有一些区别。

我在微信上和很多人聊天,有的人聊得多,有的人聊的少,我在群里也会说话,我还会写博客和公众号,我会在很多地方留下评论,我也会发微博,这些是我在网络世界留下的痕迹,某种程度上这些东西构成了世界对我的认知,从这个角度上,也就构成了我。将这些数据——我对不同消息的回复,我写的每一篇文章,每一句话,我发过的每一条微博等,全部汇入一个神经网络模型之中,去更新其中的参数,理论上就可以获得一个我的数字拷贝。

从原理上,这和对 chatgpt 说“请扮演一个叫小王的人,他的经历是XXX”不同,虽然以 chatgpt  的智慧,这样的扮演毫不费力且可能以假乱真,但其实 chatgpt 的参数并没有改变,这更像是“扮演”而非“重塑”,chatgpt  的上千亿个参数并没有改变一个,它从你之前的文本中获取一些信息,然后用它的智慧来应对你。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

我用我的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分钟重启一下这个服务,如果你确实有兴趣,且发现它挂了,可以过段时间再试试看

FineVoice语音克隆 FineVoice语音克隆

免费在线语音克隆,1 分钟克隆你的声音,保留口音和所有细微差别。

FineVoice语音克隆 61 查看详情 FineVoice语音克隆

我使用和参考的项目:

WechatExporter:https://github.com/BlueMatthew/WechatExporterchatglm-6b:https://github.com/THUDM/ChatGLM-6Bzero_nlp:https://github.com/yuanzhoulvpi2017/zero_nlpchatglm_finetuning:https://github.com/ssbuild/chatglm_finetuningMoeChat:https://github.com/Fzoss/MoeChatAlpaca: https://crfm.stanford.edu/2023/03/13/alpaca.htmlLLAMA:https://github.com/facebookresearch/llama

以上就是”我用个人微信聊天记录和博客文章打造了自己的数字化克隆AI”的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/556464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何从Node.js日志中提取关键数据
上一篇 2025年11月9日 22:48:55
如何处理影响实例运行状态的有计划或非预期事件
下一篇 2025年11月9日 22:49:00

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    1000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • 小程序如何自动切换语言,才能兼顾精准性和适用性?

    根据小程序实现自动切换语言 对于多语言环境的小程序,如何自动切换语言是一个常见问题。 方法一:根据用户定位 这种方法基于用户定位来获取所在国家,并根据国家对应语言设置。然而,这种方法存在一定的局限性,如用户可能不会允许位置共享。 方法二:通过 wx.getsysteminfo 这是微信官方提供的 a…

    2026年5月10日
    000
  • 微信扫码授权后如何关闭弹窗并刷新父窗口?

    微信扫码授权后如何关闭弹窗并刷新父窗口? 在微信扫码授权登录时,可能会遇到弹出小窗口登录的情况。登录完成后,需要关闭此弹窗并刷新大窗口以更新会话信息。 要解决这个问题,可以使用以下步骤: 确保扫描授权后不直接跳转到目标页面,而是跳转到一个中间页面。在中间页面中,通过 window.opener 对象…

    2026年5月10日
    000
  • 微信H5自定义分享图标在电脑端失效了怎么办?

    微信h5自定义分享图标在电脑端失效?排查指南 微信H5自定义分享功能在电脑端失效是一个常见问题。本文将分析此问题,并提供解决方法。 问题: 许多开发者发现,微信H5自定义分享内容在手机端正常显示,但在电脑端微信却失效,通常表现为自定义图标无法显示,标题正常。 开发者尝试了旧版(onMenuShare…

    2026年5月10日
    000
  • 如何用 JS 判断手机是否安装了微信或 QQ?

    如何用 js 判断手机是否安装了特定 app 问题: 在开发一款具有微信和 qq 快捷登录功能的 cordova app 时,开发者面临了如何判断手机是否已安装微信或 qq 的难题。由于 app store 拒绝了 ios 端提交申请,开发者希望在没有打开应用的情况下,仅通过 js 判断是否已安装微…

    2026年5月10日
    000
  • 网页标题怎么设置?title标签应该放在哪里?

    网页标题由html中 区域内的标签定义,必须且只能出现在该位置;2. 设置标题需在内插入标签并填入文本,如“我的个人博客”;3. 撰写标题时应包含核心关键词但避免堆砌,控制在50-60字符内,确保独特性与吸引力,并与内容高度相关;4. 未设置或设置不当会导致用户体验差、seo效果差、社交媒体分享效果…

    2026年5月10日
    000
  • 公司安全软件与应用冲突怎么办?HUES安全软件导致常用软件无法打开如何排查?

    企业安全软件与应用冲突的排查与解决 企业为了维护网络安全,通常会部署安全软件,但这些软件有时会与常用应用产生冲突,导致应用无法正常运行。例如,HUES安全软件可能导致百度云、微信、有道云笔记等软件无法启动,且命令行启动时无报错信息。 这种问题的根源在于HUES安全软件可能拦截了应用的网络请求或文件访…

    2026年5月10日
    000
  • HTX火币交易所app下载-HTX火币交易所最新版本下载v10.44.1

    火币官方合作伙伴认证 · 一站式安全交易体验 官网直达: 安卓安装包下载: HTX(原火币)交易所App的下载需要通过其官方网站进行,以确保安全和获取最新版本。目前市场上存在大量仿冒应用,直接在第三方平台搜索容易下载到虚假或带有风险的程序。 如何安全下载HTX App 要获取HTX官方App,请打开…

    2026年5月10日
    000
  • php如何实现微信公众号消息回复_php接入微信公众平台验证与文本图文回复逻辑

    要实现微信公众号消息回复,需完成接入验证并处理文本、图文消息。1. 接入验证:收到含signature、timestamp、nonce、echostr的GET请求后,将token、timestamp、nonce排序后SHA1加密,与signature比对,一致则返回echostr。2. 接收消息:通…

    2026年5月10日
    000
  • 如何在HTML中插入社交分享按钮_HTML第三方分享SDK集成方法

    答案:集成第三方SDK可实现网页社交分享。选用微信JS-SDK、微博Web SDK等或聚合工具,引入脚本并初始化,配置权限与分享内容,自定义按钮样式及事件,注意HTTPS、签名缓存与移动端适配,确保分享功能稳定流畅。 在网页中添加社交分享功能,能有效提升内容传播性。通过集成第三方社交平台的分享SDK…

    2026年5月10日
    200
  • Flask后端无响应:真机调试请求失败的原因是什么?

    flask收不到请求,无响应和报错 在使用flask作为后端,使用微信小程序进行真机调试时,遇到了问题:发送请求时,flask对应的函数没有执行,也没有发送响应或错误信息。 分析 通过对比模拟器和真机调试的情况,发现问题可能与请求ip地址有关。模拟器请求时的ip地址为本地ip,而真机调试时的ip地址…

    2026年5月10日
    000
  • php数据如何集成第三方支付接口_php数据支付功能开发实战

    首先完成商户注册并获取密钥,接着按支付流程生成订单、调用统一下单接口、处理同步与异步回调;PHP通过官方SDK实现支付宝H5支付,重点验证异步通知签名并更新订单状态,同时遵循安全规范如密钥隔离、HTTPS传输和日志记录。 在PHP开发中集成第三方支付接口,是电商、在线教育、SaaS平台等系统的核心功…

    2026年5月10日
    000
  • 欧意交易平台 v6.134.2 2025 官方安卓版下载安装

    欧意交易平台v6.134.2版功能全面,支持现货、合约、理财、Web3钱 包及法币交易,采用银行级加密与生物识别确保安全,界面友好且多端同步,建议通过官网下载并保持更新以保障使用安全稳定。 OKX官方合作伙伴认证 · 一站式安全交易体验 官网直达: 安卓安装包下载: 欧意交易平台(OKX)是全球知名…

    2026年5月10日
    000
  • 怎么在微信上运行html代码_微信运行html代码方法【指南】

    答案是通过将HTML部署为公网链接或使用在线工具生成可访问网址,再在微信中打开链接来间接实现HTML页面展示。具体可通过GitHub Pages等平台托管网页、利用小程序web-view组件加载、或用JSBin等在线编辑器生成预览链接发送至微信查看,注意兼容性与安全限制。 微信本身不支持直接运行HT…

    2026年5月10日
    400
  • 开发基于ChatGPT的自动写诗系统:Python让诗意流淌

    开发基于ChatGPT的自动写诗系统:Python让诗意流淌 自古以来,诗歌一直是人类表达感情和思想的一种重要方式。然而,写好一首优美的诗歌并不是每个人都能做到的,特别是对于那些没有诗歌创作经验的人来说。但是,现代技术的发展让自动写诗成为可能,人们可以利用计算机和人工智能技术来自动生成诗歌。在这篇文…

    2026年5月10日
    000
  • 如何用 CSS 实现微信输入法进度条按钮效果?

    如何在 css 中呈现微信输入法的进度条按钮效果? 问题:微信输入法中的进度条按钮具有独特的外观。如何使用 css 来实现这种效果? 答案:要实现微信输入法的进度条按钮效果,可以使用以下 css 属性的组合: linear-gradient:创建渐变效果。background-position:控制…

    2025年12月24日
    800
  • 微信小程序文本省略后如何避免背景色溢出?

    去掉单行文本溢出多余背景色 在编写微信小程序时,如果希望文本超出宽度后省略显示并在末尾显示省略号,但同时还需要文本带有背景色,可能会遇到如下问题:文本末尾出现多余的背景色块。这是因为文本本身超出部分被省略并用省略号代替,但其背景色依然存在。 要解决这个问题,可以采用以下方法: 给 text 元素添加…

    2025年12月24日
    700
  • 如何使用 Laravel 框架轻松整合微信支付与支付宝支付?

    如何通过 laravel 框架整合微信支付与支付宝支付 在 laravel 开发中,为电商网站或应用程序整合支付网关至关重要。其中,微信支付和支付宝是中国最流行的支付平台。本文将介绍如何使用 laravel 框架封装这两大支付平台。 一个简单有效的方法是使用业内认可的 easywechat lara…

    2025年12月24日
    300
  • Laravel 框架中如何无缝集成微信支付和支付宝支付?

    laravel 框架中微信支付和支付宝支付的封装 如何将微信支付和支付宝支付无缝集成到 laravel 框架中? 建议解决方案 考虑使用 easywechat 的 laravel 版本。easywechat 是一个成熟、维护良好的库,由腾讯官方人员开发,专为处理微信相关功能而设计。其 laravel…

    2025年12月24日
    900

发表回复

登录后才能评论
关注微信