-
-
Input: Polishing your writing Output:Polishing your writing a better way.
-
Our lovely loading screen: the progress bar indicates launch speed
-
In: Polishing your writing Out: Polishing your words can be a lot easier for writers.
-
Full Screen: the statement below the loading bar will be finished with AI generated content once the model is ready, as a warmup
-
Accessibility: with a strong emphasis on accessibility, the text can be enlarged. Here we see the generation coming from
-
In:You belong at Calhacks Out:Come join a CalHacks community! Come join a group
Inspiration
As busy hakerrs hackers, spelling, sentence structure, or grammar are seldom luxuries that we have time to indulge. We decided to face our writing demons for one last time. The result? Polish. In providing a closed-sourced alternative for many of the same mechanical functions as other text processing algorithms such as Grammarly, we can simultaneously provide instant feedback while protecting information and increasing user transparency. With increasing reliance on and availability of technology, cyber security is more important now than ever before; we hackers need a reliable, intuitive interface which that can protect our data and save us time. We keep Polish running local on the user's device, which allows our users to maintain control over their own data, and their own writing.
(Disclaimer: This paragraph was not written with Grammarly)
What it does
Polish is here for your writing– or reading– needs. Our summarization feature will slash the time you spend dealing with verbose writing. Polish provides clear, concise, and reliable highlights of the text you need to get through. If you found the above paragraph too long, here is a summarized version created by Polish:
"This product was inspired by Grammarly: we saw great benefits in fixing its closed-sourced nature, because we consider transparency of our product one of the most important features. With safety being an ever growing issue, we know we need our users to trust the solution that we provide. "
Polish also works to finish sentences through its AI-generated recommendations. These can provide creative and useful endings for any sentence starters you desire. Writer's block? Just allow Polish to find a sentence ending that works for you. Not enough time? All you need is a few sentence starters to generate whole paragraphs of text in a fraction of the time. Whether you need something to cure boredom, spark creativity, or save time, Polish has an array of features to work for your specific needs.
How we built it
One of the biggest goals for this project is to move all computationally expensive and data handling components off of the cloud and onto the user's device for enhanced control over the model and user data privacy.
To achieve this we first identified some datasets, namely ASSET for summarization and JFLEG for grammatical correction and combining both datasets to create a sentence completion dataset.
Then, we chose T5 for its multitasking capabilities (and existing pretraining on summarization) to finetune on this dataset.
Following this, we began to build the webapp. As this space of running Transformer models on the edge is very poorly documented/not documented at all, we ended up translating inference and tokenization code from a variety of sources from python to js. To save on time, our frontend is built on vanilla HTML/CSS/JS.
Challenges we ran into
- Many of our team members are new to building web applications, and had to learn HTML/CSS/JS from scratch
- There is very little exploration into running natural language on the edge (ore even with tensorflowjs). However, this didn't keep us from managing to create a working model that works on laptops and (select, non-apple) mobile devices!
Accomplishments that we're proud of
We are proud that Polish is so user friendly. We created this product with user's interests in mind, hoping to ease their worries in the domain of safety while maximizing speed and visibility into what the model is actually doing by moving traditionally server-side data directly into users' hands in the browser. Furthermore, we made sure to focus on creating an accessible product by making the text size adjustable, adapting to various screen sizes with ease. With a smooth zooming feature, the smaller text can be enlarged for users. We believe that creating the best experience will not only provide a good technical site for writing amelioration but also a product users will love.
What we learned
As our team is majority beginners, we struggled acclimating ourselves to JavaScript. However, this has been a wonderful learning opportunity, as we familiarize ourselves with JavaScript, HTML, cleaning data, and training our model. We learned a lot about web development, and about all the parts that come together to create this product. Another very important lesson we learned is task prioritization (even without systems such as boards to keep track of them). We were often sidetracked building fun and quirky features or sharing a laugh over the dumb things the model generated.
What's next for Polish
As great of a product that Polish is after one continuous sleep-deprived coding session, we believe that it has a lot of room to grow. We are hoping to do more extensive debugging, resolving fundamental architecture flaws, and moving on to more industry standard frameworks, such as react native. We then want to optimize Polish to work better on cell phones by creating a mobile app and taking advantage of the more robust frameworks, such as tensorflow lite. This way it will be more distributable and have a wider market. We also believe in constantly bettering our model, because we know that we can never be perfect. Optimizing the model inference speed and memory efficiency would be the natural next steps for making Polish the natural option for customers. We hope that you will love Polish as much as it loves to help you support you in your writing!
Built With
- flask
- gcp
- javascript
- python
- tensorflowjs
Log in or sign up for Devpost to join the conversation.