| ▲ | usernametaken29 3 hours ago | |||||||||||||||||||||||||||||||||||||
I worked on large scale RAG systems before and can say people vastly underestimate full text search and vastly overestimate embeddings. FTS is really easy, portable and scalable and gets you very far, the 80/20 rule applies. Embeddings appear to be nice and magic but when you really get into them you notice: semantic similarity isn’t as good as you think and certainly it won’t make everyone happy. You will inevitably end up having to re-embed more or different chunks of your text to accommodate more and more precise embedding search - at which point you’ll go the last mile and do reranking etc etc all the while having to support the operational burden of vector search. Then you turn around and build a search query with 500 keywords and sure it’s painful but it just works, accommodates all use cases, scales and is overall less annoying to maintain. | ||||||||||||||||||||||||||||||||||||||
| ▲ | andai 2 minutes ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||
Re: the rube goldberg machine of diminishing returns https://www.anthropic.com/engineering/contextual-retrieval This is from two years ago, but I think it's still SotA? | ||||||||||||||||||||||||||||||||||||||
| ▲ | josh_p an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I worked on getting an address database into elasticsearch years ago when it was still using modified tf-idf. Customers wanted FTS where a lot of the queries would be something like "100 First Ave, NY" or "200 2nd St, MN". It was one of the most fun projects I've worked on in my career so far. I got a learn a lot about how US and international addresses worked, so many edge cases, and got to really understand how customers were using the existing search to make sure they weren't adding any duplicates to the database. Token filters and synonyms were neat and figuring out the right indexing strategy was a lot of fun. It was a lot more work to get it right for most of the use-cases our customers had than just "throw it into ES and be done". That would probably have been fine for the 80/20 case, like you said, but I agree that the bulk of the work is going to be fine-tuning the search solution, whatever technology you're using. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
| ▲ | jameshart 2 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I think people also overestimate the need for full text search when the one doing the querying is an LLM. If your underlying data is structured records, like a customer database, while humans might not have time or skills to figure out that when they want to search by phone number they need to do a join from the contacts table to the users table and normalize the phone number to look up first, making it best to just surface phone numbers as part of the data that is full/text-indexed… an agent is quite happy to handcraft the right SQL to find records that match on a specific field, given the right SKILLS.md and schema information. Turning fuzzy searches into exact DB lookups is a great way LLMs can augment users. (Obviously this doesn’t apply to searching actual rich document data - for that, go all in on text search, embedding, etc) | ||||||||||||||||||||||||||||||||||||||
| ▲ | mdp2021 an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
> people vastly underestimate full text search It is not psychological, it is fully justified: substring search cannot find synonyms, periphrases and mistaken neighbours. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
| ▲ | shay_ker an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
How long have "large scale RAG systems" really existed in the first place? I'm always surprised at this, given how new all this really is, relatively speaking. | ||||||||||||||||||||||||||||||||||||||
| ▲ | lacedeconstruct 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
I thought text search was always the first thing you try, then fuzzy search, then you go for RAG | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
| ▲ | quijoteuniv an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
On my last go at making my own rag i still got better results by collecting the data and uploading to a project in open(butclosed)ai. My own rag, used by an agent was giving poorer results, and even the agent prefered (derailed)to not use it and look for the info itself rather than using the rag | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
| ▲ | mmargenot an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
And you get bm25 for free with so many modern setups! I do still love to experiment with tuning semantic search for your specific corpus via various kinds of embeddings, but bm25 is hard to beat. | ||||||||||||||||||||||||||||||||||||||
| ▲ | bensyverson an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
Yes, and don’t forget, LLMs are very good at tagging, so it’s not even that painful to backfill the corpus. | ||||||||||||||||||||||||||||||||||||||
| ▲ | kaon_2 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||
Can you elaborate? We have technicians searching in different languages. Also our knowledge base is often in different languages. I just don't see how full text search can work? Maybe in a problem space like a wiki where people always know what to search for? | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
| ▲ | clevergadget 2 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||
I don't know what level of quality is required for this site but RAG is trash its just trash. its magic beans. | ||||||||||||||||||||||||||||||||||||||