Max Rubin-Toles, COL ’25, Tucson, AZ
Last fall, I wrote my first proof. This fall, I’m applying to theoretical computer science PhD programs with the hope of becoming a researcher in machine learning. Funding from Penn Career Services allowed me to make such a swift transition: this summer, I began my first substantial academic research experience with little prior domain experience.
I had the good fortune to work with Computer and Information Sciences Professor Surbhi Goel and fellow undergraduate Maya Gambhir (Artificial Intelligence, ‘26). We set out to understand and mitigate language model hallucinations (which is just when ChatGPT convincingly and fluently produces false outputs, which can even cause lawyers to lose cases) and settled upon a statistical technique called conformal prediction that allows the user to calibrate model outputs to a desired factuality level, sacrificing some specificity to achieve this. This technique was originally developed to improve the accuracy of models like linear predictors and image classifiers by converting single outputs to uncertainty sets (e.g., {cat, dog} if the model is uncertain which is correct), but a recent work by Christopher Mohri and Tatsunori Hashimoto of Stanford, which we sought to extend, proposes applying this technique to language model outputs, which are notoriously error-ridden.
This work successfully filters outputs to improve factuality for simple recall tasks like biography generation, but fails to consider the interdependence of claims in reasoning outputs like math solutions. It took quite a while for us to specify this shortcoming was, and for a while we simply attempted to improve the performance of the algorithm Mohri and Hashimoto present by considering the interplay of claims, but we came to realize that we needed to scrap their definition of factuality entirely. We developed a new mathematical definition for the “systemic” or “dependent” type of factuality we seek in these reasoning problems and a tractable algorithm to obtain it: we have begun experiments to validate the practical utility of our algorithm.
This summer helped me develop two important research skills: being confused and admitting to being confused. Going into the summer, I knew these were skills were essential, yet I didn’t know how to apply them. Many sources advertise that research is hard, uniquely humbling, and fundamentally different from the challenges of school: while I attempted to internalize these messages, only experience could really teach this. I had learned how to grapple with a difficult problem in school, but I had always known the problem was solvable, usually in a clean and accessible way, and that with enough effort and proper use of my resources, I would unravel it. I was not prepared to begin asking the questions myself without knowing whether they were tractable or even relevant, and then pivoting when they weren’t.
Sometimes I knew I didn’t understand a concept, but I was too shy or ashamed to ask, convinced I should understand it easily. When I finally did ask, and was met with patient explanation rather than judgment, I realized I could’ve saved weeks of effort by admitting to not knowing. I also spent time fearing the unknown. I was new to coding, and particularly new to the kind of coding required of me for this project (making and processing queries to ChatGPT), but when I finally sat down and did it, I realized it wasn’t too hard to pick up. I had a surprising amount of fun with the software engineering side of the project, which I had originally dreaded.
This research project was the hardest challenge I’ve undertaken. As a result, I am proud of the progress we made. I was forced to face failure, unfamiliarity, and the discomfort of not knowing: I can’t wait to make a career of it.
This is part of a series of posts by recipients of the 2024 Career Services Summer Funding Grant. We’ve asked funding recipients to reflect on their summer experiences and talk about the industries in which they spent their summer. You can read the entire series here