“ 大模型的应用方向有多种,每种都有不同的技术 ”
昨天在招聘网站上预约了一个人工智能应用开发的面试,在面试的过程中对大模型应用产生了一些讨论,以及带来了一些思考,在此做个记录。
关于大模型应用及问题的讨论
以下所有内容,在不特殊说明的情况下,问——指的是面试官,答——指的是我自己。
问:关于大模型训练与微调,即怎么训练或微调一个大模型?
答:从技术的角度来说,模型的训练和微调没有本质的区别,目的都是对模型参数进行调整;只不过模型训练是从一个随机初始化的模型开始,而微调是基于一个经过预训练的模型,对部分或全部参数进行冻结,只调整部分参数的过程。微调方法也有多种,如全量微调和高效微调,如lora等。
训练和微调的过程也基本相似,都需要进行数据收集,清洗;然后通过正向传播,损失计算和反向传播的方式对模型参数进行调整;只不过微调有一个参数冻结的过程。
不论是训练还是微调,目的都是为了让大模型表现的更好。
问:百度的文心一言和阿里的通义千问有什么区别?
答:这个问题还真不清楚,只是在网上看到说文心一言和通义千问在不同的任务表现上有所不同。
问:你说你熟悉RAG,那你知道RAG是解决什么问题的吗?其过程是什么样的?会有哪些问题?
答:回答基本上和昨天发布的大模型知识库搭建相同,RAG——检索增强生成,是通过外挂知识库的方式,每次用户提问时先从向量数据库中根据语义查询相似文档,然后通过提示词的方式一起提交给大模型,主要用来解决三个问题,大模型的知识限制,一是时间限制,二是垂直领域限制,以及大模型的幻觉问题。
然后,打造知识库需要经过文档加载(包括多种类型的文档),文档拆分,向量化,存储等。
问:你说RAG能解决大模型的幻觉问题,那么大模型产生幻觉的根本原因是什么?
答:大模型产生幻觉的主要原因是因为知识不足,或者说大模型以上三个问题都是因为知识不足的问题。
问:如果大模型的幻觉问题是因为知识不足,那么为什么提供很高质量的知识库依然无法完全避免幻觉问题?
答:知识库只能在某种程度上解决幻觉问题,并不能完全解决幻觉问题,幻觉问题并不全是由知识不足引起的。
问:你知道大模型的实现原理吗?什么是多层神经网络?
答:多层神经网络是指除了输入层和输出层之外,中间还有n层网络的模型,不同层之间使用全连接或半连接的方向进行通讯。(事实上神经网络有四种连接方式,全连接神经网络,前馈神经网络,卷积网络和循环网络)
问:你是因为什么原因学习人工智能的?为什么平常不花时间学习大模型的技术原理? 大模型的推理过程是基于预测实现的,而预测是根据概率去生成内容。因此,大模型产生幻觉的根本原因是其实现机制,建立于概率统计之上的预测模型。所以,大模型的幻觉问题是概率问题。
f
答:(内心一惊,对呀大模型是基于概率统计的,怎么把这个给忘了) 概率问题只是大模型产生幻觉的原因之一,而知识库能大大减少大模型产生幻觉。(事实上,大模型产生幻觉的原因有多种比如训练和微调数据的质量,欠拟合,过拟合,大模型的结构设计问题,知识不足问题等都可能引发大模型幻觉)
引发的问题和思考:如果说大模型幻觉产生的本质原因是其自身的天生缺陷(概率),那么大模型的幻觉问题是否就无法完全解决?毕竟概率从来没有百分之百。是否只能通过其它手段,无限逼近零幻觉?
因此,要想解决大模型的幻觉问题,是否需要从根本上推翻基于概率统计的大模型?使用其它新的方式来构建大模型?
目前业界对大模型幻觉问题的主要态度好像是尽量减少大模型发生幻觉的可能性,虽然openAI的CEO奥特曼说要解决幻觉问题,但具体结果目前还不晓得。
问:你说你java和python都做是吧?那你是擅长java,还是python? 我们这里缺的主要是java
答:现在搞人工智能不都是用python吗?怎么还用java?
问:谁跟你说的搞人工智能都是用python,很多搞大模型的用的都是java还有go
答:现在人工智能的主流开发语言就是python啊,并不是说其它语言不能搞,但主要都是用python搞。
问:你还有什么问题吗?
答:你们这个项目是做什么的?需要用agent吗?
问:我们这个项目主要是调用第三方模型来生成一些内容,比如输入一些文字,根据文字给你生成图片或视频,甚至是同时生成图片和视频等。agent也会用,但不是很多。
答:(内心os 原来是做AIGC内容生成方向的),agent不是现在的主流应用方向吗?
问:谁跟你说的,agent是主流方向?我们搞的是调用第三方模型生成内容,文字,图片和视频;知道Copilot吗?
答:网上都是这么说的啊,agent是实现通用人工智能的方向。Copilot是微软推出的一款人工智能助手。
问:你是因为在研究agent才会觉得agent是主流方向,python也是,你是因为主要学习python所以才觉得搞人工智能都是用的python。
这里两个人已经聊的有点叉劈了,当时自己还没反应过来,总觉得两个人的观念有冲突。
其实,AIGC和Agent是两个不同的角度,AIGC是纯粹的基于人工智能技术构建的应用,其主要偏向应用,使用的是大模型天生的生成能力;而Agent虽然也是一个应用方向,但其更偏向于一个技术,其功能就是扩展大模型的能力,让它能够调用外部工具。两者的维度不同,两者并不冲突,甚至是相辅相成。
答:你们的产品是2B还是2C的,是面向pc端,还是移动端?业务方向是什么?比如2B领域的网络营销推广(用他们的平台生成推广文案,视频等),还是针对个人的文案生成,视频处理等?
问:我们先做2C,后续会平台化,拓展2B的业务;支持多端平台,如app,小程序,h5等;2C主要面向个人创作者,泛C端用户,后续会根据运营情况,挖掘垂直场景。
答:针对某些领域内容生成质量问题怎么解决?
问:这个问题太空了,那个领域会有什么问题,再谈解决
答:比如我是做汉服的,然后想使用你们平台做一个宣传推广的视频,根据文字描述,比如生成一个古装侠客,在竹林中打斗的片段,重点突出穿的衣服。
问:文生视频只是其中一种,diffusion可以使用lora控制风格化输出
答:对的,我就是说这种场景,不论是生成视频,图片,文字;三方模型并没有在这些领域做过优化,就会导致生成的内容不仅人意,产生问题。而且微调成本也挺高的。
问:微调成本其实不高,主语看场景复杂度,以及用户预期
答:但是每一种场景都需要进行微调才行,这样场景多了成本就高了。
因为在此之前一直没怎么关注AIGC ,问这个问题的主要目的是为了弄明白,在AIGC领域多种复杂场景问题是怎么解决的。怎么控制成本问题。
内心OS: 原来AIGC还可以这样玩,之前太肤浅了。
经过这次面试,对大模型又有了更加深刻的认识,对知识库,大模型幻觉,AIGC,以及大模型的产品化都有了更进一步的认识和体会。