【LLM】大模型落地應用的技術 ——— 推理訓練 MOE,AI搜索 RAG,AI Agent MCP

【LLM】大模型落地應用的技術 ——— 推理訓練MOE,AI搜索RAG,AI Agent MCP

文章目錄

    • 1、推理訓練 MOE
    • 2、AI搜索 RAG
    • 3、AI Agent MCP

1、推理訓練 MOE

MoE 是模型架構革新,解決了算力瓶頸。原理是多個專家模型聯合計算。

推理訓練MoE(Mixture of Experts)

  • 核心原理
    動態稀疏激活:模型由多個專家子網絡(Experts)組成,每個輸入僅激活部分專家(如1-2個),顯著減少計算量
    門控機制(Gating):通過可學習的路由網絡決定輸入分配給哪些專家,實現條件計算
  • 應用場景
    DeepSeek-V3 采用的 DeepSeekMoE 架構,通過細粒度專家、共享專家和 Top-K 路由策略,實現了模型容量的高效擴展
    超大模型推理:如Google的Switch Transformer(萬億參數),僅激活部分參數,降低計算成本。
    多模態任務:不同專家處理不同模態(文本、圖像),提升異構數據融合能力。
    資源受限設備:通過專家剪枝或量化,適配邊緣設備。
  • 技術優勢
    高效率:計算量僅為稠密模型的1/4~1/2,保持性能
    可擴展性:通過增加專家數量而非深度擴展模型能力
  • 挑戰
    專家負載不均衡(某些專家過載)、路由訓練的穩定性
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

MoE核心架構

  • 核心組件
    專家網絡(Experts):多個獨立的子網絡(如FFN),每個專家專注不同特征或任務。
    門控網絡(Gating):動態分配輸入到最相關的專家(稀疏激活)。
    路由策略(Routing):控制專家選擇的算法(如Top-K、噪聲容忍)。
  • 典型工作流程
    輸入分發:門控網絡計算輸入與專家的匹配分數。
    專家選擇:按分數選擇Top-K專家(通常K=1~2)。
    計算融合:僅激活所選專家,結果加權求和或拼接。
  • 發展歷程
    Transformer -> LLM: Transformer的自注意力機制是LLM處理長文本的基礎,替代了RNN的梯度消失問題。LLM的成功還需大規模數據+算力(如GPT-3的175B參數)和訓練技巧(如RLHF)
    Transformer -> MoE: MoE將Transformer中的稠密FFN拆分為多個專家,保留注意力層不變。在相同計算開銷下擴大模型容量(更多參數,但激活參數不變, 如Google的GLaM模型,1.2T參數但僅激活97B/step)
  • 關系類比:
    Transformer = 發動機
    LLM = 裝發動機的超跑(需燃料/數據+車身/算力)
    MoE = 渦輪增壓(讓超跑更省油且動力更強)
    在這里插入圖片描述

例子

