Stay hungry, Stay foolish

👋 Welcome to fisherdaddy’s blog!

    1. 精心翻译的优质博客内容
    1. 前沿技术分享
    1. 认知分享

📚 博客内容:

    1. 翻译: 精选国外优质博客文章,涵盖编程、人工智能、产品、运营等多个领域。
    1. 分享: 探索各种前沿技术,从编程语言到软件开发,从云计算到人工智能。
    1. 认知: 结合自身经验和思考,分享对科技、生活、学习等方面的独到见解。

模型上下文协议 (MCP) 之 Roadmap

本文翻译自 MCP 官方文档。 路线图 - 模型上下文协议 (MCP) 模型上下文协议 (MCP) 正在快速发展。本页面概述了我们当前对 2025 年上半年 关键优先事项和未来方向的思考,尽管随着项目的发展,这些内容可能会发生重大变化。 这里提出的想法并非承诺——我们可能会以不同于所述的方式来解决这些问题,或者其中一些问题可能根本不会实现。这也不是一个详尽的列表;我们可能还会加入这里未提及的工作内容。 我们鼓励社区参与!每个部分都链接到相关讨论,您可以在其中了解更多信息并贡献您的想法。 远程 MCP 支持 我们的首要任务是改进远程 MCP 连接,允许客户端通过互联网安全地连接到 MCP 服务器。关键举措包括: 认证与授权:添加标准化的认证授权能力,特别侧重于 OAuth 2.0 支持。 服务发现:定义客户端如何发现并连接到远程 MCP 服务器。 无状态操作:思考 MCP 是否也可以包含无服务器环境,在这种环境中它们需要基本上是无状态的。 参考实现 为了帮助开发者使用 MCP 进行构建,我们希望提供以下方面的文档: 客户端示例:全面的参考客户端实现,演示所有协议功能。 协议起草:简化提出和采纳新协议功能的流程。 分发与发现 展望未来,我们正在探索使 MCP 服务器更易于访问的方法。我们可能研究的一些领域包括: 包管理:MCP 服务器的标准化打包格式。 安装工具:简化跨 MCP 客户端的服务器安装。 沙盒化:通过服务器隔离提高安全性。 服务器注册表:用于发现可用 MCP 服务器的通用目录。 智能体 (Agent) 支持 我们正在扩展 MCP 的能力以支持复杂的智能体工作流,特别关注: 分层智能体系统:通过命名空间和拓扑感知改进对树状智能体结构的支持。 交互式工作流:更好地处理跨智能体层级的用户权限和信息请求,以及将输出发送给用户而非模型的方式。 流式结果:来自长时间运行的智能体操作的实时更新。 更广泛的生态系统 我们也致力于: 社区主导的标准开发:促进一个协作生态系统,所有 AI 提供商都可以通过平等参与和共享治理,帮助将 MCP 打造成一个开放标准,确保它满足多样化的 AI 应用和用例需求。 其他模态:扩展到文本之外,以支持音频、视频和其他格式。 [标准化]:考虑通过标准化组织进行标准化。 参与进来 我们欢迎社区参与塑造 MCP 的未来。请访问我们的 GitHub 讨论区 加入对话并贡献您的想法。

March 28, 2025 · 1 min · fisherdaddy

模型上下文协议 (MCP) 之基本原理

本文翻译自 MCP 官方文档。 核心架构 模型上下文协议 (MCP) 构建在一个灵活、可扩展的架构之上,旨在实现 LLM 应用和集成之间的无缝通信。本文档涵盖了其核心架构组件和概念。 概述 MCP 遵循客户端-服务器架构,其中: 主机 (Hosts) 是发起连接的 LLM 应用(例如 Claude Desktop 或 IDE)。 客户端 (Clients) 在主机应用内部,与服务器保持 1:1 连接。 服务器 (Servers) 向客户端提供上下文、工具和提示。 核心组件 协议层 协议层处理消息分帧、请求/响应关联以及高级通信模式。 class Session(BaseSession[RequestT, NotificationT, ResultT]): async def send_request( self, request: RequestT, result_type: type[Result] ) -> Result: """ Send request and wait for response. Raises McpError if response contains error. """ # Request handling implementation async def send_notification( self, notification: NotificationT ) -> None: """Send one-way notification that doesn't expect response....

