大模型二次开发基本思路

开发方法分类

1、领域知识注入:Continue PreTraining(增量预训练): 一般垂直大模型是基于通用大模型进行二次的开发,需要用领域内的语料进行继续预训练。

2、知识召回(激发):SFT( Supervised Finetuning,有监督微调): 通过SFT可以激发大模型理解领域内的各种问题并进行回答的能力。

3、基础偏好对齐:奖励模型(RM)、强化学习(RL),可以让大模型的回答对齐人们的偏好,比如行文的风格。

4、高阶偏好对齐:RLHF(人类反馈强化学习训练)、DPO(直接偏好优化)。

开发阶段分类

模型分成3个阶段:

(1)、第一阶段:(Continue PreTraining)增量预训练,在海量领域文档数据上二次预训练GPT模型,以注入领域知识。

(2)、第二阶段: SFT(Supervised Fine-tuning)有监督微调,构造指令微调数据集,在预训练模型基础上做指令精调,以对齐指令意图。

(3)、第三阶段 : RLHF和DPO二选一。

各个阶段功能介绍

(Continue PreTraining)增量预训练

在大模型整个流程中,增量预训练是属于后期预训练(Post-pretraining)的范畴。Post-pretraining(后期预训练)是一种在模型的初始预训练和最终微调之间进行的训练方法。这种方法通常用于进一步适应模型以处理特定类型的数据或任务。以下是详细介绍,参考了之前对SFT和RLHF的描述方式:

1、后期预训练(Post-pretraining)

  • Post-pretraining是在通用预训练模型的基础上,对模型进行额外训练的过程,通常是为了使模型更好地适应特定的领域或任务。
  • 这个过程使用的数据集通常比预训练阶段的数据集更专注于某个领域或任务,但比微调阶段使用的数据集更大、更广泛。
  • 训练方法可以是监督学习,也可以是自监督学习,具体取决于可用数据的类型和训练目标。
  • Post-pretraining的目标是在不过度专化到某个特定任务的同时,提高模型对特定领域的理解和表现。

2、训练过程

  • 在Post-pretraining阶段,模型通常会在一个包含大量领域特定数据的数据集上进行训练。
  • 这个阶段的训练可以包括多种任务,如语言建模、文本分类、实体识别等,这些任务都是为了提升模型在特定领域的表现。
  • 训练过程中,模型的参数会根据领域特定数据集进行调整,以便更好地捕捉和理解领域内的语言模式和知识。

3、优势与目标

  • Post-pretraining允许模型在保持通用性的同时,增强对特定领域的理解,这有助于模型在后续的微调阶段更快速地适应特定任务。
  • 与 SFT 相比,Post-pretraining在微调之前提供了一个中间步骤,有助于模型更平滑地过渡到特定任务上。
  • 与 RLHF 相比,Post-pretraining不依赖于复杂的奖励机制或人类反馈,而是通过大量的领域特定数据来提升模型性能。
  • 总结来说,Post-pretraining是一个介于预训练和微调之间的训练阶段,它使用大量的领域特定数据来进一步调整模型,使其更好地理解特定领域的语言和任务。这个阶段不需要复杂的奖励机制,而是通过传统的监督或自监督学习方法来实现模型性能的提升。

微调 (Fine-tuning)

在这个阶段,预训练模型(可能经过了Post-pretraining)被进一步训练,以优化它在一个特定任务上的表现。

微调通常在一个相对较小的、特定任务的数据集上进行,这个数据集包含了明确的标签,模型通过监督学习来进行优化。

微调的目的是调整模型的参数,使其能够在特定任务上做出准确的预测。

SFT 监督微调

SFT (Supervised Fine-Tuning) 是微调的一种形式,强调在有监督的环境下进行。

在SFT阶段,我们使用特定领域的数据或私有化数据对预训练模型进行改良。这一阶段需要指令微调数据,数据集通常由输入(用户问题)和输出(标准答案)两个字段构成。标准答案通常由专家标注获得。

1、SFT是一种简单的微调方法,它使用带有正确答案的数据集来继续训练一个预训练的模型。

2、这种方法依赖于大量的标注数据,即每个输入都有一个预先定义的正确输出。

3、微调的目的是使模型更好地适应特定的任务或领域【垂直领域】,比如特定类型的语言理解或生成任务。

4、SFT通常不涉及复杂的策略或奖励函数,只是简单地最小化预测输出和真实输出之间的差异。

RLHF 人类反馈强化学习

