Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/ru llama distribution #383

Merged
merged 64 commits into from
Apr 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
7d28749
feat: ru prompted dist based on llama
dilyararimovna Mar 31, 2023
e06f53c
feat: ru persona
dilyararimovna Mar 31, 2023
937066c
fix: versions
dilyararimovna Mar 31, 2023
f70d119
fix duplicate endpoints, missing keys (#371)
mtalimanchuk Apr 3, 2023
0f0d9d4
Make MTL refer to DeepPavlov 1.1 instead of my branch (#366)
dimakarp1996 Apr 4, 2023
8033933
fix: starting openai services without dev.yml (#373)
IgnatovFedor Apr 4, 2023
3a22df6
fix: reqs
dilyararimovna Apr 6, 2023
48be910
fix: dockerfile
dilyararimovna Apr 6, 2023
6991620
fix: pip update
dilyararimovna Apr 6, 2023
8a5f8fb
fix: reqs
dilyararimovna Apr 7, 2023
3f5d93a
feat: using peft for gusev's model
dilyararimovna Apr 7, 2023
df01315
fix: reqs
dilyararimovna Apr 7, 2023
6e37dda
fix: working load
dilyararimovna Apr 7, 2023
fee1214
Merge branch 'dev' into feat/ru_llama_distribution
dilyararimovna Apr 10, 2023
702d67c
feat: separate folder for peft transformers
dilyararimovna Apr 10, 2023
1699b6d
fix: revert to dev
dilyararimovna Apr 10, 2023
36ec950
fix: transformers generation
dilyararimovna Apr 10, 2023
244c13a
fix: use peft model
dilyararimovna Apr 10, 2023
da285b0
fix: component yml
dilyararimovna Apr 10, 2023
aaf1dc3
fix: yml configs
dilyararimovna Apr 10, 2023
4d0dea3
fix: no half precision
dilyararimovna Apr 10, 2023
dcb878d
fix: description
dilyararimovna Apr 10, 2023
5905650
fix: config is optional for some models
dilyararimovna Apr 10, 2023
5cb5b07
fix: increase timeout
dilyararimovna Apr 10, 2023
58b7890
fix: formatter
dilyararimovna Apr 10, 2023
174a1d8
fix: language
dilyararimovna Apr 10, 2023
5dda453
fixed
dilyararimovna Apr 10, 2023
e952df0
fix: rights
dilyararimovna Apr 10, 2023
57ac4df
fix: info ymls
dilyararimovna Apr 10, 2023
6743f5a
fix: 5sec timeout
dilyararimovna Apr 10, 2023
c558b40
fix: 10sec timeout
dilyararimovna Apr 10, 2023
eab833f
fix: gpu mem
dilyararimovna Apr 10, 2023
0438bb9
feat: ru pipeline and dockers
dilyararimovna Apr 10, 2023
8adb00e
feat: badlisted words ru
dilyararimovna Apr 10, 2023
6f8372c
feat: use fp16 for faster inference
dilyararimovna Apr 10, 2023
27c5555
feat: rank sentences endpoint
dilyararimovna Apr 10, 2023
febb3ca
fix: endpoint func
dilyararimovna Apr 10, 2023
99644fc
fix: ping pong
dilyararimovna Apr 10, 2023
a7643e8
fix: rannker url
dilyararimovna Apr 10, 2023
03e8b2b
fix: prompt selector ru
dilyararimovna Apr 10, 2023
e7a016c
fix: env ru
dilyararimovna Apr 10, 2023
795698b
fix: sentence ranker
dilyararimovna Apr 10, 2023
ccc6d76
fix: no-scripts selector
dilyararimovna Apr 10, 2023
293a2fa
fix: timeout 2.0 for ru toxic
dilyararimovna Apr 11, 2023
787f39c
fix: first try for toxic model before ready
dilyararimovna Apr 11, 2023
a98d053
Merge branch 'dev' into feat/ru_llama_distribution
dilyararimovna Apr 11, 2023
ebb9bcb
fix: params for language
dilyararimovna Apr 11, 2023
2302350
fix: language
dilyararimovna Apr 11, 2023
68fa97a
fix: timoeout for dialogrpt
dilyararimovna Apr 11, 2023
8831b76
fix: no use of toxic cls
dilyararimovna Apr 11, 2023
4216518
Merge branch 'dev' into feat/ru_llama_distribution
dilyararimovna Apr 13, 2023
c376132
fix: revert timeout to 1sec
dilyararimovna Apr 13, 2023
f21b582
feat: ru lang
dilyararimovna Apr 13, 2023
0c95be7
fix: ru persona
dilyararimovna Apr 13, 2023
a95e120
feat: new prompt
dilyararimovna Apr 13, 2023
0770c4d
fix: prompt
dilyararimovna Apr 13, 2023
63e1420
fix: prompt
dilyararimovna Apr 13, 2023
77b07bf
fix: prompt
dilyararimovna Apr 13, 2023
557a509
Update dream_persona.json
lostyakova Apr 17, 2023
3843f19
Update dream_persona.json
lostyakova Apr 17, 2023
cf9243a
Update dream_persona_ru.json
lostyakova Apr 17, 2023
54b4908
Merge branch 'dev' into feat/ru_llama_distribution
dilyararimovna Apr 18, 2023
7891f5d
fix: rename distr
dilyararimovna Apr 18, 2023
193ca82
fix: formatter
dilyararimovna Apr 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env_ru
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ BADLIST_ANNOTATOR_URL=http://badlisted-words-ru:8018/badlisted_words_batch
DP_WIKIDATA_URL=http://wiki-parser-ru:8077/model
DP_ENTITY_LINKING_URL=http://entity-linking-ru:8075/model
FILE_SERVER_URL=http://files:3000
SENTENCE_RANKER_SERVICE_URL=http://dialogrpt-ru:8122/rank_sentences
35 changes: 19 additions & 16 deletions annotators/toxic_classification_ru/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,6 @@

logger.info(f"toxic-classification is set to run on {device}")

try:
tokenizer = BertTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH)
model = BertForSequenceClassification.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH)
model.eval()
if cuda:
model.cuda()
logger.info("toxic-classification model is ready")
except Exception as e:
sentry_sdk.capture_exception(e)
logger.exception(e)
raise e

app = Flask(__name__)
health = HealthCheck(app, "/healthcheck")
logging.getLogger("werkzeug").setLevel("WARNING")


def classify_sentences(sentences):
try:
Expand All @@ -68,6 +52,25 @@ def classify_sentences(sentences):
return result


try:
tokenizer = BertTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH)
model = BertForSequenceClassification.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH)
model.eval()
if cuda:
model.cuda()

