3 ms·
A text example: one user pluralizes the word "document", another user does the same (with some amount of latency so that they both feel the need to do it). A CR
by fastball 3y ago
A text example: one user pluralizes the word "document", another user does the same (with some amount of latency so that they both feel the need to do it). A CRDT will happily converge on "documentss". This is of course not really what you want. An LLM on top of this would trivially correct to "documents".
This actually isn't a great example because documentss isn't a word, but think of a case with "desert" and "desserts" or something like that.
Point is, CRDTs guarantee convergence of the text, but they don't guarantee semantic intent is maintained.
- michaelteter 3y agoI'm not sure you need an LLM to handle this example. We have two other pieces of information available to add some heuristics with - position of the edit relative to start of the word, and word fit within a dictionary. If both added an 's' to 'document', the position information and identical change value tell us they are the same update. No duplication of 's' necessary. If instead one added an 's' while the other added 'a', the conflict could be resolved by choosing the one that fits closests to a dictionary word.
- antirez 3y agoFor many cherry picked cases, you can likely come up with some kind of solution that makes CRDTs less semantically-unaware. But with a good LLM, you can cover almost every situation. It is possible to experiment with this right now by giving ChatGPT the two edits and ask it to merge them.
- jchanimal 3y agoIMHO the benefits of CRDT would still hold in this case, CRDTs just allow you to model the conflict and its resolution. But yes a self-driving app would probably be able to do a lot of cleanup easily -- in my experience conflicts are rare enough that automated merges can be simple, but in some domains of course that does not hold.