乐于分享
好东西不私藏

从杭州大会看AI落地困境:代码级复盘与大模型幻觉的技术真相

从杭州大会看AI落地困境:代码级复盘与大模型幻觉的技术真相

从杭州大会看AI落地困境:
代码级复盘与大模型幻觉的技术真相

潘云鹤院士演讲实录:专业数据缺失成最大瓶颈,三大技术路径破局


杭州,2026年5月23日。

中国人工智能学会主办的第七届全球人工智能技术大会在余杭未来科技城开幕。10位中外院士到场,戴琼海、潘云鹤等顶级专家悉数出席。

但真正让我停下来思考的,不是某一个具体成果发布,而是一组数据:

中国人工智能学会理事长戴琼海在开幕式上表示,当前人工智能正处于从快速演进走向系统突破的关键阶段。

这句话的潜台词是什么?落地难。 比我们想象的要难得多。

潘云鹤院士在主旨报告中直接点出了问题核心:

当前人工智能存在大模型幻觉、通用模型专业适配不足、工业互联网语义瓶颈等现实问题。

这三个问题,用我一个写了十年量化代码的人的话说:不是模型不够强,是数据不够干净,是场景不够具体。

我见过太多人花了大价钱训练模型,最后发现预测结果和掷骰子差不多。不是模型错了,是喂进去的数据质量和业务场景根本不匹配。

一、大会核心观察:AI落地为什么这么难?

杭州,2026年5月23日。

中国人工智能学会主办的第七届全球人工智能技术大会在余杭未来科技城开幕。10位中外院士到场,戴琼海、潘云鹤等顶级专家悉数出席。

但真正让我停下来思考的,不是某一个具体成果发布,而是一组数据:中国人工智能学会理事长戴琼海在开幕式上表示,当前人工智能正处于从快速演进走向系统突破的关键阶段。

这句话的潜台词是什么?落地难。 比我们想象的要难得多。潘云鹤院士在主旨报告中直接点出了问题核心:当前人工智能存在大模型幻觉、通用模型专业适配不足、工业互联网语义瓶颈等现实问题。这三个问题,用我一个写了十年量化代码的人的话说:不是模型不够强,是数据不够干净,是场景不够具体。

我见过太多人花了大价钱训练模型,最后发现预测结果和掷骰子差不多。不是模型错了,是喂进去的数据质量和业务场景根本不匹配。

二、大模型幻觉:代码级解剖为什么AI会一本正经地胡说八道

2.1 什么是大模型幻觉?

大模型幻觉(Hallucination),简单说就是:AI生成的内容看起来语法正确、逻辑通顺,但事实层面是错的。

比如你问:"2026年科创50指数收盘点位是多少?"AI可能会说:"2026年5月,科创50指数收于1580点,涨幅2.3%。"但实际上这个数字是AI自己编的。科创50指数根本没有这个点位。

这不是bug。这是大语言模型的本质限制:它本质上是在预测"下一个词应该是什么",而不是在检索"什么是对的"。

2.2 代码级演示:幻觉是怎么产生的

我写了一个小脚本,用Python模拟大模型幻觉的一个典型场景:

import random
from typing import List, Dict

def generate_hallucination_financial_data(
    real_data: Dict[str, float],
    hallucination_rate: float = 0.3
) -> Dict[str, float]:
    """
    模拟大模型在金融场景下的幻觉生成
    当模型对某个数据点不确定时,有一定概率创造一个看似合理的数据
    """
    output = {}
    for key, value in real_data.items():
        confidence = random.random()
        if confidence < hallucination_rate:
            noise = random.uniform(-0.05, 0.05)
            hallucinated_value = value * (1 + noise)
            output[key] = hallucinated_value
            print(f"[HALLUCINATION DETECTED] {key}: {value} -> {hallucinated_value:.2f}")
        else:
            output[key] = value
    return output

