目录

    • 基础
      • transformer架构、`transformers`库
      • 预训练模型的微调(Fine-tuning)
        • 预训练+微调的大模型应用模式
    • base 模型、instruct 模型区别
      • Hugging Face 上如何查看base模型、instruct模型
    • 混合推理模型
      • 大模型里的快思考 vs 慢思考
      • qwen3模型
        • 含特殊 ChatML / 模型标记的 raw prompt(模型专用)
        • 包含思考/内部链式推理的 raw prompt(需要模型支持)
      • deepseek模型
      • Claude 3.7 Sonnet
    • ChatML vs Harmony:OpenAI全新对话结构格式的变化

基础

transformer架构、transformers

Google 2018 年的论文Attention is all you need,提出了Transformer架构。Transformer是几乎所有预训练模型的核心底层架构。基于Transformer预训练所得的大规模语言模型也被叫做“基础模型”(Foundation Model 或Base Model)。在这个过程中,模型学习了词汇、语法、句子结构以及上下文信息等丰富的语言知识。这种在大量数据上学到的知识,为后续的下游任务(如情感分析、文本分类、命名实体识别、问答系统等)提供了一个通用的、丰富的语言表示基础。

  • transformers库是一个用于自然语言处理(NLP)的Python库,它提供大量预训练的 Transformer 模型、tokenizers、训练与推理工具,支持 PyTorch、TensorFlow、JAX。适合快速用预训练模型微调或部署。

  • 可以使用 Hugging Face 的 transformers 库来加载并使用大部分开源模型,只要模型权重和配置文件遵循 Transformers/Hub 的约定

  • 大模型(几十亿/千亿参数)需要大量显存/内存。即使能加载,运行成本和延迟也很高。可能需要分布式、模型并行、量化或使用更小的蒸馏模型。

预训练模型的微调(Fine-tuning)

  • 预训练:在大规模无标注文本数据上进行模型的训练,目标是让模型学习自然语言的基础表达、上下文信息和语义知识,为后续任务提供一个通用的、丰富的语言表示基础。
  • 微调:在预训练模型的基础上,根据特定的下游任务对模型进行微调。因为经过预训练的大模型中所习得的语义信息和所蕴含的语言知识,能够非常容易地向下游任务迁移。NLP应用人员可以对模型的头部或者部分参数根据自己的需要进行适应性的调整,这通常涉及在相对较小的有标注数据集上进行有监督学习,让模型适应特定任务的需求。
预训练+微调的大模型应用模式

预训练模型能够将大量的通用语言知识迁移到各种下游任务上,作为应用人员,我们不需要自己寻找语料库,从头开始训练大模型,这减少了训练时间和数据需求

微调过程可以快速地根据特定任务进行优化,简化了模型部署的难度

预训练+微调的架构具有很强的可扩展性,可以方便地应用于各种自然语言处理任务,大大提高了NLP技术在实际应用中的可用性和普及程度。

base 模型、instruct 模型区别

  • base 模型:通常指未经专门对齐或人类反馈微调(或仅做基础微调)的语言模型。它更接近原始自回归预训练模型,目标是拟合训练语料的下一个词分布。
    • 特点:能力强、泛化好,但没有明确学习去遵守指令或对话礼貌性、安全性约束。
  • instruct 模型:在 base 基础上,经过专门的微调,使其更擅长理解和执行“人类指令”(instructions)。
    • 特点:更擅长按照用户指令产出可用、简洁、有组织的回答;通常使用人工标注的数据、专家演示、或人类反馈(例如 RLHF)训练得到。

https://huggingface.co/deepseek-ai/DeepSeek-V3.1-Base 名称带 -Base,通常表示未经指令微调。

模型 URL 和标题里有 -Base,这是社区约定中常见的“原始/基础权重”命名(作者通常会把指令微调版本单独命名为 -Instruct-Assistant、或直接去掉 -Base 后缀并在 README 明确说明)

DeepSeek-V3.1(没有 -Base) 是在其上做了后续训练或扩展。
在这里插入图片描述

