But enough people DM'd me on Twitter, so here it is. I don't have to answer the same question over and over again. After some more editing I realised that I am actually writing this for my younger sister Katherine.
Don't read this if you're seeking a nuanced perspective
These are simply the lies I tell myself to keep on living my life in [good faith](https://en.wikipedia.org/wiki/Bad_faith_(existentialism)). I'm not saying this is the right way to do things. I'm just saying this is how I did things. I will do my best to color my advice with my own experiences, but I'm not going to pretend that the suffering and the privilege I've experienced is universal.
I've enjoyed writing about my indieconsulting process. Today, I want to share some insights on marketing, positioning, and scaling my consulting business. This post builds on my previous discussions about referrals and the tools I use, focusing on how I've grown my practice through strategic marketing efforts.
As a former MLE, I had always relied on my hands-on coding skills to excel in my career. However, a hand injury forced me to adapt and pivot towards consulting. You can read more about my journey in my personal story and how this injury transformed my perspective. In this essay, I share my journey of becoming a successful AI consultant and the lessons I've learned about marketing, positioning, and scaling my business.
Transitioning to consulting and building a marketing plan
This is part of a series about my experience with a repetitive strain injury (RSI) during the COVID-19 pandemic. It talks about how this injury changed my life and what I think about now. If you want to know more about what happened, you can read part one here. I'm not going to give a lot of medical details. Instead, I want to look at how this injury changed what's important to me and how I live my life.
A comment on Twitter made me want to write this part of the series. I'm not trying to tell anyone how to live. I just want to think about the values that shape me and other men like me. This connects to some ideas I wrote about in my article on data literacy, where I talk about how we understand and use information in our lives.
This is the final entry (for now) of a series I wrote about my experience with tendonitis in both my wrists and thumbs during COVID-19. The injury occurred in 2020 due to overworking at my previous job, where I would put in excessive hours for weeks on end with minimal breaks. The debilitating pain prevented me from eating, dressing myself properly, and programming, leading to a significant disruption in my work and personal life. Ultimately, this experience led me to make three major changes:
Consulting full-time: Sometimes, you need to take a leap of faith; other times, you need a swift, firm shove in the back to overcome your limitations. The RSI was the latter that lead me down the path of higher leverage.
Revaluating my values: This doesn't necessarily mean discarding the traits that led to me getting an RSI, but it certainly made me rethink what is actually valuable and what I am trying to do with my life. Sorry to disappoint, but there has been no 'epiphany'. I am not discarding worldly possessions and pursuing a spirit quest to find 'my true self'. My hands are now a limited commodity, and I fear reinjuring myself. This means if I'm going to use my hands, it must be purposeful and deliberate.
Writing: Thankfully, we live in an era where you no longer need hands to express yourself through text. Writing helped me realize that I have spent my first three decades learning and absorbing knowledge and information. Now, in my thirties, my goal will be to share the thoughts and stories I've collected.
Prompt optimization is the process of improving the quality of prompts used to generate content. Often by using few shots of context to generate a few examples of the desired output, then refining the prompt to generate more examples of the desired output.
This article explains how to make Retrieval-Augmented Generation (RAG) systems better. It's based on a talk I had with Hamel and builds on other articles I've written about RAG. For a comprehensive understanding of RAG fundamentals, see my guide on what RAG is.
If you want to learn about how complex RAG systems can be, check out Levels of RAG Complexity. This article breaks down RAG into smaller parts, making it easier to understand. For quick tips on making your RAG system better, read Low Hanging Fruit in RAG.
I also wrote about what I think will happen with RAG in the future in Predictions for the Future of RAG. This article talks about how RAG might be used to create reports in the future.
All these articles work together to give you a full guide on how to make RAG systems better. They offer useful tips for developers and companies who want to improve their systems. For additional improvement strategies, check out my six tips for improving RAG and insights on RAG anti-patterns. If you're interested in AI engineering in general, you might enjoy my talk at the AI Engineer Summit. In this talk, I explain how tools like Pydantic can help with prompt engineering, which is useful for building RAG systems.
Through all these articles, I try to give you a complete view of RAG systems. I cover everything from basic ideas to advanced uses and future predictions. This should help you understand and do well in this fast-changing field.
By the end of this post, you'll understand my step-by-step approach to making RAG applications better for the companies I work with. We'll look at important areas like:
Making fake questions and answers to quickly test how well your system works
Using both full-text search and vector search together for the best results
Setting up the right ways to get feedback from users about what you want to study
Using grouping to find sets of questions that have problems, sorted by topics and abilities
Building specific systems to improve abilities
Constantly checking and testing as you get more real-world data
Through this step-by-step runbook, you'll gain practical knowledge on how to incrementally enhance the performance and utility of your RAG applications, unlocking their full potential to deliver exceptional user experiences and drive business value. Let's dive in and explore how to systematically improve your RAG systems together!
If you're looking to deepen your understanding of RAG systems and learn how to systematically improve them, consider enrolling in the Systematically Improving RAG Applications course. This 4-week program covers everything from evaluation techniques to advanced retrieval methods, helping you build a data flywheel for continuous improvement.
RAG (Retrieval-Augmented Generation), is a powerful technique that combines information retrieval with LLMs to provide relevant and accurate responses to user queries. By searching through a large corpus of text and retrieving the most relevant chunks, RAG systems can generate answers that are grounded in factual information.
In this post, we'll explore six key areas where you can focus your efforts to improve your RAG search system. These include using synthetic data for baseline metrics, adding date filters, improving user feedback copy, tracking average cosine distance and Cohere reranking score, incorporating full-text search, and efficiently generating synthetic data for testing.
The world was ending, and I couldn't even put my pants on. My hands had cramped up so badly that I couldn't grip a water bottle or type and could barely dress myself. A few weeks earlier, I had been riding the greatest decade-high anyone could have dreamed of. I was moving to New York, making 500k, working for an amazing company, and was engaged in what might be the most lucrative field on the planet. I was doing what I loved, getting paid well, and feeling like I was making a difference. Life was good. Well, as good as it could get during a once-in-a-lifetime pandemic. My name is Jason. I'm a machine learning engineer. And this is how I almost lost my hands.
I think people suck at picking metrics and setting goals. Why? Because they tend to pick metrics they can't actually impact and set goals that leave them feeling empty once they've achieved them. So, let's define some key terms and explore how we can do better.
Based on this youtube video
Check out this video to get the audio source that generated this post.
Build fast, hire slow! I hate seeing companies make dumb mistakes, especially regarding hiring, and I’m not against full-time employment. Still, as a consultant, part-time engagements are often more beneficial to me, influencing my perspective on hiring. That said, I've observed two notable patterns in startup hiring practices: hiring too early and not hiring for dedicated research. Unfortunately, these patterns lead to startups hiring machine learning engineers to bolster their generative AI strengths, only to have them perform janitorial work for the first six months of joining. It makes me wonder if startups are making easy-to-correct mistakes based on a sense of insecurity in trying to capture this current wave of AI optimism. Companies hire Machine learning engineers too early in their life cycle.¶
Many startups must stop hiring machine learning engineers too early in the development process, especially when the primary focus should have been on app development and integration work. A full-stack AI engineer can provide much greater value at this stage since they're likely to function as a full-stack developer rather than a specialized machine learning engineer. Consequently, these misplaced machine learning engineers often assist with app development or DevOps tasks instead of focusing on their core competencies of training models and building ML solutions.
After all, my background is in mathematics and physics, not engineering. I would rather spend my days looking at data than trying to spend two or three hours debugging TypeScript build errors.