# Transformers庫(Hugging Face)
# 支持模型:Switch Transformer、Google的T5-MoE、Meta的FairSeq-MoE。
# 特點:直接加載預訓練MoE模型,支持自定義專家數
from transformers import SwitchTransformersForConditionalGeneration
model = SwitchTransformersForConditionalGeneration.from_pretrained("google/switch-base-8",  # 8個專家的預訓練模型device_map="auto"
)
outputs = model.generate(input_ids, max_length=50)# 訓練優化
def load_balancing_loss(gate_logits, num_experts):"""計算專家利用率均衡損失"""probs = jax.nn.softmax(gate_logits, axis=-1)expert_mask = jax.nn.one_hot(jax.argmax(probs, axis=-1), num_experts)expert_frac = expert_mask.mean(axis=0)return jnp.sum(expert_frac * jnp.log(expert_frac + 1e-10))# 推理優化
def sparse_moe_inference(inputs, experts, gate, k=1):gate_scores = gate(inputs)top_k_scores, top_k_indices = torch.topk(gate_scores, k=k, dim=-1)# 僅激活Top-K專家outputs = torch.zeros_like(inputs)for i in range(k):expert_output = experts[top_k_indices[:, i]](inputs)outputs += expert_output * top_k_scores[:, i].unsqueeze(-1)return outputs# pytorch 通用模板
import torch
import torch.nn as nn
import torch.nn.functional as Fclass MoELayer(nn.Module):def __init__(self, input_dim, expert_dim, num_experts, k=2):super().__init__()self.experts = nn.ModuleList([nn.Linear(input_dim, expert_dim) for _ in range(num_experts)])self.gate = nn.Linear(input_dim, num_experts)self.k = kdef forward(self, x):# 1. 路由計算gate_scores = F.softmax(self.gate(x), dim=-1)  # (batch_size, num_experts)top_k_scores, top_k_indices = torch.topk(gate_scores, k=self.k, dim=-1)  # (batch_size, k)# 2. 稀疏計算output = torch.zeros(x.shape[0], self.experts[0].out_features, device=x.device)for i in range(self.k):expert_idx = top_k_indices[:, i]  # (batch_size,)expert_output = torch.stack([self.experts[idx](x[b]) for b, idx in enumerate(expert_idx)])output += expert_output * top_k_scores[:, i].unsqueeze(-1)return output# 使用示例
moe = MoELayer(input_dim=512, expert_dim=1024, num_experts=8, k=2)
x = torch.randn(32, 512)  # 假設輸入維度為512
out = moe(x)  # 輸出維度1024

參考資料:ai應用落地
1, 2-moe架構 , 3 moe, 4 moe介紹, 5 moe 基礎設施, 6 moe詳解

2、AI搜索 RAG

RAG 是知識增強手段,彌補靜態訓練缺陷和模型幻覺。原理是把數據庫檢索結果作為模型輸入。

RAG是什么?

  • RAG(Retrieval-Augmented Generation)
  • 核心原理
    檢索+生成:先通過檢索器(如向量數據庫)從外部知識庫獲取相關文檔,再輸入生成模型(如GPT)生成答案
    動態知識更新:無需重新訓練模型,僅更新檢索庫即可修正知識。
  • 應用場景
    開放域問答:如客服系統,結合企業文檔生成精準回答。
    事實性補充:彌補大模型幻覺問題(如醫療、法律場景)。
    長尾知識覆蓋:檢索罕見數據(如最新科研論文)增強生成。
  • 技術關鍵
    檢索優化:稠密檢索(Dense Retrieval)比傳統BM25更語義化。
    上下文壓縮:對檢索到的長文檔進行摘要或篩選,避免輸入過長。
  • 挑戰
    檢索延遲(毫秒級要求)、噪聲文檔干擾生成質量。
    在這里插入圖片描述

RAG的核心架構

  • 1、技術流程
    檢索(Retrieval):從外部知識庫(如文檔、數據庫)中檢索相關片段。稀疏檢索(BM25)、稠密檢索(向量相似度)、混合檢索。
    增強(Augmentation):將檢索結果與用戶輸入拼接,作為生成模型的上下文。
    生成(Generation):基于上下文生成最終回答(如GPT類模型)。
  • 2、關鍵組件
    文本分塊:LangChain、TextSplitter、LlamaIndex
    向量數據庫:FAISS、Pinecone、Weaviate、Milvus
    檢索模型:BM25、Sentence-BERT、OpenAI Embeddings
    生成模型:GPT-4、Llama 2、LangChain LLM
    評估工具:RAGAS、BLEU、Recall
    在這里插入圖片描述