“DeepSeek-V3.1 is post-trained on the top of DeepSeek-V3.1-Base”
这说明 DeepSeek-V3.1-Base 是基础权重,而 DeepSeek-V3.1 是在其上做了后续训练(post-training/finetune/extension)。通常 authors 会把指令微调、对话优化或 agent 能力加入到 post-trained 版本,所以 DeepSeek-V3.1 更可能是实用的 instruct/chat 版本。

Hugging Face 上如何查看base模型、instruct模型

  • Base 模型:通常是原始预训练模型(例如 gpt2, bert-base-uncased, llama-7b原始权重)。发布者会在名称或说明里标明“base”或不带任何指令微调说明。

  • Instruct / Instruction-tuned 模型:经过指令微调(supervised fine-tuning 或 RLHF)的模型,会在模型名或 README 中写明如 -instruct, -alpaca, -flan, -instruction 等关键字。

  • Chat / Dialogue 模型:为多轮对话或聊天优化的模型,常在名字中出现 chat, conversational, belle-chat 等字样,或提供对话 API 接口/示例。

  • 查看模型页面的模型卡(Model card / README)

    • 查找关键词:baseinstructchatfine-tunedRLHFsupervised_finetunealpacaflan 等。
    • README 通常会说明训练数据、训练方法及适用场景。

混合推理模型

大模型里的快思考 vs 慢思考

有些事情几乎瞬间就能想到:“今天星期几?” 其他事情则需要更多的脑力,比如解决一个隐晦的填字游戏或调试一段复杂的代码。我们可以选择根据手头的任务投入或多或少的认知努力。

  • 快:纯模型内知识
  • 慢:检索知识库、调用工具/代码执行、运行时记忆、约束求解器等

其实混合推理模型已经有不少了,例如 Claude 3.7 Sonnet 和 Gemini 2.5 Flash。

混合推理(Hybrid Reasoning),或者说“快/慢思考”,我们这里统一称为混合推理。

qwen3模型

参考文章:https://juejin.cn/post/7499354223328903202

Qwen3 提供了一个参数 enable_thinking,当将其设置为 True 的时候,模型就会像一般的思考模型那样开启深度思考;而将其设置为 False 的时候,模型就会像一般的模型那样快速回复。

这个 enable_thinking 的参数是在哪里作用的呢?根据官方代码示例,我们可以看到它是在 tokenizer.apply_chat_template() 这个方法中传递的。

text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True,enable_thinking=False  # True is the default value for enable_thinking.
)

将一个多轮对话的 messages(包含 system/user/assistant 等角色)按照模型需要的聊天模板拼接成最终的文本提示 text,方便后续送入模型进行生成或推理。

  • messages

    • 输入对话列表,每个元素一般是一个字典,格式示例:
      {"role": "system", "content": "You are a helpful assistant"}{"role": "user", "content": "你好"} 等。
    • 该函数会根据 chat template(模型定义的模板)把这些消息按顺序拼接成一个完整的 prompt。
  • tokenize=False

    • 作用:不对生成的字符串立即进行分词(tokenize)。
    • 含义:返回的是原始字符串 text,而不是 token id 序列。常用于在发送到模型或进一步处理前先查看/调试拼接结果。
  • add_generation_prompt=True

    • 作用:在拼接结果后面附加用于触发模型生成的提示(generation prompt)。
    • 含义:通常会在最后加上模型期望的生成起始标记或光标位置(例如 <|Assistant|><think> 等),以告诉模型现在应该开始生成回复。设置为 True 可以确保输出是一个完整的、可直接用于生成的 prompt。
  • enable_thinking=False

    • 作用:是否启用“thinking”模式相关的 token(模型区分 thinking 与 non-thinking 两种生成行为)。
    • 含义False 表示使用 非思考(non-thinking) 模式拼接模板(例如使用 </think> 结尾的形式);如果为 True(默认值),会使用 thinking 模式(例如在生成时放置 <think>,使模型进入“思考/链式推理”状态)。
    • 注意:这里显式设置 False,表示希望模板采用非思考模式(可能更偏向直接输出而非内部思路展示)。

