news 2026/8/30 14:06:15

一周入门大模型:从本地部署到LoRA微调完整路线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一周入门大模型:从本地部署到LoRA微调完整路线

如果你打算从 8 月 12 号开始学大模型,一周时间能学到什么程度?先说结论:能把本地部署、接口调用、提示词工程、RAG 和 LoRA 微调全部跑通一遍,并且能形成自己的第一个可用 Demo。这一周不是让你从数学原理、Transformer 源码一点点啃,而是走一条“先会用、再理解、最后能改”的路线。对多数开发者和学生来说,这条路线比直接刷论文有效得多。

这篇文章就是一套完整的一周入门计划。我会按天拆任务:每天做什么、需要什么环境、跑什么命令、验证什么结果、遇到问题怎么查。同时把大模型本地部署、API 调用、常见工具链、显存占用、量化精度这些零基础最容易卡住的问题一次性讲清楚。

全程基于可落地的开源工具链:Ollama 负责模型部署,Open WebUI 负责可视化界面,Python 负责接口调用,ChromaDB 负责知识库检索,LLaMA-Factory 负责微调。操作系统以 Windows 11 和 Ubuntu 22.04 为例,显卡以 NVIDIA 8G 显存为基线,没有 NVIDIA 显卡也能用 CPU 跑小模型,只是速度慢一些。


1. 一周学习路线速览

先给一张完整路线图,方便你对照计划执行。每天的产出都是可以运行、可以验证的实际结果,不是空泛的“学概念”。

日期主题核心任务最终产出
Day 1大模型基础认知搞懂大模型、Token、上下文、参数、量化 5 个核心概念能说清 7B 模型和 70B 模型的区别
Day 2本地部署安装 Ollama,下载 Qwen2.5 7B,命令行对话本地能跑通一个大模型
Day 3WebUI 接入安装 Open WebUI,配置模型,浏览器对话拥有一个类似 ChatGPT 的本地界面
Day 4API 调用调用 Ollama 的 OpenAI 兼容接口用 Python 写出第一个大模型调用程序
Day 5提示词工程系统提示词、结构化输出、Few-shot 示例能稳定输出 JSON 格式的结果
Day 6RAG 知识库文档切分、向量化、检索增强生成让大模型回答私有文档里的问题
Day 7LoRA 微调准备数据集,用 LLaMA-Factory 做 LoRA 微调训练一个自定义风格/知识的小模型

这套路线的设计原则是:部署先行、理解在后。先把模型跑起来,你对“输入一段文本、输出一段文本”有直观感受后,再去看注意力机制、Transformer 结构就轻松很多。


2. 学大模型前先搞懂这 5 个概念

第一天不要急着装环境,先花两三个小时把这几个概念搞清楚。它们会贯穿你后面所有操作。

2.1 大模型到底“大”在哪

大模型本质上是参数量巨大的神经网络。所谓 7B、13B、72B,指的就是参数量分别为 70 亿、130 亿、720 亿。参数数量直接影响模型的知识容量和推理能力,但参数量越大,需要的显存和计算资源也越多。当显存不足时,可以通过量化降低权重精度,让模型体积缩小,代价是生成质量略有下降。

2.2 Token 是模型处理文本的基本单位

大模型不直接读“字”,它把文本切成 Token,每个 Token 可能是半个词、一个词或一个标点。中文通常一个字对应 1 到 2 个 Token。这个概念直接关系到两个问题:上下文窗口长度按 Token 计算、API 计费按 Token 计算。

2.3 上下文窗口决定模型能记住多少

上下文窗口是模型一次能“看到”的最大 Token 数。例如 8K 上下文,大约能处理 5000 到 6000 个中文字符。超出窗口的内容,模型根本看不到。做 RAG 时,上下文窗口决定一次能塞进多少检索片段。

2.4 量化解决显存不够的问题

一个 7B 参数模型,如果以 FP16 精度加载,权重大约占用 14GB 显存;如果量化为 4bit,大约只要 4GB 左右。这就是为什么 8G 显存可以运行 7B/8B 模型,关键就是量化。Ollama 默认使用 Q4_K_M 量化版本,这也是大多数入门用户的选择。

2.5 推理和微调是两回事

推理是“模型根据输入生成输出”,也就是你日常对话、写文章、做总结时发生的操作。微调是“用额外数据继续训练模型”,让它学会新的知识或风格。推理用 Ollama、vLLM 这类工具;微调用 LLaMA-Factory、Axolotl 等框架。两者对硬件的要求差异很大,微调需要更高的显存。


3. 本地部署大模型环境准备

