不是每个国家都需要砸几十亿美元重造一个 OpenAI。李开复在凯捷咨询研究院的专访中把这件事说透了:开源是一条被低估但切实可行的"第三条路",能让各国在保持数据主权的前提下,快速拥有可用的 AI 能力。
闭源、自建、开源——三条路的成本账
实现 AI 主权,直觉上只有两条路:要么用闭源 API,把数据交出去;要么从头训练大模型,把算力烧进去。李开复指出这两条路都有硬伤。
闭源路线的问题不只是隐私合规。当你把业务数据喂给别人的模型,你失去的是对模型行为的控制权——它什么时候更新、更新后行为怎么变、会不会突然涨价,你都没有发言权。更关键的是,闭源模型的知识边界是固定的,你无法注入本国特有的领域知识。
自建路线的问题更直接:训练一个 GPT-4 级别模型的成本在数亿美元量级,且需要顶尖研究团队。全球能负担这个投入的国家和组织屈指可数。
开源路线的账就不一样了。你拿到的是一个已经完成预训练的模型权重,成本从"烧钱训练"变成"花钱推理和微调"。以 Llama 3、Qwen 2、DeepSeek 为代表的开源模型族,已经在多数基准上逼近甚至超过同代闭源模型。主权不再是"能不能造模型",而是"能不能在本地运行并掌控模型"。
中国在开源生态里的三个结构性优势
李开复特别提到中国在开源 AI 上的独特位置,这不是情绪判断,而是结构性事实。
工程效率碾压。 中国团队在模型部署、推理优化、长上下文扩展上的迭代速度极快。DeepSeek-V2 的 MLA 注意力机制、Qwen 团队对长上下文的持续突破,都是工程层面而非算法层面的创新,但恰恰是这些创新让开源模型的实际可用性大幅提升。
硬件适配的紧迫性催生了软件生态。 因为 GPU 供给受限,中国被迫在国产芯片上做适配。这种"被迫"反而催生了更丰富的推理框架生态——vLLM 的分支适配、MindIE 等国产推理引擎,让开源模型在多种硬件上的部署路径比闭源模型更宽。
数据与场景的本土化天然适配开源。 开源模型允许你做 LoRA、DoRA 等参数高效微调,注入本地领域数据。中国的金融、医疗、政务场景有大量结构化但未公开的数据,这些数据不能喂给闭源 API,但可以用来微调本地部署的开源模型。
实操:用开源模型搭建一个最小主权 AI 栈
下面是一个从模型下载到本地推理到领域微调的完整流程,所有命令可直接复制运行。我们用 Qwen2.5-7B-Instruct 作为基座模型,因为它在中文能力上表现突出且社区活跃。
第一步:本地部署推理服务
用 vLLM 启动一个兼容 OpenAI API 格式的推理服务,这样你现有的应用代码几乎不用改:
# 安装 vLLM(需要 Python 3.9+,CUDA 12.1+)
pip install vllm
# 启动推理服务,开放 OpenAI 兼容 API
vllm serve Qwen/Qwen2.5-7B-Instruct \
--api-key your-sovereign-key \
--host 0.0.0.0 \
--port 8000 \
--max-model-len 8192 \
--gpu-memory-utilization 0.9
启动后,你的应用可以像调用 OpenAI 一样调用本地模型:
from openai import OpenAI
# 指向你的主权推理服务,而非远端 API
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="your-sovereign-key"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[
{"role": "system", "content": "你是一个中国金融法规助手,只基于用户提供的上下文回答。"},
{"role": "user", "content": "根据以下条文,企业发行债券的主体资格要求是什么?\n《公司法》第十六条:公司发行债券…"}
],
temperature=0.3
)
print(response.choices[0].message.content)
数据没有离开你的服务器,模型行为由你的 system prompt 控制。
第二步:领域微调注入本土知识
当基座模型对你的垂直领域不够精准时,用 LoRA 微调,只训练极少量参数:
# 安装微调工具链
pip install transformers peft datasets accelerate
# 下载基座模型权重
huggingface-cli download Qwen/Qwen2.5-7B-Instruct \
--local-dir ./qwen2.5-7b-base
微调脚本(保存为 finetune_lora.py):
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments
from peft import LoraConfig, get_peft_model, TaskType
from datasets import load_dataset
from trl import SFTTrainer
model = AutoModelForCausalLM.from_pretrained(
"./qwen2.5-7b-base",
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("./qwen2.5-7b-base")
# LoRA 只训练 ~0.5% 的参数,显存需求从 ~80GB 降到 ~16GB
lora_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
r=16, # LoRA 秩
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_dropout=0.05
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# 输出类似:trainable params: 11,272,192 || all params: 7,615,616,000 || 0.15%
# 准备你的领域数据(JSONL 格式,每行一条对话)
# {"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
dataset = load_dataset("json", data_files="your_domain_data.jsonl", split="train")
training_args = TrainingArguments(
output_dir="./qwen2.5-7b-lora-finetuned",
num_train_epochs=3,
per_device_train_batch_size=4,
gradient_accumulation_steps=8,
learning_rate=2e-4,
fp16=True,
logging_steps=10,
save_steps=100
)
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
args=training_args,
train_dataset=dataset,
max_seq_length=2048,
packing=False
)
trainer.train()
# 保存 LoRA 权重(仅几十 MB,而非完整模型的 ~15GB)
model.save_pretrained("./qwen2.5-7b-lora-finetuned")
tokenizer.save_pretrained("./qwen2.5-7b-lora-finetuned")
微调完成后,推理时动态加载 LoRA 权重:
from peft import PeftModel
base_model = AutoModelForCausalLM.from_pretrained(
"./qwen2.5-7b-base", torch_dtype="auto", device_map="auto"
)
sovereign_model = PeftModel.from_pretrained(
base_model, "./qwen2.5-7b-lora-finetuned"
)
# 现在你拥有一个注入了本国领域知识的、完全本地运行的模型
第三步:国产芯片适配(可选但关键)
如果 GPU 供给不稳定,可以在华为昇腾等国产芯片上部署。vLLM 社区已有适配分支,MindIE 也提供直接支持:
# MindIE 部署配置示例(昇腾 910B)
# mindie_config.yaml
server:
host: 0.0.0.0
port: 8000
api_format: openai # 保持 API 兼容,应用层无需改动
model:
name: Qwen2.5-7B-Instruct
path: ./qwen2.5-7b-base
lora_path: ./qwen2.5-7b-lora-finetuned
max_batch_size: 32
max_seq_len: 8192
hardware:
device: ascend
npu_ids: [0, 1] # 使用两张昇腾 910B
关键点:API 格式保持 OpenAI 兼容。这意味着你的应用层代码在 GPU 和国产芯片之间可以零改动切换,主权不等于封闭接口。
主权 AI 的边界与取舍
开源路线不是万能药,有几个现实边界需要正视:
- 安全合规仍需自己兜底。 开源模型权重公开意味着攻击者也能拿到它,红队测试、输出过滤、审计日志这些安全层必须自己建设。模型开源不等于安全开源。
- 持续跟进需要工程投入。 开源模型迭代很快,Llama 3 到 3.1 到 3.3,Qwen 2 到 2.5,半年一个代际。你需要一个团队持续评估新版本、做迁移测试,这不是一次性投入。
- 微调不是万能的。 LoRA 能注入领域知识,但不能改变模型的核心推理能力。如果你的场景需要极强逻辑推理,可能需要等待更强的开源基座,而非靠微调弥补。
- 硬件生态仍在成熟中。 国产芯片的推理框架在稳定性和性能上与 CUDA 生态仍有差距,生产环境需要充分压测。
主权 AI 开源路线采纳清单
在决定走开源主权路线前,逐项确认:
| 检查项 | 状态 |
|---|---|
| 是否有本地部署的硬件资源(GPU 或国产芯片)? | ☐ |
| 是否有至少 2 人能持续跟进开源模型版本迭代? | ☐ |
| 是否有领域数据集可用于微调(JSONL 格式,至少 500 条高质量对话)? | ☐ |
| 是否建立了输出过滤和审计日志机制? | ☐ |
| 是否对国产芯片推理路径做了压测(如适用)? | ☐ |
| 是否确认了开源模型的许可证允许你的使用场景? | ☐ |
开源模型给了你主权的基础设施,但主权本身是一种持续的工程实践——你需要持续评估、持续微调、持续安全加固。李开复说的"第三条路"不是一条省力的路,而是成本可控、控制权在手、且今天就能起步的路。