March 28, 2025 · 12 min · fisherdaddy

模型上下文协议 (MCP) 之 Tutorials

本文翻译自 MCP 官方文档。 使用 LLM 构建 MCP 本指南将帮助您使用 LLM(大型语言模型)来构建自定义的模型上下文协议 (MCP) 服务器和客户端。本教程将重点介绍 Claude,但您可以使用任何前沿的大型语言模型来完成此操作。 准备文档 在开始之前,请收集必要的文档以帮助 Claude 理解 MCP: 访问 https://modelcontextprotocol.io/llms-full.txt 并复制完整的文档文本 导航至 MCP TypeScript SDK 或 Python SDK 代码库 复制 README 文件和其他相关文档 将这些文档粘贴到您与 Claude 的对话中 描述您的服务器 提供文档后,清晰地向 Claude 描述您想要构建什么样的服务器。具体说明: 您的服务器将公开哪些资源 它将提供哪些工具 它应提供哪些提示 它需要与哪些外部系统交互 例如: 与 Claude 协作 在与 Claude 合作开发 MCP 服务器时: 首先从核心功能开始,然后迭代添加更多功能 请 Claude 解释您不理解的代码部分 根据需要请求修改或改进 让 Claude 帮助您测试服务器并处理边缘情况 Claude 可以帮助实现所有关键的 MCP 功能: 资源管理和公开 工具定义和实现 提示模板和处理程序 错误处理和日志记录 连接和传输设置 最佳实践 使用 Claude 构建 MCP 服务器时:...

March 28, 2025 · 3 min · fisherdaddy

模型上下文协议 (MCP) 之 Quickstart

本文翻译自 MCP 官方文档。 模型上下文协议 (MCP) 是一个开放协议,用于标准化应用程序如何向大语言模型 (LLM) 提供上下文信息。您可以将 MCP 视为 AI 应用的 USB-C 接口。正如 USB-C 提供了一种标准化的方式,将您的设备连接到各种外围设备和配件,MCP 也提供了一种标准化的途径,将 AI 模型连接到不同的数据源和工具。 为什么要使用 MCP? MCP 能够帮助您在大语言模型 (LLM) 的基础上构建 AI 智能体 (AI Agent) 和复杂的工作流程。大语言模型 (LLM) 常常需要与数据和工具进行集成,而 MCP 提供了以下优势: 日益丰富的预构建集成方案,您的大语言模型 (LLM) 可以直接使用。 灵活切换不同大语言模型 (LLM) 提供商和供应商的能力。 在您的基础设施中安全地保护数据的最佳实践。 通用架构 从本质上讲,MCP 遵循客户端-服务器架构,其中宿主应用程序可以连接到多个服务器: MCP 主机 (MCP Hosts):希望通过 MCP 访问数据的应用程序,例如 Claude Desktop、集成开发环境 (IDE) 或 AI 工具。 MCP 客户端 (MCP Clients):与服务器保持 1:1 连接的协议客户端。 MCP 服务器 (MCP Servers):轻量级的程序,每个程序都通过标准化的模型上下文协议 (Model Context Protocol) 提供特定的功能。 本地数据源 (Local Data Sources):您的计算机中的文件、数据库和服务,MCP 服务器可以安全地访问这些数据。 远程服务 (Remote Services):通过互联网访问的外部系统 (例如,通过应用程序编程接口 (API)),MCP 服务器可以连接到这些系统。 面向服务端开发人员 开始构建你自己的服务器,以便在 Claude for Desktop 和其他客户端中使用。...

March 28, 2025 · 14 min · fisherdaddy

【科普】大模型中常说的 SFT 是指什么?

