Skip to content

TensorFlow / Keras

简介

TensorFlow 是 Google 开源的深度学习框架,Keras 是其高级 API。在 LLM 生态中,TensorFlow 主要用于传统机器学习模型(风控评分、欺诈检测)。

bash
pip install tensorflow

Keras 快速建模

python
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np

# 信用评分模型
def build_credit_model(input_dim: int) -> keras.Model:
    model = keras.Sequential([
        layers.Dense(256, activation="relu", input_shape=(input_dim,)),
        layers.BatchNormalization(),
        layers.Dropout(0.3),
        layers.Dense(128, activation="relu"),
        layers.Dropout(0.2),
        layers.Dense(64, activation="relu"),
        layers.Dense(1, activation="sigmoid")  # 违约概率
    ])
    
    model.compile(
        optimizer=keras.optimizers.Adam(learning_rate=1e-3),
        loss="binary_crossentropy",
        metrics=["accuracy", keras.metrics.AUC(name="auc")]
    )
    return model

model = build_credit_model(input_dim=50)
model.summary()

训练与评估

python
# 准备数据
X_train = np.random.randn(10000, 50).astype(np.float32)
y_train = np.random.randint(0, 2, 10000).astype(np.float32)

# 训练
history = model.fit(
    X_train, y_train,
    epochs=20,
    batch_size=256,
    validation_split=0.2,
    callbacks=[
        keras.callbacks.EarlyStopping(patience=3, restore_best_weights=True),
        keras.callbacks.ModelCheckpoint("best_model.keras", save_best_only=True)
    ]
)

# 保存
model.save("credit_model.keras")

# 加载
model = keras.models.load_model("credit_model.keras")

# 预测
prob = model.predict(X_test)
print(f"违约概率: {prob[0][0]:.3f}")

与 LLM 结合(混合系统)

python
# 传统 ML 模型 + LLM 解释
def hybrid_risk_assessment(features: dict) -> dict:
    # 1. ML 模型给出量化评分
    feature_vector = preprocess(features)
    default_prob = model.predict(feature_vector)[0][0]
    
    # 2. LLM 生成可解释报告
    prompt = f"""
    基于以下财务指标,解释信用风险评估结果:
    - 违约概率:{default_prob:.1%}
    - 负债率:{features['debt_ratio']:.1%}
    - 营收增长率:{features['revenue_growth']:.1%}
    
    请用通俗语言解释主要风险因素。
    """
    
    explanation = llm.invoke(prompt).content
    
    return {
        "default_probability": float(default_prob),
        "risk_level": "高" if default_prob > 0.3 else "中" if default_prob > 0.1 else "低",
        "explanation": explanation
    }

本站内容由 褚成志 整理编写,仅供学习参考