開源框架與解決方案

  • 1、LangChain-108k + FAISS
    適用場景:輕量級RAG,本地部署。
  • 2、LlamaIndex-42k(專用RAG框架)
    特點:優化長文檔索引、支持多種數據源(PDF/網頁/API)。
  • 3、Haystack-20k(工業級Pipeline)
    特點:模塊化設計,支持復雜檢索邏輯(過濾、重排序)。
  • 4、商業解決方案(非開源)
    Pinecone:托管向量數據庫,低延遲檢索
    Weaviate:開源/云版,支持多模態檢索
    Google Vertex AI:集成Gemini模型+RAG工作流
    Azure Cognitive Search:企業級全文檢索+AI擴展
# 例子:LangChain-108k
# 基于LangChain + OpenAI的完整流程
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Pinecone
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA
import pinecone# 初始化Pinecone
pinecone.init(api_key="YOUR_API_KEY", environment="us-west1-gcp")
index_name = "company-knowledge-base"# 從本地文檔構建索引
# 加載文檔,分塊,構建向量數據庫
# loader = TextLoader("example.txt")
# documents = loader.load()
documents = load_and_split_documents()  # 自定義文檔加載函數
embeddings = OpenAIEmbeddings()
vector_db = Pinecone.from_documents(documents, embeddings, index_name=index_name)# 檢索問答鏈
qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-4"),chain_type="stuff",retriever=vector_db.as_retriever(search_kwargs={"k": 3}),return_source_documents=True
)# 提問
result = qa_chain("XXX是怎樣的?")
print("答案:", result["result"])
print("來源:", result["source_documents"])# 更多優化# 1.重排序(Re-Rank):使用交叉編碼器(如cross-encoder/ms-marco-MiniLM-L-6-v2)對檢索結果排序。
from sentence_transformers import CrossEncoder
encoder = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
scores = encoder.predict([(query, doc.text) for doc in retrieved_docs]) # 假設retrieved_docs是初步檢索結果
reranked_docs = [doc for _, doc in sorted(zip(scores, retrieved_docs), reverse=True)]# 2.生成優化
# 提示工程:明確上下文角色(如“基于以下文檔回答:...”)。
# 上下文壓縮:用LangChain的ContextualCompressionRetriever過濾無關內容。# 3.評估指標
# 檢索質量:Recall@K、Hit Rate。
# 生成質量:Faithfulness(事實一致性)、Answer Relevance(相關性)
# 工具推薦:RAGAS (自動化評估庫)

參考資料:1, 2, 3

3、AI Agent MCP

Agent MCP 是落地范式,通過多智能體實現復雜場景自動化。原理是提供工具調用接口給到AI。

MCP介紹

  • 核心原理
    多智能體協作:多個Agent(如規劃、工具調用、驗證Agent)分工合作,通過任務分解、反饋循環完成復雜目標
    記憶與規劃:利用LLM的推理能力制定計劃,并通過短期/長期記憶(如向量數據庫)保存狀態。
  • 應用場景
    自動化工作流:如AutoGPT自動寫代碼+調試+部署
    復雜決策:供應鏈優化中協調采購、物流、庫存Agent
    仿真環境:游戲NPC群體協作(如《AI小鎮》項目)。
  • 技術組件
    工具調用(Tool Use):調用API、數據庫等外部工具
    反思機制(Reflection):通過失敗案例自我改進策略。
  • 挑戰
    任務分解的可靠性、長程規劃的穩定性(避免無限循環)
    在這里插入圖片描述
    在這里插入圖片描述

