一、信创AI落地的三层挑战

把LLM应用部署到信创环境,挑战远不止“换个操作系统”那么简单。它涉及从底层硬件到上层应用的全栈适配,可以拆解为三个层次:

1. 操作系统层:AI能力底座的“水土不服”

国产操作系统(如银河麒麟、统信UOS、openEuler)在办公场景已相当成熟,但对AI负载的支持仍在快速演进中。主要问题包括:

硬件驱动兼容性:NVIDIA GPU在国产系统上的驱动支持相对成熟,但国产AI加速卡(如昇腾、寒武纪、天数智芯等)的驱动和软件栈仍在完善中。好消息是,银河麒麟高级服务器操作系统已实现对海光、沐曦、昇腾、寒武纪等国产加速卡的原生驱动支持。但不同厂商的适配进度参差不齐,落地前必须做充分验证。

AI框架与库的适配:PyTorch、TensorFlow等主流框架的国产系统版本依赖问题,vLLM、Ollama等推理引擎的兼容性,都是实际部署中容易踩坑的点。麒麟软件通过提供“开箱即用”的标准化容器镜像,将算力平台、深度学习框架和LLM应用封装为可移植的运行环境,有效简化了配置复杂性。

性能调优差异:国产操作系统在NUMA调度、文件系统等方面有独特的优化机制。以openEuler为例,通过NUMA调度优化可使DeepSeek大模型推理性能提升60%以上,通过推理引擎层参数加载优化可实现Qwen3模型推理性能提升20%。但这些优化需要针对性配置,并非“一键生效”。

2. 数据库层:向量检索的“适配深坑”

大模型应用的核心能力之一是RAG(检索增强生成),而RAG依赖向量数据库。在信创环境下,向量数据库选型和适配的难度被严重低估。

兼容≠好用:一位一线DBA分享了三年的适配经历:“从最初的兴奋期待,到中间无数次‘明明文档写了却跑不通’的崩溃,再到如今看着索引构建失败时的麻木”。很多国产数据库虽然宣称兼容向量检索生态,但底层存储引擎、查询优化器与通用开源数据库存在本质差异——同样的索引参数,在测试环境完美运行,到生产环境却导致查询延迟从50毫秒飙升到5秒。

选型的两难:独立向量数据库(如Milvus、Pinecone)在纯检索性能上有优势,但需额外构建数据同步链路,带来一致性和运维复杂度问题;国产关系型数据库内置向量引擎则可复用现有事务日志、备份机制和运维体系,在牺牲部分检索性能的前提下,换取架构的极大简化。在数据一致性要求极高的政务、金融场景,后者往往更稳妥。

以下是一个在国产数据库上创建向量表的代码示例(基于支持向量插件的国产关系型数据库):

