docs: document MedGemma CT setup on 3060

This commit is contained in:
2026-11-06 10:47:21 +03:00
parent 8bd6375e5f
commit 407c5e53a6
+182
View File
@@ -0,0 +1,182 @@
# MedGemma and CT processing on server 3060
Date: 2026-11-06
## Server access
Server `3060` is reachable from the local Moscow network at `192.168.1.49`.
SSH access:
```bash
ssh -i ~/.ssh/id_ed25519-3060 naeel@192.168.1.49
```
Windows key path used for the local setup:
```text
Y:\MY\Nubes\id_ed25519
```
The private key itself is not stored in this repository or in this document.
## Host resources
Verified on the host:
- OS: Ubuntu 24.04.5 LTS, x86_64
- CPU: AMD Ryzen 5 5600, 6 cores / 12 threads
- RAM: 15 GiB
- Swap: 4 GiB
- GPU: NVIDIA GeForce RTX 3060, 12 GiB VRAM
- NVIDIA driver: 580.178.04
- Disk: NVMe, 476.9 GB; approximately 141 GB free at verification time
The host is suitable for local inference with MedGemma 4B. The 27B variants are not a practical fit for this hardware.
## CT data
The source CT directory was copied to the host:
```text
/home/naeel/MED_DATA/CY_CT
```
Verification after transfer:
- 1,669 files
- approximately 1.3 GB
- source data was not modified
No DICOM headers, patient identifiers, or image content are stored in this repository.
## Installed environment
The isolated Python environment is:
```text
/home/naeel/MED_DATA/medgemma-venv
```
Activate it with:
```bash
source /home/naeel/MED_DATA/medgemma-venv/bin/activate
```
Installed and verified components include:
- PyTorch `2.11.0+cu128`
- Transformers `5.22.1`
- torchvision
- accelerate
- bitsandbytes
- huggingface_hub
- pydicom
- SimpleITK
- NumPy
- Pillow
- safetensors
CUDA verification succeeded and PyTorch detected the RTX 3060 with 11.60 GiB usable VRAM.
## MedGemma model
Model:
```text
google/medgemma-4b-it
```
Local path:
```text
/home/naeel/MED_DATA/models/medgemma-4b-it
```
Model download verification:
- 15 of 15 files downloaded
- approximately 8.64 GB
- `AutoProcessor` loaded successfully
- `AutoModelForImageTextToText` loaded successfully with BF16 and `device_map="auto"`
- model weights loaded on the RTX 3060
Hugging Face access is gated. The token is stored in the user's Hugging Face cache on the server and is not recorded here. To authenticate a new session, use:
```bash
/home/naeel/MED_DATA/medgemma-venv/bin/hf auth login
```
Do not put the token in this repository, shell history, or chat messages.
## Smoke test
A real read-only smoke test was run against one readable DICOM slice from `CY_CT`.
The test performed the following steps:
1. Read one DICOM image with `pydicom`.
2. Applied `RescaleSlope` and `RescaleIntercept` when present.
3. Applied a soft-tissue CT window: center 40, width 400.
4. Converted the slice to an 8-bit PIL image.
5. Sent one image and a short prompt to MedGemma.
Result:
- DICOM found: yes
- CUDA inference: successful
- elapsed time: approximately 3.5 seconds
- response: a generic description of bones, soft tissue, and air; no diagnosis was generated
This was only a technical inference test. It was not a full-series CT analysis.
## Correct CT processing pipeline
MedGemma 4B is an image-text model. It is not a ready-made 3D CT analysis system. The model card describes evaluation primarily on single-image tasks and does not establish reliable multi-image or full-volume CT interpretation.
A proper pipeline should be:
```text
DICOM series
-> group by SeriesInstanceUID
-> sort by ImagePositionPatient
-> convert pixels to HU
-> resample the 3D volume
-> apply appropriate CT windows
-> run a task-specific 3D CT model
-> send selected images and structured results to MedGemma
-> save structured output and provenance
```
Useful ready-made components:
- 3D Slicer for DICOM viewing and volume preparation
- TotalSegmentator for anatomical CT segmentation
- MONAI Label for interactive model-based segmentation
- nnU-Net for a specific segmentation task with a compatible model
- OHIF Viewer for browser-based DICOM viewing
Running all 1,669 files independently through MedGemma would produce disconnected slice descriptions. At the measured rate it would take roughly 1 hour 40 minutes of inference, plus DICOM and output overhead. That is not equivalent to a 3D CT analysis.
## Current state
Completed:
- local SSH access to server 3060 verified
- `MED_DATA/CY_CT` copied to the server
- isolated GPU Python environment installed
- MedGemma 4B downloaded and loaded successfully
- one-slice DICOM inference verified
Not yet implemented:
- DICOM series grouping and validation
- 3D volume assembly and resampling
- task-specific CT segmentation or detection model
- persistent API or web service
- full-series processing and result aggregation
## Safety and data handling
The model output is preliminary and may be incorrect. The MedGemma model card requires downstream validation and meaningful adaptation for a specific use case. This repository records installation and engineering checks only; it does not contain a clinical conclusion or patient data.