MCP協議的說明

  • MCP目前還沒有一個廣泛認可的通信協議或官方項目 1。
    協議的開放性最重要的,封閉的協議沒有未來。類似Anthropic MCP的技術,現在開源社區、標準化組織也都有探索。
    Anthropic MCP是否能夠成為最終的標準,誰都判斷不了,但是未來肯定有這樣的一個標準協議,能夠讓智能體相互通信,連接成一個智能體網絡。
    所以現在誰都想,成為智能體互聯網時代的 HTTP

  • 一般的認為,MCP由 Anthropic 2024 年 11 月 首次提出并開源,通過定義標準化接口,允許大語言模型以一致的方式與各類外部系統互動,包括數據庫、API和企業內部工具等。

  • MCP的內部協議,自主設計模式。
    可以參考經典協議(如 MQTT、gRPC,HTTP,TCP等)

  • AutoGPT 和 LangChain 是 AI 應用層框架。
    解決模型調用、提示工程、記憶管理等,基于現有協議(如通過 HTTP 調用 OpenAI API 或 gRPC 調用 TensorFlow Serving)其核心是 AI 工作流,而非協議本身(當然也有開源對應的協議,并且在這基礎上實現了更多的工具和功能),可類比http/rpc框架學習。

  • AutoGPT 和 LangChain 和 AnthropicMCP 沒有直接聯系。
    AutoGPT/LangChain 是工具層,而 MCP 是模型層的優化技術。
    在技術實現或設計理念上可能存在間接的相似性或互補性。
    在這里插入圖片描述

MCP開發框架

  • autoGPT-175k, AgentGPT-35k-web版,(自主任務分解+工具調用)
    框架特點:單Agent自主規劃任務,調用工具鏈(如搜索、代碼執行等)。
    適用場景:自動化流程(如數據分析、報告生成)。
    在這里插入圖片描述
from langchain.agents import Tool
from langchain.agents import AgentExecutor
from langchain.agents import initialize_agent
from langchain.llms import OpenAI# 定義工具(如搜索、計算器)
def search(query):return "檢索結果: " + querytools = [Tool(name="Search", func=search, description="用于搜索信息"),
]# 初始化Agent
llm = OpenAI(temperature=0)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)# 執行任務
agent.run("找出2023年諾貝爾物理學獎得主,并總結他們的貢獻。")
  • LangChain-108k(多Agent編排 + 記憶管理)
    框架特點:支持多Agent協作,集成工具調用、記憶(ConversationBufferMemory)和外部知識庫(RAG)。
    核心模塊:
    Agent:任務執行單元。
    Memory:保存對話歷史。
    Tools:外部API/函數調用。
from langchain.agents import AgentType, initialize_agent
from langchain.memory import ConversationBufferMemory
from langchain.llms import OpenAI# 定義多個工具
def get_weather(city):return f"{city}天氣晴朗,25°C"tools = [Tool(name="Weather", func=get_weather, description="查詢城市天氣"),
]# 初始化記憶和Agent
memory = ConversationBufferMemory(memory_key="chat_history")
llm = OpenAI(temperature=0)
agent = initialize_agent(tools, llm, agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION, memory=memory,verbose=True
)# 執行多輪任務
agent.run("北京天氣如何?")  # Agent調用Weather工具
agent.run("上海呢?")  # 記憶保留上一輪上下文

MCP開發實踐指南

  • 1、開發流程
    任務分解:將復雜目標拆解為子任務(如“數據分析→可視化→報告生成”)
    Agent角色設計:為每個子任務分配Agent(如“數據清洗Agent”、“繪圖Agent”)
    工具集成:為Agent添加API調用、代碼執行等能力
    記憶管理:通過ConversationBufferMemory或向量數據庫保存上下文。
    調試優化:監控Agent決策路徑,調整提示詞(Prompt)或工具鏈。
  • 2、關鍵挑戰與解決
    任務循環:Agent可能陷入無限分解。
    方案:設置最大遞歸深度或超時機制。
    工具可靠性:API調用失敗。
    方案:添加重試邏輯和fallback響應。
    上下文過長:記憶超出模型token限制。
    方案:使用摘要(Summarization)或向量檢索關鍵信息。
  • 3、進階方向
    動態Agent創建:根據任務需求實時生成新Agent(如MetaGPT的“演員模型”)
    強化學習優化:通過RLHF調整Agent協作策略(如OpenAI的“過程監督”)
    分布式Agent系統:跨設備部署Agent(如云端規劃Agent+本地執行Agent)
    在這里插入圖片描述
    在這里插入圖片描述