第二天开始动手。这一节先把你机器上的环境检查一遍,避免后面安装时反复报错。

3.1 硬件最低要求

硬件项最低要求推荐要求说明
GPUNVIDIA 4G 显存NVIDIA 8G 以上显存4G 只能跑 3B 以下小模型
内存16GB32GB内存不足会影响模型加载
磁盘20GB 可用空间50GB 以上模型文件较大
操作系统Windows 10 / Ubuntu 20.04Windows 11 / Ubuntu 22.04均可

没有 NVIDIA 显卡也可以。Ollama 支持 CPU 推理,跑 7B 量化模型大约每秒生成 2 到 5 个 Token,勉强能用,适合做功能验证。

3.2 软件环境检查

需要确认以下软件是否已安装:

  • Python 3.10 或 3.11(部分微调框架要求 3.10)
  • Git
  • CUDA 驱动(NVIDIA GPU 用户)
  • Ollama(部署工具)
  • Docker(可选,Open WebUI 可以用 Docker 安装)

Windows 用户建议安装 Git Bash 或 Windows Terminal,后续执行命令更方便。Ubuntu 用户确认nvidia-smi能看到显卡信息:

nvidia-smi

如果提示找不到命令,需要安装 NVIDIA 驱动。检查 Python 版本:

python --version

4. 第二天实操:用 Ollama 完成本地部署

Ollama 是目前本地部署大模型最省事的工具,安装简单、模型管理方便、自带命令行交互,还提供 OpenAI 兼容的 HTTP API。

4.1 安装 Ollama

Windows 用户直接到 Ollama 官网下载安装包,双击安装。Linux 用户执行:

curl -fsSL https://ollama.com/install.sh | sh

安装完成后,验证是否成功:

ollama --version

4.2 下载并运行模型

以通义千问 Qwen2.5 7B 为例,一条命令即可完成下载和启动:

ollama run qwen2.5:7b

第一次运行会自动下载模型文件,7B 量化版大约 4.7GB,下载速度取决于网络情况。下载完成后进入交互模式,可以直接输入问题测试。

如果显存只有 4G,改用 3B 模型:

ollama run qwen2.5:3b

如果只想验证流程没有 GPU,可以用 1.5B 模型:

ollama run qwen2.5:1.5b

4.3 测试模型效果

进入交互界面后,输入一个最简单的测试:

请用一句话介绍什么是大模型

模型会流式输出回答。看到完整回复,说明本地部署成功。按/bye退出交互模式。

查看本机已下载的模型列表:

ollama list

查看模型运行状态:

ollama ps

4.4 配置可视化界面 Open WebUI

命令行交互适合测试,日常使用还是需要图形界面。Open WebUI 是一个开源项目,提供类似 ChatGPT 的 Web 界面,支持多模型切换、对话历史、文件上传和知识库功能。

推荐用 Docker 安装:

docker run -d -p 3000:8080 --name open-webui \ -v open-webui:/app/backend/data \ --add-host=host.docker.internal:host-gateway \ ghcr.io/open-webui/open-webui:main

启动后,浏览器访问http://localhost:3000,注册一个本地管理员账号。进入设置界面,把 Ollama 服务地址配置为:

http://host.docker.internal:11434

如果不想用 Docker,也可以用 pip 安装:

pip install open-webui open-webui serve

访问http://localhost:8080,Ollama 地址填http://localhost:11434

5. 第四天实操:用 Python 调用大模型接口

部署完成后,下一步是把模型接入自己的程序。Ollama 默认在11434端口提供 HTTP API,并且兼容 OpenAI 的接口格式,这意味着很多基于 OpenAI API 开发的工具可以直接改地址使用。

5.1 确认接口服务

确保 Ollama 服务在后台运行。Windows 用户安装后默认开机启动,Linux 用户执行:

ollama serve

测试接口是否可用:

curl http://localhost:11434/api/version

正常返回类似{"version":"0.5.4"},说明服务已启动。

5.2 使用原生 API 调用

import requests url = "http://localhost:11434/api/generate" payload = { "model": "qwen2.5:7b", "prompt": "用一句话介绍大模型", "stream": False } response = requests.post(url, json=payload, timeout=300) print(response.json()["response"])

5.3 使用 OpenAI 兼容接口调用

Ollama 同时提供了 OpenAI 兼容的/v1/chat/completions接口,这样你可以直接用openaiPython 库来调用:

from openai import OpenAI client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama" ) response = client.chat.completions.create( model="qwen2.5:7b", messages=[ {"role": "system", "content": "你是一个技术助手"}, {"role": "user", "content": "大模型训练和推理有什么区别?"} ] ) print(response.choices[0].message.content)

