解决一个新问题的过程

记录自己是如何解决一个新问题的,看看这些过程中到底做出了哪些思考与决策,这些决策中哪些是高效的,哪些是低效的,总结可以复用的方法。

解决一个新问题的过程
Photo by Steve Johnson / Unsplash

记录自己是如何解决一个新问题的,看看这些过程中到底做出了哪些思考与决策,这些决策中哪些是高效的,哪些是低效的,总结可以复用的方法。

问题

建立一个基于人工智能的对话系统,通过将一套产品的操作手册等材料投喂给系统,使它能够解答用户在使用产品时遇到的问题,类似ChatGPT那样可以用自然语言进行问题的描述和答复。

背景

  1. 我使用过ChatGPT,对生成式对话的提问访问和回答的格式有基本的了解;
  2. 我使用过一个叫 PDF Pals 的软件,它可以扫描一个 PDF 文件,然后根据文件中的内容来回答用户的提问,同时给出他回答的依据是文档中的哪部分;
  3. 使用第三方服务需要将资料上传,虽有服务商各种承诺,但是数据在本地是最符合安全要求的;

猜想

  1. 是否可以在本地(普通的电脑或服务器,非集群,没有强大的算力和存储空间)部署一套小型的GPT程序,达成基础的问答功能,要满足基本的问答逻辑,但不需要太丰富的知识库,无关领域的知识可以不懂。
  2. 是否可以输入自己的知识库对模型进行训练,使其掌握新的知识,并且在解答问题时以此知识库为优先

验证

以前遇到没有遇到过的问题,最好是先问问有经验的人,其次就是上网搜索。现在有了ChatGPT,差不多就综合了上面两个方法的优点。它像搜索引擎一样随时等着你提问,但又不像搜索引擎那么死板,只会根据关键字来查找方案,而是能够理解你的问题,并做出答复,而且思考上有一定的发散性,不容易被提问者的提问方式困住。ChatGPT的缺点是有时候会一本正经的胡说八道,针对技术性问题,网上已经有大量的资料,GPT有丰富的知识库基础,回答质量还是比较好的,但是仍然需要用户自己做出判断,这是不如人类专家的地方。

那么就免去客套,直入主题,把上面两个猜想丢给它,让他给出答案。

看上去是可行的,再问问它该怎么做

回答的太宽泛了,我需要的是对训练模型的“安装向导”

有点接近了,并且给出了一个具体的工具,结合上面的回答,已经两次提到了 Hugging Face 的 Transformers,是个可以入手的点。

用搜索引擎找到 transformers 的官网和 github 页面。

看过官网简介和Github的Readme之后,首先可以确认 ChatGPT 不是胡说八道🤭,huggingface 大致可以理解成这是一个汇聚各类模型的仓库,类似 docker 的 hub 或者 Node.js 的 npm 库,而 transformers 是用户使用的“界面”,其提供的工具可以将各个库串起来,达成用户自己的目的。

下一步

  1. 学会 Transformers 的使用方法;
  2. 使用 Transformers 实现基本的问答功能;
  3. 用自己的材料训练模型。
浙ICP备15043004号-1