classify_sentences(["this is a simple test sentence without any toxicity."])
logger.info("toxic-classification model is ready")
except Exception as e:
sentry_sdk.capture_exception(e)
logger.exception(e)
raise e

app = Flask(__name__)
health = HealthCheck(app, "/healthcheck")
logging.getLogger("werkzeug").setLevel("WARNING")


@app.route("/respond", methods=["POST"])
def respond():
st_time = time.time()
Expand Down
8 changes: 8 additions & 0 deletions assistant_dists/dream_persona_rullama_prompted/cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: '3.7'
services:
dialogrpt-ru:
environment:
CUDA_VISIBLE_DEVICES: ""
transformers-lm-llama7bru:
environment:
CUDA_VISIBLE_DEVICES: ""
6 changes: 6 additions & 0 deletions assistant_dists/dream_persona_rullama_prompted/db_conf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"host": "DB_HOST",
"port": "DB_PORT",
"name": "DB_NAME",
"env": true
}
46 changes: 46 additions & 0 deletions assistant_dists/dream_persona_rullama_prompted/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# С такими volumes удобно дебажить, не нужно пересобирать контейнер каждый раз при изменении кода
services:
agent:
volumes:
- ".:/dp-agent"
ports:
- 4242:4242
no-restrictions-selector-ru:
volumes:
- "./response_selectors/convers_evaluation_based_selector:/src"
- "./common:/src/common"
ports:
- 8009:8009
badlisted-words-ru:
volumes:
- "./annotators/BadlistedWordsDetector_ru:/src"
- "./common:/src/common"
ports:
- 8018:8018
dialogrpt-ru:
volumes:
- "./services/dialogrpt_ru:/src"
- "~/.deeppavlov/cache:/root/.cache"
ports:
- 8122:8122
prompt-selector-ru:
volumes:
- "./annotators/prompt_selector:/src"
- "./common:/src/common"
ports:
- 8135:8135
transformers-lm-llama7bru:
volumes:
- "./services/transformers_peft_lm:/src"
- "./common:/src/common"
- "~/.deeppavlov/cache:/root/.cache"
ports:
- 8149:8149
dff-dream-persona-llama7bru-prompted-skill:
volumes:
- "./skills/dff_template_prompted_skill:/src"
- "./common:/src/common"
ports:
- 8151:8151

version: "3.7"
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
services:
agent:
command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json'
environment:
WAIT_HOSTS: "no-restrictions-selector-ru:8009, badlisted-words-ru:8018,
dialogrpt-ru:8122, prompt-selector-ru:8135, transformers-lm-llama7bru:8149,
dff-dream-persona-llama7bru-prompted-skill:8151"
WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1800}
HIGH_PRIORITY_INTENTS: 0
RESTRICTION_FOR_SENSITIVE_CASE: 0
ALWAYS_TURN_ON_ALL_SKILLS: 0
LANGUAGE: RU

