Hello, Anna from Victoria

Hello! I’m a software engineer based in Victoria, Canada. I first learned about TBP last fall after reading A Thousand Brains. I’ve long been interested in neuroscience and understanding intelligence as hobbies, and was really excited to discover the work of Jeff Hawkins and this team. The mission, the way you’re going about achieving it, the openness and transparency of this community, and the research achievements are inspiring and impressive. It’s been so illuminating, and fun, reading your docs and watching the various videos on your channel.

My software engineering background includes building and maintaining large SaaS platforms. I enjoy bringing sprawling codebases into something performant, easy to maintain and extend. I’d love to find a way to help the project’s goals in whatever way my skills could be useful. I’ve completed the introductory tutorials and read through the roadmap. It seems my skillset could be most useful in helping improve the code infrastructure, increasing test coverage, optimizations and benchmarks, and I’d love to do any of that.

Two of the infrastructure topics from the project planning spreadsheet that seemed like good first tasks are Combine Dataloader and Dataset class into EnvironmentInterface, and Use State class inside of LMs. If there are more details available about how you’d like these pieces to be implemented, I’d be happy to learn more. Or, if you have pointers to other areas where help is needed, please let me know.

6 Likes

Hi @annark, welcome!

Thank you for offering to help. We appreciate it.

Combining Dataloader and Dataset into EnvironmentInterface sounds like a good project. Breaking that down into smaller chunks would be something along the lines of:

  • Move the four functions implemented in EnvironmentDataset into EnvironmentDataLoader.
  • Update the calls to those functions to reference the EnvironmentDataLoader instead.
  • Rename EnvironmentDataLoader to EnvironmentInterface, get rid of DataLoader language throughout.
  • Track down necessary configuration changes and ensure benchmarks all run with the same results (they currently double as end-to-end integration tests)
    • As long as your machine’s benchmarks are the same before and after, they don’t need to match our posted numbers. We can verify this later.
  • There are also likely documentation updates to make.

I hope that helps get you started.

Cheers,

Tristan

3 Likes

Thanks Tristan, that’s a great help. I’ll get started shortly.

Anna

2 Likes

Hi @annark

Welcome to the forum! I’m happy to hear about your interest in the project and in contributing. That is amazing, thank you :slight_smile: Please feel free to reach out if you run into any questions or issues.

Changing the Dataset and Dataloader naming and setup to something that more accurately reflects that Monty learns in an environment and not from a static dataset is something we’ve wanted to do for a long time and it would be incredibly valuable for people to get an easier understanding of how to use Monty.

  • Viviane
2 Likes

Thank you Viviane and Tristan for the warm welcome!

I do have some questions about the task - I’ll make a new topic in the Monty Code category.

1 Like