RLHF是一种利用人类反馈来训练强化学习模型的方法。在RLHF中,模型通过与人类交互获得反馈,这些反馈作为奖励信号来指导模型的行为。RLHF通常用于训练能够生成更自然、更符合人类偏好的文本或其他输出的模型。这种方法特别适用于需要模型理解和适应人类偏好的场景。

1、RLHF (Reinforcement Learning from Human Feedback) 是一种更复杂的训练方法,它结合了监督学习和强化学习。

2、在RLHF中,模型首先通过监督学习进行预训练,然后通过人类提供的反馈来进行强化学习。

3、人类反馈可以是对模型输出的评分,或者是在模型输出之间做出选择的偏好。

4、强化学习部分涉及到定义一个奖励函数,该函数根据人类反馈来调整模型的行为,以优化长期的奖励。

5、RLHF的目标是训练出一个在没有明确标签的复杂任务中表现良好的模型,这些任务可能需要更细致的判断和调整。

模型对齐

  • 对齐阶段目的是进一步优化模型,使其更符合实际应用需求。在这个阶段,我们收集用户反馈数据(如点赞或点踩),并基于这些数据进行模型的进一步训练。
  • 对齐阶段的数据格式与SFT阶段不同:
  • 通常包含对同一问题的接受(accept)和拒绝(reject)两种答案。

问题解决策略及部署

  • 在SFT阶段,模型被训练以识别“想要的答案”,但未明确告知“不想要的答案”。为解决这一问题,我们通过收集用户反馈和日志数据,在对齐阶段告诉模型哪些答案是不可接受的。
  • 经过SFT和对齐阶段的训练,我们可以得到一个优化后的模型,这个模型可以部署上线。在对齐过程中,我们可以使用一些常见的方法,如PPO(Proximal Policy Optimization)和DPO(Distributional Proximal Optimization)。DPO由于训练过程相对简单,已成为对齐阶段的主流算法。
  • 总的来说,SFT更侧重于直接从标注数据中学习,而RLHF则试图通过人类的反馈来引导模型学习更复杂和更细粒度的行为。RLHF通常被认为是一种更接近人类学习方式的方法,因为它不仅仅依赖于标签数据,还依赖于人类对模型输出的评价和偏好。

RLHF与模型对齐区别

总的来说,模型对齐阶段可以视为一个更广泛的概念,而RLHF是一种特定的实现方式,特别是在强化学习领域。两者在实践中可能会有交集,但它们侧重点和应用方式有所不同。

1、联系:

两者都涉及到根据反馈来调整模型的行为,以提高模型的性能和适应性。

2、区别:

技术实现:对齐阶段可能不仅限于强化学习,还可以包括监督学习或其他类型的学习;而RLHF明确使用了强化学习框架。

反馈来源:对齐阶段的反馈可以来自用户的实际使用情况,而RLHF的反馈通常来自与模型交互的人类评估者。

目标:对齐阶段的目标是使模型的输出与用户期望对齐,而RLHF的目标是通过人类反馈来优化模型的决策过程。

技术创新与发展

RLHF:

基本精神是利用人类指导的力量有效地训练人工智能模型。传统的强化学习模型通过与环境交互产生的奖励来学习,而 RLHF 则不同,它引入了人类反馈作为宝贵的指导来源。这种反馈可以帮助人工智能系统导航复杂的决策空间,与人类价值观保持一致,并做出更明智和道德的选择。

DPO:

RLHF 是一个复杂且经常不稳定的过程,那我们是否可以通过直接优化语言模型来实现对其行为的精确控制,而无需使用复杂的强化学习,也可以有效学习到人类偏好呢?

DPO就是通过利用奖励函数与最优策略之间的映射关系,证明这个受限的奖励最大化问题可以通过单阶段的策略训练来精确优化来达到这个目的的。

它通过直接优化模型以生成首选响应,将问题表述为使用人类偏好对数据集的分类任务,本质上是在人类偏好数据上解决一个分类问题。DPO是稳定的、性能和计算成本轻量级的,无需拟合奖励模型,在微调期间从 LM 中采样,或执行显着的超参数调整。

图片

DPO是一种单阶段算法,可直接优化 LLM以生成首选响应。具体的实现手段是通过增加偏好样本的对数概率与减小非偏好样本响应的对数概率。DPO 最大化生成首选完成的概率并最小化生成非首选完成的概率。它不涉及多轮训练。

增量预训练(Continue Pretraining)

增量预训练也叫领域自适应预训练(domain-adapter pretraining),即在所属领域数据上继续预训练。

