什么是AI
现在说AI,主要说的是以chatGPT为首的大语言模型(LLM),也即生成式AI,它属于自然语言处理领域(NLP)的一个分支,以输入输出形式的对话系统为展现形态。
当然,这个AI背后的技术本质,主要还是依赖于算法 + 数据,只是其算法极其复杂,数据也极其庞大,最终产生了效果上的质变,具备了一定的智能。
若论其发展阶段,当前的AI属于弱人工职能的巅峰,距离强人工智能还有一段距离,其发展方向正朝着多模态大模型(文字/图像/语音/视频等)的方向发展。
当前AI的优缺点
优点
可以处理任何NLP领域任务(比如:机器翻译、情感分类、相似度判别、文本总结等)
避免了超大规模的标注数据(解决了“有多少人工,就有多少智能”的问题)
缺点
幻觉妄语严重,有时候答非所问,分不清真实和虚构
没有链接外部实时信息,只能基于一定时段之前的数据回答问题
当前AI使用的问题
Prompt 依赖
针对AI的幻觉妄语,我们需要不断优化提示词,不断由用户驱动多轮对话,最终才可能得到我们想要的效果,以致于衍生出Prompt工程的概念。
用户需要不断修改提问和澄清,甚至学习如何表达提示语,对于AI的使用是很繁琐的,也体现了现阶段AI的问题。
专业性
AI的幻觉妄语,在某种程度上也是其专业数据的有限性造成的,类似于地方志,教育资料和专业文献等,互联网上的数据都是比较泛化的,基于这些数据,AI很难专业起来。
实时性
由于AI大模型依赖的数据集是“过时”和有限的,它就不可能去回答你关注的实时性问题。
当前解决AI使用问题的办法
针对 Prompt 依赖
通常在一些AI应用中,会提前设置一些提示词辅助提问,同时定义基础的拓展能力,便于提示,俗称提示词技术。
针对专业性
通过引入一些特定领域的专业文献,预置知识库的方式,形成一种针对大模型的专业向量库,使得模型的回答基于这些知识库,就能实现回答的专业性,俗称RAG(检索增强生成)技术。
针对实时性
通过引入搜索引擎,在AI模型回答的结果不尽如意时,启用搜索引擎获取最新的数据给AI,然后AI消化后给出回答。
当前接入AI的途径和方法
接入chatGPT
通过Azure OpenAI接入,因为它跟OpenAI同源,所以对于国内用户而言,支付比较方便。
获取服务key后,登录OpenAI官网后,按照教程设置好服务key,然后调用接口即可。
接口分为2种:
下载python或者js sdk,引入工程后,按照文档调用api方法即可
通过服务器,调用openAI的http接口,遵循规范进行传参即可
接入国内大模型
比如阿里的通义千问,首先也是申请一个服务key,然后再后续的调用中传入key
其接口也分为2种:
下载python和java的sdk,引入工程后,按照文档调用api方法即可
通过服务器,调用通义千问的http接口,遵循规范进行传参即可
接入本地大模型
首先你需要根据你的操作系统,选择一个跑本地模型的工具应用,比如适合window的LM Studio,适合mac的Ollama,然后在Hugging Face网站上下载一个当红的大模型文件到本地。
然后使用跑本地模型的工具,将大模型文件载入进来,然后通过模型工具提供的方式方法,进行模型的调用即可。
本地模型的问题在于,数据集是固定的,除非你引入私有数据进行微调和训练,这个成本也是比较高的,主要体现在数据源和硬件上(很吃配置)。
接入transformers
这个是Hugging Face的核心产品,它提供了一系列预训练模型的API,用于解决各种NLP任务,如文本分类、命名实体识别、机器翻译等,可以简化模型训练和部署的流程。
它支持JS和Pytohn2种库,前者可用于在浏览器环境中使用预训练的机器学习模型,也就是说,transformers要加载本地模型,然后你可以利用transformers来训练本地模型。
transformers的使用更偏底层,类似于使用原生JS,深入的话比较考验基础和领域知识,你需要传入任务类别,比如文本分类、命名实体识别、机器翻译这些,然后得到返回结果。
使用Chrome AI
从Chrome128.0.6545.0版本开始,支持Chrome AI,也就是说,你可以通过修改Chrome特定配置,然后重启游览器,再次打开就会自动下载Chrome的大模型Gemini Nano,大概需要22G的本地空间,然后你就可以使用对应的API进行AI调用了。
这个东西比较新,也许以后各个游览器都会支持,因为他们都喜欢包装谷歌的游览器内核,最终调调改改,使得前端开发者可以直接在网页上进行AI应用的开发。
对于前端开发者,有没有AI版本的Vue库
有的。搜索LangChain即可,这个库有Python和JS两个版本的库,对市面上主流大模型的接入都做了支持,也就是说,你不管是用chatGPT还是国内的通义千问,都有对应的API调用方法。
这个库针对AI应用开发,提供了一些技术设计,类似于vue提供了组件、事件和指令这些工具帮助你开发应用,LangChain也提供了类似的东西,使得你的开发变得专业和流畅。
LangChain支持提示词技术,支持RAG(检索增强生成),支持搜索引擎和外部资源载入,同时还支持最新的Agents技术,也就是AI代理(模仿人脑),自主决策,让应用极具智能。