CancerDetection / README.md
hmarepal's picture
Update README.md
7f12c88 verified
|
Raw
History Blame Contribute Delete
2.96 kB
# Multi Cancer Detection
---
title: Cancer Histopathology Classifier
emoji: 🔬
colorFrom: blue
colorTo: green
sdk: streamlit
sdk_version: "1.36.0"
python_version: "3.10"
app_file: app.py
pinned: false
---
## Problem
I want to create model(s) that are able to distinguish the patterns and features from cancer images. The main goal isn't just to test accuracy but to test whether or not the model can correctly predict an image with any quality. The dataset contains high quality cancer images ranging from MRI scans to histopathology imaging. There will be some uncertainties with this and I don't expect any model to have a perfect guess for every picture. Regardless the prediction should be close or not at all.
## Dataset
Dataset Link: https://www.kaggle.com/datasets/obulisainaren/multi-cancer
Within the dataset contains 8 types of cancers found in specific organs. There is 26 distinct types of cancers in this 8 class cancer types. The cancers are Leukemia, Brain Cancer, Breast Cancer, Cervical Cancer, Kidney Cancer, Lung Cancer and Colon Cancer, Lymphoma, and Oral Cancer.
## Models
4 models are used within Project 2.
SVM that is trained on ResNet18 embeddings using Image2Vec.
A CNN trained on a portion of the dataset that is an optimized version from Project 1, this CNN uses data augmentation, ReduceLROnPlateau, and useful paddings.
I could not find a 2nd LLM that is supported by unsloth as the other models had over 4B parameters that ranged to 8B to 11B. Therefore, I compensated with a ViT that was specifically made for medical imaging. https://huggingface.co/owkin/phikon. I imported the model and then trained it on a portion of my dataset and it yielded the best results.
LLM link: https://huggingface.co/Qwen/Qwen3-VL-2B-Instruct. This LLM was not exposed to much of the data due to the computational strain it puts on Kaggle's VRAM and RAM. A lot of the training sessions would time out due to the RAM/VRAM going above the limit. The situation was more difficult due to Unsloth not supporting multi-GPUs. Therefore, the LLM will not perform as well as the other models but what is more important is the prediction it will give and seeing how close that prediction really is.
## Results
Training an VLLM is difficult due to the amount of computation time and limitations of hardware. Not every problem needs to be solved with an LLM, however, an LLM is more state of the art and more trendier these days. To handle an LLM would provide benefits as there will be benefits as a user can directly interact with the LLM to figure out what is happening with their scan of whatever cancer they have. But, I don't see a world where VLLMs can provide a more beneficial access to information than doctors who are trained for years and have experience within the scope of identifying a cancer image. Regardless better algorithms or models can cover the computational cost if we are simply identifying a form of cancer.