自适应预训练(domain-adapter pretraining)的方法可以分为三类:Prompt-based方法、representation-based方法和model mixed-based方法。

1、Prompt-based 方法

在使用模型全局tuning的方式适应下游任务时,预训练模型的泛化性能会被严重削弱,因此Prompt-based方法在保持预训练模型参数权重不变的条件下, 增加额外可学习的Prompt tuning 模块来实现对下游任务的泛化,这样就能较好地保持原模型的泛化性能。

在使用模型全局tuning的方式适应下游任务时,预训练模型的泛化性能会被严重削弱,因此Prompt-based方法在保持预训练模型参数权重不变的条件下, 增加额外可学习的Prompt tuning 模块来实现对下游任务的泛化,这样就能较好地保持原模型的泛化性能。

图片

VPT这种方式虽然可以较好地保留模型的泛化性,但是,在面对新的任务时,以往的Prompt模块的知识同样被覆盖,依旧遭遇了灾难性以往问题。为此,有学者提出了Prompt Pool的概念,设计了Prompt模块的集合,即P={P1,P2,…,Pm}(m表示该Pool的最大尺寸)。Prompt Pool的思想有效避免了单一Prompt的问题,但是Pool的设计使得其需要进行Prompt Selection操作,也就是需要将特定任务与其对应的Prompt模块进行索引匹配。

L2P算法是一种较为常用的Prompt selection算法,该算法设计了一种Key-Query的Prompt匹配方法,也就是为每一个Prompt提供一个可学习的索引键k,即P={(k1,P1),(k2,P2),…,(km,Pm)。L2P利用预训练模型将输入特征编码到Key对用的嵌入空间中,然后利用余弦距离损失函数在已有的Pool中搜索最近似的Key。接着,利用如交叉熵损失等方法对搜索到的Key对应的Prompt进行进行优化。

在这里插入图片描述

类似的Prompt Selection 算法很多,如DualPrompt算法,该算法将Prompt进行解耦,分化为General Prompt和Expert Prompt。General Prompt面向所有任务,为所有任务中共享信息,而Expert Prompt针对独立任务,数量与任务量一致。其采用了和L2P相同的key-query匹配策略。

图片

Prompt Selection虽然可行,但仍是硬匹配,选项有限。基于注意力信息加权的Prompt Combination方法则有效缓解了该问题。如CODA-Prompt通过对Prompt Pool进行注意力机制嵌入,为每个注意力赋予自适应权重,进而求算全局Key-Query的加权和,实现可学习式Prompt组合。我觉得稀疏式注意力Prompt combination应该也是很有趣的研究。

图片

从根本上来说Prompt Combination仍受制于Prompt Pool的范围。为此, 许多学者则开展Prompt Generation有关的研究,如DAP,其利用MLP进行特定任务提示信息的编码生成。

图片

优点:

Prompt 有助于弥合domain gap,并可有效地对特定任务的知识进行编码。

Prompt Design 属于lightweight模块,与input feature具有相同的维度,因此保存Prompt是parameter-efficient,适用于边缘场景。

Prompt Pool作为预训练模型的外部存储器,其支持自适应知识的检索和特定实例的预测。

缺点:

一些研究]发现L2P中的prompt selection过程收敛到一个单点,使得prompt selection只集中在特定子集上。

由于key和query在整个学习过程中不断变化,这些参数的更新将会消除先前任务的参数,导致matchimg-level和prompt-level的遗忘,使prompt selection成为CL的瓶颈。

固定大小的Prompt Pool会使得模型的表示能力受限。但是,若Prompt Pool随着数据的发展而增长,可能会为旧任务检索新的提示,导致训练和测试之间的不匹配。

最后,一些研究发现prompt-based CL的性能低于简单的representation-based的baseline性能。并且批量提示有损比较的公平性。

2. Representation-based 方法

representation-based方法直接利用预训练模型强大的泛化性和通用性来实现持续学习。比如Simple-CIL方法,该算法是ADAM算法原文中提出的Baseline,Simple-CIL冻结预训练模型参数,并通过求算类别中心的方式来构建Classifier。具体来说,在面对很多类别时,计算同类的embedding或features的平均值,并将该平均值作为该类别的标准(prototype),最后结合类别标准与余弦比较的方法替换模型的原始Classifier。

虽然基于prototype的方法存在一定的作用,但是并未很好地适应下游任务。为此,一些研究在基于prototype方法的基础上结合了外置参数高效调节模块或者外置适配器来使得预训练模型更加适应下游任务,如ADAM等。