注意api_key参数在本地部署时随意填一个字符串即可,Ollama 不校验。

5.4 批量任务示例

大模型 API 支持批量处理任务。假设你有一批文本需要分类,可以写一个循环逐个调用:

import requests def classify_text(text): url = "http://localhost:11434/api/generate" payload = { "model": "qwen2.5:7b", "prompt": f"请将以下文本分类为:技术、生活、娱乐。只输出分类结果。\n文本:{text}", "stream": False } response = requests.post(url, json=payload, timeout=120) return response.json()["response"].strip() texts = ["Python 发布新版本", "这家餐厅的菜很好吃", "新电影票房破纪录"] for t in texts: result = classify_text(t) print(f"文本:{t} -> 分类:{result}")

批量任务建议增加重试和延迟:

import time for t in texts: try: result = classify_text(t) print(result) except Exception as e: print(f"失败:{e},稍后重试") time.sleep(5)

6. 第五天实操:提示词工程入门

模型部署好了,接口也通了,接下来要提高的是输出质量。提示词工程就是通过设计输入文本,让模型输出更符合你的需求。

6.1 三个基础技巧

角色设定。告诉模型它是什么角色,能显著改变回答风格:

你是一名资深 Java 架构师,擅长代码评审。请从性能、可维护性、安全性三个角度分析这段代码。

结构化输出。要求模型按格式输出,便于程序解析:

请将以下会议纪要提取为 JSON 格式,包含字段:会议主题、日期、参与人、决议事项。 输出格式: { "topic": "", "date": "", "participants": [], "decisions": [] }

Few-shot 示例。给出几个示例,模型会模仿示例格式:

将用户问题转换为 SQL 查询。 示例: 用户问题:查询 2023 年销售额超过 100 万的客户 SQL:SELECT * FROM customers WHERE sales > 1000000 AND year = 2023; 用户问题:查询库存不足 10 件的商品 SQL:

6.2 提示词测试方法

每次修改提示词后,用同一组测试用例验证输出一致性。建议准备 5 到 10 个固定问题,建立“输入-输出”对照表,方便对比不同提示词的效果。

6.3 实践作业

用 API 写一个命令行小工具,支持以下功能:输入一段新闻,输出摘要、关键词列表、情感倾向三部分结构化结果。这个小工具能让你深刻体会提示词对输出质量的影响。


7. 第六天实操:RAG 让模型回答你的私有数据

到目前为止,模型只能回答训练数据里的内容。如果你想让模型回答公司内部文档、个人笔记里的问题,就需要 RAG(检索增强生成)。

7.1 RAG 的核心流程

RAG 分三步:

  1. 把文档切分成小块,向量化后存入向量数据库。
  2. 用户提问时,把问题向量化,在向量数据库中检索最相关的文档片段。
  3. 把检索到的片段和问题一起交给大模型,让它基于片段回答。

这样做的好处是不用微调、修改知识即时生效、成本低。

7.2 使用 ChromaDB 搭建简易 RAG

以 Python 为例,先安装依赖:

pip install chromadb sentence-transformers

使用 Ollama 内置的嵌入模型做向量化。完整代码:

import requests import chromadb from chromadb.utils import embedding_functions # 1. 准备示例文档 documents = [ "大模型训练需要大量的 GPU 资源,通常使用分布式训练。", "LoRA 是一种参数高效的微调方法,只训练少量参数。", "RAG 即检索增强生成,通过检索外部知识来增强模型能力。", "Ollama 是一个本地部署大模型的工具,支持多种开源模型。" ] # 2. 创建向量数据库 client = chromadb.Client() collection = client.create_collection( name="my_docs", embedding_function=embedding_functions.OllamaEmbeddingFunction( url="http://localhost:11434/api/embeddings", model_name="qwen2.5:7b" ) ) # 3. 添加文档 for i, doc in enumerate(documents): collection.add( documents=[doc], ids=[f"doc_{i}"] ) # 4. 查询 question = "LoRA 是什么?" results = collection.query(query_texts=[question], n_results=2) context = "\n".join(results["documents"][0]) # 5. 交给大模型回答 prompt = f"""请基于以下资料回答问题。如果资料中没有相关内容,请直接说明。 资料: {context} 问题:{question} 回答: """ url = "http://localhost:11434/api/generate" payload = { "model": "qwen2.5:7b", "prompt": prompt, "stream": False } response = requests.post(url, json=payload, timeout=120) print(response.json()["response"])

7.3 RAG 调优方向