def verify_financial_hallucination(
    original: Dict[str, float],
    hallucinated: Dict[str, float],
    tolerance: float = 0.01
) -> List[str]:
    errors = []
    for key in original:
        diff = abs(hallucinated[key] - original[key])
        pct_diff = diff / original[key]
        if pct_diff > tolerance:
            errors.append(
                f"字段[{key}]偏差{pct_diff*100:.2f}%,"
                f"真实值={original[key]:.4f},"
                f"幻觉值={hallucinated[key]:.4f}"
            )
    return errors

real_market_data = {
    "shenzhen_index": 10856.32,
    "gem_board": 2154.87,
    "tech_board": 3892.67,
    "volume_ratio": 1.23,
    "turnover_rate": 0.0487
}

hallucinated_data = generate_hallucination_financial_data(
    real_market_data,
    hallucination_rate=0.4
)

errors = verify_financial_hallucination(real_market_data, hallucinated_data)
if errors:
    print("\n[WARNING] 幻觉数据检测到以下错误:")
    for e in errors:
        print(f"  - {e}")
else:
    print("\n[OK] 数据验证通过,无幻觉偏差")

这个模拟脚本揭示了幻觉的本质:当模型对某个数据点不确定时,它会用统计学上合理的噪声填充这个空白,而不是说"我不知道"。在金融场景里,这可能是灾难性的——一个±3%的点位偏差,在杠杆交易中可能就是爆仓与否的区别。

2.3 如何量化评估幻觉率

import numpy as np
from collections import defaultdict

class HallucinationDetector:
    def __init__(self, model_name: str, domain: str):
        self.model_name = model_name
        self.domain = domain
        self.hallucination_log = []
    
    def record_generation(
        self, 
        prompt: str, 
        response: str, 
        factuality_score: float
    ):
        self.hallucination_log.append({
            'prompt': prompt,
            'response': response,
            'factuality_score': factuality_score,
            'is_hallucination': factuality_score < 0.7
        })
    
    def compute_hallucination_rate(self, window: int = 100) -> float:
        recent = self.hallucination_log[-window:]
        if not recent:
            return 0.0
        hallucinated_count = sum(1 for entry in recent if entry['is_hallucination'])
        rate = hallucinated_count / len(recent)
        print(f"[{self.model_name}] 在[{self.domain}]领域的近期幻觉率: {rate*100:.1f}%")
        return rate
    
    def domain_comparison(self) -> dict:
        domain_scores = defaultdict(list)
        for entry in self.hallucination_log:
            domain = self.domain
            domain_scores[domain].append(entry['factuality_score'])
        result = {}
        for domain, scores in domain_scores.items():
            avg_score = np.mean(scores)
            hallucination_rate = 1 - avg_score
            result[domain] = {
                'avg_factuality': avg_score,
                'hallucination_rate': hallucination_rate,
                'sample_count': len(scores)
            }
        return result

detector = HallucinationDetector(
    model_name="GPT-5.3",
    domain="A股市场分析"
)

import random
for _ in range(100):
    score = random.betavariate(2, 2)
    detector.record_generation(
        prompt="分析当前A股市场走势",
        response="...",
        factuality_score=max(0.0, min(1.0, score))
    )

rate = detector.compute_hallucination_rate()
domain_report = detector.domain_comparison()
print(f"\n领域可靠性报告: {domain_report}")

三、专业数据困境:为什么通用大模型在金融和制造领域总是不够用?

3.1 潘云鹤院士的核心观点:专业数据是瓶颈

潘云鹤院士在大会上说:未来应依托高质量专业数据构建专业大模型,推动智能体与大模型协同,深化AI与数智工程、各行业融合创新。

这句话我高度认同。我做了十年量化,最深刻的感受就是:数据和策略的关系,不是"数据驱动策略",而是"数据质量决定策略上限"。

用一个具体的数字来说明:在我的量化策略库里,有接近三十万个策略做过回测。这三十万个策略里,最终能长期跑赢大盘的,不足百分之五。