大型语言模型(LLMs)的出现,在自然语言处理领域引发了变革性的影响。这些模型在理解和生成类似人类的文本方面展现出卓越的能力,为众多应用场景带来了新的可能性。通过对海量数据进行预训练,LLMs 获得了广泛的语言理解和知识。预训练赋予了 LLMs 学习语法规则、语言模式、事实信息和推理能力的基础。然而,尽管预训练模型具备通用性,但在处理需要特定领域知识或输出格式的专业任务时,其性能往往有所不足。这种通用能力与特定需求之间的差距,凸显了对 LLMs 进行定制化适配的重要性。监督式微调(Supervised Fine-Tuning,SFT)作为一种关键技术应运而生,它能够有效地将通用LLMs调整为能够胜任特定应用的专业模型。 概念与原理 监督式微调(SFT)指的是利用标注数据来调整预训练大型语言模型,使其适应特定的下游任务的过程。在SFT中,“监督式”强调了对标注数据的依赖,这些数据包含了输入和期望输出之间的明确对应关系,用于指导模型的学习。SFT 是一个监督学习的过程,它使用这些标注的例子(通常是提示-响应对)来更新 LLM 的权重。模型通过比较其预测结果与标注数据中的真实标签之间的差异来学习,并调整其内部参数以最小化这种差异。高质量、结构良好的标注数据对于有效的 LLM 监督式微调至关重要。与使用未标注数据进行预训练不同,SFT 利用经过验证的标注数据进行任务特定的优化。SFT 可以被视为一种迁移学习的形式,它利用预训练阶段获得的知识来解决新的、特定的任务。这种方法使得模型能够基于已有的语言理解能力,更快地适应新的任务需求,而无需从零开始学习。 SFT 的步骤 监督式微调通常包含以下几个关键步骤: 步骤一:准备数据集 首先需要选择或创建一个高质量、任务特定的标注数据集。该数据集应与预期任务高度相关,并包含涵盖各种场景和极端情况的丰富示例。每个示例通常包含输入数据(例如,文本提示)和期望的输出(例如,响应或标签)。为了进行有效的模型训练和评估,数据集通常需要被划分为训练集、验证集和测试集。此外,确保数据的质量至关重要,包括数据的清洁度(去除重复、不一致或无关的条目)、代表性(覆盖所有变体和边缘情况)以及平衡性(避免数据偏斜)。 步骤二:调整模型 加载预训练的LLM(基础模型)是微调过程的开始。选择与目标任务和领域相符的预训练模型至关重要。然后,模型会根据标注数据集中的数据,使用监督学习技术(例如,梯度下降)更新其参数(权重)。在这个过程中,模型会调整其内部参数,以最小化其预测与期望输出之间的差异,从而学习特定任务的模式和细微差别。超参数调优也是一个重要的环节,需要调整学习率、批大小、训练轮数等参数,以获得最佳的性能。 步骤三:验证与测试 在微调过程中,需要使用验证集评估模型的性能,以防止过拟合。通过监控验证集上的损失和准确率等指标,可以帮助确定何时停止训练(早停法)。最后,使用测试集对微调后的模型进行最终评估,以评估其在新数据上的泛化能力。测试集提供了一个无偏的评估,展示了模型在真实世界数据中的预期表现。 步骤四:迭代与优化 监督式微调通常是一个迭代的过程,可能需要多次调整超参数或数据集,并进行多轮的微调,以达到最优的结果。分析评估结果,找出模型需要改进的方面,并重复上述步骤,可以进一步提升模型的性能。 SFT 的优势 选择监督式微调有诸多益处:SFT 能够显著提升模型在特定任务和领域上的性能。通过学习任务特定的模式和细微差别,模型能够产生更准确和相关的输出。SFT 还有助于模型更好地理解领域特定的术语和上下文。经过微调的模型能够提供更自然、更符合用户期望的响应,从而改善用户体验。此外,SFT 能够提高效率,减少对人工校正的需求。微调后的模型通常可以扩展到处理不同项目或领域的类似任务,成为一种可重用的资产。与从头开始训练 LLM 相比,SFT 可以显著缩短训练时间和降低计算资源需求。SFT 还能够有效利用预训练模型已经获得的广泛知识,实现更高效和有效的学习(迁移学习的优势)。通过 SFT,开发者可以将单个基础模型调整用于多个不同的领域。 SFT 的技术概览 监督式微调有多种技术可以采用: 指令微调(Instruction Fine-Tuning):这种方法通过使用示例来训练模型,这些示例展示了模型应该如何响应特定的指令或查询。指令微调旨在提高模型遵循用户指令的能力,并使其能够更好地泛化到新的指令上。训练数据通常包含输入(指令)、可选的上下文以及期望的输出。 参数高效微调(Parameter-Efficient Fine-Tuning,PEFT):PEFT技术通过仅更新模型参数的一小部分,来显著降低计算和内存需求。例如,低秩自适应(Low-Rank Adaptation,LoRA)和量化低秩自适应(Quantized LoRA,QLoRA)是常用的PEFT技术。其他PEFT方法还包括Adapter、Prompt Tuning和Prefix Tuning等。PEFT的优势在于降低了成本、加快了训练速度、减少了存储需求并有助于缓解灾难性遗忘。 全量微调(Full Fine-Tuning):全量微调是指在任务特定的数据集上更新预训练模型的所有权重。相比PEFT,全量微调需要更高的计算成本和资源。虽然全量微调可能带来更高的准确率,但也增加了过拟合和灾难性遗忘的风险。 层冻结(Layer Freezing):层冻结是一种策略,它冻结模型的部分层(通常是捕获通用知识的早期层),而只训练任务特定的层。这种方法可以降低计算需求,并防止模型遗忘预训练阶段学到的知识。 SFT 的应用场景 监督式微调在各个行业都有广泛的应用潜力: 聊天机器人与对话式AI:SFT能够提高客户服务和内部工具的准确性、上下文感知能力和品牌一致性。通过在客户服务记录、常见问题解答和知识库文章上进行微调,聊天机器人可以提供更相关和准确的响应。SFT还有助于处理复杂的查询和多轮对话。此外,通过在具有特定风格的数据上进行微调,可以控制聊天机器人的对话语气和风格。 文本生成与内容创作:SFT可以提高生成内容的领域相关性和准确性。通过在不同风格的数据上进行训练,模型可以适应特定的写作要求(例如,技术性、创造性、正式)。SFT还可以显著提升文档、文章和对话的摘要生成能力。 代码生成:SFT能够提高生成代码的准确性、效率和可读性。通过在代码数据集上进行微调,模型可以学习特定编程语言的语法、编程模式和最佳实践。SFT还可以使模型适应特定的编程语言和编码风格。 特定领域应用: 医疗保健:SFT可以用于分析医学文献、提取患者记录信息、改进诊断辅助系统。 金融:SFT可以用于金融新闻的情感分析、风险评估和欺诈检测。 法律:SFT可以用于理解法律术语、总结合同和法律讨论。 SFT 的挑战与考量 尽管SFT带来了诸多优势,但在实践中也存在一些挑战和需要考虑的因素: 数据质量与可用性:高质量、标注良好的数据对于有效的SFT至关重要。尤其是在利基领域,获取足够的标注数据可能是一个挑战。数据收集和标注的成本和时间也需要考虑。此外,训练数据中的偏差可能会对微调后的模型产生不利影响。 过拟合(Overfitting):模型可能过度适应训练数据,导致在未见过的数据上表现不佳。为了缓解过拟合,可以采用多种策略,例如使用多样化的数据集、限制训练迭代次数、使用正则化技术、进行交叉验证以及监控模型性能。 灾难性遗忘(Catastrophic Forgetting):在适应新任务的过程中,模型可能会遗忘之前学习到的知识。解决这个问题的方法包括多任务微调、参数高效微调和回放机制等。 超参数调优(Hyperparameter Tuning):寻找最优的学习率、批大小和其他超参数可能非常复杂。 计算成本(Computational Cost):微调大型模型,尤其是进行全量微调,需要大量的计算资源。 评估 SFT 性能的关键指标 评估监督式微调的成功与否,需要使用适当的评估指标:...