參考資料:1 mcp項目, 2 mcp協議, 3 , 4, 5, 6

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80170.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

10 web 自動化之 yaml 數據/日志/截圖

文章目錄 一、yaml 數據獲取二、日志獲取三、截圖 一、yaml 數據獲取 需要安裝 PyYAML 庫 import yaml import os from TestPOM.common import dir_config as Dir import jsonpathclass Data:def __init__(self,keyNone,file_name"test_datas.yaml"):file_path os…

中exec()函數因$imagePath參數導致的命令注入漏洞

exec(zbarimg -q . $imagePath, $barcodeList, $returnVar); 針對PHP中exec()函數因$imagePath參數導致的命令注入漏洞,以下是安全解決方案和最佳實踐: 一、漏洞原理分析 直接拼接用戶輸入$imagePath到系統命令中,攻擊者可通過注入特殊字…

this.$set的用法-響應式數據更新

目錄 一、核心作用 三、使用場景與示例 1. 給對象添加新屬性 四、與 Vue.set 的關系 五、底層原理 六、Vue 3 的替代方案 七、最佳實踐 八、常見問題 Q:為什么修改嵌套對象屬性不需要 $set? Q:$set 和 $forceUpdate 的區別&#xf…

【生成式AI文本生成實戰】DeepSeek系列應用深度解析

目錄 🌟 前言🏗? 技術背景與價值🩹 當前技術痛點🛠? 解決方案概述👥 目標讀者說明 🧠 一、技術原理剖析📊 核心概念圖解💡 核心作用講解🔧 關鍵技術模塊說明?? 技術選…

c/c++的opencv的圖像預處理講解

OpenCV 圖像預處理核心技術詳解 (C/C) 圖像預處理是計算機視覺任務中至關重要的一步。原始圖像往往受到噪聲、光照不均、尺寸不一等多種因素的影響,直接用于后續分析(如特征提取、目標檢測、機器學習模型訓練等)可能會導致性能下降或結果不準…

使用 Docker 部署 React + Nginx 應用教程

目錄 1. 創建react項目結構2. 創建 .dockerignore3. 創建 Dockerfile4. 創建 nginx.conf5. 構建和運行6. 常用命令 1. 創建react項目結構 2. 創建 .dockerignore # 依賴目錄 node_modules npm-debug.log# 構建輸出 dist build# 開發環境文件 .git .gitignore .env .env.local …

Java 流(Stream)API

一、理論說明 1. 流的定義 Java 流(Stream)是 Java 8 引入的新特性,用于對集合(如 List、Set)或數組進行高效的聚合操作(如過濾、映射、排序)和并行處理。流不存儲數據,而是按需計…

網絡協議分析 實驗七 FTP、HTTP、DHCP

文章目錄 實驗7.1 FTP協議練習二 使用瀏覽器登入FTP練習三 在窗口模式下,上傳/下傳數據文件實驗7.2 HTTP(Hyper Text Transfer Protocol)練習二 頁面提交練習三 訪問比較復雜的主頁實驗7.3 DHCP(Dynamic Host Configuration Protocol) 實驗7.1 FTP協議 dir LIST&…

go語言學習進階

目錄 第一章 go語言中包的使用 一.main包 二.package 三.import 四.goPath環境變量 五.init包初始化 六.管理外部包 第二章 time包 第三章 File文件操作 一.FileInfo接口 二.權限 三.打開模式 四.File操作 五.讀文件 參考1:Golang 中的 bufio 包詳解…

Hue面試內容整理-后端框架

Cloudera 的 Hue 項目在后端采用了成熟的 Python Web 框架 Django,結合其他組件構建了一個可擴展、模塊化的系統,便于與 Hadoop 生態系統中的各個組件集成。以下是 Hue 后端架構的詳細介紹: 后端架構概覽 1. Django Web 框架 Hue 的核心是基于 Django 構建的 Web 應用,負責…

