The Killer Use Case for LLMs Is Summarization
sebastianmellen.com
sebastianmellen.com
I think it's one of a small set of killer related use cases:
- Summarization
- Data and fact extraction, which is strongly related to summarization. Find all factual assertions in this news article. Extract the names of every person and location mentioned.
- Question answering: given this context, answer this question. That's key to implementing Retrieval Augmented Generation, eg https://til.simonwillison.net/llms/embed-paragraphs#user-con...
Aside from these summarization-adjacent applications, the thing I find most exciting is LLMs incredible aptitude at generating code.
Code is especially interesting because it can be automatically executed (in a sandbox), which means many hallucinations can be automatically detected and fixed!
I tried to see what it built for you, and this was the only url in your bio.
how? you just set off my halting-problem neuroses with that claim, since how do you know what inputs to test with, in your idea?
It's quite something to watch. It writes code, then executes it, gets an error, adjusts the code to fix the error, runs it again...
I've seen it loop like that 4-5 times before it gets to code that works.
This is a simple smoke test and the biggest problem I've found is that it simply writes code which probably worked in the past in its training data (or is very close to what would work) but is just so ever so slightly off.
This was just a front page article today because flask3.0 broke a login module, so it's still going to be a problem no matter how recent your training data is.
You don't even need a python interpreter fired up for the first checks, in fact, you can generate the tree of valid libs, functions, their sigs, etc within your interpreter, save it as a json and and directly parse incoming python markup to evaluate if it is valid or not (at least, for your particular environment)
I'm actually a bit surprised that openAI themselves doesn't do this since they have a fixed sandbox and it would save them compute cycles to handle the "little fix" directly with either non-LLM code or a much smaller "LLM call" to figure out how to call a function for lib X version Y which is similar to this.
Or you could probably just do some non-insignificant double digit percentage of the time with Levenshtein distance (or similar fuzzy matching) and having an internal db of every libraries functions and function signatures for every version and automatically identifying where something changed and reducing your problem space to those.
But you have to nail down a definition of “looks weird”?
1. Condense (summarize, synthesize, extract, etc.)
2. Expand (explain, copilot, suggest, etc.)
3. Transform (translation, style transfer, switch modality between text/image/audio, etc.)
All of the major consumer use cases of LLMs at this point boil down to one of these three core operations. To the extent that LLMs allow you to perform "magic", that magic is comprised by a chain of {condense, expand, transform} operations, each of which could be performed in half an hour by a reasonably informed college graduate with access to Google.
Even if chain length maxes out at 3 or 4 for production-grade applications, that solves a frightening number of problems.
When I led teams at a big tech, I generally had a human whose job it was to do this kind of copy refinement/editing when my teams released new features. I find the LLM to be just as good, though obviously our reach is much smaller and the consequences of a mistake are much milder given our size. This is the kind of productivity boost I think of that LLMs offer; pre-LLM we would probably contract out a copy editor for this kind of work but now we do it all in-house and don't have to deal with working with a contractor's hours.
If you paste text into ChatGPT and then ask about specific information within the text, it's pretty good at answering.
- the inverse of summarization; given a bulleted list of facts, write a sensible set of paragraphs presenting those facts
- semantically searching in large documents
- make some text sound more professional / casual
- translate some text between human languages (they're not perfect at this yet, but they're surprisingly good, and I think they will be the way to do translations in the future).
- expand abbreviations given some context
The key here is that none of these depend on the language model injecting factual information into its output. All of the facts are encoded in your input - the language model just does some operation in linguistic space. If you don't give it the opportunity to give you incorrect assertions, it won't give you incorrect assertions.
For translations considering how 'mature' the field is relative to everything else I'm a little surprised we haven't seen any rigorous benchmarks on round-trip translations, especially given that you aren't even limited to natural languages. You can take text, flip it into Klingon, and back, if you so chose.
>- the inverse of summarization; given a bulleted list of facts, write a sensible set of paragraphs presenting those facts
Except this one, this sounds unintentionally evil for some reasons i can't entirely put my finger on. Perhaps the inevitable conclusion of countless GPU farms spamming terabytes of text at each other predicated upon some short bullet point lists and the fact that "those are our marching orders"
I guess Fundamentally I would like to live in a future where LLMs can only decrease the length of text written by humans, never increase it or fabricate it.
This feels like an under-appreciated insight. There are lots of valuable (and in some cases previously difficult, expensive, or impossible) linguistic manipulations that fall under this lower-risk end of spectrum.
Also also, we've had powerful summarization techniques for decades now (deep-learning, or otherwise) - and they aren't susceptible to the hallucinations of present day Generative LLMs.
https://old.reddit.com/r/askscience/comments/4s5b5q/how_exac...
do you mean BERT, Seq2Seq and similar?
My biggest takeaway from summarization tasks was that the benchmarks/evals seemed rather.. lacking.
However, for most use cases, falsely attributing statements is a terrible failure case for a summarizing tool.
(Relevant here because even five months is a long time in LLMs!)
Update: turns out there's a date on https://www.sebastianmellen.com/post/ - this post is from 18th March, so seven months ago.
Tools like DeepL already were cutting into the field of translation/localization, but now we can have something which can basically translate ANY language to ANY language (even things like fictional languages from e.g. LoTR, although that may be very hallucinogenic due to the paltry amount of training data) rather rapidly (gpt3) or rather slowly but more accurately (gpt4) including understanding of things like metaphors and idioms.
Not to mention you can probably fix some of the choice of vocab and style just by specifying (once converted to target language) "reword in the stylings of X" or countless other multi-invocation approaches to the previously very expensive and artistic task of converting human thought from one variation to another.
The biggest problem is probably over-training on english (and being dependent on openai), but even Microsoft made a LLaMA[!] finetune just for translation which iirc was significantly better than the non-translation versions from everyone else
Here's a video where someone tries to use GPT-4 to read a drawing and generate G-code for a milling machine.[1] He puts in a simple textbook problem drawing, and reasonable G-code comes out. The trouble is, GPT-4 plagiarized the answer from a Chegg homework assignment which has the same design of 4 holes in a square. This is clear because the problem didn't specify the material thickness, and the GPT-4 result used the material thickness from the Chegg homework assignment.
For harder, but still easy drawings, GPT-4 does worse. It's clear there's no underlying geometric model.
[1] https://scanalyst.fourmilab.ch/t/programming-a-computer-nume...
So to someone who is actually knowledgeable in this space, are LLMs really that much better than whatever we had 10 years ago? Is this tech the key to some features we truly didn't have before?
LLMs are also really good at the harder NLP problems like coreference resolution, dependency parsing, and relations which makes a huge difference when using recursive summarization on complex documents where something like "the Commisioner" might be defined at the beginning and used throughout a 100,000 token document. When instructed, the LLM can track the definitions in memory itself and even modify it live by calling OpenAI functions.
The simplest implementation is "retrieve_definition(word_to_lookup, word_to_replace)" with some number of tokens at the beginning of the prompt dedicated to definitions. You can use a separate LLM call with a long list of words (without their definitions) to do the actual selection since sometimes there might be ambiguity, which the LLM can usually figure out itself (it can also include both definitions when it's too uncertain if instructed).
A more complex variant does multiple passes: first pass identifies ambiguous words in each chunk, second pass identifies their definitions, third pass does actual summarization using the output of the previous passes to craft the prompt.
LLM summaries are providing excellent results (IMHO) for team training for technology groups, including for UI/UX, product management, innovation partnerships, software programming, and the like.
If you want to see some of these, my GitHub has a six of these LLM summary guides for tech people: https://github.com/joelparkerhenderson
The model I wanted to build, needed text correction, word completion and prediction in one pass. I'm pretty confident, it was an impossible task without the help of chatGPT, first GPT-3.5 and then GPT-4.
I’m a an awful typer on my phone and on my desktop. Autocorrect is ok but I honestly don’t understand how we have all this amazing ML in the wild but we still seem to have the same shitty autocorrect.
My dream autocorrect (powered by ML) learns how you type and how you speak. It learns what mistakes you always make (due to muscle memory) and corrects based on your past mistakes. Furthermore my dream autocorrect actually understands what you’re trying to say and corrects words based on the context of the conversation rather than how close the mistake you made is to some other word.
For example, if someone texts me to say “I’m at the restaurant” and I type with a mistake “I’ll be right theyre” the autocorrect should understand the context of the conversation and rather than correct to “they’re” which is thinks is the correct spelling for this mistake, or autocorrects to “there” because it’s looking at the wider conversation. This is a poor example but I hope you get the point. I really don’t think what I’m asking for is hard. Apple should/could easily improve autocorrect
"LLMs: The Summarization Superheroes of the Modern Era
LLMs, like the one you're reading from, shine brightest when tasked with summarization. They may not craft unique insights, but they excel in distilling vast amounts of information into digestible bites. As information overload continues to plague our modern age, a tool that can swiftly and effectively condense info is invaluable. Bing Chat's emergence hints at a future where LLM-driven search engines index and summarize vast content troves, from books to blogs. But it's not just about search. Inspired by a recent Hacker News discussion likening the LLM movement to the early days of the web, it's clear that these models will reshape how we handle information, from helping CEOs extract corporate insights to tidying up the sprawling mess of unstructured data in enterprises. While LLMs have diverse potential applications, summarization stands out as their killer use case, at least for now."
The fact that it can output quite valid ffmpeg commands was the commandline cherry on the cake for me
But if the article is longer than the context window, you can try either RWKV or Claud-200k
Claude for up to 100,000 tokens.
Also, I wish people would reduce the use of such derogatory terms in arguments because it distracts from the core reasoning.
[0]: https://www.google.com/search?hl=en&q=regurgitated%20definit...