news 2026/10/17 6:08:08

大模型基础与 Ollama 本地部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型基础与 Ollama 本地部署

本篇主要记录大模型学习第一阶段的内容,包括大模型基础概念、私有化部署、Ollama 的安装与使用、常用命令、HTTP/API 基础,以及使用 ChatBox 快速搭建本地 ChatBot。


一、大模型与聊天机器人基础

1.1 什么是聊天机器人

聊天机器人(ChatBot)是一种基于人工智能和自然语言处理技术开发的软件程序,可以通过文字或语音与用户进行交互。

最基本的工作流程可以理解为:

用户输入问题 ↓ 系统理解用户输入 ↓ 模型生成回答 ↓ 将结果返回给用户

目前比较常见的聊天机器人包括:

  • DeepSeek

  • Kimi

  • 通义千问

  • 豆包

  • 讯飞星火

一个较完整的聊天机器人通常包含以下几种能力:

自然语言理解

能够理解用户输入的文字或语音,并从中提取用户意图和关键信息。

例如:

用户:北京今天天气怎么样?

系统需要识别出:

地点:北京 时间:今天 任务:查询天气

对话管理

聊天机器人需要保存一定的上下文,保证多轮对话能够正常进行。

例如:

用户:北京有什么好玩的? AI:故宫、天坛、颐和园等。 用户:第二个在哪里?

这里模型需要知道“第二个”指的是前面提到的“天坛”。

个性化交互

模型还可以根据用户之前提供的信息、历史对话或者业务场景生成不同回答。

执行任务

聊天机器人不仅可以回答问题,还可以进一步用于:

  • 客户服务

  • 知识问答

  • 教育辅导

  • 文本生成

  • 信息提取

  • 数据查询

  • 调用其他工具


1.2 一个 AI 聊天机器人由什么组成

本次学习中,一个基础聊天机器人的整体架构可以简单理解为:

用户 ↓ 前端页面 ↓ 后端程序 ↓ 大语言模型

课程中使用的技术组合为:

Streamlit + Ollama + Qwen

其中:

Streamlit

主要负责前端页面,例如:

  • 输入框

  • 发送按钮

  • 聊天记录

  • 模型回答展示区域

Ollama

负责模型的运行与管理,例如:

  • 下载模型

  • 加载模型

  • 运行模型

  • 删除模型

  • 提供 API

Qwen

是真正负责自然语言理解与内容生成的大语言模型。

整个调用过程大致为:

用户输入问题 ↓ Streamlit ↓ Python 后端 ↓ Ollama ↓ Qwen ↓ 模型生成回答 ↓ 返回前端页面

1.3 什么是大模型

这里所说的大模型,主要指大型人工智能基础模型。

其中比较常见的是:

Large Language Model,LLM,大语言模型。

大语言模型通过大量文本数据进行训练,从而获得理解和生成自然语言的能力。

例如:

输入: 请解释一下什么是 HTTP。 模型: HTTP 是一种用于客户端和服务器之间进行通信的协议……

需要注意的是,大语言模型并不是简单从数据库中查询固定答案,而是根据输入内容以及训练过程中学习到的参数生成结果。


1.4 大模型的主要类型

按照模型处理的数据类型,可以分成多种类型。

1.4.1 自然语言处理模型

主要处理:

文本

可以完成:

  • 文本生成

  • 问答

  • 翻译

  • 摘要

  • 信息提取

  • 情感分析

  • 代码生成

例如:

GPT BERT T5 Qwen DeepSeek

1.4.2 计算机视觉模型

主要处理:

图片 视频

常见任务包括:

  • 图像分类

  • 目标检测

  • 图像生成

  • 图像理解

  • 语义分割

例如:

Stable Diffusion ViT DALL·E CLIP

1.4.3 语音模型

语音模型主要处理声音数据。

典型任务包括:

语音识别 ASR 语音合成 TTS 语音翻译 语音增强 说话人识别 声音事件识别

其中:

ASR: 语音 → 文字
TTS: 文字 → 语音

例如:

Whisper WaveNet

1.4.4 多模态模型

多模态模型可以同时处理多种类型的数据,例如:

文本 图片 音频 视频

例如用户可以:

上传一张图片 ↓ 输入: “请告诉我这张图片中有什么?” ↓ 模型同时理解图片和文字 ↓ 生成回答

这种能力通常称为:

多模态理解。