Web-CSS入門

WEB前端,三部分:HTML部分、CSS部分、Javascript部分。 1.HTML部分:主要負責網頁的結構層 2.CSS部分:主要負責網頁的樣式層 3.JS部分:主要負責網頁的行為層 **基本概念** 層疊樣式表,Cascading Style Sh…

2025年PMP 學習十六 第11章 項目風險管理 (總章)

2025年PMP 學習十六 第11章 項目風險管理 (總章) 第11章 項目風險管理 序號過程過程組1規劃風險管理規劃2識別風險規劃3實施定性風險分析規劃4實施定量風險分析規劃5規劃風險應對執行6實施風險應對執行7監控風險監控 目標: 提高項目中積極事件的概率和…

基于SpringBoot的小區停車位管理系統

作者:計算機學姐 開發技術:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源碼”。 專欄推薦:前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄:…

HTML常用標簽用法全解析:構建語義化網頁的核心指南

HTML作為網頁開發的基石&#xff0c;其標簽的合理使用直接影響頁面的可讀性、SEO效果及維護性。本文系統梳理HTML核心標簽的用法&#xff0c;結合語義化設計原則與實戰示例&#xff0c;助你構建規范、高效的網頁結構。 一、基礎結構與排版標簽 1.1 文檔結構 <!DOCTYPE htm…

國產linux系統(銀河麒麟,統信uos)使用 PageOffice自定義Word模版中的數據區域

? PageOffice 國產版 &#xff1a;支持信創系統&#xff0c;支持銀河麒麟V10和統信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飛騰、鯤鵬、麒麟等&#xff09;、龍芯&#xff08;Mips、LoogArch&#xff09;芯片架構。 在實際的Wor…

.NET Core liunx二進制文件安裝

最近遇見個尷尬的事情&#xff0c;都2025年了。我需要部署一個自己多年前寫的項目。由于時間緊、任務重&#xff0c;我懶得去升級到8.0了。于是計劃在Ubuntu20.04上安裝.NET Core3.1項目。可以使用包管理器卻安裝不上了。于是&#xff0c;我就嘗試二進制文件安裝。 實際上二進…

【python基礎知識】Day 27 函數專題2:裝飾器

知識點&#xff1a; 裝飾器的思想&#xff1a;進一步復用函數的裝飾器寫法注意內部函數的返回值 裝飾器教程 作業&#xff1a; 編寫一個裝飾器 logger&#xff0c;在函數執行前后打印日志信息&#xff08;如函數名、參數、返回值&#xff09; def logger(func):def wrapper(*ar…

MGX:多智能體管理開發流程

MGX的多智能體團隊如何通過專家混合系統采用全新方法,徹底改變開發流程,與當前的單一智能體工具截然不同。 Lovable和Cursor在自動化我們的特定開發流程方面取得了巨大飛躍,但問題是它們僅解決軟件開發的單一領域。 這就是MGX(MetaGPT X)的用武之地,它是一種正在重新定…

【未完】【GNN筆記】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs

Evolving Graph Convolutional Networks for Dynamics Graphs 視頻鏈接&#xff1a;《圖神經網絡》 相關系列&#xff1a; 《Dynamic Graph的分類》《動態圖網絡之Dynamic Self-Attention Network》 文章目錄 Evolving Graph Convolutional Networks for Dynamics Graphs一、…

Go語言之路————并發

Go語言之路————并發 前言協程管道SelectsyncWaitGroup鎖 前言 我是一名多年Java開發人員&#xff0c;因為工作需要現在要學習go語言&#xff0c;Go語言之路是一個系列&#xff0c;記錄著我從0開始接觸Go&#xff0c;到后面能正常完成工作上的業務開發的過程&#xff0c;如…