1. Last 7 days
    1. Creating annotations needs a free Hypothesis account, which you can make from the sidebar in about a minute.

      From the website it was not letting me to create account using Gmail. But from panaversity link it did.

    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

    1. his is not magic. It is not "build it once and never look again."

      Small Loop vs Big Loop

      🔁 Small Loop (Inner Loop)

      Every agent has a tiny cycle running inside it:

      send context → model asks for tools → run tools → add results → repeat

      This stops when the model itself decides it's done. Problem: nothing checks whether the model is actually right — it's just judging its own work. That's why agents confidently say "Done! All fixed" without ever running the tests.

      Fix = Outside stops — conditions that don't depend on the model's own opinion:

      • A checked condition (prove the work with a real test)
      • A limit (max number of tries)
      • A no-progress check (stop if nothing's improving)
      • A separate checker (a second process grades the work)

      🧭 Big Loop (Outer Loop)

      The small loop is one worker doing one task. The big loop is the manager — it decides:

      • Which task to give
      • When to start
      • How to grade the result
      • What to remember for tomorrow

      One full run of the small loop = one "beat" of the big loop.

      🏗️ The 4 Layers (each nested inside the next)

      | # | Layer | What it covers | |---|-------|-----------------| | 1 | Prompt engineering | The words you send | | 2 | Context engineering | Everything the model sees in one turn | | 3 | Harness engineering | The code around the model (running tools, handling errors) — where the small loop lives | | 4 | Loop engineering | The outer cycle: what the system works on, when it starts, how it knows it's done |

      Each layer stops a different kind of failure:

      • No context → the model guesses
      • No harness → you are the only checker
      • No loop → the schedule is still on you

      🎯 Key Takeaway

      The useful question isn't "is my prompt good enough?"

      It's: "Which of these layers am I still doing by hand?"

    2. The words "loop engineering" are used for two different things. This course teaches the big loop. But you will also hear the words used for a small loop

      The small loop (the inner loop). Inside every agent, there is a tiny cycle of code. It works like this: send the context to the model → the model asks to use tools → run the tools → add the results to the context → repeat. When the model stops asking for tools, the cycle ends.

      The small loop stops when the model itself decides it is finished.

    1. 那么通过实现RenderObject的方式和上面介绍的通过CustomPaint和Canvas自绘的方式有什么区别?

      Canvas 是真正负责绘制的“画布”;CustomPainter 是开发者编写绘制逻辑的地方;CustomPaint 是连接 Widget 层和 Canvas 的桥梁。

    1. Learn how to use any Code OSS-based editor, such as VS Code, to set up your Flutter development environment and test drive Flutter's developer experience.

      test drive

    1. These ampersands represent references, and they allow you to refer to some value without taking ownership of it.

      从底层实现看,C++ 引用和 Rust 引用都基于指针,机器码往往一样,所以"底层是指针"这一点相同。但从语义保证看,区别巨大:C++ 引用没有"始终有效"的保证,允许悬空、允许别名修改;Rust 则强制"要么多个只读引用,要么一个可变引用",靠借用检查器编译期强制保证安全。

    2. Unlike a pointer, a reference is guaranteed to point to a valid value of a particular type for the life of that reference.

      C++并不能保证引用有效——依然可以创造悬空引用,这是Rust作为内存安全语言的设计理念。