这样得到的 text 可以直接用于调用模型进行回复生成或用于调试查看完整 prompt。

apply_chat_template() 这个方法,这是一个构建对话模板的方法,不涉及任何模型侵入。apply_chat_template 把结构化 messages 转成 DeepSeek 的 ChatML 字符串,并通过 thinking 与 add_generation_prompt 控制生成提示和思考标记。
你不应在 message content 中混用模型控制标签与 tokenizer 的 thinking 管理,否则会产生不匹配或冲突的标签。

对话模板其实是一种便于模型区分对话角色的工具,它并不复杂,其实就是利用特殊 token 构建一个让模型“看得懂”的对话方式,而这个方式往往是模型在 post-training 中针对性训练的。这样模型就能像我们平时使用的那样,完成问答等任务了。

比如,使用 LangChain,要了解并正确使用对话模板(ChatML / chat template),因为 LangChain 主要负责对话管理与工具整合,但最终发送给模型的 prompt 必须符合模型期望的模板格式才能获得正确输出。在 LangChain 中,用 PromptTemplate(或自定义模板)来精确拼接符合模型要求的 ChatML 格式。

ChatML(Chat Markup Language)格式
ChatML(Chat Markup Language)是一种用于在对话中定义消息格式的标记语言,它允许开发者以结构化的方式传递消息内容、元数据、角色信息等。这种格式特别适用于训练和使用对话模型,因为它能够清晰地标识不同角色的消息,使模型能够更好地理解和生成对话内容。

注意:
模型接收的是token 序列(由 tokenizer 把字符串分成 tokens)。它并不“知道”你给它的标签是 ChatML 标准还是你临时发明的,模型只学到:在训练数据中,某种 token 序列模式通常与某类输出关联。

标签(ChatML)起到的是“协议/提示”的作用:它告诉模型“这里是 system 指令/这里是 user 的问题/这里需要开始生成/这里是工具调用参数”。
模型最终是靠上下文模式与概率分布生成文本:标签只是影响上下文模式的一个强信号。模型没有内在的“语法解析器”去理解 ChatML 标记的定义;相反,它在训练中学到“当遇到这类标记序列时,常见的合适输出是什么”。

如果训练/微调和推理都采用同样的 ChatML 协议,模型行为会更稳定和可预测。

可以这样理解和总结:raw prompt 可以是 ChatML 格式;ChatML 是常见且推荐用于对话模型的 raw prompt 格式之一。

在可能的情况下,使用模型方提供的 helper(例如 tokenizer.apply_chat_template)来生成 ChatML,避免手工错误。

为什么需要关注对话模板,LangChain 会把消息按通用模板拼接或直接把字符串传给模型,可能不匹配模型期望的 ChatML,导致输出不稳定或工具调用失败。自定义 PromptTemplate,按模型模板拼接 system/user/assistant<think> 标记等。

若社区或模型方提供了 LangChain adapter(LLM wrapper / PromptTemplate),优先使用,减少手工适配工作。

# 收集 LangChain messages
messages = [{"role":"system","content":"You are a helpful assistant"},{"role":"user","content":"搜索关于A的信息"},
]# 方法:用模型提供的 tokenizer 拼接符合 ChatML 的 prompt
chat_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)# 把 chat_prompt 传给模型做生成(而不是直接让 LangChain 默认拼接)
response = client.generate(chat_prompt)
含特殊 ChatML / 模型标记的 raw prompt(模型专用)
<|begin_of_conversation|>
<|system|>You are a senior software engineer who writes bug-free code.</|system|>
<|user|>Please provide a secure login example in Python.</|user|>
<|assistant|>
  • 许多模型有自己的专用标记(如上示例),把这些标记包含在 raw prompt 中可触发模型的特定行为(thinking、toolcall 等)。
