ocdevel / gnothi

Gnothi is an open-source AI journal and toolkit for self-discovery. If you're interested in getting involved, we'd love to hear from you.
https://gnothiai.com
GNU Affero General Public License v3.0
166 stars 18 forks source link

TableQA & bug-tracking #166

Closed lefnire closed 1 year ago

lefnire commented 1 year ago

Boring stuff first. Adding a bunch of bug-tracking tooling, in this last stretch of stabilization. Also working on performance optimization of the UI, with various methods of (1) better handling of useStore/useState, (2) breaking components out so they don't get re-rendered on state changes they don't care about; (3) useMemo/useCallback where (2) is too difficult to achieve.

Fun stuff: TableQA #165 (premium feature). Ask questions of your Behaviors, like "what behavior impacts Mood the most". I'm using this model https://huggingface.co/microsoft/tapex-base-finetuned-wtq , so chime in if there's thoughts on better models to explore. There's a tough limitation on context-length, I think it's 1024; meaning the behaviors data can only go back so far, so the answers might not always be accurate. Note: the columns available for asking are behavior,date,value. So you'll want to word your questions just so: "what behavior impacts Mood the most" (behavior is the name of the column, Mood is the name of your Behavior to reference). Or "what's the average of Sleep" or "when is Alcohol** the highest". What I'm getting at is you'll want to be particular with your wording.

I looked into using GPT for this feature, with the prompt Below is a CSV. Based on the data there, which "behavior" impacts "Mood" the most?\n\n${CSV}. It actually couldn't deliver! Lots of long-from "what we do here, and CSVs are a format which, and correlation isn't causation" finally followed by "but it's too complicated to assess without further details." That was using GPT-4, so I was surprised it didn't work. So for now we're gonna stick with TableQA from Huggingface; focusing on exploration of different models in this realm, possibly fine-tuning a model based on goals (eg, the outputs of DoWhy); and keeping a finger on the pulse of OpenAI or other for table data.