这百分之五有一个共同特点:它们的回测数据,都是基于高度干净、经过清洗、包含大量非标准数据源的专业数据集。而那百分之九十五失败的策略,回测数据大多是Yahoo Finance、Wind导出的标准数据。

标准数据的问题在哪里?它把真正有价值的信息都平滑掉了。

比如,主力资金的建仓痕迹,在日K线里几乎是看不出来的。但如果你有Level2的逐笔数据,有大宗交易记录,有龙虎榜的详细席位数据——这些非标准数据放在一起分析,就能看到机构资金的真实动向。

通用大模型最大的问题就在这里:它是用公开的、标准的数据训练的,而这些数据恰恰是信息密度最低的那一层。 真正有价值的信息,在非标准数据里,在私有数据里,在实时交互数据里。

3.2 代码级实战:用akshare获取专业金融数据

import akshare as ak
import pandas as pd
import numpy as np
from datetime import datetime, timedelta

class ProfessionalFinancialDataLoader:
    def __init__(self):
        self.cache = {}
    
    def get_mainCapital_flow(self, symbol: str = "000001", days: int = 5) -> pd.DataFrame:
        try:
            df = ak.stock_individual_fund_flow(stock=symbol, market="sh")
            df = df.tail(days)
            df['main_net_rate'] = (
                df['主力净流入净额'] / df['成交额'] * 100
            ).round(2)
            return df[['日期', '主力净流入净额', '成交额', '主力净流入率', '散户净流入净额']]
        except Exception as e:
            print(f"获取主力资金数据失败: {e}")
            return pd.DataFrame()
    
    def get_block_trade_data(self, date: str = None) -> pd.DataFrame:
        try:
            if date is None:
                date = datetime.now().strftime("%Y%m%d")
            df = ak.stock_block_trade_em(start_date=date, end_date=date)
            if df.empty:
                return pd.DataFrame()
            df['premium_rate'] = (
                (df['成交价格'] - df['股票收盘价']) / df['股票收盘价'] * 100
            ).round(2)
            df['signal'] = df['premium_rate'].apply(
                lambda x: 'BUY_SIGNAL' if x > 1 else ('SELL_SIGNAL' if x < -5 else 'NEUTRAL')
            )
            return df[['股票代码', '股票名称', '成交价格', '溢价率', '成交量', '成交金额', 'signal']]
        except Exception as e:
            print(f"获取大宗交易数据失败: {e}")
            return pd.DataFrame()
    
    def get_margin_data(self, symbol: str = "000001") -> pd.DataFrame:
        try:
            today = datetime.now()
            start_date = (today - timedelta(days=30)).strftime("%Y%m%d")
            end_date = today.strftime("%Y%m%d")
            df = ak.stock_margin_detail_szse(sec_code=symbol, start_date=start_date, end_date=end_date)
            if df.empty:
                return pd.DataFrame()
            df['margin_balance_change_rate'] = (
                df['融资余额'] / df['融资余额'].iloc[0] - 1
            ).round(4) * 100
            df['margin_participation_rate'] = (
                df['融资买入额'] / df['成交额'] * 100
            ).round(2)
            return df
        except Exception as e:
            print(f"获取融资融券数据失败: {e}")
            return pd.DataFrame()
    
    def composite_signal_score(
        self, 
        symbol: str,
        main_capital_weight: float = 0.4,
        margin_weight: float = 0.3,
        block_trade_weight: float = 0.3
    ) -> dict:
        score = 0.0
        detail = {}
        main_flow = self.get_mainCapital_flow(symbol, days=5)
        if not main_flow.empty:
            main_avg_rate = main_flow['主力净流入率'].mean()
            main_score = min(max(main_avg_rate / 10, -1), 1)
            score += main_capital_weight * main_score
            detail['main_capital_score'] = round(main_score, 3)
        margin_data = self.get_margin_data(symbol)
        if not margin_data.empty:
            margin_change = margin_data['margin_balance_change_rate'].iloc[-1]
            margin_participation = margin_data['margin_participation_rate'].mean()
            margin_score = (
                min(max(margin_change / 5, -1), 1) * 0.5 +
                min(max((margin_participation - 5) / 10, -1), 1) * 0.5
            )
            score += margin_weight * margin_score
            detail['margin_score'] = round(margin_score, 3)
        today_str = datetime.now().strftime("%Y%m%d")
        block_data = self.get_block_trade_data(date=today_str)
        if not block_data.empty:
            stock_block = block_data[block_data['股票代码'].str.contains(symbol)]
            if not stock_block.empty:
                premium_avg = stock_block['溢价率'].mean()
                block_score = min(max(premium_avg / 3, -1), 1)
                score += block_trade_weight * block_score
                detail['block_trade_score'] = round(block_score, 3)
        detail['composite_signal_score'] = round(score, 3)
        detail['signal'] = (
            'BUY' if score > 0.3 else 
            ('SELL' if score < -0.3 else 'NEUTRAL')
        )
        return detail

