Proff12 commited on
Commit
c57d186
·
verified ·
1 Parent(s): 61682ab

Ready to Rumble

Browse files
Files changed (4) hide show
  1. .dockerignore +9 -0
  2. .gitattributes +35 -35
  3. Dockerfile +39 -0
  4. README.md +43 -12
.dockerignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+
2
+ frontend/node_modules
3
+ frontend/dist
4
+ __pycache__/
5
+ *.pyc
6
+ *.pyo
7
+ .git
8
+ .gitignore
9
+ .DS_Store
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # --- Stage 1: Build React frontend ---
3
+ FROM node:20-alpine AS frontend
4
+ WORKDIR /app/frontend
5
+ COPY frontend/package*.json ./
6
+ RUN npm ci
7
+ COPY frontend/ ./
8
+ RUN npm run build
9
+
10
+ # --- Stage 2: GPU-enabled Python backend ---
11
+ # Requires NVIDIA Container Toolkit on host and runtime flag: --gpus all
12
+ FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 AS backend
13
+
14
+ ENV DEBIAN_FRONTEND=noninteractive PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1
15
+
16
+ # Install Python and system deps
17
+ RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv git && rm -rf /var/lib/apt/lists/*
18
+
19
+ WORKDIR /app
20
+
21
+ # Install CUDA-enabled PyTorch (cu121)
22
+ RUN python3 -m pip install --upgrade pip && python3 -m pip install --index-url https://download.pytorch.org/whl/cu121 torch==2.4.1+cu121
23
+
24
+ # Install remaining Python deps
25
+ COPY backend/requirements.txt /app/backend/requirements.txt
26
+ RUN python3 -m pip install -r /app/backend/requirements.txt
27
+
28
+ # Copy backend code
29
+ COPY backend/ /app/backend/
30
+
31
+ # Copy frontend build to a static dir served by FastAPI
32
+ RUN mkdir -p /app/static
33
+ COPY --from=frontend /app/frontend/dist/ /app/static/
34
+
35
+ ENV STATIC_DIR=/app/static MODEL_ID=FractalAIResearch/Fathom-R1-14B PIPELINE_TASK=text-generation QUANTIZE=auto
36
+
37
+ EXPOSE 8000
38
+
39
+ CMD ["uvicorn", "app.main:app", "--app-dir", "/app/backend", "--host", "0.0.0.0", "--port", "8000"]
README.md CHANGED
@@ -1,12 +1,43 @@
1
- ---
2
- title: Fathom R1 Chat
3
- emoji: 🚀
4
- colorFrom: pink
5
- colorTo: pink
6
- sdk: docker
7
- pinned: false
8
- license: mit
9
- short_description: Solve Math; Don't Cheat
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # Fathom R1 Chat — Full‑stack (React + FastAPI)
3
+
4
+ ChatGPT‑style UI on React + a FastAPI backend that calls **FractalAIResearch/Fathom-R1-14B** via `transformers`.
5
+
6
+ ## Run with Docker (GPU)
7
+
8
+ > Requires an NVIDIA GPU + NVIDIA Container Toolkit.
9
+
10
+ ```bash
11
+ docker build -t fathom-r1-chat .
12
+ docker run --gpus all -p 8000:8000 -e MODEL_ID=FractalAIResearch/Fathom-R1-14B -e QUANTIZE=auto fathom-r1-chat
13
+ # Open http://localhost:8000
14
+ ```
15
+
16
+ ### Notes
17
+ - Model is derived from **DeepSeek-R1-Distill-Qwen-14B** and targets **16K context** usage. Use the tokenizer chat template.
18
+ - For long answers, bump `max_new_tokens` in the request.
19
+ - If you need private HF access, pass `-e HUGGING_FACE_HUB_TOKEN=...`.
20
+
21
+ ## Dev mode (run separately)
22
+ ```bash
23
+ # backend
24
+ cd backend
25
+ python3 -m venv .venv && source .venv/bin/activate
26
+ pip install --index-url https://download.pytorch.org/whl/cu121 torch==2.4.1+cu121
27
+ pip install -r requirements.txt
28
+ uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
29
+
30
+ # frontend (new terminal)
31
+ cd frontend
32
+ npm ci
33
+ npm run dev
34
+ ```
35
+
36
+ ## API
37
+ - `POST /api/chat` with `{ messages: [{role, content}, ...], max_new_tokens, temperature, top_p }` → `{ reply, model }`
38
+
39
+ ## Hardware
40
+ - 14B parameter model; for comfortable generation use **>=24–40 GB VRAM** or 4/8‑bit quantization on 16–24 GB GPUs.
41
+
42
+ ## License
43
+ - MIT (model card states MIT) and this template is MIT.