6 Matching Annotations
  1. Last 7 days
    1. A team adds 50,000 new labeled edge cases to a spam classifier’s training set. The Python training script, model architecture, and hyperparameters are unchanged, yet the deployed model begins labeling different messages as spam. Explain why this behavior change is expected under the data-centric paradigm shift and name two engineering practices that must change to accommodate it.

      数据相当于源代码,训练数据决定了ML模型最终的决策逻辑。添加了50000条标注数据后,模型可利用监督学习调整逻辑,学习到原来没有的模式,从而给出不同的预测结果。 为了适配该变化,首先需要做好数据集版本控制,便于复现旧模型的行为,以及审查是数据集的哪些变化导致了模型行为的变化。 二是测试集需要做相应的扩充以测试分类机的效果 commit:第二点应是 回归测试必须基于固定评估集核验数据分布与模型行为偏差,因为即便 Python 代码的单元测试全部通过,模型学习得到的决策边界依旧会发生变动。由此带来的实际影响是:数据集的变更等同于版本上线部署。

    2. Can you distinguish Software 1.0 (explicit instructions) from Software 2.0 (optimization objectives)?

      可以从以下几个方面进行比较: 1.源码:1.0是C++,Python,Java等,而2.0是训练数据与标签。(相当于给定函数的输入和输出,我们的任务就是学习到一个鲁棒可靠的模型) 2.“编译器”:1.0是GCC,LLVM,2.0是训练循环(如SGD,AdamW等)。这里“编译器”不太准确,因为对2.0来说,训练过程是随机的,从相同的“源代码”(数据和标签)中可能产生不同的“可执行代码”(即模型权重) 3.逻辑:1.0是确定的(手动编码),2.0是不确定的(通过学习得到) 4.失败模式:1.0很loud,会通过崩溃、异常等方式显示出来,2.0是静默的,表现为指标劣化 5.debugging:1.0追踪执行路径,2.0是检查数据分布,因为可能发生数据分布偏移、数据陈旧、噪声多等问题

    3. Why can correctness for ML systems not be mathematically guaranteed in the same way we can for traditional logic?

      因为机器学习系统的输入空间是高维的,虽然严格上属于离散空间,但是体量过于庞大,现实中无法完全采样 $$\text{Verification Gap} = \text{Total Input Space} - \text{Test Set Coverage} \approx \text{Total Input Space} \tag{1}$$ 对于传统逻辑。我们可以编写测试代码覆盖边界情况,而对于ML系统,我们只能用数学上的正确性换取概率上的可靠性。 这是属于MLsys的 tradeoff