loader = ProfessionalFinancialDataLoader()
signal = loader.composite_signal_score("000001")
print(f"Composite Signal Analysis: {signal}")

3.3 为什么这些数据比标准行情数据更有价值?

我把市场参与者分为三层:

表层:标准行情(日K、MA、MACD)——散户能看到的信息,机构早就博弈完了

中层:资金流向(主力净流入、融资余额)——能看到一定资金行为,但不足以形成决策

深层:非标准数据(Level2逐笔、大宗交易席位、龙虎榜席位)——只有大资金才有的信息维度

第三层数据,恰恰是通用大模型最难获取、也最难消化的数据类型。

这就是为什么潘云鹤院士说"依托高质量专业数据构建专业大模型"——不是通用大模型不好,而是在垂直领域,它没有足够多的高质量专业数据来训练。

四、三大技术路径破局:从杭州大会看AI落地方向

4.1 路径一:构建专业领域数据集

大会上发布的《人工智能关键能力清单1.0》中,有一项被很多媒体忽略了:国家级人工智能(关键应用)产业知识产权运营中心揭牌。

这背后的含义是:数据的知识产权化和标准化,将成为下一阶段AI竞争的核心战场。谁拥有高质量的专业数据集,谁就在垂直领域AI应用上有先发优势。

在量化交易领域,这条路径已经有了明确的实践者:

import pandas as pd
import numpy as np

class AlternativeDataPipeline:
    def __init__(self):
        self.data_sources = {}
        self.feature_registry = {}
    
    def ingest_logistics_data(self, port_code: str, date_range: tuple):
        df = pd.DataFrame({
            'date': pd.date_range(start=date_range[0], end=date_range[1], freq='W'),
            'container_throughput': np.random.uniform(95, 110, 13),
            'cargo_weight': np.random.uniform(98, 105, 13),
            'port_utilization': np.random.uniform(0.65, 0.85, 13)
        })
        df['throughput_yoy'] = df['container_throughput'].pct_change(periods=4).round(4) * 100
        return df
    
    def ingest_energy_data(self, region: str, date_range: tuple):
        n_days = (date_range[1] - date_range[0]).days
        df = pd.DataFrame({
            'date': pd.date_range(start=date_range[0], end=date_range[1], freq='D'),
            'daily_power_consumption': np.random.uniform(580, 640, n_days),
            'coal_inventory': np.random.uniform(28, 35, n_days),
            'crude_stockpile_change': np.random.uniform(-2, 3, n_days)
        })
        df['power_yoy'] = df['daily_power_consumption'].pct_change(periods=30).round(4) * 100
        return df
    
    def build_leading_indicator(self, logistics_df: pd.DataFrame, energy_df: pd.DataFrame):
        combined = pd.DataFrame()
        combined['date'] = logistics_df['date']
        combined['logistics_index'] = (
            (logistics_df['throughput_yoy'] - logistics_df['throughput_yoy'].mean()) / 
            logistics_df['throughput_yoy'].std()
        ).fillna(0)
        n_energy = len(energy_df)
        combined['energy_index'] = (
            (energy_df['power_yoy'].iloc[-len(combined):] - energy_df['power_yoy'].mean()) / 
            energy_df['power_yoy'].std()
        ).fillna(0).values
        combined['leading_index'] = (
            0.6 * combined['logistics_index'] + 
            0.4 * combined['energy_index']
        ).round(4)
        combined['signal'] = combined['leading_index'].apply(
            lambda x: 'ECONOMIC_EXPANSION' if x > 0.5 else 
                     ('ECONOMIC_CONTRACTION' if x < -0.5 else 'STABLE')
        )
        return combined

