大模型开发还是应用:从业者选择指南
近日,OpenAI 预计在秋季推出代号为'草莓'的新 AI。从专注于数学问题到处理主观营销策略,"草莓"模型展现出惊人的多样性。
大模型预训练成本高昂,涉及 GPU、数据、存储及人力等多重投入。绝大多数从业者应聚焦于大模型应用而非基座开发。应用策略按难度分为 Prompt Engineering、Self-Reflection、RAG、Agent 和 Fine-tuning。其中 RAG 解决知识时效性与幻觉问题,Agent 实现自主决策,Fine-tuning 适应特定任务。建议根据资源与需求选择合适的落地路径。

近日,OpenAI 预计在秋季推出代号为'草莓'的新 AI。从专注于数学问题到处理主观营销策略,"草莓"模型展现出惊人的多样性。
大模型的更新让人眼花缭乱,但整个大模型的生态圈,其实是分工明确的。大部分的大模型从业者都是在使用大模型,而不是在开发基座大模型。
大模型预训练的代价是多方面的,涉及显卡(GPU)、数据、存储等多个角度。以下是对这些方面的详细阐述:
训练大型模型需要大量的 GPU 资源。例如,训练一个千亿参数规模的大模型可能需要数千个英伟达 A100 GPU,每个 GPU 的成本约为 10,000 美元。如果按照这样的规模计算,仅 GPU 成本就可达数亿美元。
大模型训练需要海量的数据。数据的采集、清洗、标注和存储都需要成本。例如,预训练数据集可能需要经过大量的前置步骤,包括数据抓取、清洗、转换等,这些步骤涉及大量的实验,处理的数据量通常是正式训练数据集的 100 倍以上。
存储系统性能与成本之间的平衡是一个重要考虑因素。高性能文件系统如 GPFS、Lustre 等通常依赖全闪存(NVMe)和高性能网络,成本较高。对象存储虽然成本较低,但可能需要额外的人力和时间去处理数据同步、迁移和一致性管理等任务。
数据中心的运营成本包括电力、冷却和维护等。这些成本随着 GPU 数量和数据中心规模的增加而增加。
训练大型模型需要一支专业的工程师和科学家团队,包括数据工程师、AI 研究员、软件工程师等。这些人才的薪资和福利是另一个重要的成本因素。
绝大部分的大模型从业者都不会从事基座大模型的开发。
预训练的很多技术,你可能在技术博客里看到,可能会在面试的时候被问到,但也许永远也不会在实际工作中用到。因为预训练太昂贵了,而且很多公司也没有这个需求。
大部分的大模型从业者都是在使用大模型,而不是在开发基座大模型。
从难易程度上来分,大模型的应用基本包含以下五个方面:
| 策略 | 难度 | 数据要求 |
|---|---|---|
| Prompt Engineering | 低 | 无 |
| Self-Reflection | 低 | 无 |
| RAG | 中 | 少量 |
| Agent | 中 | 少量 |
| Fine-tuning | 高 | 中等 |
Prompt Engineering 是优化 prompts 以获得有效输出的艺术和科学。它涉及设计、编写和修改 prompts,以引导 AI 模型生成高质量、相关且有用的响应。
常见的技巧包括零样本提示(Zero-shot)、少样本提示(Few-shot)以及思维链(Chain-of-Thought)。通过精心设计的指令,开发者可以在不修改模型权重的情况下显著提升模型表现。例如,在复杂推理任务中,明确要求模型'一步步思考'往往能获得更准确的结果。
在实际工作中,我发现很多伙伴并没有意识到 Self-Reflection 的重要性。其实 Self-Reflection 是一个简单但非常有用的策略。
以一个 NL2SQL 的例子来说明:
question = ''
prompt = f'{question}'
plain_query = llm.invoke(prompt)
try:
df = pd.read_sql(plain_query)
print(df)
except Exception as e:
print(e)
拿到了错误后,我们可以通过反思错误,来改进我们的问题,直到我们得到我们想要的答案。
reflection = f"Question: {question}. Query: {plain_query}. Error:{e}, so it cannot answer the question. Write a corrected sqlite query."
reflection_prompt = f'{reflection}'
reflection_query = llm.invoke(reflection_prompt)
try:
df = pd.read_sql(reflection_query)
print(df)
except Exception as e:
print(e)
这种机制允许模型自我纠错,显著提高了复杂任务的成功率。
检索增强生成(Retrieval-Augmented Generation,简称 RAG)通过结合大型语言模型(LLM)和信息检索系统来提高生成文本的准确性和相关性。这种方法允许模型在生成回答之前,先从权威知识库中检索相关信息,从而确保输出内容的时效性和专业性,无需对模型本身进行重新训练。
RAG 技术之所以重要,是因为它解决了 LLM 面临的一些关键挑战,例如虚假信息的提供、过时信息的生成、非权威来源的依赖以及由于术语混淆导致的不准确响应。通过引入 RAG,可以从权威且预先确定的知识来源中检索信息,增强了对生成文本的控制,同时提高了用户对 AI 解决方案的信任度。
典型的 RAG 流程包括:
Agent 指的是一个能够感知其环境并根据感知到的信息做出决策以实现特定目标的系统,通过大模型的加持,Agent 比以往任何时候都要更加引人注目。
以 Langchain 为代表的 Agent 框架,是目前在国内最被广泛使用的开源框架。LangChain 刚开始的设计理念是将工作流设计为 DAG(有向无环图),这就是 Chain 的由来;
随着 Multi-Agent 理念的兴起和 Agent 范式的逐渐确立,Agent 工作流会越来越复杂,其中包含了循环等条件,需要用 Graph 图的方式,由此又开发了 LangGraph。
Agent 的核心能力在于工具调用(Tool Use)和记忆管理(Memory)。它们可以自主决定何时使用计算器、搜索互联网或调用 API,并记住之前的交互历史以维持多轮对话的连贯性。
相较于基础大模型动辄万卡的代价,微调可能是普通个人或者企业少数能够接受的后训练大模型 (post-training) 的方式。
微调是指在一个预训练模型 (pre-training) 的基础上,通过少量的数据和计算资源,对模型进行进一步训练,以适应特定的任务或者数据集。
微调分为两种类型:全参微调(full fine-tuning)和参数高效微调(parameter efficient fine-tuning)。
参数高效微调(Parameter-Efficient Fine-Tuning,简称 PEFT)是一种针对大型预训练模型(如大语言模型)的微调技术,它旨在减少训练参数的数量,从而降低计算和存储成本,同时保持或提升模型性能。
PEFT 通过仅微调模型中的一小部分参数,而不是整个模型,来适应特定的下游任务。这种方法特别适用于硬件资源受限的情况,以及需要快速适配多种任务的大型模型。
PEFT 有以下几种常见的方法:
LoRA(Low-Rank Adaptation)是目前最流行的 PEFT 技术之一,它通过在原有权重矩阵上叠加低秩分解矩阵来实现高效微调,极大地降低了显存占用。
大模型已经进入到应用落地阶段,此时的大模型从业者,更多的应该是在使用大模型,而不是在开发基座大模型。
对于大多数企业和开发者而言,优先探索 RAG 和 Agent 方案能以最低成本获得最大收益。只有在垂直领域数据极其丰富且通用模型无法满足特定风格或逻辑时,才考虑进行 Fine-tuning。预训练基座模型则应留给拥有顶级算力和数据资源的巨头机构。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online