大模型实践基础

一、如何获取大模型?

       基于大模型开发应用,首先要获取到大模型的权重文件文件,然后部署大模型,再基于大模型开发上层应用。

  业内目前使用大模型有两类方式:

  第一类方式,基于各大模型厂商提供的API,以免费或计费的方式调用大模型,这类方式最简单,但可能需要一定的费用。

  第二类方式,在三方托管平台或其他途径,获取大模型权重,然后私有化部署到自己的服务器,并对外暴露访问大模型的API,这类方式虽然麻烦,但可控性更强,也更安全。

1.1大模型厂商API

  市面上常见的大模型厂商,有百度、阿里、DeepSeek、智谱、Kimi等,每家厂商都提供了自己产品的API。

1.2三方托管平台获取大模型

  此种方式,需要先下载大模型权重,然后进行本地化部署。开源的大模型权重,可通过HuggingFace或ModelScope获取获取,其中HuggingFace是全球最具权威的大模型托管平台,但国内一般无法访问,可通过HuggingFace的国内镜像站点https://hf-mirror.com/获取大模型,也可通过阿里的ModelScope站点进行获取,以下以ModelScope站点为例,说明如何获取大模型。

       ModelScope的官方网址为https://modelscope.cn,打开后如图1所示。

image

图1 ModelScope官网首页

       点击图1上方的模型库,进入模型筛选界面,如图2所示。

image

 图2 ModelScope模型库

       可在图2右下方点击任何一个模型,也可以搜索特定的模型,本文以搜索Qwen2.5-3B为例,如图3所示,点击图中通义千问2.5-3B-预训练,打开Qwen2.5-3B模型首页,如图4所示,页面有Qwen2.5-3B模型参数、原理、调用方法等方面的介绍。

 

image

图3 ModelScope搜索特定模型

image

图4 ModelScope通义千问2.5-3B模型首页

       点击图4中部的模型文件tab栏,进入模型文件列表,以准备获取模型文件的下载方式,如图5所示。

image

图5 ModelScope通义千问2.5-3B模型文件列表

       点击图5中部右侧的下载模型按钮,浏览模型下载的方法,如图6所示。

image

图6 ModelScope通义千问2.5-3B模型下载方法

       ModelScope下载模型的方法有命令行下载、SDK下载、Git下载等,可根据自身情况选择合适的下载方式,不管哪种方式,最终都可获取到模型的权重、配置等文件。

二、如何运行大模型?

       如何运行大模型,也分为两种方式:调用厂商API和本地部署。

2.1调用厂商API

  本文以智谱为例,说明如何调用大模型API。

       调用大模型API的方式,有SDK、HTTP调用、第三方框架,下面以最常见的第三方框架OpenAI SDK进行解绍,其他的方式可参阅大模型厂家的开发文档,智谱的官方开发文档链接如下:https://open.bigmodel.cn/dev/api/normal-model/glm-4

  l  安装OpenAI SDK

     截至本文档书写时间,需要确保使用的Python版本至少为3.7.1,OpenAI SDK版本不低于1.0.0。

          

  l  使用API鉴权

     创建 Client,使用您在开放平台的API Key 鉴权。示例如下:

          

  l  对话代码示例

     以下代码是GLM-4的对话调用示例,请注意:

    • temperature 参数的区间为 (0,1);
    • do_sample = False (temperature = 0) 在 OpenAI 调用中并不适用。

          

  注意,需要将api_key替换为自己的内容,api_key的获取方式,如图7所示。

图7 智谱API keys获取

2.2访问本地大模型

       将大模型权重下载至本地后,可通过编写代码访问大模型,代码编写方法,在如图4中的模型介绍说明页面中都会有说明,图8为访问本地模型的代码。

      image

图8 代码访问本地部署模型

2.3 vLLM私有化部署大模型

       更多时候的场景,是将大模型权重部署在一台GPU服务器,然后让客户端来访问这台GPU服务器。目前较流行的部署方法,是使用vLLM来部署大模型权重。

  l  vLLM安装

     vLLM 是一个 Python 库,包含预编译的 C++ 和 CUDA (12.1) 二进制文件。

    • 依赖环境

      u  操作系统:Linux

      u  Python:3.8 - 3.12

      u  GPU:计算能力7.0或更高(例如V100、RTX20xx、A100、H100等)

    • 使用pip安装:

      pip install vllm 

