Spaces:
Running
Running
Merge pull request #15 from Sistem-Cerdas-Recruitment/production
Browse files
cloudbuild.yaml
CHANGED
@@ -1,16 +1,12 @@
|
|
1 |
steps:
|
2 |
- name: "gcr.io/cloud-builders/docker"
|
3 |
dir: "core-model-prediction"
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
"us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest",
|
11 |
-
".",
|
12 |
-
]
|
13 |
-
secretEnv: ["HF_TOKEN"]
|
14 |
|
15 |
- name: "gcr.io/cloud-builders/docker"
|
16 |
args:
|
@@ -19,10 +15,14 @@ steps:
|
|
19 |
"us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest",
|
20 |
]
|
21 |
|
|
|
|
|
|
|
|
|
22 |
images:
|
23 |
- "us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest"
|
24 |
|
25 |
availableSecrets:
|
26 |
secretManager:
|
27 |
-
- versionName: "projects/${PROJECT_ID}/secrets/HF_TOKEN/versions/
|
28 |
-
env: "
|
|
|
1 |
steps:
|
2 |
- name: "gcr.io/cloud-builders/docker"
|
3 |
dir: "core-model-prediction"
|
4 |
+
entrypoint: "bash"
|
5 |
+
secretEnv: ["_HF_TOKEN"]
|
6 |
+
args:
|
7 |
+
- -c
|
8 |
+
- |
|
9 |
+
docker build -t us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest --build-arg HF_TOKEN=$$_HF_TOKEN .
|
|
|
|
|
|
|
|
|
10 |
|
11 |
- name: "gcr.io/cloud-builders/docker"
|
12 |
args:
|
|
|
15 |
"us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest",
|
16 |
]
|
17 |
|
18 |
+
options:
|
19 |
+
pool:
|
20 |
+
name: 'projects/${PROJECT_ID}/locations/us-central1/workerPools/ai-detector-builder'
|
21 |
+
|
22 |
images:
|
23 |
- "us-central1-docker.pkg.dev/${PROJECT_ID}/interview-ai-detector/model-prediction:latest"
|
24 |
|
25 |
availableSecrets:
|
26 |
secretManager:
|
27 |
+
- versionName: "projects/${PROJECT_ID}/secrets/HF_TOKEN/versions/latest"
|
28 |
+
env: "_HF_TOKEN"
|
core-model-prediction/Dockerfile
CHANGED
@@ -1,6 +1,3 @@
|
|
1 |
-
# HF Token args
|
2 |
-
ARG HF_TOKEN
|
3 |
-
|
4 |
# Use an official Python runtime as a base image
|
5 |
FROM pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime
|
6 |
|
@@ -20,6 +17,9 @@ RUN python -m nltk.downloader punkt wordnet averaged_perceptron_tagger
|
|
20 |
# Unzip wordnet
|
21 |
RUN unzip /root/nltk_data/corpora/wordnet.zip -d /root/nltk_data/corpora/
|
22 |
|
|
|
|
|
|
|
23 |
# Download HuggingFace model
|
24 |
RUN python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; \
|
25 |
tokenizer = AutoTokenizer.from_pretrained('google/gemma-2b', token='$HF_TOKEN'); \
|
@@ -28,7 +28,7 @@ RUN python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; \
|
|
28 |
model.save_pretrained('/app/gemma-2b')"
|
29 |
|
30 |
# Model env
|
31 |
-
ENV MODEL_DIR
|
32 |
|
33 |
# Make port 8080 available to the world outside this container
|
34 |
EXPOSE 8080
|
|
|
|
|
|
|
|
|
1 |
# Use an official Python runtime as a base image
|
2 |
FROM pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime
|
3 |
|
|
|
17 |
# Unzip wordnet
|
18 |
RUN unzip /root/nltk_data/corpora/wordnet.zip -d /root/nltk_data/corpora/
|
19 |
|
20 |
+
# HF Token args
|
21 |
+
ARG HF_TOKEN
|
22 |
+
|
23 |
# Download HuggingFace model
|
24 |
RUN python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; \
|
25 |
tokenizer = AutoTokenizer.from_pretrained('google/gemma-2b', token='$HF_TOKEN'); \
|
|
|
28 |
model.save_pretrained('/app/gemma-2b')"
|
29 |
|
30 |
# Model env
|
31 |
+
ENV MODEL_DIR=gemma-2b
|
32 |
|
33 |
# Make port 8080 available to the world outside this container
|
34 |
EXPOSE 8080
|
core-model-prediction/gemma2b_dependencies.py
CHANGED
@@ -13,9 +13,9 @@ class Gemma2BDependencies:
|
|
13 |
def __new__(cls):
|
14 |
if cls._instance is None:
|
15 |
cls._instance = super(Gemma2BDependencies, cls).__new__(cls)
|
16 |
-
model_dir = os.getenv("MODEL_DIR", "
|
17 |
-
cls._instance.tokenizer = AutoTokenizer.from_pretrained(model_dir)
|
18 |
-
cls._instance.model = AutoModelForCausalLM.from_pretrained(model_dir)
|
19 |
cls._instance.device = DeviceManager()
|
20 |
cls._instance.model.to(cls._instance.device)
|
21 |
return cls._instance
|
|
|
13 |
def __new__(cls):
|
14 |
if cls._instance is None:
|
15 |
cls._instance = super(Gemma2BDependencies, cls).__new__(cls)
|
16 |
+
model_dir = os.getenv("MODEL_DIR", "gemma-2b")
|
17 |
+
cls._instance.tokenizer = AutoTokenizer.from_pretrained(model_dir, local_files_only=True)
|
18 |
+
cls._instance.model = AutoModelForCausalLM.from_pretrained(model_dir, local_files_only=True)
|
19 |
cls._instance.device = DeviceManager()
|
20 |
cls._instance.model.to(cls._instance.device)
|
21 |
return cls._instance
|