-- 在国产关系型数据库中创建带向量列的资产表
CREATE TABLE asset_embeddings (
    id BIGSERIAL PRIMARY KEY,
    asset_id VARCHAR(64) NOT NULL,
    asset_name VARCHAR(255),
    -- 创建向量列存储768维embedding
    embedding vector(768),
    -- 业务元数据字段
    category VARCHAR(64),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 创建HNSW向量索引(需要根据数据库具体语法调整)
CREATE INDEX idx_asset_embedding ON asset_embeddings 
USING vectors (embedding vector_cosine_ops);

-- 插入包含向量的数据(embedding由业务代码生成)
INSERT INTO asset_embeddings (asset_id, asset_name, embedding, category)
VALUES (
    'ASSET-001',
    '国务院2025年工作报告全文',
    '[0.001, -0.023, ...]'::vector,  -- 由嵌入模型生成
    'policy_doc'
);

-- 向量相似度查询(语义检索)
SELECT asset_name, category,
       1 - (embedding <=> '[0.002, -0.019, ...]'::vector) AS similarity
FROM asset_embeddings
WHERE category = 'policy_doc'
ORDER BY embedding <=> '[0.002, -0.019, ...]'::vector
LIMIT 10;

3. 中间件层:数据流通的“断头路”

在信创全栈中,中间件是最容易被忽视但最关键的环节。它承担着系统间数据交换、协议转换、消息可靠传输的重任——而这些,恰恰是LLM应用与业务系统打通时必不可少的“胶水层”。

国产中间件的成熟度:以东方通TONG系列为代表的国产中间件,已与产业链上下游完成10000余项兼容互认证,覆盖芯片、操作系统、数据库到应用软件的完整生态。但实际项目中,中间件的选型和配置仍需仔细验证——并非所有中间件产品都原生支持AI场景下的高吞吐、低延迟数据流。

智能体平台的新需求:AI应用催生了新的中间件形态。东方通的TongAgentPlatform智能体平台用于拉通业务应用与大模型服务,实现数据实时感知与安全交互;中创股份则将中间件与大模型结合,形成具身智能体,在金融、军工等领域落地智能尽调、合规审查等场景。这些“AI中间件”正在成为信创AI落地的关键拼图。

二、实战:在国产操作系统上部署LLM应用

以openEuler 22.03 LTS系统为例,演示在信创环境中从零部署大模型推理服务的过程。

环境准备

# 检查操作系统版本
cat /etc/os-release
# 输出: openEuler 22.03 (LTS)

# 检查GPU驱动(以NVIDIA为例)
nvidia-smi
# 若无输出,需先安装GPU驱动和CUDA

# 安装Ollama——开源的本地大模型运行框架
curl -fsSL https://ollama.com/install.sh | sh

# 拉取并运行Qwen2.5-7B模型(国产大模型,更适合中文场景)
ollama run qwen2.5:7b

构建RAG应用的Python服务

以下是一个在信创环境中运行的简易RAG服务示例,使用FastAPI提供API接口:

# rag_service.py
import os
import json
from typing import List, Optional
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import psycopg2
from psycopg2.extras import RealDictCursor
import ollama
import numpy as np

app = FastAPI(title="信创RAG服务", version="1.0.0")

# 数据库配置(使用国产数据库或PostgreSQL + 向量插件)
DB_CONFIG = {
    "host": os.getenv("DB_HOST", "127.0.0.1"),
    "port": os.getenv("DB_PORT", "5432"),
    "database": os.getenv("DB_NAME", "knowledge_base"),
    "user": os.getenv("DB_USER", "rag_user"),
    "password": os.getenv("DB_PASS", "secure_password")
}

def get_embedding(text: str) -> List[float]:
    """调用本地Ollama获取embedding向量"""
    response = ollama.embeddings(
        model="qwen2.5:7b",  # 使用国产大模型生成embedding
        prompt=text
    )
    return response["embedding"]

def vector_search(query_text: str, top_k: int = 5):
    """向量语义检索"""
    query_vector = get_embedding(query_text)
    
    conn = psycopg2.connect(**DB_CONFIG)
    cur = conn.cursor(cursor_factory=RealDictCursor)
    
    # 使用向量相似度算子(具体语法取决于国产数据库的向量扩展)
    sql = """
        SELECT id, content, source,
               1 - (embedding <=> %s::vector) AS similarity
        FROM documents
        WHERE embedding IS NOT NULL
        ORDER BY embedding <=> %s::vector
        LIMIT %s
    """
    cur.execute(sql, (query_vector, query_vector, top_k))
    results = cur.fetchall()
    cur.close()
    conn.close()
    return results

class QueryRequest(BaseModel):
    question: str
    top_k: Optional[int] = 5

class QueryResponse(BaseModel):
    answer: str
    sources: List[dict]

@app.post("/rag/query", response_model=QueryResponse)
async def rag_query(request: QueryRequest):
    """RAG问答接口"""
    # 1. 检索相关文档
    retrieved = vector_search(request.question, request.top_k)
    if not retrieved:
        raise HTTPException(status_code=404, detail="未找到相关知识")
    
    # 2. 构造上下文
    context = "\n\n".join([
        f"[来源: {doc['source']}] {doc['content']}" 
        for doc in retrieved
    ])
    
    # 3. 调用大模型生成回答
    prompt = f"""基于以下参考资料回答用户问题。如果资料不足以回答,请如实告知。
    
参考资料:
{context}

用户问题:{request.question}

请基于参考资料给出简洁、准确的回答:"""
    
    response = ollama.chat(
        model="qwen2.5:7b",
        messages=[{"role": "user", "content": prompt}]
    )
    
    return QueryResponse(
        answer=response["message"]["content"],
        sources=retrieved
    )

@app.get("/health")
async def health_check():
    return {"status": "healthy", "backend": "openEuler + Qwen2.5"}

服务部署(容器化)

# 使用国产容器镜像仓库
docker pull hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1

# 运行RAG服务容器
docker run -d \
    --name rag_service \
    --gpus all \
    -p 8000:8000 \
    -v /data/models:/models \
    -v /data/rag:/app \
    -e DB_HOST=国产数据库IP \
    -e DB_PASS=xxx \
    hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1 \
    python /app/rag_service.py

三、安全与合规:信创AI的“一票否决项”

在信创环境中,AI能力能跑起来只是第一步,更关键的是合规运行。信创项目验收时,安全与审计能力往往是“一票否决”项。

三大合规痛点

  1. 缺乏统一管控能力:不同部门开发的智能体各自为政,无法集中管理权限和行为
  2. 缺少安全隔离机制:AI智能体若没有运行隔离与行为控制,在验收阶段极易被要求整改甚至推倒重来
  3. 审计链路不完整:AI系统涉及大量数据访问与工具调用,若无法提供完整审计链,难以满足央国企合规要求

合规实践框架

太极股份推出的“四象卫士”可信AI超级智能桌面,提供了一个信创AI合规的参考范式——围绕“算力调度、全域兼容、安全防护、AI应用”四大核心能力构建:

# 智能体安全审计中间件示例(简化版)
from functools import wraps
import logging
import json
from datetime import datetime

# 配置审计日志
audit_logger = logging.getLogger("agent_audit")
audit_logger.setLevel(logging.INFO)

def audit(agent_name: str):
    """审计装饰器:记录智能体的每次操作"""
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            audit_entry = {
                "timestamp": datetime.utcnow().isoformat(),
                "agent": agent_name,
                "user": kwargs.get("user_id", "anonymous"),
                "action": func.__name__,
                "params": str(kwargs.get("params", {})),
                "ip": kwargs.get("client_ip", "unknown")
            }
            audit_logger.info(json.dumps(audit_entry))
            
            # 权限校验
            if not check_permission(kwargs.get("user_id"), agent_name, func.__name__):
                raise PermissionError(f"用户无权限执行 {agent_name}.{func.__name__}")
            
            return func(*args, **kwargs)
        return wrapper
    return decorator

@audit("knowledge_query")
def search_knowledge(user_id: str, query: str, client_ip: str):
    """知识库检索(受审计和权限管控)"""
    # 实际检索逻辑
    return vector_search(query)

四、选型建议与落地策略

基于行业实践,给正在推进信创AI落地的团队几点建议:

  1. 操作系统选型:优先选择对AI负载有专项优化的版本。openEuler、银河麒麟均已推出针对大模型推理的优化版本,建议在选型时明确要求厂商提供AI场景的实测性能数据。

  2. 数据库策略:评估业务对向量检索的极致性能需求与数据一致性要求。若业务涉及复杂事务处理且对一致性要求极高,优先选择内置向量能力的国产关系型数据库而非独立向量库。

  3. 中间件不可或缺:在架构设计初期就将中间件纳入考虑,不要试图“绕过”中间件直接打通系统间数据流。特别是在多系统协同、跨层级数据交换场景中,成熟的国产中间件能极大降低集成风险。

  4. 安全与审计先行:不要等验收时再补安全能力。从架构设计阶段就明确身份、行为、数据三层管控方案,确保每个智能体的操作都可追溯、可审计、可控制。

  5. 做好压测和适配计划:在国产环境下的性能表现通常与通用环境存在差异。预留充足的调优和验证时间,建立完善的监控体系,实时跟踪向量检索、推理服务等关键组件的性能指标。

信创AI的落地,本质上不是“替换”,而是“重塑”。正如一位行业专家所说:医疗应用系统的AI重构才刚刚开始,信创与应用系统重构相同步、相融合,将创造出全新的应用形态,而这恰好是信息技术应用创新的题中之义。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