eneSadi commited on
Commit
c65cfb2
1 Parent(s): b7f9bda

first commit

Browse files
Files changed (3) hide show
  1. Dockerfile +16 -0
  2. app.py +61 -0
  3. requirements.txt +4 -0
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10-slim
2
+
3
+ RUN useradd user
4
+
5
+ USER user
6
+
7
+ ENV HOME=/home/user \
8
+ PATH=/home/user/.local/bin:$PATH
9
+
10
+ WORKDIR $HOME/app
11
+
12
+ COPY --chown=user ./ $HOME/app
13
+
14
+ RUN pip install -r requirements.txt
15
+
16
+ CMD fastapi run --reload --host=0.0.0.0 --port=7860
app.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM
3
+ import torch
4
+
5
+ model_id = "ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1"
6
+
7
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
8
+ model = AutoModelForCausalLM.from_pretrained(
9
+ model_id,
10
+ torch_dtype=torch.float16,
11
+ device_map="auto",
12
+ )
13
+
14
+ # bu mesaj değiştirilebilir ve chatbotun başlangıç mesajı olarak kullanılabilir
15
+ initial_message = [
16
+ {"role": "system", "content": "Sen bir yapay zeka asistanısın. Kullanıcı sana bir görev verecek. Amacın görevi olabildiğince sadık bir şekilde tamamlamak."}
17
+ # Görevi yerine getirirken adım adım düşün ve adımlarını gerekçelendir.
18
+ ]
19
+
20
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
21
+
22
+ app = FastAPI()
23
+
24
+
25
+ @app.get('/')
26
+ def home():
27
+ return {"hello": "Bitfumes"}
28
+
29
+
30
+ @app.get('/ask')
31
+ def ask(prompt: str):
32
+
33
+ messages = initial_message.copy()
34
+ messages.append({"role": "user",
35
+ "content": f"{prompt}"})
36
+
37
+ input_ids = tokenizer.apply_chat_template(
38
+ messages,
39
+ add_generation_prompt=True,
40
+ return_tensors="pt"
41
+ ).to(model.device)
42
+
43
+ terminators = [
44
+ tokenizer.eos_token_id,
45
+ tokenizer.convert_tokens_to_ids("<|eot_id|>")
46
+ ]
47
+ print("Model process started")
48
+ outputs = model.generate(
49
+ input_ids,
50
+ max_new_tokens=256,
51
+ eos_token_id=terminators,
52
+ do_sample=True,
53
+ temperature=0.6,
54
+ top_p=0.9,
55
+ )
56
+ response = outputs[0][input_ids.shape[-1]:]
57
+
58
+ print("Tokenizer decode process started")
59
+ answer = tokenizer.decode(response, skip_special_tokens=True)
60
+
61
+ return answer
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ transformers
4
+ torch