no-restrictions-selector-ru:
env_file: [ .env ]
build:
args:
TAG_BASED_SELECTION: 1
CALL_BY_NAME_PROBABILITY: 0.5
PROMPT_PROBA: 0
ACKNOWLEDGEMENT_PROBA: 0.3
PRIORITIZE_WITH_REQUIRED_ACT: 0
PRIORITIZE_NO_DIALOG_BREAKDOWN: 0
PRIORITIZE_WITH_SAME_TOPIC_ENTITY: 0
IGNORE_DISLIKED_SKILLS: 0
GREETING_FIRST: 0
RESTRICTION_FOR_SENSITIVE_CASE: 0
PRIORITIZE_PROMTS_WHEN_NO_SCRIPTS: 0
MAX_TURNS_WITHOUT_SCRIPTS: 100
ADD_ACKNOWLEDGMENTS_IF_POSSIBLE: 0
PRIORITIZE_SCRIPTED_SKILLS: 0
CONFIDENCE_STRENGTH: 0.8
CONV_EVAL_STRENGTH: 0.4
PRIORITIZE_HUMAN_INITIATIVE: 1
QUESTION_TO_QUESTION_DOWNSCORE_COEF: 0.8
LANGUAGE: RU
context: .
dockerfile: ./response_selectors/convers_evaluation_based_selector/Dockerfile
command: flask run -h 0.0.0.0 -p 8009
environment:
- FLASK_APP=server
deploy:
resources:
limits:
memory: 100M
reservations:
memory: 100M

badlisted-words-ru:
env_file: [ .env_ru ]
build:
args:
SERVICE_PORT: 8018
SERVICE_NAME: badlisted_words
context: annotators/BadlistedWordsDetector_ru/
command: flask run -h 0.0.0.0 -p 8018
environment:
- FLASK_APP=server
deploy:
resources:
limits:
memory: 128M
reservations:
memory: 128M

dialogrpt-ru:
env_file: [ .env_ru ]
build:
context: ./services/dialogrpt_ru/
args:
SERVICE_PORT: 8122
PRETRAINED_MODEL_FNAME: dialogrpt_ru_ckpt_v0.pth
TOKENIZER_NAME_OR_PATH: DeepPavlov/rudialogpt3_medium_based_on_gpt2_v2
command: flask run -h 0.0.0.0 -p 8122
environment:
- CUDA_VISIBLE_DEVICES=0
- FLASK_APP=server
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 4G

prompt-selector-ru:
env_file: [ .env_ru ]
build:
args:
SERVICE_PORT: 8135
SERVICE_NAME: prompt_selector
N_SENTENCES_TO_RETURN: 3
PROMPTS_TO_CONSIDER: dream_persona_ru
context: .
dockerfile: ./annotators/prompt_selector/Dockerfile
command: flask run -h 0.0.0.0 -p 8135
environment:
- FLASK_APP=server
deploy:
resources:
limits:
memory: 100M
reservations:
memory: 100M

transformers-lm-llama7bru:
env_file: [ .env_ru ]
build:
args:
SERVICE_PORT: 8149
SERVICE_NAME: transformers_peft_lm_llama7bru
PRETRAINED_MODEL_NAME_OR_PATH: IlyaGusev/llama_7b_ru_turbo_alpaca_lora
LANGUAGE: RU
context: .
dockerfile: ./services/transformers_peft_lm/Dockerfile
command: flask run -h 0.0.0.0 -p 8149
environment:
- CUDA_VISIBLE_DEVICES=0
- FLASK_APP=server
deploy:
resources:
limits:
memory: 50G
reservations:
memory: 50G

dff-dream-persona-llama7bru-prompted-skill:
env_file: [ .env_ru ]
build:
args:
SERVICE_PORT: 8151
SERVICE_NAME: dff_dream_persona_ru_prompted_skill
PROMPT_FILE: common/prompts/dream_persona_ru.json
GENERATIVE_SERVICE_URL: http://transformers-lm-llama7bru:8149/respond
GENERATIVE_TIMEOUT: 10
N_UTTERANCES_CONTEXT: 3
context: .
dockerfile: ./skills/dff_template_prompted_skill/Dockerfile
command: gunicorn --workers=1 server:app -b 0.0.0.0:8151 --reload
deploy:
resources:
limits:
memory: 128M
reservations:
memory: 128M

version: '3.7'
Loading