在这里插入图片描述

ADAM等算法在进行类别标准设定时,类别标准之间的仍存在联系,导致任务效果降低。为此,RanPAC算法则采用online LDA classifier来去除原始方法prototype计算结果之间的相关性,加大类别间的分布差异。此外,RanPAC算法利用Random Projection layer将features映射到高维空间中,并在高维空间中进行prototype的计算,以使得特征分布符合高斯拟合。

图片

相较于前面将预训练模型的通用语和适应性分离处理的方式,SLCA算法采用了差异学习率调整和特征经验重播的方式进行持续学习研究。该算法使用较小的learn rate调整模型主体部分,而使用较大的learn rate 调节模型的classifier,以实现模型的逐步微调和classifier的快速适应。为了避免忘记以前的分类器,SLCA还对分类特征分布进行建模,并重播它们以校准classifier。

图片

优点:

由于class prototype代表了对应类别最常见的标准格式,因此利用其构建模型具有直观和可解释性。

Representation-based 方法主要是冻结backbone和更新classifier权重。lightweight的更新成本增加了其现实应用的可行性。

缺点:

将不同模型的特征连接起来形成class prototype,容易造成模型信息冗余。例如,不同的backbone中存在重复提取共享特征。

当下游任务涉及多个领域时,在第一阶段调整模型不足以弥合数据集之间的领域差距。在这种情况下,不断调整backbone可能更适合提取特定于任务的特征。

3. Model Mixture-based 方法

Model Mixture-based 方法在持续学习工程中构建了一组模型,然后再推理阶段通过Model Ensemble和Model Merge来进行信息综合决策。

Model Ensemble中,ESN算法凭借预训练模型强大的通用性,构建多个classifier,在面对新任务重新初始化和训练一个新的classifier。在推理时,采用投票策略来整合多个模型的结果进行最终决策。

由于Model Ensemble的核心因素取决于模型的方差,一些研究通过增强模型之间的多样性来替代使用相同的预训练模型构建不同的classifier。如PromptFusion利用预训练的ViT和CLIP,并在推理过程中动态地对logit进行组合,即f(x) = λ fvit (x) +(1−λ)fclip(x)。

图片

与多个backbone的集成不同,PROOF采用了仅使用单个CLIP的更全面的推理方法。由于CLIP支持视觉和文本特征的跨模态匹配,因此PROOF设计了一个三层集成,考虑image-to-text、image-to-image prototype、image-to-adjusted text的跨模态融合。

在这里插入图片描述

Model Merge将多个不同的模型合并为一个统一的模型,无需要额外的训练。LAE定义了online和offline学习协议,online模型通过交叉熵损失进行更新,目的是在新的任务中获取新的知识。离线模型则通过Model Merge进行更新,例如指数移动平均(EMA): θ offline←α·θ offline +(1−α)·θ Online,其中α为权衡参数。LAE仅将EMA应用于参数高效调谐模块(如prompt),其利用online和offline模型的最大logit进行推断。

图片

与LAE一样,ZSCL将合并技术应用于CLIP模型,目的是在持续学习过程中保持其zero-shot性能。然而,随着EMA中权衡参数的改变,CLIP性能不再具有鲁棒性。因此,ZSCL建议每隔几次迭代合并参数,从而在模型训练期间创建平滑的损失轨迹。

图片

此外,CoFiMA注意到EMA在Merge过程中对每个参数的重要性是相等的,CoFiMA 在Merge过程中插入Fisher information(费雪信息)作为每个参数的估计重要性。

图片

优点:

  1. 学习多个模型可以做出不同的决策。因此,使用Model Ensemble和Model Merge自然会产生更健壮的结果。
  2. 由于直接合并模型进行统一预测,因此可以调整前模型和后模型的权重,以突出不同阶段之间知识共享的重要性。
  3. 由于模型集将在推理过程中合并,因此最终的推理成本不会随着模型集中添加更多模型而增加。

