Programming Projects


OpenAI Finetuned Model

Last summer, I completed an internship at Ascribe Marketing Inc, where I was able to both expand my expertise in AI and fulfill an important commercial goal. Ascribe, an Ottawa-based content agency that helps companies produce whitepapers, reports, and company announcements, was concerned by the potential impact of procedurally-generated writing (particularly by OpenAI’s ChatGPT) on their business. I was given the task of creating a GPT fine-tuned model that would rewrite such documents in a specified tone of voice, such as “professional”, “friendly”, or “concise”.

GPT fine-tuned models offer the opportunity to have GPT output content that is heavily influenced by training data selected by the user. By uploading data in a prompt : completion format, the model is trained to respond to the shown types of prompts in a similar way to the provided completions. This process requires interfacing the OpenAI API through Python, a language which I had fortunately already known for a few years. A few issues immediately became apparent upon commencement of the project. The key requirement of creating a strong fine-tuned model, high-quality training data, was initially unavailable to me. To overcome this, I had to manually locate five hundred articles that were written with a highly neutral tone but still had relevant content that would be useful when training a model to rewrite business documents in other styles. After collecting data, I created a training loop that was able to parse and rewrite each article while following a certain prompt, filling out the “completion” part of the prompt : completion training file.

In the end, I was able to present Ascribe with a model that could rewrite text in a professional tone better than ChatGPT could, instructions on how to replicate it in different tones of voice, and a report detailing the process. Ascribe used my findings to assess the future impact of AI on their writing, ultimately deciding that their work still wasn’t at risk of being replaced.


My Simulation Game

Later, I decided to apply my economic knowledge by developing a web game called “Medieval MarketSim” that modeled a fantasy store selling goods. The player’s role as a shopkeeper in a dynamic world allows for both user choices and randomly simulated events to impact the game’s economy. I chose the medieval setting because it allowed me to accurately represent fundamental principles like supply and demand, diminishing returns, and the effects of monopolies. This also helped me avoid the complexity of modern economic phenomena, such as central banks and inflation, which could have detracted from the game's enjoyability. Technologies used in game development include HTML, CSS, Javascript, JQuery, and JSON, some of which I was initially unfamiliar with. The game is a work in progress, and I add to it whenever I have the time.