学习黑客Active Directory 入门指南(三)
Active Directory 入门指南(三):关键服务、用户与组管理 🤝💻
大家好!欢迎来到 “Active Directory 入门指南” 系列的第三篇。在前两篇中,我们已经了解了AD的基本概念、逻辑结构(对象、OU、域、树、林、架构、全局编录)以及物理组件(域控制器、站点)。
在本篇中,我们将聚焦于支撑Active Directory运行的关键服务和协议,并深入探讨如何在AD中管理核心对象:用户账户、组账户和计算机账户。这些是日常AD管理中最常接触的部分。
5. 关键服务与功能 ⚙️
Active Directory的正常运行依赖于多种底层服务和协议的协同工作。
-
身份验证协议 (Authentication Protocols):
AD使用这些协议来验证用户和计算机的身份。- Kerberos v5:
- 这是AD中主要的、默认的身份验证协议。
- Kerberos是一种基于**票据 (tickets)**的强大网络身份验证协议,由麻省理工学院 (MIT) 开发。
- 工作原理简介:
- 用户登录时,向密钥分发中心 (KDC,通常是DC的角色之一) 请求一个初始票据——票据授予票据 (TGT)。
- 用户使用TGT向KDC的票据授予服务 (TGS) 请求访问特定资源(如文件服务器)的服务票据。
- 用户向资源服务器出示服务票据,服务器验证票据后授予访问权限。
- 优点:安全性高(使用加密和时间戳防止重放攻击),支持单点登录 (SSO),支持相互身份验证(客户端和服务器都验证对方身份)。
- NTLM (NT LAN Manager):
- 这是一种较旧的**质询/响应 (challenge/response)**式身份验证协议。
- 在AD中,NTLM主要用于向后兼容,例如与不支持Kerberos的旧版客户端或应用程序进行身份验证,或者在无法联系到DC(无法使用Kerberos)的情况下进行本地缓存登录。
- 安全性:NTLM相对于Kerberos来说安全性较低,更容易受到某些类型的攻击(如哈希传递 Pass-the-Hash)。因此,在可能的情况下,应优先使用Kerberos,并考虑禁用或限制NTLM的使用。
- Kerberos v5:
-
LDAP (Lightweight Directory Access Protocol):
- LDAP是一种开放的、跨平台的应用程序协议,用于访问和维护分布式目录信息服务。
- Active Directory是一个符合LDAP标准的目录服务。这意味着应用程序和服务可以使用LDAP协议来查询 (query) AD中的信息(如搜索用户、读取对象属性)和修改 (modify) AD中的数据(如创建用户、更改属性——当然,需要适当的权限)。
- 例如,许多第三方应用程序需要与AD集成以进行用户身份验证或获取用户信息时,通常会使用LDAP。
- AD通过TCP端口389(用于未加密LDAP)和TCP端口636(用于LDAPS,即LDAP over SSL/TLS)提供LDAP服务。
-
DNS (Domain Name System):
- Active Directory严重依赖DNS进行名称解析和服务定位。可以说,没有正常工作的DNS,AD就无法正常运行。
- 主要用途:
- 定位域控制器 (Locating Domain Controllers):客户端和成员服务器使用DNS中的特殊记录——SRV记录 (Service Locator records)——来查找其所在域或林中的DC(特别是提供特定服务的DC,如Kerberos KDC、LDAP服务器、全局编录服务器)。
- 计算机名称解析:解析域中计算机的主机名到IP地址。
- 域名解析:解析AD域名(如
company.com
)到DC的IP地址。
- 通常,在部署AD时,会同时在DC上安装和配置DNS服务器角色,并创建AD集成的DNS区域。AD集成的DNS区域将DNS数据存储在AD目录数据库中,并通过AD复制机制在DC之间复制,提供了更高的容错性和安全性。
-
SYSVOL共享 (System Volume Share):
- SYSVOL是一个存在于每个域控制器上的特殊共享文件夹。
- 它存储了域范围内的公共文件,主要是组策略模板 (Group Policy Templates - GPTs)和脚本 (Scripts)(如登录脚本、启动脚本)。
- 当管理员创建或修改一个组策略对象 (GPO) 时,GPO的配置部分(组策略容器 - GPC)存储在AD数据库中,而GPO的文件部分(GPT)则存储在SYSVOL中。
- SYSVOL的内容会在域内所有DC之间通过文件复制服务(FRS,在较旧的系统中;或DFS复制 - DFSR,在较新的系统中)进行复制,以确保所有DC上的策略文件保持一致。
- 客户端计算机在应用组策略或执行登录脚本时,会从其登录的DC上的SYSVOL共享中读取相应的文件。
6. 用户、组和计算机账户 🧑💻👥💻
这些是AD中最常管理的对象。
-
用户账户 (User Accounts):
- 代表一个可以登录到域并访问网络资源的个人。
- 关键属性:
- 用户登录名 (User logon name / User Principal Name - UPN):格式通常为
username@domain.com
,用于登录。 - 用户登录名 (Windows 2000以前版本 / sAMAccountName):格式为
DOMAIN\username
,用于向后兼容。 - 密码:安全存储,用户可以使用它进行身份验证。
- 组成员身份:用户所属的组,决定了其访问权限。
- 其他个人信息、账户选项(如密码永不过期、账户已禁用、登录时间限制等)。
- 用户登录名 (User logon name / User Principal Name - UPN):格式通常为
- 每个用户账户在AD中都有一个唯一的安全标识符 (Security Identifier - SID),这是一个不可变的值,即使更改了用户名,SID也不会改变。权限是基于SID授予的。
-
组账户 (Group Accounts):
- 组是用户账户、计算机账户或其他组的集合。使用组的主要目的是简化权限管理。与其为每个用户单独分配对资源的权限,不如将用户添加到组中,然后将权限分配给该组。
- 组的类型 (Group Types):
- 安全组 (Security Groups):这是最常用的组类型。安全组可以用于分配对资源的访问权限(通过ACLs)以及应用组策略。安全组有SID。
- 通讯组 (Distribution Groups):这种类型的组不能用于分配权限或应用GPO。它们主要用于电子邮件应用程序(如Microsoft Exchange)创建电子邮件分发列表。通讯组没有SID。
- 组的作用域 (Group Scopes):组的作用域决定了该组可以包含哪些成员以及该组可以在哪里被授予权限。
- 域本地组 (Domain Local Groups):
- 成员:可以包含来自林中任何域的用户、计算机、全局组和通用组,以及其他域本地组(仅限同一域内)。
- 权限分配:只能在其所在的域内被授予对资源的访问权限。
- 用途:通常用于直接向资源(如文件共享、打印机)授予权限。
- 全局组 (Global Groups):
- 成员:通常只能包含其所在域的用户、计算机和其他全局组。
- 权限分配:可以在林中的任何域(以及受信任的林中的域)中被授予权限,也可以作为其他组(域本地组、通用组或其他全局组——仅限同一域内)的成员。
- 用途:通常用于将具有相似业务角色或访问需求的用户组织起来(例如,“销售部员工”全局组)。
- 通用组 (Universal Groups):
- 成员:可以包含来自林中任何域的用户、计算机、全局组和通用组。
- 权限分配:可以在林中的任何域(以及受信任的林中的域)中被授予权限,也可以作为其他组(域本地组或通用组)的成员。
- 注意:通用组的成员列表存储在全局编录 (GC) 中,因此对通用组成员身份的更改会导致GC复制流量。应谨慎使用,通常用于需要跨多个域授予权限的场景。
- 权限管理最佳实践 (AGDLP / AGUDLP):
- Accounts (用户或计算机账户) -> Global groups (按角色或部门组织用户) -> Domain Local groups (代表资源权限) -> Permissions (分配给域本地组)。
- 或者,在多域林中,可以使用 Accounts -> Global groups -> Universal groups (跨域组织角色) -> Domain Local groups -> Permissions。
- 域本地组 (Domain Local Groups):
-
计算机账户 (Computer Accounts):
- 代表已加入到Active Directory域的计算机(工作站或服务器)。
- 作用:
- 允许计算机通过AD进行身份验证。
- 允许通过组策略集中管理计算机的配置和安全设置。
- 计算机账户也有SID,并且可以像用户一样被授予对资源的访问权限(尽管这不太常见)。
- 当计算机加入域时,会在AD中自动创建一个计算机账户。
在本篇中,我们探讨了支撑AD运行的关键服务(Kerberos, LDAP, DNS, SYSVOL)以及AD中最常管理的三种核心对象:用户、组和计算机账户,并特别强调了组的类型和作用域及其在权限管理中的重要性。
在下一篇 Active Directory 入门指南(四) 中,我们将详细介绍Active Directory中最强大的功能之一——组策略对象 (GPOs),以及为了保证AD多主复制模型一致性而存在的操作主机角色 (FSMO Roles)。敬请期待!
相关文章:
学习黑客Active Directory 入门指南(三)
Active Directory 入门指南(三):关键服务、用户与组管理 🤝💻 大家好!欢迎来到 “Active Directory 入门指南” 系列的第三篇。在前两篇中,我们已经了解了AD的基本概念、逻辑结构(对…...
10.9 LangChain LCEL革命:43%性能提升+声明式语法,AI开发效率飙升实战指南
LangChain 表达式语言(LCEL)架构解析:新一代链式编排引擎 关键词:LangChain Expression Language, Runnable 协议, 链式编排, 并行处理, 生产级应用开发 1. LCEL 设计理念与技术突破 LangChain Expression Language(LCEL)是 LangChain v0.3 的核心革命性升级,重新定义…...
一文读懂-嵌入式Ubuntu平台
现在直接在一些嵌入式Soc上移植ubuntu来用到产品上,刚开始感觉还挺臃肿的,后来细聊了下感觉还是有一定的优势。 ubuntu相信大家在熟悉不过了,几乎无处不在,小到咖啡机,大到火星车,为什么ubuntu如此广泛&am…...
centos7.9扩展已有分区空间
新增50G硬盘 分区 fdisk /dev/sdb Command (m for help): p #打印分区表Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors Units sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 byte…...
ubuntu22.04搭建ROS2环境
在 Ubuntu 22.04 上安装 ROS 2(Humble Hawksbill)时,针对国内网络问题,建议使用镜像源加速。以下是分步指南: 1. 更换 Ubuntu 系统源(使用清华镜像) sudo sed -i "shttp://.*archive.ubunt…...
java中sleep()和wait()暂停线程的区别
1. Thread.sleep() 所属类:它是Thread类的静态方法。作用:让当前正在执行的线程暂停指定的时间,在暂停期间,线程会一直持有对象锁(也就是synchronized锁)。中断响应:当线程处于sleep()状态时&a…...
printf函数参数与入栈顺序
01. printf()的核心功能 作用:将 格式化数据 输出到 标准输出(stdout),支持多种数据类型和格式控制。 int printf(const char *format, ...);参数: format:格式字符串,字符串或%开头格式符...:…...
代码案例分析
以下是一个使用线性回归进行简单房价预测的机器学习代码案例分析: 代码示例 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split # 生成一些示例数据…...
Baklib赋能企业知识资产AI化升级
AI驱动知识管理革新 在数字化转型浪潮中,企业知识管理的范式正经历AI技术的深度重构。传统知识库受限于静态存储与人工维护,而Baklib通过构建知识中台架构,将多模态数据处理与语义理解引擎深度融合,实现知识资产的动态聚合与智能…...
Leetcode 3552. Grid Teleportation Traversal
Leetcode 3552. Grid Teleportation Traversal 1. 解题思路2. 代码实现 题目链接:3552. Grid Teleportation Traversal 1. 解题思路 这一题的话核心就是一个广度优先遍历,我们只需要从原点开始,一点点考察其所能到达的位置,直至…...
【Bluedroid】蓝牙HID DEVICE 报告发送与电源管理源码解析
本文基于Android蓝牙协议栈代码,深度解析HID设备(如键盘、鼠标)从应用层发送输入报告到主机设备的完整流程,涵盖数据封装、通道选择、L2CAP传输、电源管理四大核心模块。通过函数调用链(send_report → BTA_HdSendRepo…...
day15-进程管理
1. 概述 运行起来的软件就是进程,在内存中运行守护进程/服务:一直运行的进程 2. 僵尸进程 2.1. 僵尸进程zombie 当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸…...
抖音视频下载工具 v1.1 自用分享
用免费的公益接口用AI写了个简单的抖音视频下载工具,自用的,不支持批量下载 内置两套API,解析失败会自动切换,支持视频预览播放,视频截图等操作 使用方法也很简单: 软件打开后会监听粘贴板,当检…...
46、什么是Windows服务,它的⽣命周期与标准的EXE程序有什么不同?
Windows服务是一种在Windows操作系统后台运行的特殊应用程序,与标准的EXE程序相比,其生命周期在启动方式、运行持续性、用户交互、运行账户、管理方式、进程状态及开发要求等方面存在显著差异。以下是对Windows服务及其与标准EXE程序生命周期差异的详细分…...
用 UniApp 构建习惯打卡 App —— HabitLoop 开发记
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 当我脑海中突然冒出一个念头:“做一个自己能每天打卡的习惯 App 吧”,我立刻打开了 Cod…...
NB-IoT技术深度解析:部署模式与节能机制全指南
知识点1【NB-IoT的介绍】 NB-IoT 是指Narrow Band Internet of Things,聚集于低功耗窄带宽广域物联网。 1、License介绍 “有牌照”(license)频谱,指的是政府或者监管机构通过拍卖,划拨等方式,授予给各个…...
Vue百日学习计划Day28-32天详细计划-Gemini版
总目标: 在 Day 28-32 深入理解 Vue 3 的响应式机制,熟练掌握 Composition API 中的 setup, ref, reactive, toRefs, readonly, computed, watch, watchEffect 等核心 API 的使用。 所需资源: Vue 3 官方文档 (组合式 API): https://cn.vuejs.org/guide/introducti…...
Leetcode134加油站
题目链接 134 题意图解: 题目给了n个节点,这些节点呈现环状,每次到一个低点要消耗cost[i]的油量。 从中我们可以得出一个结论:看一个点能不能到下一个点,就要用当前的油量减去消耗的量,那么gas[i] - cost…...
用算术右移实现逻辑右移及用逻辑右移实现算术右移
函数srl()用算术右移实现逻辑右移,函数sra()用逻辑右移实现算术右移。 程序代码 int sra(int x,int k); unsigned int srl(unsigned int x, int k);void main() {int rx1,k,x1;unsigned int rx2,x2;k3;x10x8777;x20x8777;rx1sra(x1, k);rx2srl(x2, k);while(1); }…...
箭头函数及其与普通函数区别的详细解释
一、箭头函数的基本特性 语法简洁性 箭头函数使用 > 符号定义,省略 function 关键字,适合快速定义匿名函数或简单表达式。 // 普通函数 function sum(a, b) { return a b; } // 箭头函数 const sum (a, b) > a b;若函数体为单行表达式&#x…...
Denoising Score Matching with Langevin Dynamics
在自然图像等复杂数据集中,真实数据往往集中分布在一个低维流形上,概率密度函数的梯度(即得分函数)难以定义与估计。为缓解该问题,SMLD 提出使用不同强度的高斯噪声对数据进行扰动,扰动后的数据不再集中于低…...
Flink的时间问题
Apache Flink 中的 时间语义(Time Semantics) 是流处理的核心概念之一。Flink 支持多种时间类型,用于控制窗口计算、事件排序和状态管理等操作。 🕒 一、Flink 时间分类 类型名称描述Processing Time处理时间每个算子基于本地系统…...
3:OpenCV—视频播放
播放来自文件或相机的视频 在本教程中,我将向您展示如何使用OpenCV从文件或相机/网络摄像头捕获和播放视频。尽管OpenCV没有针对视频处理进行优化,但它提供了一个简单的API来播放视频。在我们的OpenCV程序中,我们所要做的就是从视频文件或相…...
AI工程 新技术追踪 探讨
文章目录 一、核心差异维度对比二、GitHub对AI工程师的独特价值三、需要警惕的陷阱四、推荐追踪策略五、与传统开发的平衡建议 以下内容整理来自 deepseek 作为AI工程师,追踪GitHub开源项目 对技术成长和职业发展的影响 比传统应用开发工程师 更为显著,…...
C++:函数模板
所谓函数模板就是定义一个通用的函数,不指定具体的参数,用一个虚拟参数代替; 当函数调用时,会根据实参判断具体的类型。 注意:不要使用默认参数;可以重载但尽量不要重载。 #include<iostream> usi…...
一款适配国内的视频软件,畅享大屏与局域网播放
软件介绍 今天要给大家安利一款超强视频播放软件——MXPlayer。它的解码实力堪称一绝,市面上不管是常见的 MP4、MKV 格式,还是对播放设备要求极高的超高清 4K、HDR 视频,甚至那些鲜为人知的冷门格式,它统统都能流畅播放ÿ…...
SONiC系统之高速数据遥测High Frequency Telemetry
SONiC系统之高速数据遥测High Frequency Telemetry 数据遥测 这篇文章介绍了SONiC系统支持Telemetry的软件架构以及gNMI接口中Telemetry Streaming功能Dial-in和Dial-out两者模式的区别。正如该文指出的那样,该结构面临扩展性问题,当AI训练、推理等大型…...
【Java ee初阶】jvm(3)
一、双亲委派机制(类加载机制中,最经常考到的问题) 类加载的第一个环节中,根据类的全限定类名(包名类名)找到对应的.class文件的过程。 JVM中进行类加载的操作,需要以来内部的模块“类加载器”…...
C++ for QWidget:connect(连接)
语法: QObject::connect(发射信号的对象,发射的信号,接收信号的对象,接收后执行的命令) #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-&g…...
uni-app学习笔记七-vue3事件处理
本文主要用于记录vue3中的点击事件和change事件 点击事件:v-on:click,可简写为click change事件,用于监听值发生改变的的事件处理:change 示例代码: <template><view class"box" click"onClick"…...
【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率
C容器的实践与应用:轻松掌握set、map与multimap的区别与用法 一. 序列式容器与关联式容器1.1 序列式容器 (Sequential Containers)1.2 关联式容器 (Associative Containers) 二. set系列使用2.1 set的构造和迭代器2.2 set的增删查2.2.1 插入2.2.2 查找2.2.3 删除 2.…...
吴恩达机器学习(1)——机器学习算法分类
1、机器学习算法 1、监督学习 在实际应用中最为常见的快速进度结果 2、非监督学习 2、监督学习(Supervised Learning) 2.1、回归算法 [!note] 监督学习 是指学习从 x -> y 或者从输入到输出映射的算法 监督学习的关键特征是你给学习算法提供学习…...
我的创作纪念日——512天
2023 年 12 月 19 日,我撰写了第 1 篇记录型博客《数据结构课程设计——报数问题》,这是我记录一段实践经验的开始。 回望那时的自己,还很稚嫩,刚刚迈入计算机的大门不久,一切都显得新鲜而充满挑战。今天是我成为创作者…...
SpringBoot快速上手
1.Maven Maven是项目管理工具,通过pom.xml文件来获取jar包,而不用手动去添加jar包 引入依赖之后需要刷新maven,以下这两个地方都可以 中央仓库 : Central Repository: Maven Repository: Central 2.Spring Boot 2.1创建项目…...
自动化:批量文件重命名
自动化:批量文件重命名 1、前言 2、效果图 3、源码 一、前言 今天来分享一款好玩的自动化脚:批量文件重命名 有时候呢,你的文件被下载下来文件名都是乱七八糟毫无规律,但是当时你下载的时候没办法重名或者你又不想另存为重新重…...
低延迟与高性能的技术优势解析:SmartPlayer VS VLC Media Player
在实时视频流的应用中,RTSP(Real-Time Streaming Protocol)播放器扮演着至关重要的角色,尤其是在视频监控、远程医疗、直播等高实时性需求的场景中。随着行业需求的不断升级,对播放器的低延迟、稳定性、兼容性等方面的…...
java中的Servlet2.x详解
一、Servlet 2.x 版本演进与核心特性 Servlet 2.x 是 Java Web 开发中承上启下的重要版本系列,主要包括 Servlet 2.4 和 Servlet 2.5 两个子版本。以下是其核心特性与改进: Servlet 2.4(2003年发布) XML Schema 支持:…...
大模型deepseek如何助力数据安全管理
敏感数据识别与处理 精准定位敏感信息 :运用多模态识别引擎技术,快速扫描上传文件与输入内容,精准识别身份证号、银行卡号、商业合同关键信息等各类敏感数据,并支持金融、医疗等行业定制化规则库,满足不同行业的特殊需…...
【linux驱动】【设备树】按键设备树讲解
设备树你添加电源键示例。 / {gpio-keys {compatible = "gpio-keys";#address-cells = <1>;#size-cells = <0>;button@1 {label = "Power Button";linux,code = <KEY_POWER>; // 按键编码,定义在include/uapi/linux/input-event-code…...
Vibe Coding:编程中的氛围与效率的艺术
引言 在软件开发的世界里,我们常常关注语言特性、框架选择和算法效率,却较少讨论一个同样重要的因素——编程时的"氛围"(vibe)。Vibe Coding是一种关注开发者心理状态、工作环境和整体"感觉"的编程方法论。它…...
算法岗实习八股整理——深度学习篇(不断更新中)
目录 激活函数特征典型例子sigmod函数tanh函数补充:零中心化输出优势非线性特性如何提升神经网络表现 激活函数 特征 非线性:激活函数满足非线性时,才不会被单层网络替代,神经网络才有意义可微性:优化器大多数是用梯…...
Java IO及Netty框架学习小结
Netty netty官网: Netty 什么是Netty? Netty 是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty 是一个 NIO 客户端服务器框架,可以快速轻松地开发网络应用程序(例如协议服务器和客…...
理想AI Talk第二季-重点信息总结
一、TL;DR 理想为什么要做自己的基模:座舱家庭等特殊VLM场景,deepseek/openai没有解决理想的基模参数量:服务端-300B,VLencoder-32B/3.6B,日常工作使用-300B,VLA-4B为什么自动驾驶可以达成&…...
软件架构之-论软件系统架构评估以及应用
论软件系统架构评估以及应用 摘要正文 摘要 2023年2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查系统项目开发,该项目旨在为长三角地区渔船建造设计院,以及渔船图纸审查机构提供一个便捷化的服务平台。在此项目中,…...
Java面试实战:从Spring Boot到分布式缓存的深度探索
Java面试实战:从Spring Boot到分布式缓存的深度探索 场景介绍 在一家著名的互联网大厂,面试官老王正对求职者“水货程序员”明哥进行Java技术面试。明哥带着一点紧张和自信,迎接这场技术“拷问”。 第一轮:基础问题 老王&#…...
2025年全国青少年信息素养大赛C++小学全年级初赛试题
一、单选题 1、在C中,表示逻辑运算符 "或" 的是?( )(5 分) A.|| B.& C. D. 解析:||是或者, &&是并且 2、…...
React中巧妙使用异步组件Suspense优化页面性能。
文章目录 前言一、为什么需要异步组件?1. 性能瓶颈分析2. 异步组件的价值 二、核心实现方式1. React.lazy Suspense(官方推荐)2. 路由级代码分割(React Router v6) 总结 前言 在 React 应用中,随着功能复…...
nginx相关面试题30道
一、基础概念与核心特性 1. 什么是 Nginx?它的主要用途有哪些? 答案: Nginx 是一款高性能的开源 Web 服务器、反向代理服务器及负载均衡器,基于事件驱动的异步非阻塞架构,擅长处理高并发场景。 主要用途:…...
java中的Servlet1.x详解
Servlet 1.x 是 Java Web 开发的早期规范,为后续版本奠定了基础。以下是其核心特性、使用方式及与现代版本的对比分析: 一、Servlet 1.x 的核心特性 基础接口与实现 Servlet 1.x 的核心是 javax.servlet.Servlet 接口,开发者必须直接实现其五…...
给大模型“贴膏药”:LoRA微调原理说明书
一、前言:当AI模型开始“叛逆” 某天,我决定教deepseek说方言。 第一次尝试(传统微调): 我:给deepseek灌了100G东北小品数据集,训练三天三夜。结果:AI确实会喊“老铁666”了…但英…...