目前最火最成熟的AI大模型应用开发框架是哪个?

科技   2024-08-31 16:09   北京  

点击上方关注 “终端研发部

设为“星标”,和你一起掌握更多数据库知识
《黑神话·悟空》彻底爆火了。当然这肯定是离不开其员工的努力的,那么《黑神话·悟空》公司的员工工资待遇多高,才能研发出这款破了多项世界纪录的游戏呢?

学习LangChain就对了,从 star 上来讲,langchain 91.1k,热度肯定是最高的。

下面介绍一下我使用的一个AI模型开发框架:LangChain,之前我用它来进行给公司构建过电AI电商客服的智能系统,并且已经成功在线上运行

LangChain到底是什么?

LangChain 就是一个 LLM 编程框架,你想开发一个基于 LLM 应用,需要什么组件它都有,直接使用就行,它采用先进的分布式存储技术和高效的数据预处理算法,能够应对海量且复杂的数据结构,无论是结构化数据还是非结构化的文本、图像等,都能进行快速准确的读取、清洗和转换。

LangChain 中的模型主要分为三类:

1、LLM:这些模型将文本字符串作为输入并返回文本字符串作为输出。它们是许多语言模型应用程序的支柱。

比如,我们可以利用LLM进行信息提取。我给LLM从一大堆文本信息中抽取了关键信息

接下来我让LLM根据这些关键信息给出治疗建议,再建一个自定义的prompt模板,把提取的关键信息作为变量存储在该模板中。

然后,我就让其我们给出治疗方案,我们看一下大模型给我们的结果:

2、聊天模型,这个模型是很常用的,它具有更结构化的 API。将聊天消息列表作为输入并返回聊天消息。这使得管理对话历史记录和维护上下文变得容易。

比如我之前利用Streamlit应用程序将消息发送给聊天机器人API,聊天机器人生成并发送响应回Streamlit应用程序,然后显示给用户。

下面是我做的一个效果:

最终的效果是针对一家大型医院系统,构建一个基于LangChain的RAG聊天机器人,使用Neo4j技术检索有关患者、就医体验、医院位置、询问、费用支付和医生等有关数据。

我是通过几个月的时间学习了知乎知学堂的AI公开课之后,这门课程是由业界大佬亲自带你学习大模型的实现过程和应用技术,并且还给提供了可以运行大模型的CPU和5套Demo,让你不在只会理论,亲自上手体验大模型的微调过程,学会之后,你可以定制化自己的专属模型了

但如果有一点编程知识,你可以利用像LangChain这样的库来创建自己的LLM驱动的聊天机器人,几乎可以做任何事情。

3、文本嵌入模型,这些模型将文本作为输入并返回表示文本嵌入的浮点列表。这些嵌入可用于文档检索、聚类和相似性比较等任务,例如数据的获取、切分、向量化、向量存储、向量检索等模块

LangChain框架与其他框架进行相对比也是非常的优秀的,这里以Dif框架的对比分析

在数据处理方面,LangChain 凭借其先进的数据清洗和转换机制,能够更有效地处理噪声数据和缺失值,确保数据的质量和完整性。

Dif框架在处理大规模、多源异构数据时可能显得力不从心。

就开发效率而言,LangChain 提供的丰富的开发工具和模板,以及简洁明了的 API 设计,LLM 的一个令人兴奋的应用是为其他“工具”构建自然语言接口,无论是 API、函数、数据库等。

LangChain 非常适合构建此类接口,因为它具有:

  • 良好的模型输出解析,可以轻松从模型输出中提取 JSON、XML、OpenAI 函数调用等。

  • 大量内置工具。

  • 为您如何调用这些工具提供了很大的灵活性。


到底如何学习LangChain呢?

我这几个月对LangChain的理解就是,如同建房子一样,要有一个架构,要搭建一个框架,在这个框架的基础之上去填充水泥,瓷砖等等,那基于让LangChain来搭建我们的AI应用

比如下面的这张图:

比如,我自己之前学习的一个经验,来用LangChain构建自己的私有知识库

1、下载源码

2、激活

我以自己电脑上python3.8的版本为例,来构建自己的langchain,创建python虚拟环境, 并激活:

3、模型选择

检查langchain-ChatGLM默认使用的模型,打开configs/model_config.py ,可以看到支持的模型列表:

root@VM-0-17-ubuntu:langchain-ChatGLM# vim configs/model_config.py
llm_model_dict = { 
    ......
    "ChatGLM-6B": {
        "name": "ChatGLM-6B",
        "pretrained_model_name": "/root/prj/ChatGLM-6B/THUDM/ChatGLM-6B",
        "local_model_path": None,
        "provides": "ChatGLMLLMChain"
    },  
   ......
    "ChatGLM2-6b-32k": {
        "name": "ChatGLM2-6b-32k",
        "pretrained_model_name": "/root/prj/ChatGLM-6B/THUDM/ChatGLM2-6b-32k",
        "local_model_path": None,
        "provides": "ChatGLMLLMChain"
    },  
    ......
}
LLM_MODEL = "ChatGLM2-6b-32k" # 默认模型

从上述代码中,我们可以看到,既支持了ChatGLM-6B,还支持了更高能力的ChatGLM2-6b-32k。ChatGLM2-6b-32k是在ChatGLM2-6B的基础上进一步强化了对于长文本的理解能力,能够更好地处理最多32K长度的上下文。既然有更好的模型,而且默认还是这个,为啥不用最新的呢(其实是ChatGLM-6B尝试失败了,出现了我无法解决的问题,大概率是版本太老,资源丢失了).