1.5 大模型的应用场景

目前常见的大模型应用包括:

  • 智能客服

  • 文本生成

  • 机器翻译

  • 知识问答

  • 代码生成

  • 图像识别

  • 目标检测

  • 教育辅助

  • 企业知识库

  • AI 助手

例如在企业中,可以进一步构建:

企业知识库 技术支持系统 智能客服 内部 AI 助手

二、大模型私有化部署

2.1 为什么需要私有化部署

直接使用在线 AI 服务虽然方便,但是对于企业来说,还需要考虑一个非常重要的问题:

数据安全。

企业内部通常会存在大量敏感数据,例如:

源代码 合同 客户资料 财务数据 产品设计 内部文档 业务数据

如果这些内容直接发送给外部服务,就需要考虑:

  • 数据安全

  • 隐私保护

  • 企业内部安全策略

  • 行业合规要求

因此产生了大模型私有化部署的需求。

所谓私有化部署,可以简单理解为:

模型运行在自己的电脑

或者:

模型运行在企业自己的服务器

例如:

员工电脑 ↓ 企业内部服务器 ↓ 本地大模型

而不是完全依赖:

员工电脑 ↓ 互联网 ↓ 第三方 AI 服务

2.2 常见本地大模型运行方案

课程中主要介绍了两种工具:

Ollama LM Studio

其中本次重点学习:

Ollama。

Ollama 更适合:

  • 学习

  • 开发

  • 测试

  • 本地运行模型

  • 快速验证 AI 项目

如果以后进入真正的大规模生产环境,例如:

大量用户 高并发请求 多个 GPU 大模型服务集群

则通常还需要进一步学习:

vLLM Kubernetes 多 GPU 推理 模型服务化

三、Ollama 基础与模型管理

3.1 什么是 Ollama

Ollama 是一个用于简化大型语言模型本地运行和管理的工具。

官网:

https://ollama.com/

使用 Ollama 后,可以比较方便地完成:

  • 下载模型

  • 运行模型

  • 管理模型

  • 切换模型

  • 删除模型

  • 查看模型信息

  • 通过 API 调用模型

传统模型部署可能需要手动处理:

模型权重 Python 环境 依赖库 CUDA 推理框架 配置文件

而 Ollama 对这些过程进行了进一步封装。

例如运行一个模型,可以直接执行:

ollama run qwen2

3.2 Ollama 的主要特点

统一管理模型

Ollama 可以统一管理:

模型权重 模型配置 模型参数 Modelfile

模型切换方便

可以比较方便地在不同模型之间切换,例如:

Qwen DeepSeek Llama

模型库丰富

官方模型库:

https://ollama.com/library

多平台支持

支持:

Windows macOS Linux

提供 API

Ollama 不仅可以通过命令行运行模型,还能够提供 API。

这意味着后续可以使用:

Python Java JavaScript Web 应用

调用本地模型。


3.3 安装 Ollama

安装完成以后,可以通过以下命令检查:

ollama -v

如果能够正常显示版本号,例如:

ollama version is xxx

说明 Ollama 已经安装成功。


3.4 Ollama 常用客户端命令

Ollama 常用命令主要有:

命令作用
ollama run运行模型
ollama pull下载模型
ollama list查看本地模型
ollama ps查看当前运行的模型
ollama show查看模型信息
ollama rm删除模型

3.4.1 run:运行模型

基本格式:

ollama run MODEL[:VERSION]

例如:

ollama run qwen2:0.5b

运行以后即可进入交互式对话。

>>> 你好 你好!有什么可以帮助你的吗?

如果不指定版本:

ollama run qwen2

一般相当于:

ollama run qwen2:latest

还可以直接进行一次性提问:

ollama run qwen2:0.5b 你好

模型回答后直接退出。

如果需要查看运行统计信息:

ollama run qwen2:0.5b --verbose

可以看到:

total duration load duration prompt eval count prompt eval duration prompt eval rate eval count eval duration eval rate

其中:

  • prompt eval count:输入 Token 数量

  • eval count:模型输出 Token 数量

  • eval rate:模型生成速度


3.4.2 pull:下载模型

基本格式:

ollama pull 模型名称

例如:

ollama pull qwen2

指定具体版本:

ollama pull qwen2:0.5b

模型名称可以在 Ollama 官方模型库中查询。


3.4.3 list:查看本地模型

执行:

ollama list