RAG 效果好坏主要集中在三个环节:文档切分粒度、检索结果数量、提示词组织方式。切分太大检索不精准,切分太小上下文不完整;检索太少可能漏掉关键信息,检索太多会超出上下文窗口。实际操作时,把文档切成 200 到 500 个字符的块,检索 2 到 4 个片段,是常见的起始配置。


8. 第七天实操:LoRA 微调入门

RAG 解决“模型不知道的知识”,微调解决“模型不按你的风格和格式输出”的问题。第七天做一次轻量级 LoRA 微调,理解整个流程。

8.1 LoRA 是什么

LoRA(Low-Rank Adaptation)通过在原始权重旁增加低秩矩阵来微调模型,只训练新增的参数,显存占用和训练时间都大幅降低。一张 8G 显存的显卡可以对 7B 模型做 LoRA 微调。

8.2 使用 LLaMA-Factory 微调

LLaMA-Factory 是目前最流行的开源微调框架之一。安装:

git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e .

准备训练数据,格式为 JSON:

[ { "instruction": "你是谁?", "output": "我是一个由 Qwen 模型微调而来的助手。" }, { "instruction": "写一句欢迎语。", "output": "你好,欢迎使用我的本地助手!" } ]

单卡微调命令:

llamafactory-cli train \ --model_name_or_path Qwen/Qwen2.5-7B \ --dataset_dir ./data \ --dataset alpaca_zh \ --template qwen \ --finetuning_type lora \ --output_dir ./lora_output \ --per_device_train_batch_size 1 \ --gradient_accumulation_steps 8 \ --num_train_epochs 3 \ --learning_rate 1e-4 \ --save_total_limit 3

注意:model_name_or_path需要替换为你本地的模型路径,dataset替换为你自己的数据集名称。训练数据需要按 LLaMA-Factory 的格式放到指定目录。

8.3 微调后的模型导出

训练完成后,LoRA 权重需要合并回原模型或单独部署:

llamafactory-cli export \ --model_name_or_path Qwen/Qwen2.5-7B \ --adapter_name_or_path ./lora_output \ --template qwen \ --finetuning_type lora \ --export_dir ./merged_model

导出后用 Ollama 加载合并模型:

ollama create my-model -f Modelfile

其中Modelfile内容为:

FROM ./merged_model

8.4 微调注意事项

微调类任务要重点关注数据质量。模型微调的规律是“垃圾进,垃圾出”,数据里有错误、重复、格式混乱,模型都会学进去。开始微调前先清理数据、去重、规范格式,并用小数据集跑通流程,再逐步扩大。


9. 资源占用与性能观察

学习过程中,学会观察资源占用能帮你快速定位问题。这里给出一套通用的观察方法,实际数值以你的硬件为准。

9.1 显存观察方法

Windows 用户打开任务管理器,在“性能”标签页里查看“GPU 内存”。Linux 用户使用:

watch -n 1 nvidia-smi

9.2 模型选择参考

模型规模量化方式显存需求适用场景
1.5B - 3BQ4 量化2G - 4G入门测试、低显存设备
7B - 8BQ4 量化5G - 8G日常对话、通用任务
13B - 14BQ4 量化10G - 12G质量要求较高的任务
70BQ4 量化40G 以上复杂推理、专业领域

9.3 降低显存占用的方法

  • 换更小的模型或更多位量化版本
  • 减小上下文窗口长度
  • 降低并发请求数量
  • 使用 vLLM 等推理框架优化显存管理
  • 定期用ollama ps查看是否有模型常驻内存

10. 常见问题与排查方法

问题现象可能原因排查方式解决方案
启动 Ollama 后无法访问 11434服务未启动或端口被占用检查进程和端口重启 Ollama,或修改端口配置
下载模型速度慢网络原因观察下载进度设置镜像源或更换网络环境
模型回答乱码模型版本与模板不匹配检查模型名称更换模型或调整 tokenizer 配置
显存不足程序崩溃模型过大或上下文过长查看nvidia-smi换小模型、降量化、减小上下文
API 调用返回 404接口路径错误测试根路径和版本接口确认 API 地址正确
Open WebUI 无法连接 Ollama服务地址配置错误检查日志和地址修改为正确的 Ollama 地址
微调时报错显存不足模型太大或 batch 太大查看显存占用减小 batch size、开启梯度累积
模型输出不稳定提示词不明确或温度过高检查参数配置降低 temperature,固定随机种子

11. 大模型学习最佳实践与合规边界

11.1 学习阶段建议

先跑通、再优化、最后理解原理。不要第一天就去看 Attention 公式,你会被劝退。先让模型跑起来,产生兴趣和正反馈,再逐步深入。

