wiki:Other/Summer/2024/lLM

Version 13 (modified by talati, 4 months ago) ( diff )

HS Team Members: Jose Rubio, Sathvik Samant, Jonathan Duran, Vedant Talati https://www.orbit-lab.org/wiki/Other/Summer/2024/lLM?action=edit#

Project Goal: To create a functional smart-space for Internet-of-Things(IoT) and Machine Learning (ML) research. "Maestros," which are RaspberryPi 3B+s with various sensors, will collect a variety of multi-modal data formats (ex. temperature, humidity, RGB, motion, video, audio, etc). This data, then, will be stored on the a WINLAB server, and can be remotely connected to and experimented with using SSH.

After collecting this data, these "Maestros" will enable LLM creation and model development to create a multi-modal, machine learning-powered smart space for cities and a variety of environments.

Week 1 Slideshow Link: https://docs.google.com/presentation/d/1tB2aXgDJbP6hyVbTjhTdmyO4sL-t9mIQVLcBbdQiM44/edit?usp=sharing What we did this week:

  1. Github Familiarized ourselves with Cy-Phy Lab Github, understanding system architecture, existing code, and creating our credentials. We then practiced pushing and pulling commits to Github using the following command line prompts:
git clone https://github.com/URL-TO-REPO-HERE #to clone repository onto local
git status 
git add #takes the changes from working directory to staging area
git commit #takes changes from staging area and pushes to repository
git commit -m "ADD_COMMIT_MESSAGE_HERE" #to ensure readable Github
git push origin main #this pushes changes to the main repository from your local
  1. SSL Connection to Maestros Since this project requires us to first connect to the testbed and then to the RaspberryPi (Maestros), we had to familiarize ourself with SSH (Secure Shell Protocol) to securely send instructions to the Maestros. We first created ORBIT accounts to access testbed, and then followed instructions to connect:
    #have two command prompts open, and complete the following in both
    ssh testbed@10.61.1.235 -L 5000:localhost:5000 #after, type in the password
    #in one of the windows, run the following:
    conda activate smart-box #activating a specific environment with dependencies
    cd maestro/Maestro-Testbed #access directory
    ./testbed.sh 
    #in the other, run the following
    cd /home/testbed/maestro/Maestro-Testbed/app
    python start_experiment.py --ids 1 --video_model None --sensor_model None --chunk_size 10 --frequency 10 --directory storage #id can be changed based on running maestro
    #to end, run the following in the same tab:
    python end_experiment.py
    

After familiarizing ourselves with this, we were more prepared to run experiments ourselves and respond to connection and backend issues in the Github.

  1. Calibrating Maestros To ensure that experiments can be run on most/all maestros, we needed to install dependencies, found SD imaging method to do that.
  2. Creating Frontend UI for SSH connection To simplify testbed/maestro connection workflow, we are working on creating a user friendly frontend to run experiments without 2 windows open.

Week 2 Slideshow Link:https://docs.google.com/presentation/d/1KVkkivbBrbGRZX3KOFKji4vJhOQXKhP2bg0rk4jRsdE/edit#slide=id.p What we did this week:

  1. Maestro Tracking (GitHub Issue): We worked on creating an updatable JSON file for the experiment which could show the status of the experiment, as well as the specific Maestros that were running. The file can update in real time, as Maestros are turned on and off. This was accomplished by adding a check_json function to the file, app.py.
def check_json():
    path = r"experiment.json"
    if not os.path.exists(path):
        experiment_dict = {
            "status": "off",
            "maestros": []
        }
        json_obj = json.dumps(experiment_dict, indent=4)
        with open('experiment.json', 'w') as outfile:
            outfile.write(json_obj)
    else:
        return
  1. Frontend Development:
  1. Maestro Setup: We got 6 Maestros setup and running within our group's local workspace. These Maestros are all set to run experiments and start collecting data. We plan roll out more Maestro devices throughout the rest of WINLAB in the coming two weeks, with the end goal of having ~25 Maestro devices throughout the facility collecting data.

Week 3

Week 4

Week 5

Note: See TracWiki for help on using the wiki.