Yakobus Iryanto Prasethio commited on
Commit
f0b1385
·
unverified ·
2 Parent(s): ac62fa8 c367a95

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
- args:
5
- [
6
- "build",
7
- "--build-arg",
8
- "HF_TOKEN=${_HF_TOKEN}",
9
- "-t",
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/1"
28
- env: "HF_TOKEN"
 
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=/app/gemma-2b
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", "/app/gemma-2b")
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