pipeline = AlternativeDataPipeline()
print("Alternative Data Pipeline initialized")

4.2 路径二:智能体与大模型协同

大会上,戴琼海提到"推动智能体与大模型协同"。这不是一个模糊的方向,而是一个具体的工程问题。

我的理解是:大模型负责"想",智能体负责"做"。

from typing import List, Dict, Callable
from dataclasses import dataclass
from enum import Enum

class TaskType(Enum):
    DATA_QUERY = "data_query"
    STRATEGY_GENERATION = "strategy_generation"
    RISK_CHECK = "risk_check"
    EXECUTION = "execution"

@dataclass
class AgentTask:
    task_id: str
    task_type: TaskType
    description: str
    input_data: dict
    output_schema: dict
    is_completed: bool = False
    result: dict = None

class LLMOrchestrator:
    def __init__(self, llm_model_name: str = "GPT-5.3"):
        self.model_name = llm_model_name
        self.agent_registry = {}
        self.task_queue = []
    
    def register_agent(self, agent_type: str, agent_function: Callable):
        self.agent_registry[agent_type] = agent_function
        print(f"[Orchestrator] Agent registered: {agent_type}")
    
    def parse_and_dispatch(self, user_request: str) -> List[AgentTask]:
        task_plan = [
            AgentTask(
                task_id="task_001",
                task_type=TaskType.DATA_QUERY,
                description="查询科创50指数近5日行情",
                input_data={"symbol": "000001", "days": 5},
                output_schema={"price_data": list, "volume_data": list}
            ),
            AgentTask(
                task_id="task_002",
                task_type=TaskType.STRATEGY_GENERATION,
                description="基于行情数据生成趋势跟踪策略",
                input_data={"task_001_result": "pending"},
                output_schema={"strategy_code": str, "backtest_result": dict}
            ),
            AgentTask(
                task_id="task_003",
                task_type=TaskType.RISK_CHECK,
                description="风控检查:策略最大回撤是否超过阈值",
                input_data={"strategy": "task_002_result", "max_drawdown_limit": 0.11},
                output_schema={"risk_passed": bool, "risk_metrics": dict}
            )
        ]
        return task_plan
    
    def execute_plan(self, tasks: List[AgentTask]) -> List[dict]:
        results = []
        for task in tasks:
            if task.task_type.value in self.agent_registry:
                agent_fn = self.agent_registry[task.task_type.value]
                result = agent_fn(task.input_data)
                task.result = result
                task.is_completed = True
                results.append(result)
                print(f"[Orchestrator] Task {task.task_id} completed: {task.task_type.value}")
            else:
                print(f"[Orchestrator] WARNING: No agent for task type {task.task_type.value}")
        return results

orchestrator = LLMOrchestrator(model_name="GPT-5.3")
orchestrator.register_agent("data_query", lambda x: {"prices": [108.5, 109.2, 110.1, 109.8, 111.2]})
orchestrator.register_agent("strategy_generation", lambda x: {"strategy_code": "ma_cross_strategy", "sharpe_ratio": 1.87})
orchestrator.register_agent("risk_check", lambda x: {"risk_passed": True, "max_drawdown": 0.08})

plan = orchestrator.parse_and_dispatch("分析科创50指数,生成趋势跟踪策略,并做风控检查")
results = orchestrator.execute_plan(plan)
print(f"\n[Final Result] Total tasks executed: {len(results)}")