March 27, 2025 · 1 min · fisherdaddy

GPT-4o 引爆全球吉卜力风格生图潮流!附10+玩法与教程

🚀 GPT-4o 原生生图能力昨天一经发布,因其效果超群引发了病毒式传播,其生成的吉卜力风格图片深受大家喜欢,我昨天翻译的(官方文档)[https://fisherdaddy.com/posts/introducing-4o-image-generation]里有大量优秀的使用案例,这里我单独整理和复现了一下,开一个帖子单独来分享其最佳的使用场景和 prompt。 玩法 1:一次性生成 10-20 个对象 prompt:一张方形图片,包含一个 4 行 3 列的网格,白色背景上放置了 12 个对象,这 12 个对象是中国属相中的 12 生效。按从左到右、从上到下的顺序排列。列表如下:1.鼠;2.牛;3.虎;4.兔;5.龙;6.蛇;7.马;8.羊;9.猴;10.鸡;11.狗;12.猪 输出结果: 玩法 2:贴纸风格转换 prompt:“把这个图片变为贴纸,使用粗白边框和透明背景。“ 输入图片: 玩法 3:吉卜力风格转换 prompt:“把这个图片转为吉卜力风格“ 输入图片: 输出结果: 玩法 4:连环画制作 prompt: 制作一个4格漫画的图像,边框周围留一些空白: 第一格:小老鼠在家里无聊极了,打电话给小牛,小老鼠问小牛“你在做什么”,小牛说“在做草莓果酱” 第二格:小老鼠又和小老虎打电话,小老鼠问小老虎“你在做什么“,小老虎说“在和弟弟一起剪纸帽子“ 第三格:小老鼠又和小兔子打电话,小老鼠问小兔子“你在做什么“,小兔子说“在做胡萝卜汤“ 第四格:小老鼠又和小羊打电话,小老鼠问小羊“你在做什么“,小兔子说“在青青草原吃草“ 输出结果: 玩法 5:古人照片变为彩色真实照片 prompt:“把这个场景变成一张照片。用数码单反相机 (DSLR) 拍摄。“ 输入图片: 输出结果: 玩法 6:小朋友的涂鸦转成彩图图 prompt:“让它变成一张色彩丰富、有童趣的卡通插画风格图像“ 输入图片: 输出结果: 玩法 7:制作海报(以教育场景为例) prompt:“创作一张关于不同种类鲸鱼的教育海报,采用活泼的水彩风格。背景设为纯白色。“ 输出结果: 玩法 8:制作彩色说明书 prompt:“制作一张色彩非常丰富的孔版印刷风格图片,展示如何用面包机制作冰激凌。“ 输出结果: 玩法 9:设计 prompt:在纯色柔和背景上生成一幅雕塑广告。在纯色柔和背景上生成一个 logo。左上角,大约向下三分之一处,用纯白色无衬线字体写着 “This is fisherdaddy”。右下角,大约向上三分之一处,用纯白色无衬线字体写着 “AIGC”。背景中放一张非常光滑、现代化的设计风格的雕塑照片。它应该从左侧的线框草图逐渐过渡到右侧完全照片写实的样子。 玩法 10:生成参考图风格的图 prompt:“参考这张图的画风,帮我画一个李白这位唐代大诗人的照片,最好能配上李白的名字” 输入图片:...

March 27, 2025 · 1 min · fisherdaddy

介绍一下 GPT-4o 的原生图像生成能力

OpenAI 于 2025年 3 月 25日发布了 GPT-4o 的原生生图能力。与以往的生成模型不同,GPT-4o 专注于生成能够有效沟通和传递信息的图像,例如标志、图表和信息图。其核心优势在于精确的文本渲染、准确理解并执行用户指令,以及充分利用 GPT-4o 的知识库和对话上下文。通过对在线图像和文本的联合分布进行训练,并结合积极的后训练,GPT-4o 具备了出色的视觉流畅性,能够生成实用、连贯且符合语境的图像。此外,GPT-4o 还支持通过自然对话进行图像优化,并能从用户上传的图像中学习,实现更智能和高效的图像生成。 实用性: GPT-4o 图像生成旨在超越装饰性应用,成为一种实用的沟通工具,适用于创建标志、图表等信息类图像。 文本渲染: GPT-4o 能够精确地在图像中渲染文本,实现有效的视觉沟通,这得益于其将精确符号与图像融合的能力。 上下文连贯性: 由于图像生成是 GPT-4o 的原生功能,用户可以通过自然对话来优化图像,并在对话上下文中保持图像的一致性,例如在设计视频游戏角色时,角色外观可以在多次迭代中保持连贯。 细节处理: GPT-4o 能够处理更复杂的提示,可以处理 10-20 个不同的对象,而其他系统通常只能处理 5-8 个对象。 情境学习: GPT-4o 可以分析和学习用户上传的图像,并将这些细节融入到图像生成过程中。 照片写实性和风格: 模型在反映各种图像风格的图像上进行训练,使其能够创建或转换具有说服力的图像。 局限性: 当前模型在编辑图像的特定部分(如错别字)时效果不佳,并且在保持面部编辑的一致性方面存在 bug,但 OpenAI 正在努力解决这些问题。 安全性: 所有生成的图像都带有 C2PA 元数据,以标识图像来自 GPT-4o,并提供透明度。OpenAI 还构建了一个内部搜索工具,以验证内容是否来自其模型。同时,系统会阻止违反内容政策的图像生成请求,并对涉及真实人物的图像施加更严格的限制。 访问和可用性: GPT-4o 图像生成功能已开始向 Plus、Pro、Team 和 Free 用户推出,作为 ChatGPT 中的默认图像生成器,Enterprise 和 Edu 用户也将很快获得访问权限。开发者也将在未来几周内通过 API 使用 GPT-4o 生成图像。生成图像可能需要长达一分钟的时间,因为模型会创建更细致的图片。 推出 4o 图像生成 通过一个原生多模态模型解锁实用且有价值的图像生成,该模型能够产出精确、准确、照片般真实的输出。 在 OpenAI,我们一直认为图像生成应成为我们语言模型的一项主要能力。因此,我们将我们迄今为止最先进的图像生成器内置到了 GPT-4o 中。其结果是——图像生成不仅美观,而且实用。...

March 26, 2025 · 7 min · fisherdaddy

介绍一下 OpenAI 最新的音频模型:gpt-4o-mini-tts 与 gpt-4o/4o-mini-transcribe

OpenAI 于 2025年 3 月 20日 发布新一代语音转文本模型和文本转语音模型,这些新模型包括语音转文本 (speech-to-text) 和文本转语音 (text-to-speech) 模型,它们在性能、准确性和可定制性方面均有显著提升,为构建更自然、更有效的语音交互应用提供了有力支持。特别是,新的语音转文本模型在准确性和可靠性方面达到了新的行业标杆,尤其在处理口音、噪音环境和不同语速等复杂场景时表现更佳。同时,文本转语音模型首次允许开发者指导模型以特定的方式说话,从而实现更高程度的个性化和更丰富的应用场景。 新一代语音转文本模型: 推出了 gpt-4o-transcribe 和 gpt-4o-mini-transcribe 模型,相较于原有的 Whisper 模型,在词错误率 (Word Error Rate, WER) 上有显著改进,语言识别和准确性更高。在 FLEURS 基准测试中,这些新模型在多种语言上都展现出更低的 WER,表明其转录准确性和多语言覆盖能力更强。 新一代文本转语音模型: 推出了 gpt-4o-mini-tts 模型,该模型最大的亮点是其可指导性 (steerability),开发者可以指示模型不仅说什么,还可以指定 如何 说,例如模仿 “富有同情心的客服人员” 的语气。这为客户服务、创意故事叙述等应用场景带来了更丰富的可能性。 技术创新: 这些模型的性能提升得益于多项技术创新,包括: 使用真实的音频数据集进行预训练 (Pretraining with authentic audio datasets): 模型基于 GPT‑4o 和 GPT‑4o-mini 架构,并在专门的音频数据集上进行了广泛的预训练,从而更深入地理解语音的细微差别。 先进的知识蒸馏方法 (Advanced distillation methodologies): 通过增强的知识蒸馏技术,将大型音频模型的知识转移到更小、更高效的模型中,利用自博弈 (self-play) 方法捕捉真实的对话动态。 强化学习范式 (Reinforcement learning paradigm): 语音转文本模型集成了强化学习,显著提高了转录的准确性,降低了幻觉 (hallucination),使其在复杂的语音识别场景中更具竞争力。 API 可用性: 这些新的音频模型已在 API 中向所有开发者开放,并与 Agents SDK 集成,方便开发者构建语音助手应用。对于需要低延迟语音对话的应用,推荐使用 Realtime API 中的 speech-to-speech 模型。 未来展望: 未来将继续投入于提升音频模型的智能性和准确性,探索允许开发者使用自定义声音的方法,并拓展到视频等多模态领域。同时,将继续与政策制定者、研究人员等就合成语音的挑战和机遇进行对话。 原文:在 API 中引入下一代音频模型 我们推出了一系列全新的音频模型,为语音 AI 智能体 (AI Agent) 提供强大支持,现在全球开发者均可使用。...

March 21, 2025 · 3 min · fisherdaddy

【科普】大模型应用的回复为什么是打字机的效果?

用户在使用由大模型驱动的应用时,例如ChatGPT(OpenAI)、Gemini(Google)、Deepseek、豆包(字节)和元宝(腾讯),常常会注意到一种引人入胜的“打字机效果”。文本似乎是一个字一个字(更准确地说,是一个token一个token)地逐渐显现,营造出一种类似人类实时打字的互动感和模型以人类似的方式即时生成响应的印象。虽然这种效果在用户界面上增强了交互体验,但它并非仅仅是一个视觉上的技巧,而是 大模型(LLM)底层文本生成方式的直接体现。 语言的基本单元——Token 要理解 LLM 如何产生这种“打字机效果”,首先需要认识到这些模型并非像人类那样直接处理词语,而是以更细粒度的单位——“token”为基础进行操作。文本可以按照不同的粒度进行切分和表示,这个过程称为 tokenization。之前写过一篇科普的文章《大模型中常说的 token 和 Tokenizer 是指什么?》专门介绍过这个知识,这里再稍微讲一下。 常见的 tokenization 方法包括:词语级别、字符级别和子词级别。词语级别的 tokenization 是最直观的方法,它根据空格和标点符号将文本分割成单独的词语。例如,“The quick brown fox jumps.”会被分割成。字符级别的 tokenization 则将文本中的每一个字符(包括字母、数字、空格和标点符号)都视为一个独立的 token。对于同样的句子,字符级别的 tokenization 会产生。 在现代LLM中,子词级别的 tokenization 是一种更为复杂且广泛应用的技术。这种方法旨在平衡词语级别和字符级别 tokenization 的优缺点,将词语分解成更小但更频繁出现的单元。例如,“unbreakable”可能会被分解成[“un”, “break”, “able”]。在子词tokenization的技术中,字节对编码(Byte-Pair Encoding, BPE)被包括 OpenAI、Gemini和 Deepseek 在内的许多主流 LLM 所采用。BPE 的优势在于能够有效地处理罕见词或词汇表外的词语,通过将它们分解成已知的子词来表示,同时还能减小模型的整体词汇量。在使用 LLM 时,用户输入的文本(即prompt)首先会经过 tokenization 处理,转换成模型能够理解的数字 token 序列。同样地,LLM 生成的输出也是一个 token 序列,需要通过 detokenization 的过程转换回人类可读的文本。 因此,用户所观察到的“打字机效果”本质上是这些生成的 token 被顺序地呈现或揭示的过程。根据 LLM 所采用的具体 tokenization 策略,在“打字”的每一个步骤中出现的可能是一个完整的词语、一个词语的片段(子词)甚至是单个字符。理解这一点对于解读模型的可视化输出至关重要。值得注意的是,由于不同的 LLM 可能使用不同的 tokenization 方法和维护着各自独特的 token 词汇表,因此在不同的平台之间可能会观察到“打字机效果”在粒度和视觉呈现上的细微差异。例如,一个模型可能倾向于以较大的文本块(完整的词语或频繁出现的子词)进行“打字”,而另一个模型由于采用了不同的 tokenization 策略,可能会呈现出更接近于逐字符出现的效果。另外,由于底层模型的输出直接与前端交互可能存在安全隐患问题,如暴露 API 密钥,通常采用“双重流式传输”模式,也就是 LLM 将数据流式传输到后端,然后后端再将数据重新流式传输到前端,大家最终看到的“打字机效果其实并不能真实的反映出底层 LLM 的 tokenization 策略。...

March 17, 2025 · 2 min · fisherdaddy

【科普】大模型中常说的参数是指什么?

近年来,大型语言模型(Large Language Models,LLMs)以前所未有的速度发展,深刻地改变了人工智能的格局,并日益融入我们日常生活的方方面面。从智能助手到内容创作和代码生成,大语言模型展现出强大的能力。这些模型已经从科研实验室走向实际应用,成为各种技术产品中不可或缺的组成部分,其重要性和影响力正持续扩大。 当我们谈论大语言模型时,“大”这个字不仅仅指它们所学习的海量数据,更在于其内部庞大的变量,我们称之为“参数”。正是这些数量巨大的参数,赋予了模型理解和生成人类语言的能力。例如,DeepSeek 的模型拥有高达 6710 亿个参数,Qwen 的模型参数量也达到了 140 亿,而一些较小的模型则拥有约 5 亿个参数。这些数字上的巨大差异暗示着参数规模对模型的能力和资源需求有着显著的影响。 什么是“参数”? 要理解大语言模型中的“参数”,首先需要了解它们所基于的底层技术:深度学习和人工神经网络。人工神经网络是一种受人脑结构和功能启发的计算系统。人脑由数以亿计的神经元相互连接构成,而人工神经网络则是由大量相互连接的计算单元(通常称为节点或神经元)组成,这些节点被组织成多个层次,包括输入层、隐藏层和输出层。 在大语言模型的语境下,“参数”指的是神经网络内部的变量,这些变量在模型的训练过程中被调整,以学习数据中的关系。这些参数主要包括以下两种类型: 权重 (Weights): 权重是分配给不同层级节点之间连接的数值,它们表示该连接在影响模型输出时的强度或重要性。权重的大小决定了前一层神经元的输出对下一层神经元的影响程度,通过调整这些权重,模型能够学习到训练数据中的复杂模式。 偏置 (Biases): 偏置是添加到神经元加权输入总和中的常数值。偏置允许激活函数在输入为零时也能被激活,为模型的学习提供了额外的自由度,使其能够学习更复杂的函数关系。 模型的训练过程本质上是一个不断调整这些参数的过程。通过分析大量的训练数据,模型会逐步调整其内部的权重和偏置,以最小化预测结果与真实结果之间的差异 . 想象一下,这些参数就像一个复杂机器上的无数个微调旋钮 。通过对这些旋钮进行精确的调整,机器(模型)才能更好地完成其任务。参数的值在训练结束后就被固定下来,它们实际上编码了模型从数据中学到的“知识” 。因此,参数的数量越多,模型能够学习和存储的语言模式和复杂关系就越丰富。 这里借用一下 OpenAI 前创始人、特斯拉前 AI 总监 Andrej Karpathy 大模型科普视频中的一个例子:Meta 开源的 Lama2 70B模型,可以被精简地理解为电脑文件系统目录中的两个核心文件:一个参数文件以及一个运行代码文件。 在这个模型中,每个参数都采用16位浮点数(即2个字节)来存储,累计起来,这个参数文件的体积达到了140 GB。这一数字不仅反映了模型的复杂性,也预示着其强大的处理能力。 接下来是运行代码文件,这部分可能令人意外地简洁,大约 500 行的 C 语言代码便足以实现整个神经网络的结构。然后我们将代码文件进行编译,并链接上参数文件,那么就形成了一个完整的 Llama2 70B 大模型。 规模的重要性:理解模型大小中的“B” 当我们谈论像 Qwen-14B 或 DeepSeek-671B 这样的大型语言模型时,其中的“B”代表的是“Billions”,即十亿 。这个字母清晰地表明,这些模型的参数数量级已经达到了非常惊人的程度。例如,谷歌发布的 Gemma 模型拥有 70 亿参数,这个数量几乎等同于全球人口。通常来说,模型拥有的参数越多,其学习复杂模式的能力就越强,从而能够更好地理解和生成更复杂的文本,并在各种语言任务中表现出更高的性能 。 值得注意的是,随着模型参数数量的增加,有时会出现所谓的“涌现能力” 。这意味着当模型的规模超过某个阈值时,它可能会突然展现出一些在较小模型中从未出现过的能力,例如进行更高级的推理、理解更抽象的概念,甚至执行一些它在训练过程中没有被明确指示要完成的任务。然而,模型规模的扩大也带来了挑战,例如训练和运行这些模型需要巨大的计算资源,并且需要更多的数据来有效地训练,以避免过拟合 。过拟合指的是模型在训练数据上表现非常好,但在面对新的、未见过的数据时性能却显著下降。 DeepSeek 的 671B 参数 DeepSeek-V3 是由中国人工智能初创公司 DeepSeek 开发的先进大语言模型,其参数量高达 6710 亿。如此庞大的规模使得 DeepSeek-V3 在数学、编码和复杂推理等具有挑战性的任务上,能够达到与 OpenAI 的 GPT-4 和 Anthropic 的 Claude 3 等领先的专有模型相媲美的性能。...

March 17, 2025 · 1 min · fisherdaddy