也可以简写:

ollama ls

示例:

NAME ID SIZE qwen2:latest e0d4e1163c58 4.4 GB deepseek-coder:latest 3ddd2d3fc8d2 776 MB qwen2:0.5b 6f48b936a09f 352 MB

常见字段:

字段含义
NAME模型名称
ID模型 ID
SIZE模型大小
MODIFIED最近修改时间

3.4.4 ps:查看正在运行的模型

执行:

ollama ps

可以查看:

  • 当前正在运行什么模型

  • 模型占用多少资源

  • 使用 CPU 还是 GPU

  • 模型还会在内存中保留多久


3.4.5 show:查看模型信息

基本格式:

ollama show MODEL

例如:

ollama show qwen2

常用参数:

ollama show qwen2 --license

查看模型许可证。

ollama show qwen2 --modelfile

查看 Modelfile。

ollama show qwen2 --parameters

查看模型参数。

ollama show qwen2 --system

查看 System Prompt。

ollama show qwen2 --template

查看 Prompt 模板。


3.4.6 rm:删除模型

执行:

ollama rm qwen2:0.5b

删除以后可以再次执行:

ollama list

检查模型是否还存在。


四、Ollama 对话与模型参数

4.1 常用对话指令

执行:

ollama run qwen2

以后,会进入 Ollama 的交互式对话环境。

输入:

/?

可以查看帮助。

常见指令:

指令作用
/?查看帮助
/show查看模型信息
/clear清除上下文
/load切换模型
/save保存当前模型
/set设置模型参数
/bye退出

4.2 查看和清理上下文

使用:

/show info

可以查看当前模型的一些基本信息,例如:

Family Parameter Size Quantization Level

如果需要清除当前聊天历史,可以执行:

/clear

例如:

用户: 给我出一道 Java List 单选题。 AI: …… 用户: 再出一道。

这里模型能够理解“再出一道”,是因为前面的对话仍然存在于上下文中。

执行:

/clear

以后,当前上下文会被清除。


4.3 切换与保存模型

聊天过程中可以直接切换模型:

/load deepseek-coder

也可以保存当前模型:

/save test

之后可以直接运行:

ollama run test

4.4 常用生成参数

执行:

/set parameter

可以查看模型支持的参数。

比较重要的包括:

temperature top_k top_p num_ctx seed num_predict repeat_penalty

temperature

控制回答的随机性。

可以简单理解为:

temperature 低 → 输出更加稳定、保守 temperature 高 → 输出更加随机、多样

top_k

限制模型每一步生成时参与选择的候选 Token 数量。

top_k 小 → 候选范围较小 top_k 大 → 候选范围更大

top_p

按照累积概率限制候选 Token。

可以简单理解为:

top_p 越低 → 输出通常越集中 top_p 越高 → 输出通常更加多样

num_ctx

控制上下文窗口大小。

例如:

num_ctx 4096

上下文越大,模型能够参考的历史信息通常也越多。

seed

设置随机种子。

例如:

seed 42

固定 Seed 有助于提高重复实验时结果的一致性。

num_predict

控制最大生成 Token 数量。

例如:

num_predict 128

repeat_penalty

用于降低模型重复生成相同内容的概率。


4.5 JSON 输出与统计信息

可以设置:

/set format json

模型会按照 JSON 格式返回结果,例如:

{ "response": "你好,请问有什么可以帮助你的吗?" }

关闭:

/set noformat

JSON 对后续程序开发比较重要,因为结构化数据比普通文本更加方便解析。

如果执行:

/set verbose

还可以输出:

total duration load duration prompt eval count prompt eval duration prompt eval rate eval count eval duration eval rate

这些指标后续在模型性能测试中会经常使用。


五、HTTP 与 API 基础

5.1 什么是 HTTP

HTTP 全称:

HyperText Transfer Protocol。

可以简单理解为:

客户端与服务器之间进行通信的一套规则。

例如浏览器访问网站:

浏览器 ↓ HTTP 请求 服务器 ↓ HTTP 响应 浏览器

5.2 GET 与 POST

HTTP 中最常见的请求方法包括:

GET POST

GET

一般用于获取数据,例如:

  • 获取文章

  • 查询数据

  • 获取用户信息

POST

一般用于向服务器提交数据,例如:

  • 登录

  • 提交表单

  • 上传内容

  • 发送聊天信息

大模型聊天接口通常需要提交:

