AI简介
AI五层架构
By 黄仁勋


基础概念
-
人工智能:指由人制造出来的系统或机器能够模拟人类的智能行为,如学习、推理、解决问题、感知和语言理解等。它是计算机科学的一个分支,旨在让机器像人一样思考。
-
机器学习:人工智能的一个子集。它不依赖于显式的编程指令,而是让算法通过大量的数据进行训练,从中学习规律,从而能够对未知数据做出预测或决策。就像教小孩认识猫,不是告诉他“猫有两只眼睛、四条腿”,而是给他看成千上万张猫的图片,让他自己总结出猫的特征。
-
深度学习:机器学习的一个子集。它基于模拟人脑神经元结构的人工神经网络,特别是包含多个隐藏层的“深度”神经网络。它在图像识别、语音识别等领域表现突出。
-
算法:解决问题或完成任务的明确指令集合。在AI中,算法是驱动模型学习的数学规则和步骤。
-
模型:算法在数据上训练后产生的“成果”。你可以把算法看作是“教材”,把数据看作是“练习题”,模型就是学生经过学习后掌握的“解题思维”。训练完成后,我们实际使用的就是这个模型。
核心技术
-
大模型:指具有巨大参数量的深度学习模型。参数可以理解为模型的“记忆”或“知识”节点。参数越多,模型通常越聪明,能容纳的知识也越多。它通常需要海量数据和强大的算力来训练。
-
生成式AI:专注于生成新内容的一类人工智能。它不仅能分析或识别数据,还能创造出全新的、类似人类的文本、图像、音频、视频和代码等。
-
大语言模型:一种专门针对人类语言训练的大模型。它通过学习海量的文本数据(如书籍、网页),学会理解语言、生成文本、回答问题、总结文档等。ChatGPT 和 Gemini 的核心都是LLM。
-
Transformer:一种革命性的深度学习模型架构。2017年由Google提出,它引入了“自注意力”机制,能够更好地理解长文本中词语之间的关系,是几乎所有现代大语言模型的基础。
-
扩散模型:当前主流文生图模型背后的核心技术,如 Stable Diffusion、DALL-E、Midjourney。它的工作原理类似于:先学习如何给一张清晰的图片逐步添加噪声,直到变成完全的噪点;然后反向学习,从完全的噪点中逐步去除噪声,最终还原或生成一张符合文字描述的清晰图片。
-
多模态模型:能够同时理解和处理多种类型数据(模态)的模型。例如,一个多模态模型既能看懂图片,也能理解文字描述,还能将两者关联起来。GPT-4V 或 Gemini 就是典型代表
其他重要术语
-
神经网络:受生物大脑神经网络启发而设计的计算系统。它由大量的节点(神经元)和连接组成,分为输入层、隐藏层和输出层。深度学习中的“深度”就是指隐藏层很多。
-
自然语言处理:让计算机能够理解、解释和生成人类语言的技术。机器翻译、情感分析、聊天机器人都属于NLP的应用。
-
计算机视觉:让计算机能够“看懂”图像和视频的技术。包括人脸识别、物体检测、图像分类等。
-
强化学习:一种机器学习方法。它通过“智能体”与环境进行互动,根据获得的“奖励”或“惩罚”来学习最优策略。就像一个训练小狗的过程,做对了给零食,做错了不给,慢慢地小狗就知道该怎么做。AlphaGo 下围棋就是强化学习的经典应用。
-
微调:在一个已经训练好的通用大模型基础上,用特定领域的小规模数据对其进行进一步训练,使其在特定任务上表现得更好。比如,拿一个通用语言模型,用法律文书去训练它,把它变成一个法律咨询助手。
-
提示词:用户输入给大模型的指令或问题。好的提示词能让模型生成更精准、更高质量的回答。这催生了“提示词工程”这一新技能。
-
幻觉:指AI模型生成看似合理但实际是错误或无意义内容的現象。比如,让它介绍一本书,它可能会编造出一个不存在的书名或作者。
-
算力:计算能力。AI模型的训练和运行需要极其强大的计算资源,通常依赖于GPU来进行并行计算。
-
图灵测试:由艾伦·图灵在1950年提出的测试。如果一台机器能够与人类进行对话,而人类无法辨别对话对象是人还是机器,那么就可以说这台机器具有智能。这是衡量AI智能程度的经典思想实验。
-
对齐:确保AI系统的目标和行为与人类的价值观和意图相一致的过程。即如何防止强大的AI做出对人类有害的事情。
应用术语
RAG
-
全称:Retrieval-Augmented Generation
-
中文:检索增强生成
通俗解释:
RAG是一种让大模型在回答问题之前,先“查资料”再“开口”的技术框架。
它解决了什么问题?
大模型的知识库是训练时固定的,比如截止到2025年5月的数据。如果你问它一个最新的新闻,或者你公司内部的私密文件,它要么答错,要么直接说不知道。RAG就是用来解决这个问题的。
工作流程(就像一个开卷考试):
-
检索:当你提问时,系统先去你的外部知识库(比如公司文档、数据库、网页)中,搜索与问题最相关的信息片段。这一步通常依赖向量数据库和相似度计算。
-
增强:把检索到的信息片段和你的原始问题组合在一起,形成一个“超级提示词”。
-
生成:把组合好的内容交给大模型,大模型根据提供的信息来生成最终答案。
优点:
-
知识更新快:只需要更新外部知识库,模型就能知道新知识,无需重新训练。
-
减少幻觉:模型有了参考资料,不再凭空捏造。
-
数据安全:企业的私有数据可以放在内部库中,不需要上传给模型厂商进行训练。
MCP
-
全称:Model Context Protocol
-
中文:模型上下文协议
通俗解释:
这是由AI公司Anthropic在2024年底提出的一种开放标准。你可以把它理解为AI应用程序的 “USB-C接口”。
它解决了什么问题?
在MCP出现之前,如果你想让人工智能去访问你的本地文件、操作数据库或者调用Slack/邮箱,你需要为每一种工具编写复杂的、特定的代码。每换一个数据源,就要重新“接一次线”,非常混乱。
MCP的架构(借鉴了经典的客户端-服务器模式):
-
MCP客户端:也就是你使用的AI应用(如Claude Desktop、各种AI IDE)。
-
MCP服务器:这是一个轻量级的程序,专门负责把AI应用连接到特定的数据源或工具(比如本地文件夹、GitHub、数据库)。
-
协议:定义了客户端和服务器之间如何通信。
工作流程:
你想让AI帮你总结本地硬盘里的一个Word文档。
-
你的AI应用(MCP客户端)通过MCP协议,向“本地文件系统MCP服务器”发起请求。
-
这个MCP服务器去读取你电脑里的Word文件。
-
服务器将读取到的文本内容通过MCP协议返回给AI客户端。
-
AI看到文本后,开始进行总结。
为什么重要?
MCP试图建立一个生态。一旦MCP成为标准,MCP服务器的开发者只需按标准写一次代码,所有兼容MCP的AI应用就都能直接使用这个数据源。这就像你买了一个支持USB-C的U盘,可以在所有支持USB-C的电脑上即插即用。
Embedding
嵌入/向量化。将文字、图片等内容转换成一串计算机能理解的数字列表(向量)。在RAG中,就是把文档切成块,然后变成向量存起来,方便后续进行语义搜索。
Agent
智能体。一个能够自主完成任务的AI系统。它不仅会“说话”,还会“做事”。与RAG的区别,RAG主要是为了“知道得更多”,而Agent是为了“做得更多”。一个Agent通常会包含RAG作为它的知识模块,但它还会包含规划、调用工具、自我反思等能力。
Skills
Skills 是指大模型在执行任务时,不仅仅进行文字对话,还可以主动调用外部工具、API或执行特定代码块来获取实时信息、操作软件或影响外部世界的能力。
Skills 与 Agent 的关系
-
Agent(智能体):是负责思考、规划和决策的大脑。
-
Skills:是Agent可以调用的四肢和工具。
一个典型的Agent工作流是:思考 -> 决策(调用Skill)-> 执行Skill -> 观察结果 -> 再次思考...
例如,一个旅行规划Agent,它可能会依次调用以下Skills:
-
网络搜索Skill:查询目的地的天气和热门景点。
-
API调用Skill:查询机票和酒店的价格。
-
代码计算Skill:计算总预算。
-
邮件Skill:把行程单发送到用户的邮箱。
demo:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from datetime import datetime from typing import Dict, List, Tuple class TravelPlanner: """旅行规划Agent,依次调用多个技能完成行程规划""" def __init__(self, user_email: str, destination: str, departure: str, travel_date: str, return_date: str): """ 初始化旅行规划Agent :param user_email: 用户邮箱,用于发送行程单 :param destination: 目的地 :param departure: 出发地 :param travel_date: 出发日期 (YYYY-MM-DD) :param return_date: 返回日期 (YYYY-MM-DD) """ self.user_email = user_email self.destination = destination self.departure = departure self.travel_date = travel_date self.return_date = return_date self.weather_info = None self.attractions = None self.flight_price = None self.hotel_price = None self.total_budget = None self.itinerary = None def network_search_skill(self) -> Tuple[str, List[str]]: """ 技能1:网络搜索Skill - 查询目的地的天气和热门景点 模拟网络搜索,返回天气信息和景点列表 """ print(f"正在搜索 {self.destination} 的天气和热门景点...") # 模拟网络搜索,实际可替换为调用天气API或爬虫 # 这里根据目的地简单模拟 weather_data = { "北京": "晴,25°C", "上海": "多云,28°C", "广州": "雷阵雨,30°C", "成都": "阴,22°C", "默认": "晴,20°C" } attractions_data = { "北京": ["故宫", "长城", "颐和园"], "上海": ["外滩", "迪士尼乐园", "东方明珠"], "广州": ["广州塔", "长隆野生动物世界", "沙面"], "成都": ["大熊猫繁育基地", "宽窄巷子", "都江堰"], "默认": ["当地著名景点A", "当地著名景点B"] } self.weather_info = weather_data.get(self.destination, weather_data["默认"]) self.attractions = attractions_data.get(self.destination, attractions_data["默认"]) print(f"天气:{self.weather_info}") print(f"热门景点:{', '.join(self.attractions)}") return self.weather_info, self.attractions def api_call_skill(self) -> Tuple[float, float]: """ 技能2:API调用Skill - 查询机票和酒店价格 模拟API调用,返回机票价格和酒店每晚价格 """ print(f"正在查询从 {self.departure} 到 {self.destination} 的机票和酒店价格...") # 模拟价格数据,实际可调用携程、飞猪等API import random # 根据出发地和目的地生成随机价格,但保持一致性 seed = hash(self.departure + self.destination + self.travel_date) % 1000 random.seed(seed) flight_price = random.randint(800, 3000) # 单程机票价格 hotel_price = random.randint(300, 1200) # 每晚酒店价格 # 往返机票按双倍计算(简化) self.flight_price = flight_price * 2 # 计算住宿天数 start = datetime.strptime(self.travel_date, "%Y-%m-%d") end = datetime.strptime(self.return_date, "%Y-%m-%d") days = (end - start).days self.hotel_price = hotel_price * days print(f"往返机票总价:{self.flight_price}元") print(f"{days}晚酒店总价:{self.hotel_price}元") return self.flight_price, self.hotel_price def code_calculation_skill(self) -> float: """ 技能3:代码计算Skill - 计算总预算 基于机票、酒店和景点花费估算总预算 """ print("正在计算总预算...") # 估算景点门票和餐饮等其他费用 attraction_cost = len(self.attractions) * 150 # 每个景点约150元 daily_meals = 200 # 每天餐饮预算 start = datetime.strptime(self.travel_date, "%Y-%m-%d") end = datetime.strptime(self.return_date, "%Y-%m-%d") days = (end - start).days meal_cost = daily_meals * days self.total_budget = self.flight_price + self.hotel_price + attraction_cost + meal_cost print(f"总预算约为:{self.total_budget}元") return self.total_budget def email_skill(self) -> None: """ 技能4:邮件Skill - 把行程单发送到用户的邮箱 使用SMTP发送邮件,这里模拟发送,实际需配置邮箱服务器 """ print(f"正在生成行程单并发送至 {self.user_email}...") # 构建行程单内容 itinerary = f""" ===== 旅行行程单 ===== 目的地:{self.destination} 出发地:{self.departure} 日期:{self.travel_date} 至 {self.return_date} 天气:{self.weather_info} 热门景点推荐:{', '.join(self.attractions)} 机票总价:{self.flight_price}元 酒店总价:{self.hotel_price}元 其他费用(景点+餐饮):估算中已包含 总预算:{self.total_budget}元 祝您旅途愉快! ==================== """ self.itinerary = itinerary print(itinerary) # 实际发送邮件(需配置SMTP) # 这里仅模拟发送,取消注释以下代码并填写真实信息可实际发送 """ try: # 邮箱配置 sender_email = "your_email@example.com" sender_password = "your_password" smtp_server = "smtp.example.com" smtp_port = 587 msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = self.user_email msg['Subject'] = f"您的{self.destination}旅行行程单" msg.attach(MIMEText(self.itinerary, 'plain', 'utf-8')) server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() server.login(sender_email, sender_password) server.send_message(msg) server.quit() print("邮件发送成功!") except Exception as e: print(f"邮件发送失败:{e}") """ print("(邮件发送模拟完成)") def plan_trip(self) -> None: """ 执行完整的旅行规划流程,依次调用四个技能 """ print("开始规划您的旅行...\n") try: self.network_search_skill() print() self.api_call_skill() print() self.code_calculation_skill() print() self.email_skill() print("\n旅行规划完成!") except Exception as e: print(f"规划过程中出现错误:{e}") # 使用示例 if __name__ == "__main__": # 用户输入(实际可从命令行或GUI获取) user_email = "user@example.com" destination = "北京" departure = "上海" travel_date = "2025-07-01" return_date = "2025-07-05" planner = TravelPlanner(user_email, destination, departure, travel_date, return_date) planner.plan_trip()

浙公网安备 33010602011771号