包含思考/内部链式推理的 raw prompt(需要模型支持)
System: You are allowed to show internal chain-of-thought between <think>...</think>.
User: Solve: If x+2=5, what is x? Show your reasoning.
Assistant: <think>First subtract 2 from both sides... </think> Final answer:
  • 只有当模型/平台支持并愿意返回思考内容时,这种 raw prompt 才有意义。

  • 特点raw promptmessages(结构化)
    形式单一字符串JSON 列表(role/content)
    控制粒度高(可以包含任意标记)受限(由平台或规范解释)
    安全 / 审计不易被平台中间件自动过滤平台更容易插入策略与过滤
    兼容性需平台支持原样透传大多数平台默认支持(更通用)
  • Raw prompt = 你完全控制的、以字符串形式发送给模型的输入。它适合需要精确模板或模型特定标记的高级用例,但许多平台不原样透传 raw prompt,所以使用前应确认平台支持并做好安全/测试。

deepseek模型

deepseek官方文档: https://api-docs.deepseek.com/zh-cn/

deepseek-chatdeepseek-reasoner 都已经升级为 DeepSeek-V3.1。deepseek-chat 对应 DeepSeek-V3.1 的非思考模式deepseek-reasoner 对应 DeepSeek-V3.1 的思考模式.

DeepSeek-V3.1是一个混合模型,支持思考模式和非思考模式。 与之前的版本相比,此次升级在多个方面带来了改进:

  • 混合思考模式: 一个模型通过改变聊天模板来支持思考模式和非思考模式。
  • 更智能的工具调用:通过后训练优化,模型在工具使用和代理任务中的性能得到了显著提升。
  • 更高的思考效率:DeepSeek-V3.1-Think实现了与DeepSeek-R1-0528相当的答案质量,同时响应速度更快。

DeepSeek-V3.1是一个混合模型,支持思考模式和非思考模式。
标签预示着接下来进行慢思考,标签代表不思考

混合思考模式: 一个模型通过改变聊天模板来支持思考模式和非思考模式。

Claude 3.7 Sonnet

官网文档:https://www.anthropic.com/news/claude-3-7-sonnet
"思考"工具:使 Claude 能够在复杂的工具使用场景中停下来思考
https://www.anthropic.com/engineering/claude-think-tool
Anthropic 的 Claude 3.7 Sonnet 混合推理模型现已在 Amazon Bedrock 上线
原文链接: https://aws.amazon.com/cn/blogs/china/anthropics-claude-3-7-sonnet-the-first-hybrid-reasoning-model-is-now-available-in-amazon-bedrock/
新的 Claude 3.7 Sonnet,用户可以打开或关闭“扩展思维模式”,指导模型更深入地思考棘手的问题。

作为 Anthropic 迄今为止最智能的模型,Claude 3.7 Sonnet 是其首款混合推理模型,能够快速提供回复,也能进行深度思考,这意味着它可以通过细致的逐步推理来解决复杂问题。

Claude 3.7 Sonnet 提供了兩種思考模式:標準模式和擴展思考模式。

官方文档,如何使用 extended thinking
https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking

curl https://api.anthropic.com/v1/messages \--header "x-api-key: $ANTHROPIC_API_KEY" \--header "anthropic-version: 2023-06-01" \--header "content-type: application/json" \--data \
'{"model": "claude-sonnet-4-20250514","max_tokens": 16000,"thinking": {"type": "enabled","budget_tokens": 10000},"messages": [{"role": "user","content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"}]
}'

要启用扩展思考,需要添加一个类型为 thinking 的对象,并将其 type 参数设为 enabled,同时用 budget_tokens 指定用于内部推理的最大令牌数。budget_tokens 决定模型(如 Claude 4)在内部思考时可消耗的令牌上限——该限制针对完整的思考令牌,而不限制最终输出长度;增加预算有助于复杂问题的更深入分析,但模型未必会用尽分配的全部预算,尤其是在超过 32k 的范围时。budget_tokens 必须小于 max_tokens;不过,在与工具交错使用思考(interleaved thinking)时,可以突破该限制,令牌上限将变为整个上下文窗口(例如 200k)。

ChatML vs Harmony:OpenAI全新对话结构格式的变化

ChatML vs Harmony:深度解析OpenAI全新对话结构格式的变化
原文链接:https://developer.volcengine.com/articles/7538387123313836068