4、模型下载

ChatGLM-6B-32k下载

在https://huggingface.co/搜索ChatGLM-6B-32k,链接为:https://huggingface.co/THUDM/ChatGLM2-6b-32k

从截图中可以看出,ChatGLM-6B-32k的模型大概有15G左右,就靠我这薅的5M带宽的服务器,还得科学上网才能访问https://huggingface.co,速度可以想像会有多慢,说不定还会超时。不过有钱的小伙伴可以直接购买国外的gpu服务器来操作langchain,只需执行以下操作即可下载ChatGLM-6B-32k模型。

root@VM-0-17-ubuntu:langchain-ChatGLM# git lfs clone https://huggingface.co/THUDM/ChatGLM2-6b-32k

如果没钱的小伙伴,可以去我的百度云盘下载,这个就不保证实时更新了哦。

链接: https://pan.baidu.com/s/1PSMLsV_0-4DsQt8o60dosg?pwd=bnkq 提取码: bnkq 

5、汉语长文本下载

ChatGLM-6B-32k还依赖汉语长文本的模型,否则运行langchain会重新去下载text2vec-large-chinese的模型文件,我们可以提前下载。在huggingface搜索,得到链接https://huggingface.co/GanymedeNil/text2vec-large-chinese/tree/main。

网盘下载:

链接: https://pan.baidu.com/s/1v5y-xQAfWF_Z-6Yg7rHDLg?pwd=ck3k 提取码: ck3k

6、配置

模型文件下载好后,需要对应自己的模型路径进行配置,打开configs/model_config.py如下,根据注释进行配置:

......
embedding_model_dict = { 
    "ernie-tiny""nghuyong/ernie-3.0-nano-zh",
    "ernie-base""nghuyong/ernie-3.0-base-zh",
    "text2vec-base""shibing624/text2vec-base-chinese",
    #"text2vec": "GanymedeNil/text2vec-large-chinese",
    "text2vec""/root/prj/ChatGLM-6B/THUDM/text2vec-large-chinese",                   # 下载好的text2vec-large-chinese路径
    "text2vec-base-multilingual""shibing624/text2vec-base-multilingual",
    "text2vec-base-chinese-sentence""shibing624/text2vec-base-chinese-sentence",
    "text2vec-base-chinese-paraphrase""shibing624/text2vec-base-chinese-paraphrase",
    "m3e-small""moka-ai/m3e-small",
    "m3e-base""moka-ai/m3e-base",
}
......
llm_model_dict = { 
    ......
    "ChatGLM2-6b-32k": {
        "name""ChatGLM2-6b-32k",
        "pretrained_model_name""/root/prj/ChatGLM-6B/THUDM/ChatGLM2-6b-32k",         # 下载好的ChatGLM2-6b-32k路径
        "local_model_path"None,
        "provides""ChatGLMLLMChain"
    },
    ......
}


最后一步就是执行下执行脚本体验 Web UI看看效果啦

当然这个构建知识库的流程知识最基本的操作,这里只是冰山一角。如果做熟练的话,可以进行构建各种各样的AI应用程序。

关于LangChain的学习书籍

《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》

以LangChain这个让人熟悉的框架为主线,引导读者一步一步掌握LLM应用开发流程,适合对大语言模型感兴趣的开发者、AI应用程序开发者阅读

就连很多大厂的AI智能体模型都是基于LangChain为技术的,比如360旗下的智能营销云,其Agent模式让大模型不仅作为“大脑”识别人类的意图,智能化地思考分解任务,还能够长出“手脚”,自动化地使用工具、调用各种API,执行任务、解决问题,达成目标结果,成为一种通用的智能体系统。

还有智能办公、工业机器人、扫地机器人、智能家具等智能化应用场景,未来AI Agent智能体将深入各行各业。

所以学习LangChain是必然的趋势,毕竟AI Agent的崛起,让有想法、有技术的人能够以前所未有的方式释放自己的创造力,打造出各种有趣、实用的AI原生应用。

那么,你准备好加入这场革命了吗?

计算机专业必读书籍:

2024年必读高质量计算机编程书籍

最后说一句(别白嫖,求关注)


回复 【idea激活】即可获得idea的激活方式

回复 【Java】获取java相关的视频教程和资料

回复 SpringCloud获取SpringCloud相关多的学习资料

回复 【python】获取全套0基础Python知识手册

回复 【2020】获取2020java相关面试题教程

回复 【加群】即可加入终端研发部相关的技术交流群

阅读更多

重磅!OpenAI正研发ChatGPT文本水印技术,其他大模型将何去何从?

2024年必读高质量计算机编程书籍

一条 SQL 引发的事故,同事直接被开除!!

太扎心!排查阿里云 ECS 的 CPU 居然达100%

一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)

首位 AI 科学家问世

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!


喜欢就给个“在看

互联网科技小于哥
大家好,我是小于哥呀 1、在这里已经为1000+人,提供专业的求职/技术咨询。 2、每天持续干货输出,同时也做专业面试指AI相关的知识,多次受邀成为圆桌嘉宾; 3、每天持续分享互联网,科技,开发技术,毕设和AI相关的知识,同时也做专业面试指
 最新文章