‹ BackHN Continuity

Thread

Introducing System One Models and Jev

1989 points · 520 comments · albelfio

  1. vintermann · · focus · HN ↗
    > Structured outputs slot into ordinary software as fuzzy decision rules: classify, route, score, extract, or branch where hand-written logic is too brittle.

    Oh, I have one of those use cases, matching people in genealogy trees. You can ask all sorts of questions: do the names match? Do they match within some edit distance? Do they match according to soundex/ metaphone rules (which are themselves a ginormous set of rules for letters and letter combinations which may or may not result in the same sounds, hand-coded as a huge if tree by a linguist not a programmer)? What about their relatives, do they match by the same rules? Should we incorporate domain knowledge about local naming customs? Etc etc.

    I pointed a coding agent to this problem, and it aggressively started coming up with complex scoring rules and testing them against real datasets. Which led to sort-of acceptable results, but it still missed lots of cases which were obvious to a human, and had false positives which were obvious to a human. Which I could trade off, and slightly improve, with more back and forth with the coding agent.

    Pointing a good LLM to all the information about two people, would of course give great results. Maybe even better than human judgment. But I can't do that for 100000^2 people, it would be too expensive in all sorts of ways. I need a fast, reliable scorer. I could maybe train an embedding, but that would be a huge job and where would I get the quality data?

    1. RobinL · · focus · HN ↗
      There's also two other important limitations to using an LLM and just providing it with pairs of records.

      It does not know enough about the records in the context of the overall dataset:

      - what is the data quality and to what extent do we expect a errors in some fields - how unusual are certain values such as names in the context of the dataset as a whole, e.g. some names would be very common in some countries but rare in others.

      I&#x27;ve written in more detail about this here: <a href="https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;fellegi_sunter_accuracy&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.robinlinacre.com&#x2F;fellegi_sunter_accuracy&#x2F;

      1. vintermann · · focus · HN ↗
        Another great article, thanks. I thought a lot about that too, and basically realized the same thing (this wasn&#x27;t the coding agent), that frequency in the dataset mattered a lot for how useful a match is, and made frequency lists from my datasets, both on how common the literal names were and the phoneme-reduced names.

        But I&#x27;m worried about that &quot;bitter lesson&quot; the TypeSafe CEO refers to, and that we&#x27;re retreading the steps of natural language processing and a lot of other fields, trying to come up with clever rules, when the rule-based approach simply never gets good enough. I need matching to be good, it&#x27;s absolutely central to genealogy, and I&#x27;ve seen the damage blindly linking by hand-crafted matching formulas can do.

        1. RobinL · · focus · HN ↗
          I agree, and I think LLMs can potentially do a better job than more conventional methods, so long as they&#x27;re provided with enough content.

          Another aspect of context that could be relevant to your work may be how people are nested within households. In some record linkage scenarios you can run a linkage on household membership and use this to make person linkages more precise. I imagine an LLM agent could also use this information effectively if it were explicitly provided, but sometimes they miss logical leaps like this

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.