建立一套自己的实验记录模板。每次运行记录四件事:模型名称、关键参数、输入内容、输出结果。遇到问题好回溯,积累多了能形成自己的调优经验库。

模型文件、数据集、代码、输出结果分目录管理。推荐目录结构:

llm-learning/ ├── models/ # 模型文件 ├── data/ # 数据集 ├── scripts/ # Python 脚本 ├── outputs/ # 运行结果 └── logs/ # 日志

11.2 合规与安全边界

大模型相关的操作场景比较复杂,这里强调几条底线:

  • 本地部署开源模型时,遵守模型的许可证条款,商用前确认模型的开源协议是否允许商用。
  • 调用云端大模型 API 时,注意数据隐私保护,不要把敏感、隐私、涉密数据发送到外部服务。
  • 使用模型生成、处理或转换人脸、声音时,必须获得当事人明确授权,不得用于伪造、冒用、诈骗等非法用途。
  • 用爬虫或脚本收集数据用于模型微调时,确认数据源合法,尊重知识产权。
  • 模型生成的内容不自动视为真实,发布或商用前要做人工复核。

12. 总结与下一步

这一周你学到的内容其实很强了:能本地部署模型、能通过 API 接入自己的程序、能用提示词控制输出质量、能用 RAG 让模型回答自己的知识文档、还能用 LoRA 微调出一个小模型。很多人学了一个月还在纠结概念,你按这套路线动手跑一遍,已经超过了绝大多数“资料收藏家”。

接下来你可以按自己的方向继续深入:对推理性能感兴趣就研究 vLLM、TensorRT-LLM;对模型原理感兴趣就回头啃 Transformer 和 Attention 论文;对应用开发感兴趣就做一个小工具,比如本地知识库问答机器人、代码评审助手、PDF 总结工具;对模型调优感兴趣就继续深入 LoRA、QLoRA,准备更大的数据集做更完整的微调。

建议收藏备用,按 Day 1 到 Day 7 的顺序执行。第一次跑通是最花时间的,后续重复操作就快很多。如果中途卡住,优先检查环境版本、显存占用和端口状态这三个最常见的坑。

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

AI写代码的完整边界:从工具选型到本地部署实践指南

AI写代码爽三个月,然后呢?先说结论:AI 写代码不是神话,也不是智商税。它最大的价值不是把程序员换掉,而是把“从零开始写”变成“快速验证、再修改、再验证”。但如果你只停留在让它帮你补全函数、生成 DTO、写单元测试…

作者头像 李华
网站建设 2026/8/30 14:03:58

工具调用不能只看演示效果

工具调用不能只看演示效果工具调用演示顺畅,并不代表它已经适合真实用户。演示里通常只有一个明确问题、一个工具和一组规范参数;真实环境中,模型可能选择不该使用的工具、漏掉字段、混淆单位、重复调用,工具本身也可能超时、返回…

作者头像 李华
网站建设 2026/8/30 14:03:24

文献综述怎么按主题分类而不是逐篇罗列:BunnyScholar三版综述生成实测

格子达检测全文AI率过高、逐段修改太慢:BunnyScholar长文档处理流程 对于采用格子达作为官方抽检工具的高校毕业生而言,面对全篇飘红的初检报告往往会感到压力倍增:格子达检测全文AI率过高、逐段修改太慢怎么办?整篇本科毕业设计…

作者头像 李华
网站建设 2026/8/30 13:59:30

Docker中轻量化部署Windows X Lite完整指南:三步跑通容器

Docker中轻量化部署Windows X Lite完整指南:三步跑通容器 【免费下载链接】windows Windows inside a Docker container. 项目地址: https://gitcode.com/GitHub_Trending/wi/windows 这篇文章面向想在没有物理Windows机器的情况下,用Docker快速搭…

作者头像 李华
网站建设 2026/8/30 13:56:44

如何用 3 条命令跑通 Expo:React Native 跨端开发的快速上手指南

如何用 3 条命令跑通 Expo:React Native 跨端开发的快速上手指南 【免费下载链接】expo An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web. 项目地址: https://gitcode.com/GitHub_Trending/ex/ex…

作者头像 李华
网站建设 2026/8/30 13:55:47

STM32WL5MOC RTC走时偏差实测:从软件排错到硬件根因分析

做LoRa类设备,RTC和时间戳几乎是标配功能。STM32WL5MOC这颗集成了LoRa收发器的双核SoC上,RTC更是低功耗唤醒和事件时间记录的主时钟。我这几个月在基于STM32WL5MOC做产品验证时,遇到一个很磨人的问题:RTC时间一天下来快了大约8到1…

作者头像 李华