模型名称 用户问题 聊天历史 生成参数

因此通常会使用:

POST

5.3 HTTP 请求组成

一个 HTTP 请求通常包括:

请求方法 URL Headers Body

例如:

POST /api/chat

请求头:

Content-Type: application/json

请求体:

{ "model": "qwen2", "messages": [ { "role": "user", "content": "你好" } ] }

5.4 HTTP 状态码

常见状态码:

状态码含义
200请求成功
302临时重定向
404请求资源不存在
500服务器内部错误
502网关收到无效响应

可以暂时简单记成:

2xx 请求成功 4xx 通常表示客户端请求存在问题 5xx 通常表示服务器端存在问题

5.5 什么是 API

API 全称:

Application Programming Interface。

可以简单理解为:

一个程序提供给其他程序调用功能的接口。

例如 Ollama 启动以后,可以提供:

/api/chat

其他程序按照规定格式发送 HTTP 请求,就可以调用 Ollama 中的大模型。

因此:

命令行调用

更适合:

人直接操作

而:

API 调用

更适合:

程序自动调用

六、Ollama API

6.1 Chat API

Ollama 的聊天接口为:

POST /api/chat

一个基础请求示例:

{ "model": "qwen2.5:0.5b", "messages": [ { "role": "user", "content": "你好" } ], "stream": true }

其中最重要的是:

model messages

6.2 messages 与角色

messages用于保存聊天消息。

例如:

{ "role": "user", "content": "你好" }

常见角色包括:

system user assistant

system

用于设置模型身份或行为。

{ "role": "system", "content": "你是一名 Python 教师。" }

user

代表用户输入。

{ "role": "user", "content": "解释一下列表。" }

assistant

代表模型之前的回答。

{ "role": "assistant", "content": "Python 中的列表是一种……" }

完整多轮对话可能类似:

[ { "role": "system", "content": "你是一名 Python 教师" }, { "role": "user", "content": "什么是列表?" }, { "role": "assistant", "content": "列表是 Python 中的一种数据结构……" }, { "role": "user", "content": "那元组呢?" } ]

这也是实现大模型多轮对话的重要方式之一。


6.3 stream 流式输出

API 中还有一个重要参数:

"stream": true

表示:

流式输出。

也就是:

模型生成一点 ↓ 返回一点 ↓ 继续生成 ↓ 继续返回

在聊天界面中表现出来,就是文字不断出现。

如果关闭流式输出,则需要等待模型生成完成以后再一次性返回结果。


6.4 API 返回结果

Ollama 返回的数据中除了模型回答,还可能包含大量运行指标,例如:

{ "model": "llama3.1", "message": { "role": "assistant", "content": "..." }, "done": true, "total_duration": 14452649821, "load_duration": 21370256, "prompt_eval_count": 213, "eval_count": 25 }

其中比较重要的包括:

字段含义
prompt_eval_count输入 Token 数
eval_count输出 Token 数
total_duration总耗时
load_duration模型加载耗时
prompt_eval_durationPrompt 处理耗时
eval_duration模型输出耗时

这些数据以后可以用于:

  • 模型性能测试

  • 模型速度对比

  • 推理性能监控


6.5 使用 Apifox 测试 API

在正式写代码之前,可以使用 Apifox 直接测试 Ollama API。

Apifox 可以用于:

  • API 调试

  • API 文档

  • Mock

  • 自动化测试

测试时可以直观看到:

URL Method Headers Body Response Status Code

例如测试:

POST /api/chat

请求:

{ "model": "qwen2.5:0.5b", "messages": [ { "role": "user", "content": "你好" } ], "stream": false }

如果最终返回:

HTTP 200

同时获得模型回答,则说明:

客户端 ↓ Ollama API ↓ 本地模型

这条调用链已经成功打通。


七、ChatBox + Ollama 搭建本地 ChatBot

7.1 为什么还需要 ChatBox

使用 Ollama 时,可以直接在命令行中进行聊天:

ollama run qwen2

但是命令行并不像 ChatGPT、DeepSeek 这样的网页聊天界面。

因此可以使用:

ChatBox

作为前端。

整个架构变成:

ChatBox ↓ Ollama API ↓ 本地大语言模型

7.2 ChatBox 是什么

ChatBox 是一个 AI 对话客户端。