缺点:

  1. Model Ensemble需要保存所有的历史模型,并消耗大量的内存缓冲区。虽然基于Model Merge不需要这么大的成本,但合并大型backbone的权重也需要大量的额外计算。
  2. 决定Merge哪些参数仍然是问题。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CAD是计算机辅助设计的简称,是现代设计和制造中不可缺少的工具。CAD软件呈现出的图形虽然精细,但实际上都是由一些基本的几何构件组成,其本质上是由数据构成。CAD二次开发就是在CAD软件基础之上,通过编写程序,扩展其功能,实现特定需求。 从零开始学习CAD二次开发需要掌握以下技能: 1. 掌握对CAD不同版本中的API 不同版本的CAD会有不同的API,要想开发对应版本的插件或者应用,我们需要对此有足够的准备。最常用的API是ObjectARX,它是由Autodesk开发的一组C++类库,通过ObjectARX可以轻松创建扩展功能和应用。 2. 理解CAD的对象模型 在CAD中,对象分为诸如CAD图形、块、对象等等元素。单独一个对象只有它的位置、描述等元信息。当许多对象互相组合,我们才能创建出完整的CAD图形。插件开发的核心就是用代码操作这些对象,并实现特定的功能。 3. 熟悉CAD的各种数据结构 在二次开发过程中,我们需要对CAD中出现的数据结构有所了解。比如说图层、块、样式、文本,等等。这些数据结构是对CAD图形数据的描述,对于一个开发者来说,掌握这些结构能让我们更好的实现开发需求。 总之,CAD二次开发需要我们在熟悉CAD软件的基础上,掌握API、对象模型和数据结构等技能。通过自学和实践不断提升,逐步走上从入门到精通的道路。 ### 回答2: CAD二次开发是一项非常重要的技能,它的应用非常广泛,特别是在机械制造、建筑设计等领域。如果你想从入门到精通,需要具备以下几点能力: 一、掌握CAD的基本知识 在CAD二次开发之前,需要先学习CAD的基本知识,包括绘图、图层管理、坐标系、实体、属性等。只有有了这些基础知识,才能更好地进行二次开发。 二、学习CAD二次开发工具 掌握CAD二次开发最重要的就是掌握工具。常见的CAD二次开发工具有Lisp、.NET、VBA等,需要选择一种或多种进行学习。这些工具的学习成本不同,但都需要进行练习才能掌握。 三、熟悉CAD二次开发API 掌握CAD二次开发的关键是学习API(应用程序接口)。CAD提供了很多的API,比如ObjectARX、AutoLisp、VBA等,需要深入学习和掌握。API能够帮助开发者进行自动化操作,实现快速编程。 四、不断实践 只有不断地练习才能够真正掌握CAD二次开发的技能。可以通过编写一些小程序、脚本等来加强自己的实践,同时也可以借鉴其他开发者的代码和程序来学习和提高。 总的来说,如果想要从入门到精通CAD二次开发,需要先确立自己学习目标,根据目标选择合适的工具和API进行学习,并且不断进行实践和练习,才能够真正掌握这项技能。 ### 回答3: CAD二次开发从入门到精通,顾名思义就是通过编写程序来扩展CAD软件的功能。通过二次开发,可以更好地满足用户的需求,提高CAD软件的效率和使用体验。下面将从入门、基础知识、实践以及进阶几个方面来探讨CAD二次开发的全过程。 一、入门: 首先需要掌握好CAD软件的基本操作和各种命令的使用,其次要了解AutoCAD的指令集以及CAD编程的基本原理和语言。学习CAD二次开发需要对VB、VBA、Lisp、.Net等编程语言均有一定了解。 二、基础知识: 了解CAD应用程序界面(CAD API),能够查询和编辑CAD图形数据。CAD二次开发的主要技术包括VB、VBA、Lisp、.Net等,其中Lisp较为常用,具有简单易学的特点。学习Lisp从简单的语句语法入手,掌握几个重要的函数,如DEFUN、SETQ、IF等。同时,要具备良好的逻辑思维和代码调试能力,对常用CAD命令如画线、画圆等的操作对象进行熟悉,掌握CAD软件所涉及的一些实体类、坐标系等。 三、实践: 通过实际的编程实践,将理论知识转化为实际的应用。编写程序的过程中需要有逻辑思路,并且要有完备的测试流程,以确保程序能够顺利运行。实践的过程中,需要有学习笔记,并且在理解基础语法后,不断进行实践,打造自己的CAD二次开发工具库。 四、进阶: 在通过实践对CAD二次开发有了深刻理解后,可以一步步深入到更高阶段。例如,完成ACAD/BRX的二次开发,进行三维图形编程等。在进阶阶段,需要不断的学习、实践和总结,同时还要有自我提升和不断完善自己的编程技术的意识。 总结: 学习CAD二次开发需要扎实的基础知识,实践编程工程,并且不断提升技术。需要坚持学习,在实践中切实提高,不断积累经验,不断提升自我技术水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值