当然,我们作为程序员肯定不仅仅是简单地使用大型语言模型(LLMs),今天,我们就来看看如何才能让这些工具为我们服务,成为我们的初代“贾维斯”。让我们一起探索人工智能的无限可能!
AI初体验
话归正题,当人工智能技术越来越火的时候,我们第一反应都是会迫不及待地想要尝试并体验它的魅力,各种奇葩的魔法问答也就应运而生了。这些LLMs系统通过与人自然交互,能够回答用户的各种问题,有时候甚至会给出一些有趣的回答。如下图:
图片
不过,我们也要明白,这些LLMs系统实际上也是基于大数据和机器学习算法构建的,它们并不具备真正的智能和理解能力。因此,在使用这些系统时,我们需要保持理性和客观,不要过于依赖它们,而是要明确它们的局限性,并结合自己的判断力进行思考和决策。
问答进化
虽然LLMs在回答问题时表现出了惊人的能力,但有时候它们也会出现错误的情况。有时候,它们可能会给出与我们问的问题不相符的答案,这可能是由于模型的训练数据不完善或者存在一些偏见和误导性的信息。于是乎,这时候网上又掀起来了一阵各个角色扮演的狂风,通过套壳AI应用来调侃和娱乐,一些个人和小公司也会利用这一现象来盈利,推出各种有趣的问答形式。这种问答形式的变化不仅给我们带来了乐趣,也展示了人工智能技术的灵活性和创造力,然后我们的问答模式先进了一下,变成了以下的问答形式:
图片
这个时候就取决于谁的提示写得更好,写得好的人能够吸引更多的用户,而流量可以转化为收益。在这个阶段,博主也加入了进来,尝试使用套壳应用。因为GitHub上有大量的开源代码可供使用,只需要将其部署到本地就可以完成。这个过程非常简单。
问答插件开发
接下来,开发者们开始疯狂输出,例如开始开发GPT插件,国内也有很多语言模型开始使用插件。其中,联网功能插件最典型,因为大型模型无法保持最新的新闻和知识库,所以这个插件的出现非常热门。虽然热度很高。不过基本上的逻辑也很简单,如下图所示:
图片
这个时候,开发者们通过插件的形式为LLMs增加了更多的功能和灵活性。这些插件可以使LLMs能够联网获取实时的新闻和知识,从而提供更准确和全面的答案。这些插件的开发为LLMs的应用场景提供了更多的可能性,也为开发者们创造了更多的机会。
知识库建立
剩下的形态开始变得丰富多样。如果你发现在询问LLMs之前可以提前收集很多有用的信息,那么你可以建立自己独立的“贾维斯”个人助理,只需要提前将信息存储起来,就像建立了自己的知识库一样。接下来的任务就是如何通过检索相似信息并提供给LLMs,让它根据我们提供的有效信息来回答问题。毕竟,训练一个LLMs是非常耗费时间和精力的,你觉得你有足够的时间和精力在业余时间来完成吗?还是利用已经训练好的LLMs好好使用吧,只要你提供足够详细的知识,LLMs的回答就会越好。LLMs的选择越好,你得到的结果也会越好。剩下的工作就类似于这样一种架构图:
图片
当你看到这个架构图时,你会发现,现在重要的是谁能够更好地拓展思维。你得到的架构图越复杂,结果就越详细。让我来解释一下。首先,我们需要了解如何建立自己的知识库。在解释知识库之前,我们需要了解一下"embedding"这个概念。"embedding"是将语言、图片或其他任何东西转换为数字编码类型的向量的过程。如果你开发过推荐功能,你对此应该不陌生。
如果我们将你的喜好和浏览记录转化为可计算的数字向量,接下来我们需要一个向量数据库来存储这些计算好的向量。我们可以举一个向量数据库(比如Milvus)作为例子,当然你也可以选择其他向量数据库。向量数据库是专门用于存储向量数据的,同样具备增删改查四种基本操作。
通过将用户的喜好和浏览记录转化为可计算的向量,并利用向量数据库进行查询和推荐,你可以打造一个个性化的推荐系统。这个系统能够根据用户的兴趣和行为模式,找到与其相似的其他用户,并向他们推荐已购买的产品或感兴趣的知识数据片段。而我们的存储系统则应该专注于收集和储存与我们所处的行业或领域相关的独特信息,作为我们的知识数据库。
类似于我们查询最相似的记录,我们可以将向量数据库视为自己的浏览器搜索引擎,查询到的记录必定是我们想要的知识片段。我们将这个片段发送给LLMs,并附上我们的问题或想法。LLMs会根据你发送的知识片段进行回答,这样一个自己的“贾维斯”助理就诞生了。
总结
实际上,每个分支节点都可以继续进行细分,直到创建出一个完美的个人助理。现在,LLMs(Language Models)非常流行且数量众多。然而,对于一个上班的开发者而言,自行训练一个个性化的模型可能既费时又麻烦,并且并不一定能够得到理想的结果。事实上,很可能在未来的某个时间点,其他公司已经开发出了针对您所在领域的完美LLMs模型。根据我之前提到的模型架构,您只需要简单地替换一下LLMs的选择,就能够灵活地适应自己的需求,并且不受限制。