部署模型

    vLLM部署模型的方式有OpenAI兼容服务器和Docker,本文以主流方式OpenAI兼容服务器进行介绍。

    • 启动服务

      启动服务加载大模型,并持续监听默认端口8000,等待客户端的访问,命令行如下:

                    

      上述命令行,加载大模型Llama,并指定接受的api key。

    • 客户端访问大模型

      客户端访问已部署好的Llama大模型,代码如下:

                     image

      注意:上述方法是访问大模型多种方法中的一种,且访问的是本地大模型服务器,因为使用的服务器IP为localhost,如果需要在同一局域网内访问大模型服务器,可将localhost替换为大模型服务器

                     在局域网中的IP,如果需要部署在公网,还需将大模型服务器的IP及端口,在防火墙做好端口映射及安全防护配置,然后客户端代码将localhost替换为大模型服务器在公网的IP或URL即可。

                     vLLM的参数非常多,本文档是普及文档,不做过多的介绍,更多vLLM安装及使用的信息,请参考vLLM官方文档地址:https://vllm.hyper.ai

三、基于大模型开发上层应用

       3.2节介绍了运行大模型的三种方式,无论哪种方式,我们现在都可以访问大模型,并拿回大模型的响应结果,接下来我们要基于大模型的响应结果,去开发上层应用。

       常用的大模型应用开发框架有LangChain、LlamaIndex等,本文档以LangChain为例进行讲解。

3.1 LangChain简介

       LangChain是一种方便开发者快速开发基于大模型的应用,官网地址为https://www.langchain.com,图9显示其官网首页。

image

 图9 LangChain官网首页

  LangChain 简化了 LLM 应用程序生命周期的每个阶段:

  l  开发

     使用LangChain的开源构建模块、组件和第三方集成构建应用程序,使用LangGraph构建具有流式处理和人机协作支持的有状态代理。

  l  生产化

     使用LangSmith检查、监控和评估您的链,以便持续优化和部署。

  l  部署

     将LangGraph应用程序转变为生产就绪的API和助手,使用LangGraph Cloud。

image

图10 LangChain family架构

       图10展示了LangChain family架构,具体来说,该框架由以下开源库组成:

  l  langchain-core

     基础抽象和LangChain表达式 (LCEL)。

  l  langchain-community

     第三方合作伙伴库集成,例如 langchain-openai、langchain-anthropic等,其中一些集成已进一步拆分为LangChain自己的轻量级库,仅依赖于langchain-core。

  l  langchain

     组成应用程序认知架构的链(Chain)、代理(Agent)和检索策略。

  l  LangGraph

     新的实现Agent的框架,通过将步骤建模为图中的边和节点,构建强大且有状态的多参与者应用程序。与LangChain无缝集成,也可以单独使用。

  l  LangServe

     将LangChain链部署为REST API。

  l  LangSmith

     一个开发者平台,用于调试、测试、评估和监控LLM应用程序。

3.2 LangChain安装

       执行以下命令安装langchain相关依赖包:

pip install langchain langchain-core langgraph langsmith langchain-community "langserve[all]" langchain-openai                                

3.3 LangChain连接大模型服务器

       以访问2.3 vLLM部署的本地大模型为例,代码如下:

       

  通过ChatOpenAI访问本地大模型,model、openai_api_key需要与vLLM部署时的相应属性保持一致。

3.4 LangChain访问大模型服务器

       通过以下代码,构建提示词,然后访问大模型,并拿到大模型的响应结果。

     

3.5 构建LangChain链条(Chain)

       将model和output parser用|进行连接,即形成一个链条(chain),代码如下:

       

3.6 LangServe发布大模型接口

       使用LangServe,可以非常方便地发布大模型接口,使得外界可方便地访问大模型。LangServe包含客户端和服务端。

  l  安装LangServe

     pip install "langserve[all]"

  l  LangServe发布服务端接口

     LangServe服务端代码如下,定义好chain后,调用langserv的add_routes方法,即可将chain发布为Restful接口,以下代码将chain发布为http://localhost:8000/chain接口。

          image

  l  LangServe客户端调用服务端接口

     LangServe客户端调用服务端接口代码如下:

         

  至此,大模型从获取、部署、访问、开发上层应用的主要流程都已介绍完毕,在此基础上丰富各环节的内容,可开发出各种各样的大模型应用程序。

四、大模型应用架构

       AI模块作为应用中的一个功能模块而存在,与应用其他模块并无本质区别,AI模块对外提供或http(s),或函数调用,或RPC等各种接口形式的调用。

  图11是大模型应用架构简图,其他大模型应用架构原型与图11大同小异。图11将AI功能部署在一台服务器上,服务器对外接口由LangServ暴露,LangServe会将相应的Http(s)请求路由到相应的LangChain业务,LangChain业务会通过vLLM接口访问大模型,大模型的响应结果则由原路返回给最终的Http(s)客户端。

图11 大模型应用架构简图

       大模型的迭代发展非常块,后续会有非常多的框架替代LangChain、vLLM等现行流行框架,所以要保持与时俱进的知识技能架构。

 

关注更多安卓开发、AI技术、股票分析技术及个股诊断等理财、生活分享等资讯信息,请关注本人公众号(木圭龙的知识小屋)

 

posted @ 2026-03-27 09:22  tgltt  阅读(114)  评论(0)    收藏  举报