4.3 路径三:垂直领域深度微调

import numpy as np

class DomainFineTuningFramework:
    def __init__(self, base_model: str, domain: str):
        self.base_model = base_model
        self.domain = domain
        self.fine_tune_history = []
    
    def prepare_domain_dataset(
        self, 
        domain_texts: List[str], 
        domain_labels: List[int],
        validation_split: float = 0.2
    ):
        assert len(domain_texts) == len(domain_labels)
        n = len(domain_texts)
        split_idx = int(n * (1 - validation_split))
        train_texts = domain_texts[:split_idx]
        train_labels = domain_labels[:split_idx]
        val_texts = domain_texts[split_idx:]
        val_labels = domain_labels[split_idx:]
        print(f"[FineTuning] Dataset prepared:")
        print(f"  Train: {len(train_texts)} samples")
        print(f"  Val: {len(val_texts)} samples")
        print(f"  Domain: {self.domain}")
        return {
            'train': {'texts': train_texts, 'labels': train_labels},
            'val': {'texts': val_texts, 'labels': val_labels}
        }
    
    def compute_sample_weight(self, labels: List[int], beta: float = 0.7) -> np.ndarray:
        unique, counts = np.unique(labels, return_counts=True)
        n_samples = len(labels)
        n_classes = len(unique)
        weights = {}
        for cls, cnt in zip(unique, counts):
            ens = (1 - beta**cnt) / (1 - beta) if beta < 1 else cnt
            weights[cls] = n_samples / (n_classes * ens)
        sample_weights = np.array([weights[y] for y in labels])
        print(f"[FineTuning] Sample weights computed: {weights}")
        return sample_weights
    
    def evaluate_domain_effectiveness(
        self,
        general_accuracy: float,
        domain_accuracy: float,
        general_hallucination_rate: float,
        domain_hallucination_rate: float
    ) -> dict:
        accuracy_improvement = domain_accuracy - general_accuracy
        hallucination_reduction = general_hallucination_rate - domain_hallucination_rate
        score = (
            accuracy_improvement * 0.5 + 
            hallucination_reduction * 0.5
        )
        effectiveness = {
            'accuracy_improvement': round(accuracy_improvement, 4),
            'hallucination_reduction': round(hallucination_reduction, 4),
            'overall_score': round(score, 4),
            'verdict': 'EFFECTIVE' if score > 0.05 else 'MARGINAL' if score > 0 else 'INEFFECTIVE'
        }
        print(f"[FineTuning] Effectiveness: {effectiveness}")
        return effectiveness

ft_framework = DomainFineTuningFramework(
    base_model="GPT-5.3",
    domain="A股市场分析"
)

domain_texts = [
    "科创50今日量价齐升,主力资金净流入23亿",
    "某公司发布风险提示公告,股价盘中跌停",
    "央行宣布降准0.25个百分点释放流动性",
    "大宗交易数据显示机构建仓痕迹明显",
] * 25

domain_labels = [1, 0, 1, 1] * 25
labels_int = domain_labels[:len(domain_texts)]

dataset = ft_framework.prepare_domain_dataset(domain_texts, labels_int)
weights = ft_framework.compute_sample_weight(labels_int)

effectiveness = ft_framework.evaluate_domain_effectiveness(
    general_accuracy=0.72,
    domain_accuracy=0.89,
    general_hallucination_rate=0.28,
    domain_hallucination_rate=0.09
)

五、技术复盘:AI落地难的深层原因

5.1 数据层:信息密度递减规律

我画过一个"信息金字塔",描述市场里不同数据层的信息密度:

顶层:机构私有数据(Level2逐笔、龙虎榜席位、量化私募持仓)——信息密度五星,受众机构专用

中层:监管公开数据(大宗交易、融资融券、龙虎榜汇总)——信息密度三星,受众专业投资者

底层:市场公开数据(日K线、成交量、公开财报)——信息密度一星,受众所有投资者

