This repository contains an end-to-end machine learning pipeline designed to predict soil strength (Unconfined Compressive Strength, UCS) based on the proportions of soil mixtures and curing properties. The system employs TabPFN, an advanced prior-data fitted network for tabular data, alongside integration with large language and vision models for geotechnical analysis.
tabpfn) enabling rapid model training and high accuracy on tabular data without extensive hyperparameter tuning.rich for logs, tables, and progress indicators.SoilExpertLLM.SoilVisualVLM via integration with advanced foundation models (InternVL3-78B)..
├── main.py # Primary entrypoint wrapping the prediction and evaluation pipeline
├── data_loader.py # Utilities to load, clean, and partition soil data
├── model_trainer.py # Handles setup, training, and evaluation of the predictive models
├── llm_reporter.py # Interfaces with multimodal LLMs for expert geotechnical summaries
├── requirements.txt # Core Python dependencies
├── data/ # Folder to store CSV and other datastores (ignored via .gitignore)
└── README.md
Before analyzing the data, ensure you have Python 3.12+ installed.
We recommend utilizing an isolated virtual environment (.venv):
# 1. Create a Python environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 2. Install Dependencies
pip install -r requirements.txt
The system relies on a dataset ideally located at data/raw_soil_data.csv. The main pipeline looks for columns like RH_Percent, GGBFS_Percent, Curing_Days, DFSI_Percent, and targets UCS_kPa.
Simply trigger the main script from your terminal:
python main.py
This will run the full load, split, train, and validation cycles. In sequence, it will output the train vs. evaluation metrics, process an unseen mixture through the pipeline, and initialize LLM analysis steps.
Please see requirements.txt for the explicit package requirements. Major dependencies include pandas, scikit-learn, tabpfn, rich, transformers, torchvision, and accelerate.
5 commits
Python
100.0%
This repository contains an end-to-end machine learning pipeline designed to predict soil strength (Unconfined Compressive Strength, UCS) based on the proportions of soil mixtures and curing properties. The system employs TabPFN, an advanced prior-data fitted network for tabular data, alongside integration with large language and vision models for geotechnical analysis.
tabpfn) enabling rapid model training and high accuracy on tabular data without extensive hyperparameter tuning.rich for logs, tables, and progress indicators.SoilExpertLLM.SoilVisualVLM via integration with advanced foundation models (InternVL3-78B)..
├── main.py # Primary entrypoint wrapping the prediction and evaluation pipeline
├── data_loader.py # Utilities to load, clean, and partition soil data
├── model_trainer.py # Handles setup, training, and evaluation of the predictive models
├── llm_reporter.py # Interfaces with multimodal LLMs for expert geotechnical summaries
├── requirements.txt # Core Python dependencies
├── data/ # Folder to store CSV and other datastores (ignored via .gitignore)
└── README.md
Before analyzing the data, ensure you have Python 3.12+ installed.
We recommend utilizing an isolated virtual environment (.venv):
# 1. Create a Python environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 2. Install Dependencies
pip install -r requirements.txt
The system relies on a dataset ideally located at data/raw_soil_data.csv. The main pipeline looks for columns like RH_Percent, GGBFS_Percent, Curing_Days, DFSI_Percent, and targets UCS_kPa.
Simply trigger the main script from your terminal:
python main.py
This will run the full load, split, train, and validation cycles. In sequence, it will output the train vs. evaluation metrics, process an unseen mixture through the pipeline, and initialize LLM analysis steps.
Please see requirements.txt for the explicit package requirements. Major dependencies include pandas, scikit-learn, tabpfn, rich, transformers, torchvision, and accelerate.
5 commits
Python
100.0%