- 博客(118)
- 收藏
- 关注
原创 32 Guardrails — 输出防护与全链路安全
目标举例主题合规客服机器人只回答产品相关问题内容安全不输出暴力、歧视、有害内容格式正确必须是合法 JSON / 符合 schema长度约束不超过 200 字事实核查输出不能包含拒绝服务/越权声明。
2026-08-27 17:22:44
265
原创 30 vLLM — 生产级本地推理引擎
Ollama 面向单用户/开发调试。这叫 静态批处理(Static Batching):一次只服务一个请求,GPU 利用率极低。
2026-08-26 17:01:01
177
原创 29 微调(Fine-tuning)
QLoRA = Quantization(4-bit 量化,压缩 W)+ LoRA,让消费级 GPU 也能微调 7B 模型。PEFT(Parameter-Efficient Fine-Tuning):只训练少量新增参数,冻结原始权重。规律:能用 Prompt 解决的不用微调;能用 RAG 解决的不用微调。微调成本高,应最后考虑。全量微调(Full Fine-tuning):更新模型所有参数。效果好,但对 7B+ 模型需要数十 GB 显存,代价极高。参数量从 d×d 降到 2×d×r,r 通常取 8~64。
2026-08-25 18:10:20
217
原创 27 本地 + 云端智能路由(Local + Cloud Routing)
智能路由的核心思路是:简单任务走本地,复杂任务走云端,在成本、速度、隐私之间找平衡。
2026-08-24 20:24:42
182
原创 26 GGUF 量化
格式每个权重占用说明F3232 bit完整精度,最大最慢F1616 bit半精度,Ollama 默认Q8_08 bit轻微损失,接近原始Q6_K6 bit极小损失,推荐Q4_K_M4 bit小损失,最流行(速度/质量平衡)Q3_K_M3 bit明显损失,极小内存Q2_K2 bit大幅损失,极端压缩F16:~14 GBQ4_K_M:~4 GB(缩小到原来的 28%)
2026-08-23 22:11:27
220
原创 25 Ollama 本地部署
Model Tag:模型名+版本,格式 名称:参数量。例如 qwen2.5:1.5b 表示 Qwen2.5 的 15亿参数版本(约 1GB,CPU 可跑)。Ollama 是一个本地 LLM 运行时——你在本机启动一个 HTTP 服务,它负责加载模型、推理、返回结果。去 [ollama.com] 下载 Windows 安装包,安装后 Ollama 自动在后台运行。qwen2.5:1.5b 只有约 1GB,CPU 可以跑,适合测试。Ollama 服务:后台常驻进程,类似数据库服务,负责加载和运行模型。
2026-08-23 19:18:22
242
原创 24 CrewAI
一句话总结:LangGraph 是"工程师思维",CrewAI 是"导演思维"——你设计角色和剧本,框架帮你执行。示例代码import sys):returnrole="核实员",goal="核实文章中的事实是否准确",backstory="你是一个专业的核实员,你的任务是核实文章中的事实是否准确。",llm=llm,role="分析师",goal="分析新闻的影响和意义",backstory="你是一个专业的分析师,你的任务是分析文章中的影响和意义。",llm=llm,
2026-08-23 15:33:34
230
原创 23 Handoff —— Agent 之间的控制权移交
前两课用的是 Supervisor 模式:有一个"上帝视角"的路由节点在顶层决策,始终掌控全局流转。Handoff 模式不同:每个 Agent 自己决定"我做完了,把控制权移交给谁"。
2026-08-23 14:11:42
164
原创 22 多 Agent 架构
单个 Agent 有上下文窗口限制、角色混乱、并发瓶颈三大天花板。多 Agent 架构的本质:把一个复杂任务拆分给多个"专职 Agent",每个 Agent 只干自己擅长的事,最终由某种协调机制整合结果。
2026-08-22 22:53:14
218
原创 21 MCP
在 MCP 出现之前,每家 AI 平台的工具调用格式各不相同——OpenAI 有 Function Calling,Anthropic 有 tool_use,各自私有、互不兼容。同一个"查天气"函数要为每家平台写一套适配代码。MCP(Model Context Protocol) 是 Anthropic 发起的开放协议,定义了 AI 应用与外部工具/数据之间的统一通信标准。
2026-08-22 14:57:03
246
原创 20 上下文管理
原理:当历史消息超过阈值时,用 LLM 将旧消息"压缩"成一段摘要,替换原有历史,再继续对话优点:旧信息不完全丢失(用摘要保留语义)缺点:多一次 LLM 调用,引入摘要误差[H1,A1,H2,A2,H3,A3](旧历史,约 300 token)↓ LLM 压缩[SystemMessage("摘要:用户叫小明,讨论了 Python/JS 区别...")] (约 60 token)↓ 加上新问题[SystemMessage(摘要), HumanMessage("新问题")] → LLM 推理。
2026-08-21 17:37:20
341
原创 18 LangSmith —— 链路追踪与调试
Self-RAG,自适应 RAG 写的图跑起来很"黑盒"——只能看 print 输出,不知道:每次 LLM 调用耗时多久、花了多少 token哪个节点出错、中间变量是什么多次运行之间效果有没有退步LangSmith 是 LangChain 官方的可观测平台,像给你的 Agent 装了"飞行记录仪"。
2026-08-18 14:03:59
180
原创 17 Self-RAG —— 幻觉检测 + 答案质量评估
"""① 文档相关性评分"""score: str = Field(description="'relevant':表示相关,'irrelevant':表示不相关")reason: str = Field(description="一句话判断理由")"""② 幻觉检测:答案是否忠实于检索文档"""description="True = 答案完全基于文档,False = 答案包含文档之外的内容(幻觉)"reason: str = Field(description="一句话判断理由")
2026-08-17 19:50:53
202
原创 16 自适应 RAG —— 文档评分 + 查询重写 + 条件路由
score: str = Field(description="'relevant':表示相关,'irrelevant':表示不相关")reason: str = Field(description="一句话判断理由")grade: strGRADE_PROMPT = """你是文档相关性评判助手。请判断以下文档内容是否能够帮助回答给定问题。问题:{question}文档内容(共 {n} 段):{context}判断标准:文档中是否含有可以直接或间接用于回答该问题的信息?
2026-08-17 16:24:36
166
原创 14 RAG 评估(RAGAS)
混合检索 + Reranking 的 RAG 管道,但如何知道它"好不好"?光靠人眼看几条答案是不够的,需要量化指标来客观衡量。
2026-08-16 16:50:21
212
原创 13 Reranking(重排序)
Reranker 对每个"问题-文档"对单独打分,比向量余弦相似度更准确,因为它能理解两段文字之间的语义交互。
2026-08-15 23:03:53
226
原创 12 混合检索(BM25 + 向量)
BM25 是一个关键词打分算法,rank_bm25 是这个算法的 Python 实现包,BM25Retriever 在底层调用了它,故使用BM25Retriever要安装rank_bm25。这和 BM25Retriever.invoke() 返回类型一致,所以能放进 EnsembleRetriever。例如:向量:A > C > E;最终排序:doc_A > doc_B > doc_C > doc_D ≈ doc_E。不加 jieba,中文会被逐字拆开(“机”、“器”、“学”、“习”),匹配效果很差。
2026-08-15 23:01:31
194
原创 09 Qdrant
返回的是类似 QueryResponse 的对象,核心是 results.points,每个元素一般是 ScoredPoint。同一个 Collection 里,所有向量的维度必须一致(比如都是 1536 维)Chroma 也有过滤,但 Qdrant 的过滤性能和表达能力远超 Chroma。
2026-08-14 10:49:50
166
原创 08 Chroma 持久化 + FastAPI 封装
重点:向量库和 Graph 在 服务启动时初始化一次,不是每个请求重建。startup 一次。
2026-08-13 18:35:17
181
原创 07 LangGraph 集成 RAG
RAG = Retrieval-Augmented Generation(检索增强生成)用户提问问题向量化向量库检索 Top-K 片段拼进 PromptLLM 生成回答你的文档 txt/pdf切分 ChunkEmbedding 向量化向量库RAG :文档切成很多块 → 每块变成向量 → 用户提问时找最相关的几块 → 交给 LLM 作答。若需要解析PDF三、RAG 四步流水线加载文档 → 切分 Chunk → 向量化入库 → 检索 + 生成把文件读成文本。本课主练 txt;PDF 作为加分项(后面说)。
2026-08-09 21:38:41
167
原创 06 Memory(记忆)
fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;长期记忆向量库 / 数据库跨会话持久事实短期记忆messages 列表当前会话上下文本轮对话内有效几天/几个月后仍有效。
2026-08-09 14:55:43
185
原创 05 LangGraph Agent
用 LangGraph 表达:fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;是否STARTagent 节点有 tool_calls?tools 节点END。
2026-08-08 20:52:32
229
原创 03 LangChain Tools
tool 把普通 Python 函数变成 LangChain 工具,自动从函数签名和 docstring 生成 JSON schema(相当于手写 TOOLS 列表)。bind_tools 返回的是新对象(绑定了工具能力的 LLM),原来的 llm 不变。把工具「绑」到 LLM 上,之后每次 invoke 模型都能选择是否调用工具。用 @tool 注册工具,用 bind_tools 让模型决定何时调用。tools_by_name 执行工具。遍历 tool_calls。构建 messages。
2026-08-06 20:27:54
249
原创 04 Embedding 入门
Embedding 是「在海量文本里,按语义找最相关片段」;Agent 需要它,Agent 要在大量外部资料里找上下文,离不开它。所以:Agent 要做知识检索 → 检索靠语义相似度 → 相似度靠 Embedding。即:点积 ÷ 两个向量长度的乘积。zip 把两个列表按位置配对。把文档段塞进 Prompt。模型基于真实资料回答。
2026-08-05 14:01:21
205
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