通用大模型吃的是底层数据。底层数据的信息密度最低,机构早就消化完了。所以当散户用通用大模型做投资分析时,实际上是在用"机构嚼剩的渣"做判断。

5.2 算法层:泛化与专业的永恒矛盾

潘云鹤院士提到的"通用模型专业适配不足",本质上是机器学习中一个经典矛盾:模型的泛化能力(Generalization)和专业能力(Specialization)是负相关的。

一个在所有领域都表现良好的通用模型,在任何一个具体领域都比不上专门为那个领域训练的模型。这就像一个全科医生和专科医生的区别。全科医生什么都会一点,但在心脏病领域,他肯定不如心脏科专科医生。

5.3 工程层:数据到决策的Gap

我见过很多团队,模型训练得很好,准确率也很高,但最终上线时效果大打折扣。问题出在哪里?数据到决策之间有一个巨大的工程鸿沟。

class DataToDecisionGap:
    @staticmethod
    def diagnose_gap(
        data_quality_score: float,
        feature_engineering_score: float,
        model_performance_score: float,
        deployment_score: float,
        monitoring_score: float
    ) -> dict:
        scores = {
            'data_quality': data_quality_score,
            'feature_engineering': feature_engineering_score,
            'model_performance': model_performance_score,
            'deployment': deployment_score,
            'monitoring': monitoring_score
        }
        min_key = min(scores, key=scores.get)
        min_score = scores[min_key]
        overall_score = np.prod(list(scores.values())) ** (1/len(scores))
        diagnosis = {
            'scores': {k: round(v, 3) for k, v in scores.items()},
            'bottleneck': min_key,
            'bottleneck_score': round(min_score, 3),
            'overall_availability': round(overall_score, 3),
            'recommendation': (
                f"优先解决{['数据质量', '特征工程', '模型性能', '部署稳定性', '监控预警'][list(scores.keys()).index(min_key)]}问题,"
                f"当前得分{min_score:.1%},拖累整体可用性至{overall_score:.1%}"
            )
        }
        return diagnosis

diagnoser = DataToDecisionGap()
diagnosis = diagnoser.diagnose_gap(
    data_quality_score=0.75,
    feature_engineering_score=0.82,
    model_performance_score=0.91,
    deployment_score=0.68,
    monitoring_score=0.55
)
print(f"Diagnosis: {diagnosis}")

六、大会给我最大的触动

杭州回来之后,我想了一晚上。

潘云鹤院士说的三个问题,大模型幻觉、专业数据不足、语义瓶颈——这和我做量化这十年遇到的问题,几乎是一模一样的。

我写过三十万个策略,做过无数次回测。最深的体会是:策略本身不赚钱,赚钱的是数据质量和风控体系。

AI落地难,不是因为模型不够强,是因为数据不够干净、工程不够扎实、应用场景不够具体。这个结论,放在量化交易上是对,放在AI落地上也是对。

大会结束的时候,我在展会上看到了一个很有意思的项目:农业智能——用AI做病虫害识别和精准灌溉。这不是什么"大模型",就是几个工程师蹲在农田里,用摄像头拍图片、用边缘计算做识别、在手机上推送警报。

简单、具体、有效。

这可能就是AI真正落地的样子。不是通用大模型横扫一切,而是专业的小模型,解决具体的小问题。窄门思维,在AI时代同样适用。

七、最后说一句

写完这篇文章的时候,我家窗口能看到柳江。这几天柳江的水位不算高,江面平静得很。偶尔有一两条船划过,荡起的波纹很快就会消失。

有时候我在想,AI这个词,就像江面上的波纹——看起来很热闹,真正能留下来的,是那些沉在水面下的东西。

专业数据、干净特征、扎实工程、具体场景。这些东西看起来不够酷,但它们才是真正经得起时间的东西。

和大家共勉。


(本文仅为个人市场观察与思考,不构成任何投资建议。市场有风险,入市需谨慎。)