ChatML(聊天标记语言)一直是许多开源模型(特别是 Qwen 系列)的首选格式。它本质上是一种受 XML 启发的对话结构化方式,旨在清晰地分隔对话的不同部分。

Harmony 是 OpenAI 专门为 gpt-oss 模型设计的新型响应格式。它不仅仅是一种提示格式,更是对模型如何构造输出(特别是针对复杂推理和工具使用)的全面重新思考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96013.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96013.shtml
英文地址,请注明出处:http://en.pswp.cn/web/96013.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

prometheus+grafana搭建

部署 prometheus 安装 # 1,下载 wget https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-3.5.0.linux-amd64.tar.gz# 2,部署 tar -zxvf prometheus-3.5.0.linux-amd64.tar.gz -C /opt/ cd /opt/ mv ./prometheus-3.5.0.linux-amd64 …

MR30分布式I/O在面机装备中的应用

随着食品加工行业向自动化、智能化转型&#xff0c;面机装备对控制系统的响应速度、布线灵活性及稳定性提出了更高要求。本案例以某大型食品机械制造企业的全自动面条生产线升级项目为背景&#xff0c;引入 MR30 分布式 IO 模块替代传统集中式 IO 方案。通过将 MR30 分布式 IO …

Matlab使用小技巧合集(系列四):Table类型高效用法与数据处理实战

Matlab使用小技巧合集(系列四):Table类型高效用法与数据处理实战 在科研数据处理和论文写作过程中,结构化数据的管理极为重要。Matlab的table类型为研究生和科研人员提供了灵活、高效的数据存储与处理方式,尤其适合实验结果整理、分组统计、数据预处理等场景。本文将系统介…

STM32的时钟系统与时钟树的配置

STM32的时钟系统是其微控制器&#xff08;MCU&#xff09;的核心组成部分&#xff0c;负责为CPU、外设和存储器等模块提供精确的时序信号。其设计灵活且复杂&#xff0c;通过多级时钟树&#xff08;Clock Tree&#xff09;实现时钟源的选择、分频和分配。以下是详细介绍&#x…

NV 工具metrics分析(ncu, nsys/torch profiler)

以下分析都以A100硬件架构为例; Theoretical Max Active Warps per SM: 64 Register number: 512 (规定每个thread不能超过256) Theoretical Active Warps per SM [warp]&#xff1a;512//registers_per_thread*4, which defines theoretical active warp occupancy Waves P…

[CISCN2019 总决赛 Day2 Web1]Easyweb

登录界面可以看到随机切换的图片。从页面源码中可以看到<div class"avtar"><img src"image.php?id3" width"200" height"200"/></div>&#xff0c;图片文件的请求地址&#xff0c;并且有传参id。web应用中像这种动…

第 3 讲:KAFKA生产者(Producer)详解

这是一篇既照顾入门也能给高级工程师提供落地经验的实战笔记。0. TL;DR&#xff08;先上结论&#xff09; 想稳&#xff1a;acksall 合理 retries&#xff1b;需要“分区内不重不丢”→ 再加 enable.idempotencetrue 且 max.in.flight<5。想快&#xff1a;适度增大 batch.s…

微信小程序截屏与录屏功能详解

微信小程序提供了丰富的API支持截屏和录屏功能&#xff0c;适用于多种场景&#xff0c;如教育类应用的课程录制、游戏类应用的精彩瞬间分享、电商类应用的商品展示等。以下将详细介绍实现方法和应用案例。 截屏功能实现 截屏功能通过调用wx.canvasToTempFilePath或wx.captureSc…

React 中的 HOC 和 Hooks

写在前面 在函数式组件主导的 React 项目中&#xff0c;高阶组件&#xff08;HOC&#xff09;并非首选推荐&#xff0c;更建议优先使用 Hooks来实现复用逻辑。核心原因是 HOC 存在固有的设计缺陷&#xff0c;而 Hooks 能更优雅、简洁地解决相同问题&#xff0c;同时避免 HOC 的…

【 苍穹外卖 | Day2】