可以提供:

  • 聊天界面

  • 模型切换

  • 历史记录

  • 参数配置

  • 图片和文档交互

  • 本地模型接入

  • 多种 AI 平台接入

使用 ChatBox 后,不需要立即自己开发前端,就能够快速获得一个相对完整的聊天界面。


7.3 ChatBox 接入 Ollama

整体流程可以概括为:

安装 Ollama ↓ 下载模型 ↓ 运行 Ollama ↓ 安装 ChatBox ↓ 配置 Ollama ↓ 选择模型 ↓ 开始聊天

最终的结构就是:

┌──────────────┐ │ 用户 │ └──────┬───────┘ ↓ ┌──────────────┐ │ ChatBox │ │ 前端界面 │ └──────┬───────┘ ↓ HTTP ┌──────────────┐ │ Ollama │ │ 模型服务 │ └──────┬───────┘ ↓ ┌──────────────┐ │ Qwen / Llama │ │ DeepSeek 等 │ └──────────────┘

到这里,就已经完成了一个最基础的:

本地 AI 聊天机器人。


八、本阶段学习总结

8.1 大模型、Ollama 和 ChatBox 的关系

这几个概念非常容易混淆。

可以简单理解成:

Qwen / DeepSeek / Llama ↓ 模型
Ollama ↓ 模型运行与管理工具
ChatBox ↓ 聊天客户端

三者组合起来就是:

用户 ↓ ChatBox ↓ Ollama ↓ Qwen / DeepSeek / Llama

8.2 本地运行不等于训练模型

执行:

ollama pull qwen2

本质上是在:

下载已经训练完成的模型

然后:

在本地进行推理

它和:

从零开始训练一个大模型

是两个完全不同的过程。


8.3 API 是 AI 应用开发的重要基础

直接运行:

ollama run qwen2

主要解决:

人与模型聊天

而 Ollama 提供:

POST /api/chat

以后,就可以让:

Python Java Web 网站 APP 企业系统

调用模型。

可以把 AI 应用开发简单理解为:

大模型 + API + 业务程序 = AI 应用

8.4 Ollama 命令速查

操作命令
查看版本ollama -v
下载模型ollama pull qwen2
运行模型ollama run qwen2
查看模型ollama list
查看运行模型ollama ps
查看模型信息ollama show qwen2
查看模型参数ollama show qwen2 --parameters
查看模板ollama show qwen2 --template
删除模型ollama rm qwen2

对话中常用:

指令作用
/?查看帮助
/show查看模型信息
/clear清除上下文
/load切换模型
/save保存模型
/set修改参数
/bye退出

8.5 本阶段知识路线

整个 Day01 的知识可以最终整理为:

聊天机器人是什么 ↓ 什么是大模型 ↓ 大模型有哪些类型 ↓ 为什么需要私有化部署 ↓ 什么是 Ollama ↓ 下载和运行模型 ↓ Ollama 模型管理 ↓ 模型参数与上下文 ↓ HTTP 基础 ↓ API 基础 ↓ Ollama /api/chat ↓ ChatBox 接入 Ollama ↓ 搭建本地 ChatBot

后续继续学习 Python 后,就可以逐渐把 ChatBox 替换成自己编写的应用:

Python ↓ Ollama API ↓ 大语言模型

再进一步可以继续学习:

聊天机器人 企业知识库 RAG Agent AI 助手 企业 AI 应用

这也是大模型应用开发的一个基础起点。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 2:58:22

【uni-app项目实战】心理健康服务平台(六)

目录 十一、极速问诊 11.1 选择患者 11.1.1 布局模板 11.1.2 患者列表 11.2.3 选择患者 11.2 预付订单 11.2.1 布局模板 11.2.2 跳转页面 11.2.3 订单信息 11.2.4 患者信息 11.3 待付订单 11.4 支付渠道 11.4.1 custom-payment 11.4.2 支付流程 11.4.3 支付宝支…

作者头像 李华
网站建设 2026/10/16 2:57:11

仓颉 ArkUI Badge 信息标记组件开发指南:用法、样式与实战示例

文档知识库教程OpenHarmony 【免费下载链接】CangjieCorpus 本仓库为仓颉编程语言语料库,聚焦 仓颉编程语言 核心知识体系,整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源,经结构化处理与专业标注,构建为支持 R…

作者头像 李华
网站建设 2026/10/16 2:57:09

ElasticSearch Suggest实现搜索提示:从映射设计到性能调优全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华