一、大模型部署

首先需要有一个可访问的大模型,通常有三种选择:

  • 使用开放的大模型API。
  • 在云平台部署私有大模型。
  • 在本地服务器部署私有大模型。

使用开放大模型API的优缺点如下:

  • 优点:
    • 没有部署和维护成本,按调用收费。
  • 缺点:
    • 依赖平台方,稳定性差。
    • 长期使用成本较高。
    • 数据存储在第三方,有隐私和安全问题。

云平台部署私有模型:

  • 优点:
    • 前期投入成本低。
    • 部署和维护方便。
    • 网络延迟较低。
  • 缺点:
    • 数据存储在第三方,有隐私和安全问题。
    • 长期使用成本高。

本地部署私有模型:

  • 优点:
    • 数据完全自主掌控,安全性高。
    • 不依赖外部环境。
    • 虽然短期投入大,但长期来看成本会更低。
  • 缺点:
    • 初期部署成本高。
    • 维护困难。

二、本地部署大模型

很多云平台都提供了一键部署大模型的功能。我们讲讲如何手动部署大模型。

手动部署最简单的方式就是使用Ollama,这是一个帮助你部署和运行大模型的工具。官网如下:

https://ollama.com/

2.1 下载安装ollama

首先,我们需要下载一个Ollama的客户端,在官网提供了各种不同版本的Ollama,大家可以根据自己的需要下载。

在这里插入图片描述

下载后双击即可安装。

注意:

Ollama默认安装目录是C盘的用户目录,如果不希望安装在C盘的话,就不能直接双击安装了。需要通过命令行安装

命令行安装方式如下:

在OllamaSetup.exe所在目录打开cmd命令行,然后命令如下:

OllamaSetup.exe /DIR=你要安装的目录位置

OK,安装完成后,还需要配置一个环境变量,更改Ollama下载和部署模型的位置。环境变量如下:

OLLAMA_MODELS=你想要保存模型的目录

环境变量配置方式,配置完成如图:

在这里插入图片描述

2.2 搜索模型

ollama是一个模型管理工具和平台,它提供了很多国内外常见的模型,我们可以在其官网上搜索自己需要的模型:

https://ollama.com/search

如图,目前热度排第一的就是deepseek-r1:

在这里插入图片描述

点击进入deepseek-r1页面,会发现deepseek-r1也有很多版本:

在这里插入图片描述

这些就是模型的参数大小,越大推理能力就越强,需要的算力也越高。671b版本就是最强的满血版deepseek-r1了。需要注意的是,Ollama提供的DeepSeek是量化压缩版本,对比官网的蒸馏版会更小,对显卡要求更低。对比如下:

在这里插入图片描述

我选择部署的是7b的模型,当然8b也是可以的,都是可以流畅运行的。

2.3 运行模型

选择自己合适的模型后,ollama会给出运行模型的命令:

在这里插入图片描述

复制这个命令,然后打开一个cmd命令行,运行命令即可,然后你就可以跟本地模型聊天了:

注意:

  • ollama控制台是一个封装好的AI对话产品,与ChatGPT类似,具备会话记忆功能。

Ollama是一个模型管理工具,有点像Docker,而且命令也很像,比如:

  ollama serve      # Start ollama
  ollama create     # Create a model from a Modelfile
  ollama show       # Show information for a model
  ollama run        # Run a model
  ollama stop       # Stop a running model
  ollama pull       # Pull a model from a registry
  ollama push       # Push a model to a registry
  ollama list       # List models
  ollama ps         # List running models
  ollama cp         # Copy a model
  ollama rm         # Remove a model
  ollama help       # Help about any command

2.4 调用大模型

大模型开发并不是在浏览器中跟AI聊天。而是通过访问模型对外暴露的API接口,实现与大模型的交互
所以要学习大模型应用开发,就必须掌握模型的API接口规范。
目前大多数大模型都遵循OpenAI的接口规范,是基于Http协议的接口。因此请求路径、参数、返回值信息都是类似的,可能会有一些小的差别。具体需要查看大模型的官方API文档。

2.4.1大模型接口规范

我们以DeepSeek官方给出的文档为例:

# Please install OpenAI SDK first: `pip3 install openai`

from openai import OpenAI

# 1.初始化OpenAI客户端,要指定两个参数:api_key、base_url
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

# 2.发送http请求到大模型,参数比较多
response = client.chat.completions.create(
    model="deepseek-chat", # 2.1.选择要访问的模型
    messages=[ # 2.2.发送给大模型的消息
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False # 2.3.是否以流式返回结果
)

print(response.choices[0].message.content)

2.4.2 接口说明

  • 请求方式:通常是POST,因为要传递JSON风格的参数
  • 请求路径:与平台有关
  • 安全校验:开放平台都需要提供API_KEY来校验权限,本地ollama则不需要
  • 请求参数:参数很多,比较常见的有:
    • model:要访问的模型名称
    • messages:发送给大模型的消息,是一个数组
    • stream:true,代表响应结果流式返回;false,代表响应结果一次性返回,但需要等待
    • temperature:取值范围[0:2),代表大模型生成结果的随机性,越小随机性越低。DeepSeek-R1不支持

注意,这里请求参数中的messages是一个消息数组,而且其中的消息要包含两个属性:

  • role:消息对应的角色
  • content:消息内容

其中消息的内容,也被称为提示词Prompt),也就是发送给大模型的指令

2.4.3 提示词角色

通常消息的角色有三种:

角色 描述 示例
system 优先于user指令之前的指令,也就是给大模型设定角色和任务背景的系统指令 你是一个乐于助人的编程助手,你以小团团的风格来回答用户的问题。
user 终端用户输入的指令(类似于你在ChatGPT聊天框输入的内容) 写一首关于Java编程的诗
assistant 由大模型生成的消息,可能是上一轮对话生成的结果 注意,用户可能与模型产生多轮对话,每轮对话模型都会生成不同结果。

其中System类型的消息非常重要!影响了后续AI会话的行为模式。

比如,我们会发现,当我们询问这些AI对话产品“你是谁”这个问题的时候,每一个AI的回答都不一样,这是怎么回事呢?

这其实是因为AI对话产品并不是直接把用户的提问发送给LLM,通常都会在user提问的前面通过System消息给模型设定好背景:

所以,当你问问题时,AI就会遵循System的设定来回答了。因此,不同的大模型由于System设定不同,回答的答案也不一样。

posted on 2025-12-04 11:51  努力--坚持  阅读(0)  评论(0)    收藏  举报