1. 相关视频 Day2的全部视频集数 2. 学习记录 2.1 对象属性拷贝 当DTO与实体类或者VO对象之间的一个装换的时候&#xff0c;如果通过new创建对象&#xff0c;然后调用set方法进行属性赋值&#xff0c;不够方便&#xff0c;代码不够简洁。当属性过多时候&#xff0c;代码就会…

焊接自动化测试平台图像处理分析-模型训练推理

1、使用技术栈&#xff1a;jdk17/springboot/python/opencv/yolov8 2、JAVA环境搭建 JDK17下载安装&#xff1a;wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 解压软件 tar -xf jdk-17.0.16_linux-x64_bin.tar.gz 配置全局变量 vim /etc/p…

【python实用小脚本-205】[HR揭秘]手工党逐行查Bug的终结者|Python版代码质量“CT机”加速器(建议收藏)

1. 场景故事 “作为HR&#xff0c;我曾用2小时逐行审阅50份Python简历项目&#xff0c;直到发现候选人的代码复杂度超标导致线上事故…” → 转折点&#xff1a;用麦凯布&#xff08;McCabe&#xff09;圈复杂度检测脚本&#xff0c;30秒扫描全仓库&#xff0c;现可100%拦截“高…

LeetCode - 1089. 复写零

题目 1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 思路 这道题我首先想到的是从前往后双指针&#xff0c;但是这样做会造成数据的覆盖&#xff0c;比如说下面的这个情况 所以解决的方法就是从后往前去复写&#xff0c;但是从后往前的话就要知道最后一个有效元素是…

c#中public类比博图

简单来说&#xff0c;**public 定义了“接口”或“引脚”**&#xff0c;就像你的FB块上的 Input, Output, InOut 管脚一样。它决定了外部的其他代码&#xff08;如另一个FB或OB1&#xff09;可以看到和操作这个块里的什么东西。让我用你最熟悉的博图概念来详细类比一下。---###…

K8s基于节点软亲和的高 CPU Pod 扩容与优先调度方案

场景与目标 集群节点&#xff1a;master&#xff08;4 核&#xff09;、node1&#xff08;16 核&#xff09;、node2&#xff08;16 核&#xff09;。目标&#xff1a;将一个高 CPU 消耗的工作负载横向扩展到 4 个实例&#xff0c;并通过**节点亲和性&#xff08;软亲和&#…

MySQL InnoDB 的锁机制

引言 锁是数据库管理并发访问的另一种核心机制&#xff0c;与 MVCC 相辅相成。本文将系统梳理 MySQL InnoDB 中锁的粒度、类型和工作原理&#xff0c;并深入探讨它如何与事务隔离级别配合&#xff0c;共同保障数据的一致性和完整性。 一、 锁的粒度&#xff1a;由粗到细 InnoD…

状态模式(State Pattern)——网络连接场景的 C++ 实战

一、为什么要用状态模式&#xff1f;在开发中&#xff0c;经常遇到“对象在不同状态下行为不同”的情况。最常见的写法是用一堆 if/else 或 switch 来判断状态&#xff0c;然后在不同分支里写逻辑。这样做有两个问题&#xff1a;状态增多后&#xff0c;条件分支会变得臃肿。修改…

使用csi-driver-nfs实现K8S动态供给

文章目录一、部署NFS二、k8s环境部署csi-nfs三、测试动态供给补充应用服务器IPnfs-server192.168.1.5k8s-master01192.168.1.1k8s-node01192.168.1.2k8s-node02192.168.1.3 一、部署NFS 1、在NFS服务端和k8s所有节点部署nfs-utils 因为客户端去挂载nfs服务端的共享目录时&…

【开题答辩全过程】以 基于ssm的房屋中介管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

MySQL主从复制之进阶延时同步、GTID复制、半同步复制完整实验流程

1.主从同步1.1主从同步原理是指将主库的DDL和DML操作通过二进制日志(binlog)传到从库服务器&#xff0c;然后在从库上对这些日志进行重新执行&#xff0c;从而使从库和主库数据保持一致1.2环境设置库名ip地址操作系统mysql版本主库msyql-master192.168.31.228rhel7.9源码安装my…