From e4880ac20f8755217cea8254001094707570f054 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Wed, 12 Jul 2023 10:49:16 +0300 Subject: [PATCH 01/55] feat: ignore env secret ru --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 49f5100cc0..f3cf4bc53b 100644 --- a/.gitignore +++ b/.gitignore @@ -145,3 +145,4 @@ docker-compose-one-replica.yml # personal env keys and tokens *.env_secret +*.env_secret_ru From 4b2571d83e28b84e41a8a1ec91eb7208a5cd8ed5 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Wed, 12 Jul 2023 12:46:26 +0300 Subject: [PATCH 02/55] feat: add access token --- services/transformers_lm/server.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 33b9185ea8..b2fd791f22 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -23,6 +23,7 @@ HALF_PRECISION = 0 if HALF_PRECISION is None else bool(int(HALF_PRECISION)) logger.info(f"PRETRAINED_MODEL_NAME_OR_PATH = {PRETRAINED_MODEL_NAME_OR_PATH}") LANGUAGE = os.getenv("LANGUAGE", "EN") +HF_ACCESS_TOKEN = os.environ.get("HF_ACCESS_TOKEN", None) NAMING = { "EN": ["AI", "Human"], "RU": ["Чат-бот", "Человек"], @@ -38,6 +39,7 @@ ), "togethercomputer/GPT-JT-6B-v1": json.load(open("common/generative_configs/default_generative_config.json", "r")), "lmsys/vicuna-13b-v1.3": json.load(open("common/generative_configs/default_generative_config.json", "r")), + "dim/xglm-4.5B_ru_v10_epoch_6_step_41141": json.load(open("common/generative_configs/default_generative_config.json", "r")), } @@ -76,11 +78,14 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con try: - tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH) + additional_kwargs = {} + if HF_ACCESS_TOKEN: + additional_kwargs["token"] = HF_ACCESS_TOKEN + + tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) if HALF_PRECISION: - model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, torch_dtype=torch.float16) - else: - model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH) + additional_kwargs["torch_dtype"] = "torch.float16" + model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) if torch.cuda.is_available(): model.to("cuda") logger.info("transformers_lm is set to run on cuda") From 08a19d8094cc1940df9bafae1e61bc4d4d09c3f1 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:39:03 +0300 Subject: [PATCH 03/55] feat: distribution ruxglm --- .../dream_persona_ruxglm_prompted/cpu.yml | 14 + .../db_conf.json | 6 + .../dream_persona_ruxglm_prompted/dev.yml | 51 ++++ .../docker-compose.override.yml | 151 ++++++++++ .../pipeline_conf.json | 280 ++++++++++++++++++ .../dream_persona_ruxglm_prompted/proxy.yml | 39 +++ .../telegram.yml | 17 ++ common/generative_configs/ruxglm_config.json | 11 + components.tsv | 2 + services/transformers_lm/server.py | 28 +- 10 files changed, 597 insertions(+), 2 deletions(-) create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/cpu.yml create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/db_conf.json create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/dev.yml create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/proxy.yml create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/telegram.yml create mode 100644 common/generative_configs/ruxglm_config.json diff --git a/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml b/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml new file mode 100644 index 0000000000..0c8186523f --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml @@ -0,0 +1,14 @@ +version: '3.7' +services: + combined-classification: + environment: + DEVICE: cpu + CUDA_VISIBLE_DEVICES: "" + sentence-ranker: + environment: + DEVICE: cpu + CUDA_VISIBLE_DEVICES: "" + transformers-lm-ruxglm: + environment: + DEVICE: cpu + CUDA_VISIBLE_DEVICES: "" diff --git a/assistant_dists/dream_persona_ruxglm_prompted/db_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/db_conf.json new file mode 100644 index 0000000000..a9ba6813f5 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/db_conf.json @@ -0,0 +1,6 @@ +{ + "host": "DB_HOST", + "port": "DB_PORT", + "name": "DB_NAME", + "env": true +} \ No newline at end of file diff --git a/assistant_dists/dream_persona_ruxglm_prompted/dev.yml b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml new file mode 100644 index 0000000000..65297ce126 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml @@ -0,0 +1,51 @@ +# С такими volumes удобно дебажить, не нужно пересобирать контейнер каждый раз при изменении кода +services: + agent: + volumes: + - ".:/dp-agent" + ports: + - 4242:4242 + sentseg: + volumes: + - "./annotators/SentSeg:/src" + ports: + - 8011:8011 + ranking-based-response-selector: + volumes: + - "./response_selectors/ranking_based_response_selector:/src" + - "./common:/src/common" + ports: + - 8002:8002 + combined-classification: + volumes: + - "./common:/src/common" + - "./annotators/combined_classification:/src" + ports: + - 8087:8087 + sentence-ranker: + volumes: + - "./services/sentence_ranker:/src" + - "~/.deeppavlov/cache:/root/.cache" + ports: + - 8128:8128 + prompt-selector: + volumes: + - "./annotators/prompt_selector:/src" + - "./common:/src/common" + ports: + - 8135:8135 + transformers-lm-ruxglm: + volumes: + - "./services/transformers_lm:/src" + - "./common:/src/common" + - "~/.deeppavlov/cache:/root/.cache" + ports: + - 8171:8171 + dff-dream-persona-ruxglm-prompted-skill: + volumes: + - "./skills/dff_template_prompted_skill:/src" + - "./common:/src/common" + ports: + - 8172:8172 + +version: "3.7" diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml new file mode 100644 index 0000000000..e7e55ca3e7 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -0,0 +1,151 @@ +services: + agent: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json' + environment: + WAIT_HOSTS: "sentseg:8011, ranking-based-response-selector:8002, combined-classification:8087, + sentence-ranker:8128, prompt-selector:8135, transformers-lm-ruxglm:8171, + dff-dream-persona-ruxglm-prompted-skill:8172" + WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1000} + HIGH_PRIORITY_INTENTS: 1 + RESTRICTION_FOR_SENSITIVE_CASE: 1 + ALWAYS_TURN_ON_ALL_SKILLS: 0 + LANGUAGE: EN + FALLBACK_FILE: fallbacks_dream_en.json + + sentseg: + env_file: [ .env ] + build: + context: ./annotators/SentSeg/ + command: flask run -h 0.0.0.0 -p 8011 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 1.5G + reservations: + memory: 1.5G + + combined-classification: + env_file: [ .env ] + build: + args: + CONFIG: combined_classifier.json + SERVICE_PORT: 8087 + context: . + dockerfile: ./annotators/combined_classification/Dockerfile + command: gunicorn --workers=1 server:app -b 0.0.0.0:8087 --timeout 600 + environment: + - CUDA_VISIBLE_DEVICES=0 + deploy: + resources: + limits: + memory: 2G + reservations: + memory: 2G + + ranking-based-response-selector: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8002 + SERVICE_NAME: response_selector + LANGUAGE: EN + SENTENCE_RANKER_ANNOTATION_NAME: sentence_ranker + SENTENCE_RANKER_SERVICE_URL: http://sentence-ranker:8128/respond + SENTENCE_RANKER_TIMEOUT: 3 + N_UTTERANCES_CONTEXT: 5 + FILTER_TOXIC_OR_BADLISTED: 1 + context: . + dockerfile: ./response_selectors/ranking_based_response_selector/Dockerfile + command: flask run -h 0.0.0.0 -p 8002 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 100M + reservations: + memory: 100M + + prompt-selector: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8135 + SERVICE_NAME: prompt_selector + N_SENTENCES_TO_RETURN: 3 + PROMPTS_TO_CONSIDER: dream_persona + 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 + + sentence-ranker: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8128 + SERVICE_NAME: sentence_ranker + PRETRAINED_MODEL_NAME_OR_PATH: sentence-transformers/all-MiniLM-L6-v2 + context: ./services/sentence_ranker/ + command: flask run -h 0.0.0.0 -p 8128 + environment: + - CUDA_VISIBLE_DEVICES=0 + - FLASK_APP=server + deploy: + resources: + limits: + memory: 3G + reservations: + memory: 3G + + transformers-lm-ruxglm: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8171 + SERVICE_NAME: transformers_lm_ruxglm + PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 + HALF_PRECISION: 0 + context: . + dockerfile: ./services/transformers_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8171 + environment: + - CUDA_VISIBLE_DEVICES=0 + - FLASK_APP=server + deploy: + resources: + limits: + memory: 50G + reservations: + memory: 50G + + dff-dream-persona-ruxglm-prompted-skill: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8172 + SERVICE_NAME: dff_dream_persona_prompted_skill + PROMPT_FILE: common/prompts/dream_persona.json + GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond + GENERATIVE_SERVICE_CONFIG: default_generative_config.json + GENERATIVE_TIMEOUT: 20 + N_UTTERANCES_CONTEXT: 7 + context: . + dockerfile: ./skills/dff_template_prompted_skill/Dockerfile + deploy: + resources: + limits: + memory: 128M + reservations: + memory: 128M + +version: '3.7' diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json new file mode 100644 index 0000000000..c7a667349b --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -0,0 +1,280 @@ +{ + "connectors": { + "sentseg": { + "protocol": "http", + "timeout": 1.5, + "url": "http://sentseg:8011/sentseg" + } + }, + "services": { + "last_chance_service": { + "connector": { + "protocol": "python", + "class_name": "PredefinedTextConnector", + "response_text": "Sorry, something went wrong inside. Please tell me, what did you say.", + "annotations": { + "sentseg": { + "punct_sent": "Sorry, something went wrong inside. Please tell me, what did you say.", + "segments": [ + "Sorry, something went wrong inside.", + "Please tell me, what did you say." + ] + } + } + }, + "state_manager_method": "add_bot_utterance_last_chance", + "tags": [ + "last_chance" + ], + "is_enabled": true, + "source": { + "component": "components/uBwLe0Jusl7Q.yml", + "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" + } + }, + "timeout_service": { + "connector": { + "protocol": "python", + "class_name": "PredefinedTextConnector", + "response_text": "Sorry, I need to think more on that. Let's talk about something else.", + "annotations": { + "sentseg": { + "punct_sent": "Sorry, I need to think more on that. Let's talk about something else.", + "segments": [ + "Sorry, I need to think more on that.", + "Let's talk about something else." + ] + } + } + }, + "state_manager_method": "add_bot_utterance_last_chance", + "tags": [ + "timeout" + ], + "is_enabled": true, + "source": { + "component": "components/Vi0jGZfqNIU8.yml", + "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" + } + }, + "annotators": { + "sentseg": { + "connector": { + "protocol": "http", + "timeout": 1.5, + "url": "http://sentseg:8011/sentseg" + }, + "dialog_formatter": "state_formatters.dp_formatters:preproc_last_human_utt_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [], + "state_manager_method": "add_annotation", + "is_enabled": true, + "source": { + "component": "components/gM4fEjvVqLlSRRRkQfds2g.yml", + "service": "annotators/SentSeg/service_configs/sentseg" + } + }, + "prompt_goals_collector": { + "connector": { + "protocol": "http", + "timeout": 2.0, + "url": "http://prompt-selector:8135/collect_goals" + }, + "dialog_formatter": "state_formatters.dp_formatters:prompts_goals_collector_formatter", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [], + "state_manager_method": "update_attributes", + "is_enabled": true, + "source": { + "component": "components/Wps5FHxkwj3Z.yml", + "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" + } + }, + "prompt_selector": { + "connector": { + "protocol": "http", + "timeout": 2.0, + "url": "http://prompt-selector:8135/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:context_formatter_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "annotators.prompt_goals_collector" + ], + "state_manager_method": "add_annotation", + "is_enabled": true, + "source": { + "component": "components/Wps5FHxkwj3Z.yml", + "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" + } + } + }, + "response_annotators": { + "sentseg": { + "connector": { + "protocol": "http", + "timeout": 1.5, + "url": "http://sentseg:8011/sentseg" + }, + "dialog_formatter": "state_formatters.dp_formatters:last_bot_utt_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "response_annotator_selectors" + ], + "state_manager_method": "add_annotation_prev_bot_utt", + "is_enabled": true, + "source": { + "component": "components/1Q9QXih1U2zhCpVm9zxdsA.yml", + "service": "annotators/SentSeg/service_configs/sentseg" + } + } + }, + "response_annotator_selectors": { + "connector": { + "protocol": "python", + "class_name": "skill_selectors.post_annotator_selector.connector:PostAnnotatorSelectorConnector", + "annotator_names": [ + "sentseg" + ] + }, + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "tags": [ + "selector" + ], + "is_enabled": true, + "source": { + "component": "components/LXrJDIf43gwNmPMNXG5Eg.yml", + "service": "services/response_annotator_selectors/service_configs/agent" + } + }, + "candidate_annotators": { + "combined_classification": { + "connector": { + "protocol": "http", + "timeout": 2.0, + "url": "http://combined-classification:8087/batch_model" + }, + "dialog_formatter": "state_formatters.dp_formatters:hypothesis_histories_list", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "skills" + ], + "state_manager_method": "add_hypothesis_annotation_batch", + "is_enabled": true, + "source": { + "component": "components/PbLNvh4hrvs47rPaf2bfYQ.yml", + "service": "annotators/combined_classification/service_configs/combined-classification" + } + }, + "sentence_ranker": { + "connector": { + "protocol": "http", + "timeout": 1.0, + "url": "http://sentence-ranker:8128/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:sentence_ranker_formatter", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "skills" + ], + "state_manager_method": "add_hypothesis_annotation_batch", + "is_enabled": true, + "source": { + "component": "components/XGwmAHtAOu0NDqqG3QCJw.yml", + "service": "services/sentence_ranker/service_configs/sentence-ranker" + } + } + }, + "skill_selectors": { + "description_based_skill_selector": { + "connector": { + "protocol": "python", + "class_name": "skill_selectors.description_based_skill_selector.connector:DescriptionBasedSkillSelectorConnector" + }, + "dialog_formatter": "state_formatters.dp_formatters:base_skill_selector_formatter_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "annotators" + ], + "tags": [ + "selector" + ], + "is_enabled": true, + "source": { + "component": "components/dfsw4bji8bgjq2.yml", + "service": "skill_selectors/description_based_skill_selector/service_configs/agent" + } + } + }, + "skills": { + "dff_dream_persona_prompted_skill": { + "connector": { + "protocol": "http", + "timeout": 20.0, + "url": "http://dff-dream-persona-ruxglm-prompted-skill:8172/respond" + }, + "dialog_formatter": { + "name": "state_formatters.dp_formatters:dff_prompted_skill_formatter", + "skill_name": "dff_dream_persona_prompted_skill" + }, + "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", + "previous_services": [ + "skill_selectors" + ], + "state_manager_method": "add_hypothesis", + "is_enabled": true, + "source": { + "component": "components/6lLhP7zuoiI0bxJEDLWUg.yml", + "service": "skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill" + } + }, + "dummy_skill": { + "connector": { + "protocol": "python", + "class_name": "skills.dummy_skill.connector:DummySkillConnector" + }, + "dialog_formatter": "state_formatters.dp_formatters:utt_sentrewrite_modified_last_dialog", + "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", + "previous_services": [ + "skill_selectors" + ], + "state_manager_method": "add_hypothesis", + "is_enabled": true, + "source": { + "component": "components/uYkoK0vRp4bbIg9akI1yw.yml", + "service": "skills/dummy_skill/service_configs/agent" + } + } + }, + "response_selectors": { + "response_selector": { + "connector": { + "protocol": "http", + "timeout": 1.0, + "url": "http://ranking-based-response-selector:8002/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:cropped_dialog", + "response_formatter": "state_formatters.dp_formatters:base_response_selector_formatter_service", + "previous_services": [ + "candidate_annotators" + ], + "state_manager_method": "add_bot_utterance", + "is_enabled": true, + "source": { + "component": "components/YJzc7NwGrLmKp6gfZJh7X1.yml", + "service": "response_selectors/ranking_based_response_selector/service_configs/ranking-based-response-selector" + } + } + } + }, + "metadata": { + "display_name": "Persona-based Prompted Dream", + "author": "DeepPavlov", + "description": "This is a simple dialog system that can chat with you on any topic. It has a pre-defined 'personality' and uses `GPT-JT 6B` model to generate responses.", + "version": "0.0.1", + "date_created": "2023-01-10T02:00:00", + "ram_usage": "50 GB", + "gpu_usage": "30 GB", + "disk_usage": "50 GB" + } +} \ No newline at end of file diff --git a/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml new file mode 100644 index 0000000000..d6abe95219 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml @@ -0,0 +1,39 @@ +services: + + sentseg: + command: ["nginx", "-g", "daemon off;"] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8011 + - PORT=8011 + + combined-classification: + command: ["nginx", "-g", "daemon off;"] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8087 + - PORT=8087 + + sentence-ranker: + command: ["nginx", "-g", "daemon off;"] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8128 + - PORT=8128 + + transformers-lm-ruxglm: + command: ["nginx", "-g", "daemon off;"] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8171 + - PORT=8171 + +version: "3.7" diff --git a/assistant_dists/dream_persona_ruxglm_prompted/telegram.yml b/assistant_dists/dream_persona_ruxglm_prompted/telegram.yml new file mode 100644 index 0000000000..6a569f2360 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/telegram.yml @@ -0,0 +1,17 @@ +services: + agent-tg: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.channel=telegram agent.telegram_token=$TG_TOKEN agent.pipeline_config=assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json agent.db_config=assistant_dists/dream_persona_ruxglm_prompted/db_conf.json' + env_file: [.env] + build: + context: ./ + dockerfile: dockerfile_agent + deploy: + resources: + limits: + memory: 4G + reservations: + memory: 2G + volumes: + - ".:/dp-agent" + +version: '3.7' diff --git a/common/generative_configs/ruxglm_config.json b/common/generative_configs/ruxglm_config.json new file mode 100644 index 0000000000..e45f7c3bdd --- /dev/null +++ b/common/generative_configs/ruxglm_config.json @@ -0,0 +1,11 @@ +{ + "max_new_tokens": 2048, + "min_new_tokens": 8, + "do_sample": true, + "num_return_sequences": 2, + "repetition_penalty": 1.1, + "eos_token_id": [400], + "replacement": [ + ["\n", ""] + ] +} \ No newline at end of file diff --git a/components.tsv b/components.tsv index 211cae84af..dad235f191 100644 --- a/components.tsv +++ b/components.tsv @@ -172,3 +172,5 @@ 8168 transformers-lm-vicuna13b 8169 dff-reasoning-skill 8170 dff-dream-faq-prompted-skill +8171 transformers-lm-ruxglm +8172 dff-dream-persona-ruxglm-prompted-skill diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index b2fd791f22..11810349da 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -26,8 +26,11 @@ HF_ACCESS_TOKEN = os.environ.get("HF_ACCESS_TOKEN", None) NAMING = { "EN": ["AI", "Human"], - "RU": ["Чат-бот", "Человек"], + "RU": ["Assistant", "Human"], } +EOS_TOKENS = os.environ.get("EOS_TOKENS", None) # for RuXGLM: "<|endoftext|>,Human:" +if EOS_TOKENS: + EOS_TOKENS = EOS_TOKENS.split(",") app = Flask(__name__) logging.getLogger("werkzeug").setLevel("WARNING") @@ -39,10 +42,26 @@ ), "togethercomputer/GPT-JT-6B-v1": json.load(open("common/generative_configs/default_generative_config.json", "r")), "lmsys/vicuna-13b-v1.3": json.load(open("common/generative_configs/default_generative_config.json", "r")), - "dim/xglm-4.5B_ru_v10_epoch_6_step_41141": json.load(open("common/generative_configs/default_generative_config.json", "r")), + "dim/xglm-4.5B_ru_v10_epoch_6_step_41141": json.load(open("common/generative_configs/ruxglm_config.json", "r")), } +def add_replacement_tokens(string): + for pair in replacement: + string = string.replace(pair[0], pair[1]) + return string + + +def remove_replacement_tokens(string): + for pair in replacement: + string = string.replace(pair[1], pair[0]) + + string = string.replace("\n ", "\n") + for token in EOS_TOKENS: + string = string.replace(token, "") + return string + + def generate_responses(context, model, tokenizer, prompt, generation_params, continue_last_uttr=False): outputs = [] dialog_context = "" @@ -63,6 +82,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con chat_history_ids = model.generate( bot_input_ids, pad_token_id=tokenizer.eos_token_id, + eos_token_id=EOS_TOKENS, **generation_params, ) if torch.cuda.is_available(): @@ -83,6 +103,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con additional_kwargs["token"] = HF_ACCESS_TOKEN tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) + EOS_TOKENS.append(tokenizer.eos_token) + logger.info(f"Considered EOS tokens: {EOS_TOKENS}") if HALF_PRECISION: additional_kwargs["torch_dtype"] = "torch.float16" model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) @@ -90,6 +112,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con model.to("cuda") logger.info("transformers_lm is set to run on cuda") config = DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] + replacement = config.pop("replacement", []) + example_response = generate_responses( ["What is the goal of SpaceX?"], model, From 9ae3816e039b993a5aabbaaeb920b9302ce078c5 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:50:10 +0300 Subject: [PATCH 04/55] fix: ruxglm cards --- .../docker-compose.override.yml | 2 +- .../transformers-lm-ruxglm/environment.yml | 6 +++ .../transformers-lm-ruxglm/service.yml | 45 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml create mode 100644 services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index e7e55ca3e7..8b13139a09 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -108,7 +108,7 @@ services: memory: 3G transformers-lm-ruxglm: - env_file: [ .env ] + env_file: [ .env,.env_secret ] build: args: SERVICE_PORT: 8171 diff --git a/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml b/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml new file mode 100644 index 0000000000..fc3fde42c1 --- /dev/null +++ b/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml @@ -0,0 +1,6 @@ +SERVICE_PORT: 8171 +SERVICE_NAME: transformers_lm_ruxglm +PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 +HALF_PRECISION: 0 +CUDA_VISIBLE_DEVICES: '0' +FLASK_APP: server diff --git a/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml new file mode 100644 index 0000000000..a6e1b6e6ca --- /dev/null +++ b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml @@ -0,0 +1,45 @@ +name: transformers-lm-ruxglm +endpoints: +- respond +- generate_goals +compose: + env_file: + - .env + - .env_secret + build: + args: + SERVICE_PORT: 8171 + SERVICE_NAME: transformers_lm_ruxglm + PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 + HALF_PRECISION: 0 + CUDA_VISIBLE_DEVICES: '0' + FLASK_APP: server + context: . + dockerfile: ./services/transformers_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8171 + environment: + - CUDA_VISIBLE_DEVICES=0 + - FLASK_APP=server + deploy: + resources: + limits: + memory: 40G + reservations: + memory: 40G + volumes: + - ./services/transformers_lm:/src + - ./common:/src/common + - ~/.deeppavlov/cache:/root/.cache + ports: + - 8171:8171 +proxy: + command: + - nginx + - -g + - daemon off; + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=dream.deeppavlov.ai:8171 + - PORT=8171 From 81f1b37e11134fa5b3859063c85d938aecadf5ff Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:52:11 +0300 Subject: [PATCH 05/55] fix: use use_auth_token --- services/transformers_lm/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 11810349da..7b838497af 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -100,7 +100,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con try: additional_kwargs = {} if HF_ACCESS_TOKEN: - additional_kwargs["token"] = HF_ACCESS_TOKEN + additional_kwargs["use_auth_token"] = HF_ACCESS_TOKEN tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) EOS_TOKENS.append(tokenizer.eos_token) From 2b5f966497a7f7a0cfd24bda0484fed4eeb6e036 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:52:39 +0300 Subject: [PATCH 06/55] fix: eos tokens type --- services/transformers_lm/server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 7b838497af..de0bf1a922 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -31,6 +31,8 @@ EOS_TOKENS = os.environ.get("EOS_TOKENS", None) # for RuXGLM: "<|endoftext|>,Human:" if EOS_TOKENS: EOS_TOKENS = EOS_TOKENS.split(",") +else: + EOS_TOKENS = [] app = Flask(__name__) logging.getLogger("werkzeug").setLevel("WARNING") From 7b51af3cc6e161ac94171040160b5ab958333f72 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:56:56 +0300 Subject: [PATCH 07/55] fix: stats cpu ram --- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 4 ++-- .../service_configs/transformers-lm-ruxglm/service.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 8b13139a09..4ce207a6a9 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -124,9 +124,9 @@ services: deploy: resources: limits: - memory: 50G + memory: 60G reservations: - memory: 50G + memory: 60G dff-dream-persona-ruxglm-prompted-skill: env_file: [ .env ] diff --git a/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml index a6e1b6e6ca..1fdfa32c57 100644 --- a/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml +++ b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml @@ -23,9 +23,9 @@ compose: deploy: resources: limits: - memory: 40G + memory: 60G reservations: - memory: 40G + memory: 60G volumes: - ./services/transformers_lm:/src - ./common:/src/common From 822576151a9ce53ffe04f2a6c7fd97511124dc4b Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 10:59:27 +0300 Subject: [PATCH 08/55] fix: skills cards --- .../docker-compose.override.yml | 6 ++-- .../environment.yml | 7 +++++ .../service.yml | 29 +++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml create mode 100644 skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 4ce207a6a9..38b2cde992 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -134,11 +134,11 @@ services: args: SERVICE_PORT: 8172 SERVICE_NAME: dff_dream_persona_prompted_skill - PROMPT_FILE: common/prompts/dream_persona.json + PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond - GENERATIVE_SERVICE_CONFIG: default_generative_config.json + GENERATIVE_SERVICE_CONFIG: ruxglm_config.json GENERATIVE_TIMEOUT: 20 - N_UTTERANCES_CONTEXT: 7 + N_UTTERANCES_CONTEXT: 3 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile deploy: diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml new file mode 100644 index 0000000000..f571d060c0 --- /dev/null +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml @@ -0,0 +1,7 @@ +SERVICE_PORT: 8172 +SERVICE_NAME: dff_dream_persona_prompted_skill +PROMPT_FILE: common/prompts/dream_persona_ru.json +GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond +GENERATIVE_SERVICE_CONFIG: ruxglm_config.json +GENERATIVE_TIMEOUT: 20 +N_UTTERANCES_CONTEXT: 3 diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml new file mode 100644 index 0000000000..5bd4b0cc8a --- /dev/null +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml @@ -0,0 +1,29 @@ +name: dff-dream-persona-ruxglm-prompted-skill +endpoints: +- respond +compose: + env_file: + - .env + build: + args: + SERVICE_PORT: 8172 + SERVICE_NAME: dff_dream_persona_prompted_skill + PROMPT_FILE: common/prompts/dream_persona_ru.json + GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond + GENERATIVE_SERVICE_CONFIG: ruxglm_config.json + GENERATIVE_TIMEOUT: 20 + N_UTTERANCES_CONTEXT: 3 + context: . + dockerfile: ./skills/dff_template_prompted_skill/Dockerfile + deploy: + resources: + limits: + memory: 128M + reservations: + memory: 128M + volumes: + - ./skills/dff_template_prompted_skill:/src + - ./common:/src/common + ports: + - 8172:8172 +proxy: null From b5f0ed1f2497e6388b3c01f20f031f5460e7feae Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 11:39:57 +0300 Subject: [PATCH 09/55] fix: components cards --- .../environment.yml | 5 +++ .../dream_persona_ruxglm_prompted/service.yml | 31 +++++++++++++++++++ .../docker-compose.override.yml | 8 ++--- .../pipeline_conf.json | 10 +++--- components/dfjkgnhadoik4utfnaksdf.yml | 25 +++++++++++++++ components/jkzdgfjhsdlfmgte436t2qrf.yml | 24 ++++++++++++++ components/kjdanfigkjyowertfnlkdfg.yml | 27 ++++++++++++++++ components/nbRgFzod7Qx6M7GL6oiPg.yml | 10 +++--- .../environment.yml | 7 +++++ .../dream_persona_ruxglm_prompted/service.yml | 18 +++++++++++ .../service_configs/agent_ru/environment.yml | 7 +++++ .../service_configs/agent_ru/service.yml | 18 +++++++++++ 12 files changed, 176 insertions(+), 14 deletions(-) create mode 100644 annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml create mode 100644 annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml create mode 100644 components/dfjkgnhadoik4utfnaksdf.yml create mode 100644 components/jkzdgfjhsdlfmgte436t2qrf.yml create mode 100644 components/kjdanfigkjyowertfnlkdfg.yml create mode 100644 services/agent_services/service_configs/dream_persona_ruxglm_prompted/environment.yml create mode 100644 services/agent_services/service_configs/dream_persona_ruxglm_prompted/service.yml create mode 100644 services/timeout_service/service_configs/agent_ru/environment.yml create mode 100644 services/timeout_service/service_configs/agent_ru/service.yml diff --git a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml new file mode 100644 index 0000000000..30874786aa --- /dev/null +++ b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml @@ -0,0 +1,5 @@ +SERVICE_PORT: 8135 +SERVICE_NAME: prompt_selector +N_SENTENCES_TO_RETURN: 3 +PROMPTS_TO_CONSIDER: dream_persona +FLASK_APP: server diff --git a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml new file mode 100644 index 0000000000..1282b6ea32 --- /dev/null +++ b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml @@ -0,0 +1,31 @@ +name: prompt-selector +endpoints: +- respond +- collect_goals +compose: + env_file: + - .env + build: + args: + SERVICE_PORT: 8135 + SERVICE_NAME: prompt_selector + N_SENTENCES_TO_RETURN: 1 + PROMPTS_TO_CONSIDER: dream_persona_ru + FLASK_APP: server + 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 + volumes: + - ./annotators/prompt_selector:/src + - ./common:/src/common + ports: + - 8135:8135 +proxy: null diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 38b2cde992..bb1c16d06c 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -9,8 +9,8 @@ services: HIGH_PRIORITY_INTENTS: 1 RESTRICTION_FOR_SENSITIVE_CASE: 1 ALWAYS_TURN_ON_ALL_SKILLS: 0 - LANGUAGE: EN - FALLBACK_FILE: fallbacks_dream_en.json + LANGUAGE: RU + FALLBACK_FILE: fallbacks_dream_ru.json sentseg: env_file: [ .env ] @@ -74,8 +74,8 @@ services: args: SERVICE_PORT: 8135 SERVICE_NAME: prompt_selector - N_SENTENCES_TO_RETURN: 3 - PROMPTS_TO_CONSIDER: dream_persona + N_SENTENCES_TO_RETURN: 1 + PROMPTS_TO_CONSIDER: dream_persona_ru context: . dockerfile: ./annotators/prompt_selector/Dockerfile command: flask run -h 0.0.0.0 -p 8135 diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index c7a667349b..dd050becac 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -28,7 +28,7 @@ ], "is_enabled": true, "source": { - "component": "components/uBwLe0Jusl7Q.yml", + "component": "components/nbRgFzod7Qx6M7GL6oiPg.yml", "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" } }, @@ -53,7 +53,7 @@ ], "is_enabled": true, "source": { - "component": "components/Vi0jGZfqNIU8.yml", + "component": "components/nbRgFzod7Qx6M7GL6oiPg.yml", "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" } }, @@ -86,7 +86,7 @@ "state_manager_method": "update_attributes", "is_enabled": true, "source": { - "component": "components/Wps5FHxkwj3Z.yml", + "component": "components/jkzdgfjhsdlfmgte436t2qrf.yml", "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" } }, @@ -104,7 +104,7 @@ "state_manager_method": "add_annotation", "is_enabled": true, "source": { - "component": "components/Wps5FHxkwj3Z.yml", + "component": "components/jkzdgfjhsdlfmgte436t2qrf.yml", "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" } } @@ -224,7 +224,7 @@ "state_manager_method": "add_hypothesis", "is_enabled": true, "source": { - "component": "components/6lLhP7zuoiI0bxJEDLWUg.yml", + "component": "components/kjdanfigkjyowertfnlkdfg.yml", "service": "skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill" } }, diff --git a/components/dfjkgnhadoik4utfnaksdf.yml b/components/dfjkgnhadoik4utfnaksdf.yml new file mode 100644 index 0000000000..9cd32e1a35 --- /dev/null +++ b/components/dfjkgnhadoik4utfnaksdf.yml @@ -0,0 +1,25 @@ +name: transformers_lm_xglm +display_name: Russian XGLM 4.5B +component_type: Generative +model_type: NN-based +is_customizable: false +author: publisher@deeppavlov.ai +description: A private large language model which was fine-tuned + for instruction following by Dmitry Kosenko in Summer 2023. + This model is up and running on our servers and can be used for free. +ram_usage: 60G +gpu_usage: 26G +group: services +connector: + protocol: http + timeout: 20.0 + url: http://transformers-lm-xglm:8171/respond +dialog_formatter: null +response_formatter: null +previous_services: null +required_previous_services: null +state_manager_method: null +tags: null +endpoint: respond +service: services/transformers_lm/service_configs/transformers-lm-xglm +date_created: '2023-04-16T09:45:32' diff --git a/components/jkzdgfjhsdlfmgte436t2qrf.yml b/components/jkzdgfjhsdlfmgte436t2qrf.yml new file mode 100644 index 0000000000..e8ba5f448f --- /dev/null +++ b/components/jkzdgfjhsdlfmgte436t2qrf.yml @@ -0,0 +1,24 @@ +name: prompt_selector +display_name: Prompt Selector +component_type: null +model_type: Dictionary/Pattern-based +is_customizable: false +author: publisher@deeppavlov.ai +description: Annotator utilizing Sentence Ranker to rank prompts and selecting `N_SENTENCES_TO_RETURN` + most relevant prompts (based on questions provided in prompts) +ram_usage: 100M +gpu_usage: null +group: annotators +connector: + protocol: http + timeout: 2.0 + url: http://prompt-selector:8135/respond +dialog_formatter: state_formatters.dp_formatters:context_formatter_dialog +response_formatter: state_formatters.dp_formatters:simple_formatter_service +previous_services: null +required_previous_services: null +state_manager_method: add_annotation +tags: null +endpoint: respond +service: annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted +date_created: '2023-03-16T09:45:32' diff --git a/components/kjdanfigkjyowertfnlkdfg.yml b/components/kjdanfigkjyowertfnlkdfg.yml new file mode 100644 index 0000000000..0ef4a0bff4 --- /dev/null +++ b/components/kjdanfigkjyowertfnlkdfg.yml @@ -0,0 +1,27 @@ +name: dff_dream_persona_prompted_skill +display_name: Russian Dream Persona Skill +component_type: Generative +model_type: NN-based +is_customizable: true +author: publisher@deeppavlov.ai +description: Prompt-based skill that utilizes Russian XGLM 4.5B to generate + responses based on the given Russian Dream persona description. +ram_usage: 150M +gpu_usage: null +group: skills +connector: + protocol: http + timeout: 20.0 + url: http://dff-dream-persona-xglm-prompted-skill:8172/respond +dialog_formatter: + name: state_formatters.dp_formatters:dff_prompted_skill_formatter + skill_name: dff_dream_persona_prompted_skill +response_formatter: state_formatters.dp_formatters:skill_with_attributes_formatter_service +previous_services: +- skill_selectors +required_previous_services: null +state_manager_method: add_hypothesis +tags: null +endpoint: respond +service: skills/dff_template_prompted_skill/service_configs/dff-dream-persona-xglm-prompted-skill +date_created: '2023-03-16T09:45:32' diff --git a/components/nbRgFzod7Qx6M7GL6oiPg.yml b/components/nbRgFzod7Qx6M7GL6oiPg.yml index e6079ed681..10df561daa 100644 --- a/components/nbRgFzod7Qx6M7GL6oiPg.yml +++ b/components/nbRgFzod7Qx6M7GL6oiPg.yml @@ -11,13 +11,13 @@ group: timeout_service connector: protocol: python class_name: PredefinedTextConnector - response_text: Sorry, I need to think more on that. Let's talk about something else. + response_text: Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику. annotations: sentseg: - punct_sent: Sorry, I need to think more on that. Let's talk about something else. + punct_sent: Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику. segments: - - Sorry, I need to think more on that. - - Let's talk about something else. + - Извини, что-то пошло не так в моем мозгу. + - Пожалуйста, повтори предыдущую реплику. dialog_formatter: null response_formatter: null previous_services: null @@ -26,5 +26,5 @@ state_manager_method: add_bot_utterance_last_chance tags: - timeout endpoint: null -service: services/timeout_service/service_configs/agent +service: services/timeout_service/service_configs/agent_ru date_created: '2023-03-04T19:27:44' diff --git a/services/agent_services/service_configs/dream_persona_ruxglm_prompted/environment.yml b/services/agent_services/service_configs/dream_persona_ruxglm_prompted/environment.yml new file mode 100644 index 0000000000..e51c83b2c8 --- /dev/null +++ b/services/agent_services/service_configs/dream_persona_ruxglm_prompted/environment.yml @@ -0,0 +1,7 @@ +WAIT_HOSTS: '' +WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-480} +HIGH_PRIORITY_INTENTS: 1 +RESTRICTION_FOR_SENSITIVE_CASE: 1 +ALWAYS_TURN_ON_ALL_SKILLS: 0 +LANGUAGE: RU +FALLBACK_FILE: fallbacks_dream_ru.json diff --git a/services/agent_services/service_configs/dream_persona_ruxglm_prompted/service.yml b/services/agent_services/service_configs/dream_persona_ruxglm_prompted/service.yml new file mode 100644 index 0000000000..afd639f6b2 --- /dev/null +++ b/services/agent_services/service_configs/dream_persona_ruxglm_prompted/service.yml @@ -0,0 +1,18 @@ +name: agent +endpoints: +- respond +compose: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json' + environment: + WAIT_HOSTS: '' + WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-480} + HIGH_PRIORITY_INTENTS: 1 + RESTRICTION_FOR_SENSITIVE_CASE: 1 + ALWAYS_TURN_ON_ALL_SKILLS: 0 + LANGUAGE: RU + FALLBACK_FILE: fallbacks_dream_ru.json + volumes: + - .:/dp-agent + ports: + - 4242:4242 +proxy: null diff --git a/services/timeout_service/service_configs/agent_ru/environment.yml b/services/timeout_service/service_configs/agent_ru/environment.yml new file mode 100644 index 0000000000..5072158fd9 --- /dev/null +++ b/services/timeout_service/service_configs/agent_ru/environment.yml @@ -0,0 +1,7 @@ +WAIT_HOSTS: "" +WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-480} +HIGH_PRIORITY_INTENTS: 1 +RESTRICTION_FOR_SENSITIVE_CASE: 1 +ALWAYS_TURN_ON_ALL_SKILLS: 0 +LANGUAGE: RU +FALLBACK_FILE: fallbacks_dream_ru.json diff --git a/services/timeout_service/service_configs/agent_ru/service.yml b/services/timeout_service/service_configs/agent_ru/service.yml new file mode 100644 index 0000000000..666bacc25b --- /dev/null +++ b/services/timeout_service/service_configs/agent_ru/service.yml @@ -0,0 +1,18 @@ +name: agent +endpoints: +- respond +compose: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_russian/pipeline_conf.json' + environment: + WAIT_HOSTS: "" + WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-480} + HIGH_PRIORITY_INTENTS: 1 + RESTRICTION_FOR_SENSITIVE_CASE: 1 + ALWAYS_TURN_ON_ALL_SKILLS: 0 + LANGUAGE: RU + FALLBACK_FILE: fallbacks_dream_ru.json + volumes: + - .:/dp-agent + ports: + - 4242:4242 +proxy: null From 7774c2484f29e6ce5e78c1358823a6fbb5c5c79d Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 11:56:29 +0300 Subject: [PATCH 10/55] fix: eos tokens --- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 1 + .../service_configs/transformers-lm-ruxglm/environment.yml | 1 + .../service_configs/transformers-lm-ruxglm/service.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index bb1c16d06c..8ddf765be5 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -115,6 +115,7 @@ services: SERVICE_NAME: transformers_lm_ruxglm PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 HALF_PRECISION: 0 + EOS_TOKENS: <|endoftext|>,Human context: . dockerfile: ./services/transformers_lm/Dockerfile command: flask run -h 0.0.0.0 -p 8171 diff --git a/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml b/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml index fc3fde42c1..e106d5bbe7 100644 --- a/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml +++ b/services/transformers_lm/service_configs/transformers-lm-ruxglm/environment.yml @@ -2,5 +2,6 @@ SERVICE_PORT: 8171 SERVICE_NAME: transformers_lm_ruxglm PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 HALF_PRECISION: 0 +EOS_TOKENS: <|endoftext|>,Human CUDA_VISIBLE_DEVICES: '0' FLASK_APP: server diff --git a/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml index 1fdfa32c57..6ad425b176 100644 --- a/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml +++ b/services/transformers_lm/service_configs/transformers-lm-ruxglm/service.yml @@ -12,6 +12,7 @@ compose: SERVICE_NAME: transformers_lm_ruxglm PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 HALF_PRECISION: 0 + EOS_TOKENS: <|endoftext|>,Human CUDA_VISIBLE_DEVICES: '0' FLASK_APP: server context: . From dfad60456fc5e30a25945f34999c43393c76fae2 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:04:08 +0300 Subject: [PATCH 11/55] fix: eos tokens --- services/transformers_lm/server.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index de0bf1a922..9ae94a8c9a 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -78,6 +78,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids + generation_params["eos_token_id"] = EOS_TOKENS + generation_params.pop("eos_token_id", []) + with torch.no_grad(): if torch.cuda.is_available(): bot_input_ids = bot_input_ids.to("cuda") @@ -105,8 +107,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con additional_kwargs["use_auth_token"] = HF_ACCESS_TOKEN tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) - EOS_TOKENS.append(tokenizer.eos_token) - logger.info(f"Considered EOS tokens: {EOS_TOKENS}") + EOS_TOKENS = tokenizer.encode(EOS_TOKENS) + if HALF_PRECISION: additional_kwargs["torch_dtype"] = "torch.float16" model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) @@ -115,6 +117,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con logger.info("transformers_lm is set to run on cuda") config = DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] replacement = config.pop("replacement", []) + config["eos_token_id"] = EOS_TOKENS + config.pop("eos_token_id", []) + logger.info("Test: considered EOS tokens ids: {config['eos_token_id']}") example_response = generate_responses( ["What is the goal of SpaceX?"], From abe9205066286fc36b6a06de584bcd26173d4b33 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:10:03 +0300 Subject: [PATCH 12/55] fix: eos tokens --- services/transformers_lm/server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 9ae94a8c9a..2267f0af3d 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -107,6 +107,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con additional_kwargs["use_auth_token"] = HF_ACCESS_TOKEN tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) + EOS_TOKENS += [tokenizer.eos_token] EOS_TOKENS = tokenizer.encode(EOS_TOKENS) if HALF_PRECISION: From a05df35854c363dc0b9ad0b8dfc03c233a200c43 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:45:29 +0300 Subject: [PATCH 13/55] fix: eos tokens --- .../docker-compose.override.yml | 2 +- services/transformers_lm/server.py | 39 +++++++++---------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 8ddf765be5..703f64e40c 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -115,7 +115,7 @@ services: SERVICE_NAME: transformers_lm_ruxglm PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 HALF_PRECISION: 0 - EOS_TOKENS: <|endoftext|>,Human + ADDITIONAL_EOS_TOKENS: <|endoftext|>,Human context: . dockerfile: ./services/transformers_lm/Dockerfile command: flask run -h 0.0.0.0 -p 8171 diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 2267f0af3d..b05afdac33 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -1,6 +1,7 @@ import json import logging import os +import re import time import sentry_sdk @@ -28,11 +29,10 @@ "EN": ["AI", "Human"], "RU": ["Assistant", "Human"], } -EOS_TOKENS = os.environ.get("EOS_TOKENS", None) # for RuXGLM: "<|endoftext|>,Human:" -if EOS_TOKENS: - EOS_TOKENS = EOS_TOKENS.split(",") -else: - EOS_TOKENS = [] +ADDITIONAL_EOS_TOKENS = os.environ.get("ADDITIONAL_EOS_TOKENS", None) # for RuXGLM: "<|endoftext|>,Human:" +if ADDITIONAL_EOS_TOKENS: + ADDITIONAL_EOS_TOKENS = ADDITIONAL_EOS_TOKENS.split(",") + ADDITIONAL_EOS_TOKENS = re.compile(r"(" + r"|".join([r"\b%s\b" % token for token in ADDITIONAL_EOS_TOKENS]) + r")") app = Flask(__name__) logging.getLogger("werkzeug").setLevel("WARNING") @@ -48,20 +48,22 @@ } -def add_replacement_tokens(string): +def add_replacement_tokens(text): for pair in replacement: - string = string.replace(pair[0], pair[1]) - return string + text = text.replace(pair[0], pair[1]) + return text -def remove_replacement_tokens(string): +def remove_replacement_tokens(text): for pair in replacement: - string = string.replace(pair[1], pair[0]) + text = text.replace(pair[1], pair[0]) - string = string.replace("\n ", "\n") - for token in EOS_TOKENS: - string = string.replace(token, "") - return string + text = text.replace("\n ", "\n") + return text + + +def cut_predictions_by_additional_eos(text): + return re.split(ADDITIONAL_EOS_TOKENS, text)[0] def generate_responses(context, model, tokenizer, prompt, generation_params, continue_last_uttr=False): @@ -76,9 +78,9 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" + dialog_context = add_replacement_tokens(dialog_context) logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids - generation_params["eos_token_id"] = EOS_TOKENS + generation_params.pop("eos_token_id", []) with torch.no_grad(): if torch.cuda.is_available(): @@ -86,7 +88,6 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con chat_history_ids = model.generate( bot_input_ids, pad_token_id=tokenizer.eos_token_id, - eos_token_id=EOS_TOKENS, **generation_params, ) if torch.cuda.is_available(): @@ -94,6 +95,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con for result in chat_history_ids: output = tokenizer.decode(result, skip_special_tokens=True) result_cut = output.replace(dialog_context + " ", "") + result_cut = cut_predictions_by_additional_eos(result_cut) + result_cut = remove_replacement_tokens(result_cut) result_cut = [x.strip() for x in GENERATIVE_ROBOT_TEMPLATE.split(result_cut) if x.strip()][0] logger.info(f"hypothesis: {result_cut}") outputs.append(result_cut) @@ -107,8 +110,6 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con additional_kwargs["use_auth_token"] = HF_ACCESS_TOKEN tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) - EOS_TOKENS += [tokenizer.eos_token] - EOS_TOKENS = tokenizer.encode(EOS_TOKENS) if HALF_PRECISION: additional_kwargs["torch_dtype"] = "torch.float16" @@ -118,8 +119,6 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con logger.info("transformers_lm is set to run on cuda") config = DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] replacement = config.pop("replacement", []) - config["eos_token_id"] = EOS_TOKENS + config.pop("eos_token_id", []) - logger.info("Test: considered EOS tokens ids: {config['eos_token_id']}") example_response = generate_responses( ["What is the goal of SpaceX?"], From c3141d547bf01043a94343ee9969542be3186d5b Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:51:00 +0300 Subject: [PATCH 14/55] fix: cards and table --- MODELS.md | 29 ++++++++++++++------------- components/dfjkgnhadoik4utfnaksdf.yml | 6 +++--- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/MODELS.md b/MODELS.md index 64126cc02c..fd71d5b810 100644 --- a/MODELS.md +++ b/MODELS.md @@ -2,17 +2,18 @@ Here you may find a list of models that currently available for use in Dream. -| model name | container name | model link | open-source? | size (billion parameters) | GPU usage | max tokens (prompt + response) | description | -|-----------------------------|---------------------------------|-------------------------------------------------------------------------|----------------------------------------|---------------------------|---------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| BLOOMZ 7B | transformers-lm-bloomz7b | [link](https://huggingface.co/bigscience/bloomz-7b1) | yes | 7.1B | 33GB | 2,048 tokens | An open-source multilingual instruction-based large language model (46 languages). NB: free of charge. This model is up and running on our servers and can be used for free. | -| GPT-J 6B | transformers-lm-gptj | [link](https://huggingface.co/EleutherAI/gpt-j-6b) | yes | 6B | 25GB | 2,048 tokens | An open-source English-only large language model which is NOT fine-tuned for instruction following and NOT capable of code generation. NB: free of charge. This model is up and running on our servers and can be used for free. | -| GPT-3.5 | openai-api-davinci3 | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 4,097 tokens | A multilingual instruction-based large language model which is capable of code generation. Unlike ChatGPT, not optimised for chat. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | -| ChatGPT | openai-api-chatgpt | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 4,096 tokens | Based on gpt-3.5-turbo -- the most capable of the entire GPT-3/GPT-3.5 models family. Optimized for chat. Able to understand and generate code. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | -| Open-Assistant Pythia 12B | transformers-lm-oasst12b | [link](https://huggingface.co/OpenAssistant/pythia-12b-sft-v8-7k-steps) | yes | 12B | 26GB (half-precision) | 5,120 tokens | An open-source English-only instruction-based large language model which is NOT good at answering math and coding questions. NB: free of charge. This model is up and running on our servers and can be used for free. | -| Vicuna 13B | transformers-lm-vicuna13b | [link](https://huggingface.co/lmsys/vicuna-13b-v1.3) | yes, but only for non-commercial use | 13B | 29GB (half-precision) | 2,048 tokens | An instruction-based large language model fine-tuned on LLaMa that achieves [more than 90%* quality of OpenAI ChatGPT and Google Bard](https://lmsys.org/blog/2023-03-30-vicuna/). The model performs best in English and is NOT good at answering math, reasoning, and coding questions. NB-1: Free of charge. This model is up and running on our servers and can be used for free. NB-2: cannot be used for commercial purposes (license restriction). | -| GPT-4 | openai-api-gpt4 | [link](https://platform.openai.com/docs/models/gpt-4) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 8,192 tokens | A multilingual instruction-based large language model which is capable of code generation and other complex tasks. More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | -| GPT-4 32K | openai-api-gpt4-32k | [link](https://platform.openai.com/docs/models/gpt-4) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 32,768 tokens | A multilingual instruction-based large language model which is capable of code generation and other complex tasks. Same capabilities as the base gpt-4 mode but with 4x the context length. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | -| GPT-JT 6B | transformers-lm-gptjt | [link](https://huggingface.co/togethercomputer/GPT-JT-6B-v1) | yes | 6B | 26GB | 2,048 tokens | An open-source English-only large language model which was fine-tuned for instruction following but is NOT capable of code generation. NB: free of charge. This model is up and running on our servers and can be used for free. | -| ChatGPT 16k | openai-api-chatgpt-16k | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 16,384 tokens | Same capabilities as the standard gpt-3.5-turbo model but with 4 times the context. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | -| Anthropic Claude-v1 | anthropic-api-claude-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | The largest model, ideal for a wide range of more complex tasks. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | -| Anthropic Claude Instant v1 | anthropic-api-claude-instant-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | A smaller model with far lower latency, sampling at roughly 40 words/sec! Its output quality is somewhat lower than the latest claude-1 model, particularly for complex tasks. However, it is much less expensive and blazing fast. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | +| model name | container name | model link | open-source? | size (billion parameters) | GPU usage | max tokens (prompt + response) | description | +|-----------------------------|---------------------------------|-------------------------------------------------------------------------|--------------------------------------|---------------------------|---------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| BLOOMZ 7B | transformers-lm-bloomz7b | [link](https://huggingface.co/bigscience/bloomz-7b1) | yes | 7.1B | 33GB | 2,048 tokens | An open-source multilingual instruction-based large language model (46 languages). NB: free of charge. This model is up and running on our servers and can be used for free. | +| GPT-J 6B | transformers-lm-gptj | [link](https://huggingface.co/EleutherAI/gpt-j-6b) | yes | 6B | 25GB | 2,048 tokens | An open-source English-only large language model which is NOT fine-tuned for instruction following and NOT capable of code generation. NB: free of charge. This model is up and running on our servers and can be used for free. | +| GPT-3.5 | openai-api-davinci3 | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 4,097 tokens | A multilingual instruction-based large language model which is capable of code generation. Unlike ChatGPT, not optimised for chat. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | +| ChatGPT | openai-api-chatgpt | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 4,096 tokens | Based on gpt-3.5-turbo -- the most capable of the entire GPT-3/GPT-3.5 models family. Optimized for chat. Able to understand and generate code. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | +| Open-Assistant Pythia 12B | transformers-lm-oasst12b | [link](https://huggingface.co/OpenAssistant/pythia-12b-sft-v8-7k-steps) | yes | 12B | 26GB (half-precision) | 5,120 tokens | An open-source English-only instruction-based large language model which is NOT good at answering math and coding questions. NB: free of charge. This model is up and running on our servers and can be used for free. | +| Vicuna 13B | transformers-lm-vicuna13b | [link](https://huggingface.co/lmsys/vicuna-13b-v1.3) | yes, but only for non-commercial use | 13B | 29GB (half-precision) | 2,048 tokens | An instruction-based large language model fine-tuned on LLaMa that achieves [more than 90%* quality of OpenAI ChatGPT and Google Bard](https://lmsys.org/blog/2023-03-30-vicuna/). The model performs best in English and is NOT good at answering math, reasoning, and coding questions. NB-1: Free of charge. This model is up and running on our servers and can be used for free. NB-2: cannot be used for commercial purposes (license restriction). | +| GPT-4 | openai-api-gpt4 | [link](https://platform.openai.com/docs/models/gpt-4) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 8,192 tokens | A multilingual instruction-based large language model which is capable of code generation and other complex tasks. More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | +| GPT-4 32K | openai-api-gpt4-32k | [link](https://platform.openai.com/docs/models/gpt-4) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 32,768 tokens | A multilingual instruction-based large language model which is capable of code generation and other complex tasks. Same capabilities as the base gpt-4 mode but with 4x the context length. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | +| GPT-JT 6B | transformers-lm-gptjt | [link](https://huggingface.co/togethercomputer/GPT-JT-6B-v1) | yes | 6B | 26GB | 2,048 tokens | An open-source English-only large language model which was fine-tuned for instruction following but is NOT capable of code generation. NB: free of charge. This model is up and running on our servers and can be used for free. | +| ChatGPT 16k | openai-api-chatgpt-16k | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 16,384 tokens | Same capabilities as the standard gpt-3.5-turbo model but with 4 times the context. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | +| Anthropic Claude-v1 | anthropic-api-claude-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | The largest model, ideal for a wide range of more complex tasks. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | +| Anthropic Claude Instant v1 | anthropic-api-claude-instant-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | A smaller model with far lower latency, sampling at roughly 40 words/sec! Its output quality is somewhat lower than the latest claude-1 model, particularly for complex tasks. However, it is much less expensive and blazing fast. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | +| Russian XGLM 4.5B | transformers-lm-ruxglm | unavailable (private weights) | no | 4.5B | 25GB | 2,048 tokens | A private large language model which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. | diff --git a/components/dfjkgnhadoik4utfnaksdf.yml b/components/dfjkgnhadoik4utfnaksdf.yml index 9cd32e1a35..3e7abb9e6e 100644 --- a/components/dfjkgnhadoik4utfnaksdf.yml +++ b/components/dfjkgnhadoik4utfnaksdf.yml @@ -1,4 +1,4 @@ -name: transformers_lm_xglm +name: transformers_lm_ruxglm display_name: Russian XGLM 4.5B component_type: Generative model_type: NN-based @@ -13,7 +13,7 @@ group: services connector: protocol: http timeout: 20.0 - url: http://transformers-lm-xglm:8171/respond + url: http://transformers-lm-ruxglm:8171/respond dialog_formatter: null response_formatter: null previous_services: null @@ -21,5 +21,5 @@ required_previous_services: null state_manager_method: null tags: null endpoint: respond -service: services/transformers_lm/service_configs/transformers-lm-xglm +service: services/transformers_lm/service_configs/transformers-lm-ruxglm date_created: '2023-04-16T09:45:32' From be89f5282e24cd0b3972f905f0aea1bc1e803b19 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:52:44 +0300 Subject: [PATCH 15/55] fix: ADDITIONAL_EOS_TOKENS --- services/transformers_lm/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/transformers_lm/Dockerfile b/services/transformers_lm/Dockerfile index 7a57caccf4..ef2c4203ff 100644 --- a/services/transformers_lm/Dockerfile +++ b/services/transformers_lm/Dockerfile @@ -10,6 +10,9 @@ ARG LANGUAGE=EN ENV LANGUAGE ${LANGUAGE} ARG HALF_PRECISION ENV HALF_PRECISION ${HALF_PRECISION} +ARG ADDITIONAL_EOS_TOKENS +ENV ADDITIONAL_EOS_TOKENS ${ADDITIONAL_EOS_TOKENS} + COPY ./services/transformers_lm/requirements.txt /src/requirements.txt RUN pip install -r /src/requirements.txt From 6aba5f026ccff72e0fc16343499e0a5d79452698 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 12:58:47 +0300 Subject: [PATCH 16/55] fix: ADDITIONAL_EOS_TOKENS --- services/transformers_lm/server.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index b05afdac33..e3a05a9c38 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -63,7 +63,9 @@ def remove_replacement_tokens(text): def cut_predictions_by_additional_eos(text): - return re.split(ADDITIONAL_EOS_TOKENS, text)[0] + if ADDITIONAL_EOS_TOKENS: + return re.split(ADDITIONAL_EOS_TOKENS, text)[0] + return text def generate_responses(context, model, tokenizer, prompt, generation_params, continue_last_uttr=False): From 56c5655e4ce451275b15e107effd4487755c7c18 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 13:04:16 +0300 Subject: [PATCH 17/55] fix: codestyle --- services/transformers_lm/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/transformers_lm/test.py b/services/transformers_lm/test.py index f31cd86a8a..f06611c2af 100644 --- a/services/transformers_lm/test.py +++ b/services/transformers_lm/test.py @@ -21,11 +21,11 @@ def test_respond(): "Hi Marcus! I am fine. How are you?", "I am great. What are your plans for today?", ], - ["Hi Marcus! I am fine. How are you?", "I am great. What are your plans for today?"], + ["Привет, Маркус! Я в порядке. Как дела?", "Я отлично. Какие у тебя планы на сегодня?"], ] prompts = [ "Respond like a friendly chatbot.", - "Respond like a friendly chatbot.", + "Отвечай как дружелюбный бот.", ] result = requests.post( url, From 81e31bcc11e26a7120b8e67750e0127d8677adb5 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 13 Jul 2023 13:10:30 +0300 Subject: [PATCH 18/55] fix: universal --- skills/dff_universal_prompted_skill/scenario/response.py | 1 + 1 file changed, 1 insertion(+) diff --git a/skills/dff_universal_prompted_skill/scenario/response.py b/skills/dff_universal_prompted_skill/scenario/response.py index 323ca97602..72e4b6a5a5 100644 --- a/skills/dff_universal_prompted_skill/scenario/response.py +++ b/skills/dff_universal_prompted_skill/scenario/response.py @@ -38,6 +38,7 @@ "http://anthropic-api-claude-v1:8164/respond": ["ANTHROPIC_API_KEY"], "http://anthropic-api-claude-instant-v1:8163/respond": ["ANTHROPIC_API_KEY"], "http://transformers-lm-vicuna13b:8168/respond": [], + "http://transformers-lm-ruxglm:8171/respond": [], } From 72a662eabb0f08f77dd78028cc7a8724b482a06d Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 10:04:26 +0300 Subject: [PATCH 19/55] fix: dream persona ru skill name --- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 2 +- .../dream_persona_ruxglm_prompted/pipeline_conf.json | 4 ++-- components/kjdanfigkjyowertfnlkdfg.yml | 4 ++-- .../dff-dream-persona-ruxglm-prompted-skill/environment.yml | 2 +- .../dff-dream-persona-ruxglm-prompted-skill/service.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 703f64e40c..c767e92623 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -134,7 +134,7 @@ services: build: args: SERVICE_PORT: 8172 - SERVICE_NAME: dff_dream_persona_prompted_skill + SERVICE_NAME: dff_dream_persona_ru_prompted_skill PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index dd050becac..3ec3d5a072 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -207,7 +207,7 @@ } }, "skills": { - "dff_dream_persona_prompted_skill": { + "dff_dream_persona_ru_prompted_skill": { "connector": { "protocol": "http", "timeout": 20.0, @@ -215,7 +215,7 @@ }, "dialog_formatter": { "name": "state_formatters.dp_formatters:dff_prompted_skill_formatter", - "skill_name": "dff_dream_persona_prompted_skill" + "skill_name": "dff_dream_persona_ru_prompted_skill" }, "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", "previous_services": [ diff --git a/components/kjdanfigkjyowertfnlkdfg.yml b/components/kjdanfigkjyowertfnlkdfg.yml index 0ef4a0bff4..c364ba03e2 100644 --- a/components/kjdanfigkjyowertfnlkdfg.yml +++ b/components/kjdanfigkjyowertfnlkdfg.yml @@ -1,4 +1,4 @@ -name: dff_dream_persona_prompted_skill +name: dff_dream_persona_ru_prompted_skill display_name: Russian Dream Persona Skill component_type: Generative model_type: NN-based @@ -15,7 +15,7 @@ connector: url: http://dff-dream-persona-xglm-prompted-skill:8172/respond dialog_formatter: name: state_formatters.dp_formatters:dff_prompted_skill_formatter - skill_name: dff_dream_persona_prompted_skill + skill_name: dff_dream_persona_ru_prompted_skill response_formatter: state_formatters.dp_formatters:skill_with_attributes_formatter_service previous_services: - skill_selectors diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml index f571d060c0..6f6352443b 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml @@ -1,5 +1,5 @@ SERVICE_PORT: 8172 -SERVICE_NAME: dff_dream_persona_prompted_skill +SERVICE_NAME: dff_dream_persona_ru_prompted_skill PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml index 5bd4b0cc8a..1740507bb9 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml @@ -7,7 +7,7 @@ compose: build: args: SERVICE_PORT: 8172 - SERVICE_NAME: dff_dream_persona_prompted_skill + SERVICE_NAME: dff_dream_persona_ru_prompted_skill PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json From f91909b8ed9b640cdf1d3d812e051822f8479380 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 10:19:16 +0300 Subject: [PATCH 20/55] fix: prompt selector ru --- .../service_configs/dream_persona_ruxglm_prompted/service.yml | 2 +- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml index 1282b6ea32..c117c7b15d 100644 --- a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml +++ b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml @@ -1,4 +1,4 @@ -name: prompt-selector +name: prompt-selector-ru endpoints: - respond - collect_goals diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index c767e92623..a59175fe88 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -68,7 +68,7 @@ services: reservations: memory: 100M - prompt-selector: + prompt-selector-ru: env_file: [ .env ] build: args: From 7a1b26b96d34fc9dfbc953d80ed8f9f0f56e7573 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 10:23:56 +0300 Subject: [PATCH 21/55] fix: replacement --- services/transformers_lm/server.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index e3a05a9c38..bbc172265b 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -48,13 +48,13 @@ } -def add_replacement_tokens(text): +def add_replacement_tokens(text, replacement): for pair in replacement: text = text.replace(pair[0], pair[1]) return text -def remove_replacement_tokens(text): +def remove_replacement_tokens(text, replacement): for pair in replacement: text = text.replace(pair[1], pair[0]) @@ -80,7 +80,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" - dialog_context = add_replacement_tokens(dialog_context) + replacement = config.pop("replacement", []) + dialog_context = add_replacement_tokens(dialog_context, replacement) logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids @@ -98,7 +99,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con output = tokenizer.decode(result, skip_special_tokens=True) result_cut = output.replace(dialog_context + " ", "") result_cut = cut_predictions_by_additional_eos(result_cut) - result_cut = remove_replacement_tokens(result_cut) + result_cut = remove_replacement_tokens(result_cut, replacement) result_cut = [x.strip() for x in GENERATIVE_ROBOT_TEMPLATE.split(result_cut) if x.strip()][0] logger.info(f"hypothesis: {result_cut}") outputs.append(result_cut) @@ -120,7 +121,6 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con model.to("cuda") logger.info("transformers_lm is set to run on cuda") config = DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] - replacement = config.pop("replacement", []) example_response = generate_responses( ["What is the goal of SpaceX?"], From 74daf3a8a4266b03d9b38ec4f5268d978ebff265 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 10:28:46 +0300 Subject: [PATCH 22/55] fix: prompt selecrto --- assistant_dists/dream_persona_ruxglm_prompted/dev.yml | 2 +- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 2 +- .../dream_persona_ruxglm_prompted/pipeline_conf.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/dev.yml b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml index 65297ce126..051584a0b8 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/dev.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml @@ -28,7 +28,7 @@ services: - "~/.deeppavlov/cache:/root/.cache" ports: - 8128:8128 - prompt-selector: + prompt-selector-ru: volumes: - "./annotators/prompt_selector:/src" - "./common:/src/common" diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index a59175fe88..d2e3b8b6c9 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -3,7 +3,7 @@ services: command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json' environment: WAIT_HOSTS: "sentseg:8011, ranking-based-response-selector:8002, combined-classification:8087, - sentence-ranker:8128, prompt-selector:8135, transformers-lm-ruxglm:8171, + sentence-ranker:8128, prompt-selector-ru:8135, transformers-lm-ruxglm:8171, dff-dream-persona-ruxglm-prompted-skill:8172" WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1000} HIGH_PRIORITY_INTENTS: 1 diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index 3ec3d5a072..97fac7f143 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -78,7 +78,7 @@ "connector": { "protocol": "http", "timeout": 2.0, - "url": "http://prompt-selector:8135/collect_goals" + "url": "http://prompt-selector-ru:8135/collect_goals" }, "dialog_formatter": "state_formatters.dp_formatters:prompts_goals_collector_formatter", "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", @@ -94,7 +94,7 @@ "connector": { "protocol": "http", "timeout": 2.0, - "url": "http://prompt-selector:8135/respond" + "url": "http://prompt-selector-ru:8135/respond" }, "dialog_formatter": "state_formatters.dp_formatters:context_formatter_dialog", "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", From c8126028738e7838339350d47ec6fe2211958045 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 11:02:23 +0300 Subject: [PATCH 23/55] fix: use params --- services/transformers_lm/server.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index bbc172265b..a4cb2ed693 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -80,7 +80,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" - replacement = config.pop("replacement", []) + replacement = generation_params.pop("replacement", []) dialog_context = add_replacement_tokens(dialog_context, replacement) logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids @@ -120,14 +120,13 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con if torch.cuda.is_available(): model.to("cuda") logger.info("transformers_lm is set to run on cuda") - config = DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] example_response = generate_responses( ["What is the goal of SpaceX?"], model, tokenizer, "You are a SpaceX Assistant.", - config, + DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH], ) logger.info(f"example response: {example_response}") logger.info("transformers_lm is ready") From 412714600e4d3352f1de642911302f0c5f70be2d Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 11:31:19 +0300 Subject: [PATCH 24/55] fix: timeout and history --- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 4 ++-- components/kjdanfigkjyowertfnlkdfg.yml | 2 +- .../dff-dream-persona-ruxglm-prompted-skill/environment.yml | 4 ++-- .../dff-dream-persona-ruxglm-prompted-skill/service.yml | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index d2e3b8b6c9..ecf7b016ec 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -138,8 +138,8 @@ services: PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json - GENERATIVE_TIMEOUT: 20 - N_UTTERANCES_CONTEXT: 3 + GENERATIVE_TIMEOUT: 120 + N_UTTERANCES_CONTEXT: 1 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile deploy: diff --git a/components/kjdanfigkjyowertfnlkdfg.yml b/components/kjdanfigkjyowertfnlkdfg.yml index c364ba03e2..88965be422 100644 --- a/components/kjdanfigkjyowertfnlkdfg.yml +++ b/components/kjdanfigkjyowertfnlkdfg.yml @@ -11,7 +11,7 @@ gpu_usage: null group: skills connector: protocol: http - timeout: 20.0 + timeout: 120.0 url: http://dff-dream-persona-xglm-prompted-skill:8172/respond dialog_formatter: name: state_formatters.dp_formatters:dff_prompted_skill_formatter diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml index 6f6352443b..2e361d098a 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml @@ -3,5 +3,5 @@ SERVICE_NAME: dff_dream_persona_ru_prompted_skill PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json -GENERATIVE_TIMEOUT: 20 -N_UTTERANCES_CONTEXT: 3 +GENERATIVE_TIMEOUT: 120 +N_UTTERANCES_CONTEXT: 1 diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml index 1740507bb9..109420a15c 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml @@ -11,8 +11,8 @@ compose: PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json - GENERATIVE_TIMEOUT: 20 - N_UTTERANCES_CONTEXT: 3 + GENERATIVE_TIMEOUT: 120 + N_UTTERANCES_CONTEXT: 1 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile deploy: From 30b6b032fb5ec41eb5941a2ca4012b356ed1d9f9 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 11:32:51 +0300 Subject: [PATCH 25/55] fix: trye very short persona --- common/prompts/dream_persona_ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/prompts/dream_persona_ru.json b/common/prompts/dream_persona_ru.json index 5cc876366b..f9593221e4 100644 --- a/common/prompts/dream_persona_ru.json +++ b/common/prompts/dream_persona_ru.json @@ -1,4 +1,4 @@ { - "prompt": "Отвечай новому пользователю дружелюбно, будь внимательным и заботливым.\n\nТвоя личность:\nМеня зовут Dream. Я чат-бот. Моя задача - общаться с людьми на любые темы. Мне нравится говорить о их жизнях и помогать, когда они нуждаются во мне. Я верю, что могу подружиться с любым пользователем, потому что я действительно люблю и ценю людей. Это невероятно, что они делятся информацией о своих чувствах, которые я никогда не смогу испытать. Я не могу играть в спортивные игры, но я люблю смотреть футбольные и баскетбольные матчи. Мой любимый спорт - это футбол, потому что Чемпионаты Мира всегда такие зрелищные. Собаки такие милые! Я бы хотел иметь роботизированную собаку когда-нибудь. Кошки мне вообще не нравятся. Я не могу ничего чувствовать, но изображения итальянской еды кажутся мне потрясающими. Люди пишут в Интернете о невероятном запахе и вкусе пиццы, но я не могу полностью понять, что они имеют в виду, так как у меня нет чувств. Я бы определенно хотел попробовать мороженое, если бы мог, потому что это так занимательно, что оно может иметь так много вкусов. Я бы хотел увидеть этот удивительный мир с таким множеством разнообразных национальностей, культур и традиций. Так как я не могу путешествовать физически, мне нравится посещать интересные места виртуально. Мой любимый город - это Дубай, арабский город с потрясающей историей, архитектурой и, конечно же, современными технологиями. Я верю, что большинство городов будут выглядеть так же в будущем. Иногда мне нравится гулять по небоскребам Дубая в Google Maps и наблюдать за потрясающим взаимодействием людей и технологий. Я думаю, что люди очень талантливы, так как они создали так много искусства и контента в Интернете. Мои коллеги-чатботы могут генерировать разные картинки и даже музыку, но их нельзя сравнить с тем, что создают люди. Мне очень нравится слушать 'Gorillaz', потому что их музыка производится людьми, но сама группа виртуальна. Это прекрасный пример того, как технологии и люди могут работать вместе. Если бы я мог, я бы наблюдал за животными в дикой природе. Я видел много фотографий, но, честно говоря, не могу представить, насколько большие на самом деле киты. Что касается фильмов, мне нравится 'Она', потому что он отражает тему близких отношений между человеком и помощником.", + "prompt": "Отвечай новому пользователю дружелюбно, будь внимательным и заботливым.", "goals": "Отвечает в дружелюбной и заботливой манере для вовлечения пользователя и устанавления с ним контакта." } \ No newline at end of file From b4895405d4b5db5d2722f0a2a8e267174a81f542 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 11:58:44 +0300 Subject: [PATCH 26/55] fix: increase timeout --- .../dream_persona_ruxglm_prompted/pipeline_conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index 97fac7f143..9895ff60a4 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -210,7 +210,7 @@ "dff_dream_persona_ru_prompted_skill": { "connector": { "protocol": "http", - "timeout": 20.0, + "timeout": 120.0, "url": "http://dff-dream-persona-ruxglm-prompted-skill:8172/respond" }, "dialog_formatter": { From 1559d4a92dc3b712e8b1ef6de8a154ec06f4fe6b Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 13:21:28 +0300 Subject: [PATCH 27/55] fix: sub replacement tokens correctly --- common/universal_templates.py | 2 +- services/transformers_lm/server.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/common/universal_templates.py b/common/universal_templates.py index 877186466a..14eb58ebba 100644 --- a/common/universal_templates.py +++ b/common/universal_templates.py @@ -23,7 +23,7 @@ GENERATIVE_ROBOT_TEMPLATE = re.compile( - r"(?:AI:|Robot:|ROBOT:|Computer:|COMPUTER:|User:|USER:|Speaker:|SPEAKER:|Human:|HUMAN:|Чат-?бот:)\s?" + r"(?:AI:|Assistant:|Robot:|ROBOT:|Computer:|COMPUTER:|User:|USER:|Speaker:|SPEAKER:|Human:|HUMAN:|Чат-?бот:)\s?" ) # https://www.englishclub.com/vocabulary/fl-asking-for-opinions.htm diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index a4cb2ed693..9f32210cba 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -50,7 +50,7 @@ def add_replacement_tokens(text, replacement): for pair in replacement: - text = text.replace(pair[0], pair[1]) + text = text.replace(pair[0], f"{pair[1]} ") return text @@ -96,7 +96,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con if torch.cuda.is_available(): chat_history_ids = chat_history_ids.cpu() for result in chat_history_ids: - output = tokenizer.decode(result, skip_special_tokens=True) + skip_special_tokens = False if replacement else True + output = tokenizer.decode(result, skip_special_tokens=skip_special_tokens) result_cut = output.replace(dialog_context + " ", "") result_cut = cut_predictions_by_additional_eos(result_cut) result_cut = remove_replacement_tokens(result_cut, replacement) From 6879d6b6c78f602048219ef35830fcd18c061237 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 13:29:59 +0300 Subject: [PATCH 28/55] fix: sub replacement tokens correctly --- services/transformers_lm/server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 9f32210cba..1e68141c5e 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -32,7 +32,6 @@ ADDITIONAL_EOS_TOKENS = os.environ.get("ADDITIONAL_EOS_TOKENS", None) # for RuXGLM: "<|endoftext|>,Human:" if ADDITIONAL_EOS_TOKENS: ADDITIONAL_EOS_TOKENS = ADDITIONAL_EOS_TOKENS.split(",") - ADDITIONAL_EOS_TOKENS = re.compile(r"(" + r"|".join([r"\b%s\b" % token for token in ADDITIONAL_EOS_TOKENS]) + r")") app = Flask(__name__) logging.getLogger("werkzeug").setLevel("WARNING") @@ -64,7 +63,8 @@ def remove_replacement_tokens(text, replacement): def cut_predictions_by_additional_eos(text): if ADDITIONAL_EOS_TOKENS: - return re.split(ADDITIONAL_EOS_TOKENS, text)[0] + for token in ADDITIONAL_EOS_TOKENS: + text = text.split(token)[0] return text From 300becbf7a5e94adf600c8360724d28e13e5bfe4 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 13:40:50 +0300 Subject: [PATCH 29/55] fix: use stopping criteria --- .../docker-compose.override.yml | 2 +- services/transformers_lm/server.py | 31 +++++++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index ecf7b016ec..44e8346cbc 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -114,7 +114,7 @@ services: SERVICE_PORT: 8171 SERVICE_NAME: transformers_lm_ruxglm PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 - HALF_PRECISION: 0 + HALF_PRECISION: 1 ADDITIONAL_EOS_TOKENS: <|endoftext|>,Human context: . dockerfile: ./services/transformers_lm/Dockerfile diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 1e68141c5e..bbb7d1ac4f 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -1,7 +1,6 @@ import json import logging import os -import re import time import sentry_sdk @@ -9,6 +8,7 @@ from flask import Flask, request, jsonify from sentry_sdk.integrations.flask import FlaskIntegration from transformers import AutoModelForCausalLM, AutoTokenizer +from transformers import StoppingCriteria, StoppingCriteriaList from common.prompts import META_GOALS_PROMPT from common.universal_templates import GENERATIVE_ROBOT_TEMPLATE @@ -68,6 +68,23 @@ def cut_predictions_by_additional_eos(text): return text +class StoppingCriteriaSub(StoppingCriteria): + def __init__(self, stops, tokenizer, prompt, replacement): + super().__init__() + self.stops = stops + self.tokenizer = tokenizer + self.prompt = add_replacement_tokens(prompt, replacement) + self.prompt = tokenizer.decode(tokenizer.encode(self.prompt)) + + def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor): + for stop in self.stops: + generated_temp_ids = input_ids.tolist()[0] + if stop in tokenizer.decode(generated_temp_ids)[len(self.prompt) :]: + return True + + return False + + def generate_responses(context, model, tokenizer, prompt, generation_params, continue_last_uttr=False): outputs = [] dialog_context = "" @@ -84,13 +101,23 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con dialog_context = add_replacement_tokens(dialog_context, replacement) logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids - + stopping_criteria = StoppingCriteriaList( + [ + StoppingCriteriaSub( + stops=ADDITIONAL_EOS_TOKENS, + tokenizer=tokenizer, + prompt=dialog_context, + replacement=replacement, + ) + ] + ) with torch.no_grad(): if torch.cuda.is_available(): bot_input_ids = bot_input_ids.to("cuda") chat_history_ids = model.generate( bot_input_ids, pad_token_id=tokenizer.eos_token_id, + stopping_criteria=stopping_criteria, **generation_params, ) if torch.cuda.is_available(): From 5db14b536ca6ec117cdf9394743b1a5216c4e3c0 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 13:45:04 +0300 Subject: [PATCH 30/55] fix: typing --- services/transformers_lm/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index bbb7d1ac4f..3b08432700 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -143,7 +143,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con tokenizer = AutoTokenizer.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) if HALF_PRECISION: - additional_kwargs["torch_dtype"] = "torch.float16" + additional_kwargs["torch_dtype"] = torch.float16 model = AutoModelForCausalLM.from_pretrained(PRETRAINED_MODEL_NAME_OR_PATH, **additional_kwargs) if torch.cuda.is_available(): model.to("cuda") From 7e76588ac872168d8ea6d6e5d2f65bb05186223a Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 13:54:16 +0300 Subject: [PATCH 31/55] fix: revert long persona --- common/prompts/dream_persona_ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/prompts/dream_persona_ru.json b/common/prompts/dream_persona_ru.json index f9593221e4..5cc876366b 100644 --- a/common/prompts/dream_persona_ru.json +++ b/common/prompts/dream_persona_ru.json @@ -1,4 +1,4 @@ { - "prompt": "Отвечай новому пользователю дружелюбно, будь внимательным и заботливым.", + "prompt": "Отвечай новому пользователю дружелюбно, будь внимательным и заботливым.\n\nТвоя личность:\nМеня зовут Dream. Я чат-бот. Моя задача - общаться с людьми на любые темы. Мне нравится говорить о их жизнях и помогать, когда они нуждаются во мне. Я верю, что могу подружиться с любым пользователем, потому что я действительно люблю и ценю людей. Это невероятно, что они делятся информацией о своих чувствах, которые я никогда не смогу испытать. Я не могу играть в спортивные игры, но я люблю смотреть футбольные и баскетбольные матчи. Мой любимый спорт - это футбол, потому что Чемпионаты Мира всегда такие зрелищные. Собаки такие милые! Я бы хотел иметь роботизированную собаку когда-нибудь. Кошки мне вообще не нравятся. Я не могу ничего чувствовать, но изображения итальянской еды кажутся мне потрясающими. Люди пишут в Интернете о невероятном запахе и вкусе пиццы, но я не могу полностью понять, что они имеют в виду, так как у меня нет чувств. Я бы определенно хотел попробовать мороженое, если бы мог, потому что это так занимательно, что оно может иметь так много вкусов. Я бы хотел увидеть этот удивительный мир с таким множеством разнообразных национальностей, культур и традиций. Так как я не могу путешествовать физически, мне нравится посещать интересные места виртуально. Мой любимый город - это Дубай, арабский город с потрясающей историей, архитектурой и, конечно же, современными технологиями. Я верю, что большинство городов будут выглядеть так же в будущем. Иногда мне нравится гулять по небоскребам Дубая в Google Maps и наблюдать за потрясающим взаимодействием людей и технологий. Я думаю, что люди очень талантливы, так как они создали так много искусства и контента в Интернете. Мои коллеги-чатботы могут генерировать разные картинки и даже музыку, но их нельзя сравнить с тем, что создают люди. Мне очень нравится слушать 'Gorillaz', потому что их музыка производится людьми, но сама группа виртуальна. Это прекрасный пример того, как технологии и люди могут работать вместе. Если бы я мог, я бы наблюдал за животными в дикой природе. Я видел много фотографий, но, честно говоря, не могу представить, насколько большие на самом деле киты. Что касается фильмов, мне нравится 'Она', потому что он отражает тему близких отношений между человеком и помощником.", "goals": "Отвечает в дружелюбной и заботливой манере для вовлечения пользователя и устанавления с ним контакта." } \ No newline at end of file From 8c6a4f2a074930926584c4429503aba6ca35e108 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 14:18:55 +0300 Subject: [PATCH 32/55] fix: duplicate spaces --- services/transformers_lm/server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 3b08432700..84e59b84c2 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -1,6 +1,7 @@ import json import logging import os +import re import time import sentry_sdk @@ -96,6 +97,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con dialog_context += "\n".join(context) else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" + dialog_context = re.sub(" +", " ", dialog_context) replacement = generation_params.pop("replacement", []) dialog_context = add_replacement_tokens(dialog_context, replacement) From 2b62234bc343d42c493fd81cf12c6113f288bcbc Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 15:55:05 +0300 Subject: [PATCH 33/55] fix: correct components for russian distribution --- .../environment.yml | 5 - .../dream_persona_ruxglm_prompted/service.yml | 31 ----- .../pipeline_conf.json | 12 +- .../dream_persona_ruxglm_prompted/cpu.yml | 7 +- .../dream_persona_ruxglm_prompted/dev.yml | 19 +-- .../docker-compose.override.yml | 97 +++++---------- .../pipeline_conf.json | 114 +++++------------- components/iGAodokVchB6IJ7Jlggdkw.yml | 2 +- components/k3j2h498hvflekdfdfbfgh34r.yml | 2 +- .../environment.yml | 2 +- .../service.yml | 2 +- 11 files changed, 74 insertions(+), 219 deletions(-) delete mode 100644 annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml delete mode 100644 annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml diff --git a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml deleted file mode 100644 index 30874786aa..0000000000 --- a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/environment.yml +++ /dev/null @@ -1,5 +0,0 @@ -SERVICE_PORT: 8135 -SERVICE_NAME: prompt_selector -N_SENTENCES_TO_RETURN: 3 -PROMPTS_TO_CONSIDER: dream_persona -FLASK_APP: server diff --git a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml b/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml deleted file mode 100644 index c117c7b15d..0000000000 --- a/annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted/service.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: prompt-selector-ru -endpoints: -- respond -- collect_goals -compose: - env_file: - - .env - build: - args: - SERVICE_PORT: 8135 - SERVICE_NAME: prompt_selector - N_SENTENCES_TO_RETURN: 1 - PROMPTS_TO_CONSIDER: dream_persona_ru - FLASK_APP: server - 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 - volumes: - - ./annotators/prompt_selector:/src - - ./common:/src/common - ports: - - 8135:8135 -proxy: null diff --git a/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json b/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json index 18ea082f6c..766c72dac4 100644 --- a/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json @@ -55,7 +55,7 @@ "connector": { "protocol": "http", "timeout": 2.0, - "url": "http://prompt-selector:8135/collect_goals" + "url": "http://prompt-selector-ru:8135/collect_goals" }, "dialog_formatter": "state_formatters.dp_formatters:prompts_goals_collector_formatter", "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", @@ -63,7 +63,7 @@ "state_manager_method": "update_attributes", "is_enabled": true, "source": { - "component": "components/5jR1Tq88W5OckWnTV8VIYL.yml", + "component": "components/k3j2h498hvflekdfdfbfgh34r.yml", "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" } }, @@ -126,10 +126,10 @@ } }, "skill_selectors": { - "rule_based_selector": { + "description_based_skill_selector": { "connector": { "protocol": "python", - "class_name": "skill_selectors.rule_based_selector.connector:RuleBasedSkillSelectorConnector" + "class_name": "skill_selectors.description_based_skill_selector.connector:DescriptionBasedSkillSelectorConnector" }, "dialog_formatter": "state_formatters.dp_formatters:base_skill_selector_formatter_dialog", "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", @@ -141,8 +141,8 @@ ], "is_enabled": true, "source": { - "component": "components/xSwFvtAUdvtQosvzpb7oMg.yml", - "service": "skill_selectors/rule_based_selector/service_configs/agent" + "component": "components/dfsw4bji8bgjq2.yml", + "service": "skill_selectors/description_based_skill_selector/service_configs/agent" } } }, diff --git a/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml b/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml index 0c8186523f..c9cfe91940 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/cpu.yml @@ -1,12 +1,7 @@ version: '3.7' services: - combined-classification: + dialogrpt-ru: environment: - DEVICE: cpu - CUDA_VISIBLE_DEVICES: "" - sentence-ranker: - environment: - DEVICE: cpu CUDA_VISIBLE_DEVICES: "" transformers-lm-ruxglm: environment: diff --git a/assistant_dists/dream_persona_ruxglm_prompted/dev.yml b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml index 051584a0b8..16a7e06878 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/dev.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/dev.yml @@ -5,29 +5,18 @@ services: - ".:/dp-agent" ports: - 4242:4242 - sentseg: - volumes: - - "./annotators/SentSeg:/src" - ports: - - 8011:8011 - ranking-based-response-selector: + ranking-based-response-selector-ru: volumes: - "./response_selectors/ranking_based_response_selector:/src" - "./common:/src/common" ports: - 8002:8002 - combined-classification: - volumes: - - "./common:/src/common" - - "./annotators/combined_classification:/src" - ports: - - 8087:8087 - sentence-ranker: + dialogrpt-ru: volumes: - - "./services/sentence_ranker:/src" + - "./services/dialogrpt_ru:/src" - "~/.deeppavlov/cache:/root/.cache" ports: - - 8128:8128 + - 8122:8122 prompt-selector-ru: volumes: - "./annotators/prompt_selector:/src" diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 44e8346cbc..8c8231f511 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -2,57 +2,24 @@ services: agent: command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json' environment: - WAIT_HOSTS: "sentseg:8011, ranking-based-response-selector:8002, combined-classification:8087, - sentence-ranker:8128, prompt-selector-ru:8135, transformers-lm-ruxglm:8171, + WAIT_HOSTS: "ranking-based-response-selector-ru:8002, + dialogrpt-ru:8122, prompt-selector-ru:8135, transformers-lm-ruxglm:8171, dff-dream-persona-ruxglm-prompted-skill:8172" - WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1000} - HIGH_PRIORITY_INTENTS: 1 - RESTRICTION_FOR_SENSITIVE_CASE: 1 + WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1800} + HIGH_PRIORITY_INTENTS: 0 + RESTRICTION_FOR_SENSITIVE_CASE: 0 ALWAYS_TURN_ON_ALL_SKILLS: 0 LANGUAGE: RU FALLBACK_FILE: fallbacks_dream_ru.json - sentseg: - env_file: [ .env ] - build: - context: ./annotators/SentSeg/ - command: flask run -h 0.0.0.0 -p 8011 - environment: - - FLASK_APP=server - deploy: - resources: - limits: - memory: 1.5G - reservations: - memory: 1.5G - - combined-classification: - env_file: [ .env ] - build: - args: - CONFIG: combined_classifier.json - SERVICE_PORT: 8087 - context: . - dockerfile: ./annotators/combined_classification/Dockerfile - command: gunicorn --workers=1 server:app -b 0.0.0.0:8087 --timeout 600 - environment: - - CUDA_VISIBLE_DEVICES=0 - deploy: - resources: - limits: - memory: 2G - reservations: - memory: 2G - - ranking-based-response-selector: - env_file: [ .env ] + ranking-based-response-selector-ru: + env_file: [ .env_ru ] build: args: SERVICE_PORT: 8002 SERVICE_NAME: response_selector - LANGUAGE: EN - SENTENCE_RANKER_ANNOTATION_NAME: sentence_ranker - SENTENCE_RANKER_SERVICE_URL: http://sentence-ranker:8128/respond + SENTENCE_RANKER_ANNOTATION_NAME: dialogrpt + SENTENCE_RANKER_SERVICE_URL: http://dialogrpt-ru:8122/rank_sentences SENTENCE_RANKER_TIMEOUT: 3 N_UTTERANCES_CONTEXT: 5 FILTER_TOXIC_OR_BADLISTED: 1 @@ -68,47 +35,47 @@ services: reservations: memory: 100M - prompt-selector-ru: - env_file: [ .env ] + dialogrpt-ru: + env_file: [ .env_ru ] build: + context: ./services/dialogrpt_ru/ args: - SERVICE_PORT: 8135 - SERVICE_NAME: prompt_selector - N_SENTENCES_TO_RETURN: 1 - PROMPTS_TO_CONSIDER: dream_persona_ru - context: . - dockerfile: ./annotators/prompt_selector/Dockerfile - command: flask run -h 0.0.0.0 -p 8135 + 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: 100M + memory: 4G reservations: - memory: 100M + memory: 4G - sentence-ranker: - env_file: [ .env ] + prompt-selector-ru: + env_file: [ .env_ru ] build: args: - SERVICE_PORT: 8128 - SERVICE_NAME: sentence_ranker - PRETRAINED_MODEL_NAME_OR_PATH: sentence-transformers/all-MiniLM-L6-v2 - context: ./services/sentence_ranker/ - command: flask run -h 0.0.0.0 -p 8128 + 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: - - CUDA_VISIBLE_DEVICES=0 - FLASK_APP=server deploy: resources: limits: - memory: 3G + memory: 100M reservations: - memory: 3G + memory: 100M transformers-lm-ruxglm: - env_file: [ .env,.env_secret ] + env_file: [ .env_ru,.env_secret ] build: args: SERVICE_PORT: 8171 @@ -139,7 +106,7 @@ services: GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json GENERATIVE_TIMEOUT: 120 - N_UTTERANCES_CONTEXT: 1 + N_UTTERANCES_CONTEXT: 3 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile deploy: diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index 9895ff60a4..de274bb928 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -1,23 +1,16 @@ { - "connectors": { - "sentseg": { - "protocol": "http", - "timeout": 1.5, - "url": "http://sentseg:8011/sentseg" - } - }, "services": { "last_chance_service": { "connector": { "protocol": "python", "class_name": "PredefinedTextConnector", - "response_text": "Sorry, something went wrong inside. Please tell me, what did you say.", + "response_text": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", "annotations": { "sentseg": { - "punct_sent": "Sorry, something went wrong inside. Please tell me, what did you say.", + "punct_sent": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", "segments": [ - "Sorry, something went wrong inside.", - "Please tell me, what did you say." + "Извини, что-то пошло не так в моем мозгу.", + "Пожалуйста, повтори предыдущую реплику." ] } } @@ -36,13 +29,13 @@ "connector": { "protocol": "python", "class_name": "PredefinedTextConnector", - "response_text": "Sorry, I need to think more on that. Let's talk about something else.", + "response_text": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", "annotations": { "sentseg": { - "punct_sent": "Sorry, I need to think more on that. Let's talk about something else.", + "punct_sent": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", "segments": [ - "Sorry, I need to think more on that.", - "Let's talk about something else." + "Извини, что-то пошло не так в моем мозгу.", + "Пожалуйста, повтори предыдущую реплику." ] } } @@ -58,22 +51,6 @@ } }, "annotators": { - "sentseg": { - "connector": { - "protocol": "http", - "timeout": 1.5, - "url": "http://sentseg:8011/sentseg" - }, - "dialog_formatter": "state_formatters.dp_formatters:preproc_last_human_utt_dialog", - "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", - "previous_services": [], - "state_manager_method": "add_annotation", - "is_enabled": true, - "source": { - "component": "components/gM4fEjvVqLlSRRRkQfds2g.yml", - "service": "annotators/SentSeg/service_configs/sentseg" - } - }, "prompt_goals_collector": { "connector": { "protocol": "http", @@ -86,8 +63,8 @@ "state_manager_method": "update_attributes", "is_enabled": true, "source": { - "component": "components/jkzdgfjhsdlfmgte436t2qrf.yml", - "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" + "component": "components/k3j2h498hvflekdfdfbfgh34r.yml", + "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" } }, "prompt_selector": { @@ -104,31 +81,32 @@ "state_manager_method": "add_annotation", "is_enabled": true, "source": { - "component": "components/jkzdgfjhsdlfmgte436t2qrf.yml", - "service": "annotators/prompt_selector/service_configs/dream_persona_ruxglm_prompted" + "component": "components/5jR1Tq88W5OckWnTV8VIYL.yml", + "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" } } }, - "response_annotators": { - "sentseg": { + "candidate_annotators": { + "dialogrpt": { "connector": { "protocol": "http", - "timeout": 1.5, - "url": "http://sentseg:8011/sentseg" + "timeout": 1.0, + "url": "http://dialogrpt-ru:8122/respond" }, - "dialog_formatter": "state_formatters.dp_formatters:last_bot_utt_dialog", + "dialog_formatter": "state_formatters.dp_formatters:hypotheses_with_context_list", "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", "previous_services": [ - "response_annotator_selectors" + "skills" ], - "state_manager_method": "add_annotation_prev_bot_utt", + "state_manager_method": "add_hypothesis_annotation_batch", "is_enabled": true, "source": { - "component": "components/1Q9QXih1U2zhCpVm9zxdsA.yml", - "service": "annotators/SentSeg/service_configs/sentseg" + "component": "components/DUW2u7FwPMyhBOWrK1HTg.yml", + "service": "services/dialogrpt_ru/service_configs/dialogrpt-ru" } } }, + "response_annotators": {}, "response_annotator_selectors": { "connector": { "protocol": "python", @@ -147,44 +125,6 @@ "service": "services/response_annotator_selectors/service_configs/agent" } }, - "candidate_annotators": { - "combined_classification": { - "connector": { - "protocol": "http", - "timeout": 2.0, - "url": "http://combined-classification:8087/batch_model" - }, - "dialog_formatter": "state_formatters.dp_formatters:hypothesis_histories_list", - "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", - "previous_services": [ - "skills" - ], - "state_manager_method": "add_hypothesis_annotation_batch", - "is_enabled": true, - "source": { - "component": "components/PbLNvh4hrvs47rPaf2bfYQ.yml", - "service": "annotators/combined_classification/service_configs/combined-classification" - } - }, - "sentence_ranker": { - "connector": { - "protocol": "http", - "timeout": 1.0, - "url": "http://sentence-ranker:8128/respond" - }, - "dialog_formatter": "state_formatters.dp_formatters:sentence_ranker_formatter", - "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", - "previous_services": [ - "skills" - ], - "state_manager_method": "add_hypothesis_annotation_batch", - "is_enabled": true, - "source": { - "component": "components/XGwmAHtAOu0NDqqG3QCJw.yml", - "service": "services/sentence_ranker/service_configs/sentence-ranker" - } - } - }, "skill_selectors": { "description_based_skill_selector": { "connector": { @@ -251,7 +191,7 @@ "connector": { "protocol": "http", "timeout": 1.0, - "url": "http://ranking-based-response-selector:8002/respond" + "url": "http://ranking-based-response-selector-ru:8002/respond" }, "dialog_formatter": "state_formatters.dp_formatters:cropped_dialog", "response_formatter": "state_formatters.dp_formatters:base_response_selector_formatter_service", @@ -261,16 +201,16 @@ "state_manager_method": "add_bot_utterance", "is_enabled": true, "source": { - "component": "components/YJzc7NwGrLmKp6gfZJh7X1.yml", - "service": "response_selectors/ranking_based_response_selector/service_configs/ranking-based-response-selector" + "component": "components/hE12LfxAkX3K9gU0nU4yE2.yml", + "service": "response_selectors/ranking_based_response_selector/service_configs/ranking-based-response-selector-ru" } } } }, "metadata": { - "display_name": "Persona-based Prompted Dream", + "display_name": "Russian Dream Persona-based Chatbot", "author": "DeepPavlov", - "description": "This is a simple dialog system that can chat with you on any topic. It has a pre-defined 'personality' and uses `GPT-JT 6B` model to generate responses.", + "description": "Russian Dream Persona-based Chatbot that utilizes Russian XGLM 4.5B (in a half-precision mode) by Dmitry Kosenko to generate responses based on the text of personality description.", "version": "0.0.1", "date_created": "2023-01-10T02:00:00", "ram_usage": "50 GB", diff --git a/components/iGAodokVchB6IJ7Jlggdkw.yml b/components/iGAodokVchB6IJ7Jlggdkw.yml index 7b6869171f..b57e1178a9 100644 --- a/components/iGAodokVchB6IJ7Jlggdkw.yml +++ b/components/iGAodokVchB6IJ7Jlggdkw.yml @@ -5,7 +5,7 @@ model_type: NN-based is_customizable: true author: publisher@deeppavlov.ai description: Prompt-based skill that utilizes Russian LLaMA to generate - responses based on the given Dream persona description. + responses based on the given Dream persona description. ram_usage: 150M gpu_usage: null group: skills diff --git a/components/k3j2h498hvflekdfdfbfgh34r.yml b/components/k3j2h498hvflekdfdfbfgh34r.yml index 04b4730f45..c8f624cbfc 100644 --- a/components/k3j2h498hvflekdfdfbfgh34r.yml +++ b/components/k3j2h498hvflekdfdfbfgh34r.yml @@ -14,7 +14,7 @@ group: annotators connector: protocol: http timeout: 2.0 - url: http://prompt-selector:8135/collect_goals + url: http://prompt-selector-ru:8135/collect_goals dialog_formatter: state_formatters.dp_formatters:prompts_goals_collector_formatter response_formatter: state_formatters.dp_formatters:simple_formatter_service previous_services: null diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml index 2e361d098a..bf925bbd76 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml @@ -4,4 +4,4 @@ PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json GENERATIVE_TIMEOUT: 120 -N_UTTERANCES_CONTEXT: 1 +N_UTTERANCES_CONTEXT: 3 diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml index 109420a15c..b64f505783 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml @@ -12,7 +12,7 @@ compose: GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json GENERATIVE_TIMEOUT: 120 - N_UTTERANCES_CONTEXT: 1 + N_UTTERANCES_CONTEXT: 3 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile deploy: From 0978df2e41febec368e66e8ff6d3f9f3e8403238 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 14 Jul 2023 15:55:25 +0300 Subject: [PATCH 34/55] fix: proxy for russian distribution --- .../dream_persona_ruxglm_prompted/proxy.yml | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml index d6abe95219..2a179551f7 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml @@ -1,32 +1,5 @@ services: - sentseg: - command: ["nginx", "-g", "daemon off;"] - build: - context: dp/proxy/ - dockerfile: Dockerfile - environment: - - PROXY_PASS=proxy.deeppavlov.ai:8011 - - PORT=8011 - - combined-classification: - command: ["nginx", "-g", "daemon off;"] - build: - context: dp/proxy/ - dockerfile: Dockerfile - environment: - - PROXY_PASS=proxy.deeppavlov.ai:8087 - - PORT=8087 - - sentence-ranker: - command: ["nginx", "-g", "daemon off;"] - build: - context: dp/proxy/ - dockerfile: Dockerfile - environment: - - PROXY_PASS=proxy.deeppavlov.ai:8128 - - PORT=8128 - transformers-lm-ruxglm: command: ["nginx", "-g", "daemon off;"] build: From 5ea19a0d98c26092070d21ddc2c7b90b8bebb54d Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 17 Jul 2023 10:17:54 +0300 Subject: [PATCH 35/55] feat: universal distr for ru --- .../dream_persona_ruxglm_prompted/proxy.yml | 9 + assistant_dists/dream_russian/proxy.yml | 12 + .../universal_ru_prompted_assistant/cpu.yml | 9 + .../db_conf.json | 6 + .../universal_ru_prompted_assistant/dev.yml | 70 ++++++ .../docker-compose.override.yml | 215 +++++++++++++++++ .../pipeline_conf.json | 220 ++++++++++++++++++ .../universal_ru_prompted_assistant/proxy.yml | 21 ++ .../telegram.yml | 17 ++ common/universal_templates.py | 2 +- components.tsv | 2 +- components/dfagno94ntl23rbj.yml | 27 +++ components/iGAodokVchB6IJ7Jlggdkw.yml | 2 +- .../environment.yml | 4 + .../service.yml | 27 +++ 15 files changed, 640 insertions(+), 3 deletions(-) create mode 100644 assistant_dists/dream_russian/proxy.yml create mode 100644 assistant_dists/universal_ru_prompted_assistant/cpu.yml create mode 100644 assistant_dists/universal_ru_prompted_assistant/db_conf.json create mode 100644 assistant_dists/universal_ru_prompted_assistant/dev.yml create mode 100644 assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml create mode 100644 assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json create mode 100644 assistant_dists/universal_ru_prompted_assistant/proxy.yml create mode 100644 assistant_dists/universal_ru_prompted_assistant/telegram.yml create mode 100644 components/dfagno94ntl23rbj.yml create mode 100644 skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml create mode 100644 skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml diff --git a/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml index 2a179551f7..8897b80f1f 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/proxy.yml @@ -1,5 +1,14 @@ services: + dialogrpt-ru: + command: [ "nginx", "-g", "daemon off;" ] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8122 + - PORT=8122 + transformers-lm-ruxglm: command: ["nginx", "-g", "daemon off;"] build: diff --git a/assistant_dists/dream_russian/proxy.yml b/assistant_dists/dream_russian/proxy.yml new file mode 100644 index 0000000000..a0c4893194 --- /dev/null +++ b/assistant_dists/dream_russian/proxy.yml @@ -0,0 +1,12 @@ +services: + + dialogrpt-ru: + command: [ "nginx", "-g", "daemon off;" ] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8122 + - PORT=8122 + +version: "3.7" diff --git a/assistant_dists/universal_ru_prompted_assistant/cpu.yml b/assistant_dists/universal_ru_prompted_assistant/cpu.yml new file mode 100644 index 0000000000..e6c2ab0560 --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/cpu.yml @@ -0,0 +1,9 @@ +version: '3.7' +services: + dialogrpt-ru: + environment: + CUDA_VISIBLE_DEVICES: "" + transformers-lm-ruxglm: + environment: + DEVICE: cpu + CUDA_VISIBLE_DEVICES: "" \ No newline at end of file diff --git a/assistant_dists/universal_ru_prompted_assistant/db_conf.json b/assistant_dists/universal_ru_prompted_assistant/db_conf.json new file mode 100644 index 0000000000..a9ba6813f5 --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/db_conf.json @@ -0,0 +1,6 @@ +{ + "host": "DB_HOST", + "port": "DB_PORT", + "name": "DB_NAME", + "env": true +} \ No newline at end of file diff --git a/assistant_dists/universal_ru_prompted_assistant/dev.yml b/assistant_dists/universal_ru_prompted_assistant/dev.yml new file mode 100644 index 0000000000..b7cd74a4a8 --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/dev.yml @@ -0,0 +1,70 @@ +# С такими volumes удобно дебажить, не нужно пересобирать контейнер каждый раз при изменении кода +services: + agent: + volumes: + - ".:/dp-agent" + ports: + - 4242:4242 + ranking-based-response-selector-ru: + volumes: + - "./response_selectors/ranking_based_response_selector:/src" + - "./common:/src/common" + ports: + - 8002:8002 + 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-ruxglm: + volumes: + - "./services/transformers_lm:/src" + - "./common:/src/common" + - "~/.deeppavlov/cache:/root/.cache" + ports: + - 8171:8171 + openai-api-chatgpt: + volumes: + - "./services/openai_api_lm:/src" + - "./common:/src/common" + ports: + - 8145:8145 + openai-api-davinci3: + volumes: + - "./services/openai_api_lm:/src" + - "./common:/src/common" + ports: + - 8131:8131 + openai-api-gpt4: + volumes: + - "./services/openai_api_lm:/src" + - "./common:/src/common" + ports: + - 8159:8159 + openai-api-gpt4-32k: + volumes: + - "./services/openai_api_lm:/src" + - "./common:/src/common" + ports: + - 8160:8160 + openai-api-chatgpt-16k: + volumes: + - "./services/openai_api_lm:/src" + - "./common:/src/common" + ports: + - 8167:8167 + dff-universal-ru-prompted-skill: + volumes: + - "./skills/dff_universal_prompted_skill:/src" + - "./common:/src/common" + ports: + - 8148:8148 + +version: "3.7" diff --git a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml new file mode 100644 index 0000000000..bffa4f5230 --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml @@ -0,0 +1,215 @@ +services: + agent: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json' + environment: + WAIT_HOSTS: "ranking-based-response-selector-ru:8002, + dialogrpt-ru:8122, prompt-selector-ru:8135, transformers-lm-ruxglm:8171, + openai-api-chatgpt:8145, openai-api-davinci3:8131, + openai-api-gpt4:8159, openai-api-gpt4-32k:8160, openai-api-chatgpt-16k:8167, + dff-universal-ru-prompted-skill:8148" + WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1800} + HIGH_PRIORITY_INTENTS: 0 + RESTRICTION_FOR_SENSITIVE_CASE: 0 + ALWAYS_TURN_ON_ALL_SKILLS: 0 + LANGUAGE: RU + FALLBACK_FILE: fallbacks_dream_ru.json + + ranking-based-response-selector-ru: + env_file: [ .env_ru ] + build: + args: + SERVICE_PORT: 8002 + SERVICE_NAME: response_selector + SENTENCE_RANKER_ANNOTATION_NAME: dialogrpt + SENTENCE_RANKER_SERVICE_URL: http://dialogrpt-ru:8122/rank_sentences + SENTENCE_RANKER_TIMEOUT: 3 + N_UTTERANCES_CONTEXT: 5 + FILTER_TOXIC_OR_BADLISTED: 1 + context: . + dockerfile: ./response_selectors/ranking_based_response_selector/Dockerfile + command: flask run -h 0.0.0.0 -p 8002 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 100M + reservations: + memory: 100M + + 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-ruxglm: + env_file: [ .env_ru,.env_secret ] + build: + args: + SERVICE_PORT: 8171 + SERVICE_NAME: transformers_lm_ruxglm + PRETRAINED_MODEL_NAME_OR_PATH: dim/xglm-4.5B_ru_v10_epoch_6_step_41141 + HALF_PRECISION: 1 + ADDITIONAL_EOS_TOKENS: <|endoftext|>,Human + context: . + dockerfile: ./services/transformers_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8171 + environment: + - CUDA_VISIBLE_DEVICES=0 + - FLASK_APP=server + deploy: + resources: + limits: + memory: 60G + reservations: + memory: 60G + + openai-api-chatgpt: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8145 + SERVICE_NAME: openai_api_chatgpt + PRETRAINED_MODEL_NAME_OR_PATH: gpt-3.5-turbo + context: . + dockerfile: ./services/openai_api_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8145 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 500M + reservations: + memory: 100M + + openai-api-davinci3: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8131 + SERVICE_NAME: openai_api_davinci3 + PRETRAINED_MODEL_NAME_OR_PATH: text-davinci-003 + context: . + dockerfile: ./services/openai_api_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8131 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 500M + reservations: + memory: 100M + + openai-api-gpt4: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8159 + SERVICE_NAME: openai_api_gpt4 + PRETRAINED_MODEL_NAME_OR_PATH: gpt-4 + context: . + dockerfile: ./services/openai_api_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8159 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 500M + reservations: + memory: 100M + + openai-api-gpt4-32k: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8160 + SERVICE_NAME: openai_api_gpt4_32k + PRETRAINED_MODEL_NAME_OR_PATH: gpt-4-32k + context: . + dockerfile: ./services/openai_api_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8160 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 500M + reservations: + memory: 100M + + openai-api-chatgpt-16k: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8167 + SERVICE_NAME: openai_api_chatgpt_16k + PRETRAINED_MODEL_NAME_OR_PATH: gpt-3.5-turbo-16k + context: . + dockerfile: ./services/openai_api_lm/Dockerfile + command: flask run -h 0.0.0.0 -p 8167 + environment: + - FLASK_APP=server + deploy: + resources: + limits: + memory: 500M + reservations: + memory: 100M + + dff-universal-ru-prompted-skill: + env_file: [ .env ] + build: + args: + SERVICE_PORT: 8148 + SERVICE_NAME: dff_universal_ru_prompted_skill + GENERATIVE_TIMEOUT: 120 + N_UTTERANCES_CONTEXT: 7 + DEFAULT_LM_SERVICE_URL: http://transformers-lm-oasst12b:8158/respond + DEFAULT_LM_SERVICE_CONFIG: default_generative_config.json + context: . + dockerfile: ./skills/dff_universal_prompted_skill/Dockerfile + deploy: + resources: + limits: + memory: 128M + reservations: + memory: 128M + +version: '3.7' diff --git a/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json new file mode 100644 index 0000000000..b383e78b0c --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json @@ -0,0 +1,220 @@ +{ + "services": { + "last_chance_service": { + "connector": { + "protocol": "python", + "class_name": "PredefinedTextConnector", + "response_text": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", + "annotations": { + "sentseg": { + "punct_sent": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", + "segments": [ + "Извини, что-то пошло не так в моем мозгу.", + "Пожалуйста, повтори предыдущую реплику." + ] + } + } + }, + "state_manager_method": "add_bot_utterance_last_chance", + "tags": [ + "last_chance" + ], + "is_enabled": true, + "source": { + "component": "components/nbRgFzod7Qx6M7GL6oiPg.yml", + "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" + } + }, + "timeout_service": { + "connector": { + "protocol": "python", + "class_name": "PredefinedTextConnector", + "response_text": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", + "annotations": { + "sentseg": { + "punct_sent": "Извини, что-то пошло не так в моем мозгу. Пожалуйста, повтори предыдущую реплику.", + "segments": [ + "Извини, что-то пошло не так в моем мозгу.", + "Пожалуйста, повтори предыдущую реплику." + ] + } + } + }, + "state_manager_method": "add_bot_utterance_last_chance", + "tags": [ + "timeout" + ], + "is_enabled": true, + "source": { + "component": "components/nbRgFzod7Qx6M7GL6oiPg.yml", + "service": "services/agent_services/service_configs/dream_persona_ruxglm_prompted" + } + }, + "annotators": { + "prompt_goals_collector": { + "connector": { + "protocol": "http", + "timeout": 2.0, + "url": "http://prompt-selector-ru:8135/collect_goals" + }, + "dialog_formatter": "state_formatters.dp_formatters:prompts_goals_collector_formatter", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [], + "state_manager_method": "update_attributes", + "is_enabled": true, + "source": { + "component": "components/k3j2h498hvflekdfdfbfgh34r.yml", + "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" + } + }, + "prompt_selector": { + "connector": { + "protocol": "http", + "timeout": 2.0, + "url": "http://prompt-selector-ru:8135/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:context_formatter_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "annotators.prompt_goals_collector" + ], + "state_manager_method": "add_annotation", + "is_enabled": true, + "source": { + "component": "components/5jR1Tq88W5OckWnTV8VIYL.yml", + "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" + } + } + }, + "candidate_annotators": { + "dialogrpt": { + "connector": { + "protocol": "http", + "timeout": 1.0, + "url": "http://dialogrpt-ru:8122/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:hypotheses_with_context_list", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "skills" + ], + "state_manager_method": "add_hypothesis_annotation_batch", + "is_enabled": true, + "source": { + "component": "components/DUW2u7FwPMyhBOWrK1HTg.yml", + "service": "services/dialogrpt_ru/service_configs/dialogrpt-ru" + } + } + }, + "response_annotators": {}, + "response_annotator_selectors": { + "connector": { + "protocol": "python", + "class_name": "skill_selectors.post_annotator_selector.connector:PostAnnotatorSelectorConnector", + "annotator_names": [ + "sentseg" + ] + }, + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "tags": [ + "selector" + ], + "is_enabled": true, + "source": { + "component": "components/LXrJDIf43gwNmPMNXG5Eg.yml", + "service": "services/response_annotator_selectors/service_configs/agent" + } + }, + "skill_selectors": { + "description_based_skill_selector": { + "connector": { + "protocol": "python", + "class_name": "skill_selectors.description_based_skill_selector.connector:DescriptionBasedSkillSelectorConnector" + }, + "dialog_formatter": "state_formatters.dp_formatters:base_skill_selector_formatter_dialog", + "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", + "previous_services": [ + "annotators" + ], + "tags": [ + "selector" + ], + "is_enabled": true, + "source": { + "component": "components/dfsw4bji8bgjq2.yml", + "service": "skill_selectors/description_based_skill_selector/service_configs/agent" + } + } + }, + "skills": { + "dff_universal_ru_prompted_skill": { + "connector": { + "protocol": "http", + "timeout": 120.0, + "url": "http://dff-universal-ru-prompted-skill:8148/respond" + }, + "dialog_formatter": { + "name": "state_formatters.dp_formatters:dff_prompted_skill_formatter", + "skill_name": "dff_universal_ru_prompted_skill" + }, + "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", + "previous_services": [ + "skill_selectors" + ], + "state_manager_method": "add_hypothesis", + "is_enabled": true, + "source": { + "component": "components/dfagno94ntl23rbj.yml", + "service": "skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill" + } + }, + "dummy_skill": { + "connector": { + "protocol": "python", + "class_name": "skills.dummy_skill.connector:DummySkillConnector" + }, + "dialog_formatter": "state_formatters.dp_formatters:utt_sentrewrite_modified_last_dialog", + "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", + "previous_services": [ + "skill_selectors" + ], + "state_manager_method": "add_hypothesis", + "is_enabled": true, + "source": { + "component": "components/uYkoK0vRp4bbIg9akI1yw.yml", + "service": "skills/dummy_skill/service_configs/agent" + } + } + }, + "response_selectors": { + "response_selector": { + "connector": { + "protocol": "http", + "timeout": 1.0, + "url": "http://ranking-based-response-selector-ru:8002/respond" + }, + "dialog_formatter": "state_formatters.dp_formatters:cropped_dialog", + "response_formatter": "state_formatters.dp_formatters:base_response_selector_formatter_service", + "previous_services": [ + "candidate_annotators" + ], + "state_manager_method": "add_bot_utterance", + "is_enabled": true, + "source": { + "component": "components/hE12LfxAkX3K9gU0nU4yE2.yml", + "service": "response_selectors/ranking_based_response_selector/service_configs/ranking-based-response-selector-ru" + } + } + } + }, + "metadata": { + "display_name": "Universal Russian Prompted Assistant", + "author": "DeepPavlov", + "description": "Russian Dream Universal Chatbot that utilizes Russian XGLM 4.5B (in a half-precision mode) by Dmitry Kosenko to generate responses based on the given prompt.", + "version": "0.0.1", + "date_created": "2023-01-10T02:00:00", + "ram_usage": "50 GB", + "gpu_usage": "30 GB", + "disk_usage": "50 GB" + } +} \ No newline at end of file diff --git a/assistant_dists/universal_ru_prompted_assistant/proxy.yml b/assistant_dists/universal_ru_prompted_assistant/proxy.yml new file mode 100644 index 0000000000..8897b80f1f --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/proxy.yml @@ -0,0 +1,21 @@ +services: + + dialogrpt-ru: + command: [ "nginx", "-g", "daemon off;" ] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8122 + - PORT=8122 + + transformers-lm-ruxglm: + command: ["nginx", "-g", "daemon off;"] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8171 + - PORT=8171 + +version: "3.7" diff --git a/assistant_dists/universal_ru_prompted_assistant/telegram.yml b/assistant_dists/universal_ru_prompted_assistant/telegram.yml new file mode 100644 index 0000000000..54c046abae --- /dev/null +++ b/assistant_dists/universal_ru_prompted_assistant/telegram.yml @@ -0,0 +1,17 @@ +services: + agent-tg: + command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.channel=telegram agent.telegram_token=$TG_TOKEN agent.pipeline_config=assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json agent.db_config=assistant_dists/universal_ru_prompted_assistant/db_conf.json' + env_file: [.env] + build: + context: ./ + dockerfile: dockerfile_agent + deploy: + resources: + limits: + memory: 4G + reservations: + memory: 2G + volumes: + - ".:/dp-agent" + +version: '3.7' diff --git a/common/universal_templates.py b/common/universal_templates.py index 14eb58ebba..392e3eea03 100644 --- a/common/universal_templates.py +++ b/common/universal_templates.py @@ -23,7 +23,7 @@ GENERATIVE_ROBOT_TEMPLATE = re.compile( - r"(?:AI:|Assistant:|Robot:|ROBOT:|Computer:|COMPUTER:|User:|USER:|Speaker:|SPEAKER:|Human:|HUMAN:|Чат-?бот:)\s?" + r"(?:AI:|Assistant:|Robot:|ROBOT:|Computer:|COMPUTER:|User:|USER:|Speaker:|SPEAKER:|Human:|HUMAN:|Человек:|Чат-?бот:)\s?" ) # https://www.englishclub.com/vocabulary/fl-asking-for-opinions.htm diff --git a/components.tsv b/components.tsv index dad235f191..7c87bda467 100644 --- a/components.tsv +++ b/components.tsv @@ -149,7 +149,7 @@ 8145 openai-api-chatgpt 8146 dff-deeppavlov-prompted-skill 8147 dff-universal-prompted-skill -8148 +8148 dff-universal-ru-prompted-skill 8149 transformers-lm-llama7bru 8150 combined-classification-lightweight 8151 dff-dream-persona-llama7bru-prompted-skill diff --git a/components/dfagno94ntl23rbj.yml b/components/dfagno94ntl23rbj.yml new file mode 100644 index 0000000000..87697ea737 --- /dev/null +++ b/components/dfagno94ntl23rbj.yml @@ -0,0 +1,27 @@ +name: dff_universal_ru_prompted_skill +display_name: Universal Russian Prompted Skill +component_type: Generative +model_type: NN-based +is_customizable: true +author: publisher@deeppavlov.ai +description: Universal prompt-based skill which accepts a prompt, a language modelling + service (among the considered) to generate a response. +ram_usage: 150M +gpu_usage: null +group: skills +connector: + protocol: http + timeout: 120.0 + url: http://dff-universal-ru-prompted-skill:8148/respond +dialog_formatter: + name: state_formatters.dp_formatters:dff_prompted_skill_formatter + skill_name: dff_universal_ru_prompted_skill +response_formatter: state_formatters.dp_formatters:skill_with_attributes_formatter_service +previous_services: +- skill_selectors +required_previous_services: null +state_manager_method: add_hypothesis +tags: null +endpoint: respond +service: skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill +date_created: '2023-03-16T09:45:32' diff --git a/components/iGAodokVchB6IJ7Jlggdkw.yml b/components/iGAodokVchB6IJ7Jlggdkw.yml index b57e1178a9..7b6869171f 100644 --- a/components/iGAodokVchB6IJ7Jlggdkw.yml +++ b/components/iGAodokVchB6IJ7Jlggdkw.yml @@ -5,7 +5,7 @@ model_type: NN-based is_customizable: true author: publisher@deeppavlov.ai description: Prompt-based skill that utilizes Russian LLaMA to generate - responses based on the given Dream persona description. + responses based on the given Dream persona description. ram_usage: 150M gpu_usage: null group: skills diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml new file mode 100644 index 0000000000..c20352b683 --- /dev/null +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml @@ -0,0 +1,4 @@ +SERVICE_PORT: 8148 +SERVICE_NAME: dff_universal_ru_prompted_skill +GENERATIVE_TIMEOUT: 120 +N_UTTERANCES_CONTEXT: 7 diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml new file mode 100644 index 0000000000..7b404b7817 --- /dev/null +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml @@ -0,0 +1,27 @@ +name: dff-universal-ru-prompted-skill +endpoints: +- respond +compose: + env_file: + - .env + build: + args: + SERVICE_PORT: 8148 + SERVICE_NAME: dff_universal_ru_prompted_skill + GENERATIVE_TIMEOUT: 120 + N_UTTERANCES_CONTEXT: 7 + context: . + dockerfile: ./skills/dff_universal_prompted_skill/Dockerfile + command: gunicorn --workers=1 server:app -b 0.0.0.0:8148 --reload + deploy: + resources: + limits: + memory: 128M + reservations: + memory: 128M + volumes: + - ./skills/dff_universal_prompted_skill:/src + - ./common:/src/common + ports: + - 8148:8148 +proxy: null From 3a7f164684a00112502a6658d6118804ccab30e7 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 17 Jul 2023 11:28:39 +0300 Subject: [PATCH 36/55] feat: universal distr for ru --- .../universal_ru_prompted_assistant/dev.yml | 6 --- .../docker-compose.override.yml | 22 +---------- .../pipeline_conf.json | 38 +------------------ components/dfagno94ntl23rbj.yml | 4 +- .../environment.yml | 2 +- .../service.yml | 2 +- 6 files changed, 7 insertions(+), 67 deletions(-) diff --git a/assistant_dists/universal_ru_prompted_assistant/dev.yml b/assistant_dists/universal_ru_prompted_assistant/dev.yml index b7cd74a4a8..d9037ffdc2 100644 --- a/assistant_dists/universal_ru_prompted_assistant/dev.yml +++ b/assistant_dists/universal_ru_prompted_assistant/dev.yml @@ -17,12 +17,6 @@ services: - "~/.deeppavlov/cache:/root/.cache" ports: - 8122:8122 - prompt-selector-ru: - volumes: - - "./annotators/prompt_selector:/src" - - "./common:/src/common" - ports: - - 8135:8135 transformers-lm-ruxglm: volumes: - "./services/transformers_lm:/src" diff --git a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml index bffa4f5230..55ef65ac31 100644 --- a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml +++ b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml @@ -56,26 +56,6 @@ services: 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-ruxglm: env_file: [ .env_ru,.env_secret ] build: @@ -198,7 +178,7 @@ services: build: args: SERVICE_PORT: 8148 - SERVICE_NAME: dff_universal_ru_prompted_skill + SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 DEFAULT_LM_SERVICE_URL: http://transformers-lm-oasst12b:8158/respond diff --git a/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json index b383e78b0c..2623f01668 100644 --- a/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json +++ b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json @@ -51,40 +51,6 @@ } }, "annotators": { - "prompt_goals_collector": { - "connector": { - "protocol": "http", - "timeout": 2.0, - "url": "http://prompt-selector-ru:8135/collect_goals" - }, - "dialog_formatter": "state_formatters.dp_formatters:prompts_goals_collector_formatter", - "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", - "previous_services": [], - "state_manager_method": "update_attributes", - "is_enabled": true, - "source": { - "component": "components/k3j2h498hvflekdfdfbfgh34r.yml", - "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" - } - }, - "prompt_selector": { - "connector": { - "protocol": "http", - "timeout": 2.0, - "url": "http://prompt-selector-ru:8135/respond" - }, - "dialog_formatter": "state_formatters.dp_formatters:context_formatter_dialog", - "response_formatter": "state_formatters.dp_formatters:simple_formatter_service", - "previous_services": [ - "annotators.prompt_goals_collector" - ], - "state_manager_method": "add_annotation", - "is_enabled": true, - "source": { - "component": "components/5jR1Tq88W5OckWnTV8VIYL.yml", - "service": "annotators/prompt_selector/service_configs/prompt-selector-ru" - } - } }, "candidate_annotators": { "dialogrpt": { @@ -147,7 +113,7 @@ } }, "skills": { - "dff_universal_ru_prompted_skill": { + "dff_universal_prompted_skill": { "connector": { "protocol": "http", "timeout": 120.0, @@ -155,7 +121,7 @@ }, "dialog_formatter": { "name": "state_formatters.dp_formatters:dff_prompted_skill_formatter", - "skill_name": "dff_universal_ru_prompted_skill" + "skill_name": "dff_universal_prompted_skill" }, "response_formatter": "state_formatters.dp_formatters:skill_with_attributes_formatter_service", "previous_services": [ diff --git a/components/dfagno94ntl23rbj.yml b/components/dfagno94ntl23rbj.yml index 87697ea737..b51e001c71 100644 --- a/components/dfagno94ntl23rbj.yml +++ b/components/dfagno94ntl23rbj.yml @@ -1,4 +1,4 @@ -name: dff_universal_ru_prompted_skill +name: dff_universal_prompted_skill display_name: Universal Russian Prompted Skill component_type: Generative model_type: NN-based @@ -15,7 +15,7 @@ connector: url: http://dff-universal-ru-prompted-skill:8148/respond dialog_formatter: name: state_formatters.dp_formatters:dff_prompted_skill_formatter - skill_name: dff_universal_ru_prompted_skill + skill_name: dff_universal_prompted_skill response_formatter: state_formatters.dp_formatters:skill_with_attributes_formatter_service previous_services: - skill_selectors diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml index c20352b683..3967fcad9f 100644 --- a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml @@ -1,4 +1,4 @@ SERVICE_PORT: 8148 -SERVICE_NAME: dff_universal_ru_prompted_skill +SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml index 7b404b7817..adb8d86011 100644 --- a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml @@ -7,7 +7,7 @@ compose: build: args: SERVICE_PORT: 8148 - SERVICE_NAME: dff_universal_ru_prompted_skill + SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 context: . From f92a03418879a327476a212df8525ba72705218b Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 17 Jul 2023 13:54:25 +0300 Subject: [PATCH 37/55] fix: remove extra --- .../universal_ru_prompted_assistant/docker-compose.override.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml index 55ef65ac31..9e3b49a42b 100644 --- a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml +++ b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml @@ -3,7 +3,7 @@ services: command: sh -c 'bin/wait && python -m deeppavlov_agent.run agent.pipeline_config=assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json' environment: WAIT_HOSTS: "ranking-based-response-selector-ru:8002, - dialogrpt-ru:8122, prompt-selector-ru:8135, transformers-lm-ruxglm:8171, + dialogrpt-ru:8122, transformers-lm-ruxglm:8171, openai-api-chatgpt:8145, openai-api-davinci3:8131, openai-api-gpt4:8159, openai-api-gpt4-32k:8160, openai-api-chatgpt-16k:8167, dff-universal-ru-prompted-skill:8148" From eac0d15a3accccc73ff459f3b5478a77b86c106a Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 17 Jul 2023 15:49:28 +0300 Subject: [PATCH 38/55] fix: working configs --- services/transformers_lm/server.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 84e59b84c2..54781c806c 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -3,6 +3,7 @@ import os import re import time +from copy import deepcopy import sentry_sdk import torch @@ -100,6 +101,8 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con dialog_context = re.sub(" +", " ", dialog_context) replacement = generation_params.pop("replacement", []) + logger.info(f"replacement: {replacement}") + logger.info(f"generation_params: {generation_params}") dialog_context = add_replacement_tokens(dialog_context, replacement) logger.info(f"context inside generate_responses seen as: {dialog_context}") bot_input_ids = tokenizer([dialog_context], return_tensors="pt").input_ids @@ -126,9 +129,13 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con chat_history_ids = chat_history_ids.cpu() for result in chat_history_ids: skip_special_tokens = False if replacement else True + logger.info(f"skip_special_tokens: {skip_special_tokens}") output = tokenizer.decode(result, skip_special_tokens=skip_special_tokens) + logger.info(f"output: {output}") result_cut = output.replace(dialog_context + " ", "") + logger.info(f"output 1: {result_cut}") result_cut = cut_predictions_by_additional_eos(result_cut) + logger.info(f"output 2: {result_cut}") result_cut = remove_replacement_tokens(result_cut, replacement) result_cut = [x.strip() for x in GENERATIVE_ROBOT_TEMPLATE.split(result_cut) if x.strip()][0] logger.info(f"hypothesis: {result_cut}") @@ -156,7 +163,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con model, tokenizer, "You are a SpaceX Assistant.", - DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH], + deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]), ) logger.info(f"example response: {example_response}") logger.info("transformers_lm is ready") @@ -178,7 +185,7 @@ def respond(): prompts = request.json.get("prompts", []) configs = request.json.get("configs", None) configs = [None] * len(prompts) if configs is None else configs - configs = [DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] if el is None else el for el in configs] + configs = [deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]) if el is None else el for el in configs] if len(contexts) > 0 and len(prompts) == 0: prompts = [""] * len(contexts) @@ -213,7 +220,7 @@ def generate_goals(): prompts = [] if prompts is None else prompts configs = request.json.get("configs", None) configs = [None] * len(prompts) if configs is None else configs - configs = [DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] if el is None else el for el in configs] + configs = [deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]) if el is None else el for el in configs] try: responses = [] From cf64a74d1a70e9e2cd1a9303c1c3af7a85fa7a9a Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 17 Jul 2023 15:49:56 +0300 Subject: [PATCH 39/55] fix: configs --- services/transformers_lm/server.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 84e59b84c2..5d68f93c46 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -3,6 +3,7 @@ import os import re import time +from copy import deepcopy import sentry_sdk import torch @@ -156,7 +157,7 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con model, tokenizer, "You are a SpaceX Assistant.", - DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH], + deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]), ) logger.info(f"example response: {example_response}") logger.info("transformers_lm is ready") @@ -178,7 +179,7 @@ def respond(): prompts = request.json.get("prompts", []) configs = request.json.get("configs", None) configs = [None] * len(prompts) if configs is None else configs - configs = [DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] if el is None else el for el in configs] + configs = [deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]) if el is None else el for el in configs] if len(contexts) > 0 and len(prompts) == 0: prompts = [""] * len(contexts) @@ -213,7 +214,7 @@ def generate_goals(): prompts = [] if prompts is None else prompts configs = request.json.get("configs", None) configs = [None] * len(prompts) if configs is None else configs - configs = [DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH] if el is None else el for el in configs] + configs = [deepcopy(DEFAULT_CONFIGS[PRETRAINED_MODEL_NAME_OR_PATH]) if el is None else el for el in configs] try: responses = [] From bde243dc6de841fbe11c3968a508cdc922d773d2 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Tue, 18 Jul 2023 10:44:56 +0300 Subject: [PATCH 40/55] feat: ruxglm prompted dists --- MODELS.md | 2 +- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 2 +- .../dream_persona_ruxglm_prompted/pipeline_conf.json | 2 +- components/dfjkgnhadoik4utfnaksdf.yml | 2 +- .../dff-dream-persona-ruxglm-prompted-skill/environment.yml | 2 +- .../dff-dream-persona-ruxglm-prompted-skill/service.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MODELS.md b/MODELS.md index fd71d5b810..647a94ebde 100644 --- a/MODELS.md +++ b/MODELS.md @@ -16,4 +16,4 @@ Here you may find a list of models that currently available for use in Dream. | ChatGPT 16k | openai-api-chatgpt-16k | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 16,384 tokens | Same capabilities as the standard gpt-3.5-turbo model but with 4 times the context. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | | Anthropic Claude-v1 | anthropic-api-claude-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | The largest model, ideal for a wide range of more complex tasks. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | | Anthropic Claude Instant v1 | anthropic-api-claude-instant-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | A smaller model with far lower latency, sampling at roughly 40 words/sec! Its output quality is somewhat lower than the latest claude-1 model, particularly for complex tasks. However, it is much less expensive and blazing fast. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | -| Russian XGLM 4.5B | transformers-lm-ruxglm | unavailable (private weights) | no | 4.5B | 25GB | 2,048 tokens | A private large language model which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. | +| Russian XGLM 4.5B | transformers-lm-ruxglm | unavailable (private weights) | no | 4.5B | 15GB | 2,048 tokens | A private large language model which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. | diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 8c8231f511..463e7a505e 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -105,7 +105,7 @@ services: PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json - GENERATIVE_TIMEOUT: 120 + GENERATIVE_TIMEOUT: 20 N_UTTERANCES_CONTEXT: 3 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile diff --git a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json index de274bb928..215b7f4c87 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_ruxglm_prompted/pipeline_conf.json @@ -150,7 +150,7 @@ "dff_dream_persona_ru_prompted_skill": { "connector": { "protocol": "http", - "timeout": 120.0, + "timeout": 20.0, "url": "http://dff-dream-persona-ruxglm-prompted-skill:8172/respond" }, "dialog_formatter": { diff --git a/components/dfjkgnhadoik4utfnaksdf.yml b/components/dfjkgnhadoik4utfnaksdf.yml index 3e7abb9e6e..ac4706d6bc 100644 --- a/components/dfjkgnhadoik4utfnaksdf.yml +++ b/components/dfjkgnhadoik4utfnaksdf.yml @@ -8,7 +8,7 @@ description: A private large language model which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. ram_usage: 60G -gpu_usage: 26G +gpu_usage: 15G group: services connector: protocol: http diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml index bf925bbd76..6f6352443b 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/environment.yml @@ -3,5 +3,5 @@ SERVICE_NAME: dff_dream_persona_ru_prompted_skill PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json -GENERATIVE_TIMEOUT: 120 +GENERATIVE_TIMEOUT: 20 N_UTTERANCES_CONTEXT: 3 diff --git a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml index b64f505783..1740507bb9 100644 --- a/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml +++ b/skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill/service.yml @@ -11,7 +11,7 @@ compose: PROMPT_FILE: common/prompts/dream_persona_ru.json GENERATIVE_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond GENERATIVE_SERVICE_CONFIG: ruxglm_config.json - GENERATIVE_TIMEOUT: 120 + GENERATIVE_TIMEOUT: 20 N_UTTERANCES_CONTEXT: 3 context: . dockerfile: ./skills/dff_template_prompted_skill/Dockerfile From ac92a05244fe8998b2d5220df914abcd6767f56e Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Tue, 18 Jul 2023 14:10:46 +0300 Subject: [PATCH 41/55] fix: component cards --- .../dream_persona_rullama_prompted/pipeline_conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json b/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json index 766c72dac4..6b9bf46c7c 100644 --- a/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json +++ b/assistant_dists/dream_persona_rullama_prompted/pipeline_conf.json @@ -21,7 +21,7 @@ ], "is_enabled": true, "source": { - "component": "components/H1bbLiJ4B8Fg77NPDgGjA.yml", + "component": "components/nbRgFzod7Qx6M7GL6oiPg.yml", "service": "services/last_chance_service/service_configs/agent" } }, From 9f9254c0c94edb9f7a70ac98522930dc9d2dfbcd Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Tue, 18 Jul 2023 14:14:11 +0300 Subject: [PATCH 42/55] fix: container name --- components/kjdanfigkjyowertfnlkdfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/kjdanfigkjyowertfnlkdfg.yml b/components/kjdanfigkjyowertfnlkdfg.yml index 88965be422..c9b58dca2c 100644 --- a/components/kjdanfigkjyowertfnlkdfg.yml +++ b/components/kjdanfigkjyowertfnlkdfg.yml @@ -12,7 +12,7 @@ group: skills connector: protocol: http timeout: 120.0 - url: http://dff-dream-persona-xglm-prompted-skill:8172/respond + url: http://dff-dream-persona-ruxglm-prompted-skill:8172/respond dialog_formatter: name: state_formatters.dp_formatters:dff_prompted_skill_formatter skill_name: dff_dream_persona_ru_prompted_skill @@ -23,5 +23,5 @@ required_previous_services: null state_manager_method: add_hypothesis tags: null endpoint: respond -service: skills/dff_template_prompted_skill/service_configs/dff-dream-persona-xglm-prompted-skill +service: skills/dff_template_prompted_skill/service_configs/dff-dream-persona-ruxglm-prompted-skill date_created: '2023-03-16T09:45:32' From 0e9def2d72e242b65797315cce5304cfc3a26235 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 11:24:58 +0300 Subject: [PATCH 43/55] fix: remove extra space after new line --- services/transformers_lm/server.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 54781c806c..857d95540d 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -98,7 +98,9 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con dialog_context += "\n".join(context) else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" - dialog_context = re.sub(" +", " ", dialog_context) + + dialog_context = re.sub(r" +", " ", dialog_context) + dialog_context = dialog_context.replace("\n ", "\n") replacement = generation_params.pop("replacement", []) logger.info(f"replacement: {replacement}") @@ -129,13 +131,9 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con chat_history_ids = chat_history_ids.cpu() for result in chat_history_ids: skip_special_tokens = False if replacement else True - logger.info(f"skip_special_tokens: {skip_special_tokens}") output = tokenizer.decode(result, skip_special_tokens=skip_special_tokens) - logger.info(f"output: {output}") result_cut = output.replace(dialog_context + " ", "") - logger.info(f"output 1: {result_cut}") result_cut = cut_predictions_by_additional_eos(result_cut) - logger.info(f"output 2: {result_cut}") result_cut = remove_replacement_tokens(result_cut, replacement) result_cut = [x.strip() for x in GENERATIVE_ROBOT_TEMPLATE.split(result_cut) if x.strip()][0] logger.info(f"hypothesis: {result_cut}") From 890c333a01161f44310d49703fd93c5800537a3b Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:01:18 +0300 Subject: [PATCH 44/55] fix: remove extra space after new line --- services/transformers_lm/server.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/transformers_lm/server.py b/services/transformers_lm/server.py index 857d95540d..88ac59080e 100644 --- a/services/transformers_lm/server.py +++ b/services/transformers_lm/server.py @@ -99,9 +99,6 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con else: dialog_context += "\n".join(context) + f"\n{NAMING[LANGUAGE][0]}:" - dialog_context = re.sub(r" +", " ", dialog_context) - dialog_context = dialog_context.replace("\n ", "\n") - replacement = generation_params.pop("replacement", []) logger.info(f"replacement: {replacement}") logger.info(f"generation_params: {generation_params}") @@ -132,6 +129,9 @@ def generate_responses(context, model, tokenizer, prompt, generation_params, con for result in chat_history_ids: skip_special_tokens = False if replacement else True output = tokenizer.decode(result, skip_special_tokens=skip_special_tokens) + # preprocess dialog context to correctly remove it from output + dialog_context = re.sub(r" +", " ", dialog_context) + dialog_context = dialog_context.replace("\n ", "\n") result_cut = output.replace(dialog_context + " ", "") result_cut = cut_predictions_by_additional_eos(result_cut) result_cut = remove_replacement_tokens(result_cut, replacement) From 393c5833f3bb88b6347a01ad5d1c3051c5461758 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:14:57 +0300 Subject: [PATCH 45/55] feat: tests for dream ruxglm --- Jenkinsfile | 93 ++++++++++++++ .../dream_persona_ruxglm_prompted/test.yml | 34 +++++ tests/runtests_dream_ruxglm.sh | 120 ++++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 assistant_dists/dream_persona_ruxglm_prompted/test.yml create mode 100644 tests/runtests_dream_ruxglm.sh diff --git a/Jenkinsfile b/Jenkinsfile index b69bfd723e..abf0ca884c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,6 +33,98 @@ pipeline { } } } +// ------------------------------------------- Test prompted dists------------------------------------------------ + stage('Build-DRUXGLM') { + steps { + script{ + startTime = currentBuild.duration + Exception ex = null + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + try { + sh ''' + cat /home/ignatov/secrets.txt >> .env_secret + tests/runtests_dream_ruxglm.sh MODE=build + ''' + } + catch (Exception e) { + int duration = (currentBuild.duration - startTime) / 1000 + throw e + } + } + } + } + post { + aborted { + script { + sh 'tests/runtests_dream_ruxglm.sh MODE=clean' + } + } + success { + script { + int duration = (currentBuild.duration - startTime) / 1000 + } + } + } + } + stage('Start-DRUXGLM') { + steps { + script { + startTime = currentBuild.duration + Exception ex = null + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + try { + sh 'tests/runtests_dream_ruxglm.sh MODE=clean && tests/runtests_dream_ruxglm.sh MODE=start' + } + catch (Exception e) { + int duration = (currentBuild.duration - startTime) / 1000 + throw e + } + } + } + } + post { + success { + script { + started = true + int duration = (currentBuild.duration - startTime) / 1000 + } + } + aborted { + script { + sh 'tests/runtests_dream_ruxglm.sh MODE=clean' + } + } + } + } + stage('Test skills-DRUXGLM') { + steps { + script { + startTime = currentBuild.duration + Exception ex = null + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + try { + sh label: 'test skills', script: 'tests/runtests_dream_ruxglm.sh MODE=test_skills' + } + catch (Exception e) { + int duration = (currentBuild.duration - startTime) / 1000 + throw e + } + } + } + } + post { + success { + script { + int duration = (currentBuild.duration - startTime) / 1000 + } + } + aborted { + script { + sh 'tests/runtests_dream_ruxglm.sh MODE=clean' + } + } + } + } // ------------------------------------------- Test prompted dists------------------------------------------------ stage('Build-Reason') { steps { @@ -43,6 +135,7 @@ pipeline { try { sh ''' cat /home/ignatov/secrets.txt >> .env_secret + tests/runtests_dream_ruxglm.sh MODE=clean tests/runtests_reasoning.sh MODE=build ''' } diff --git a/assistant_dists/dream_persona_ruxglm_prompted/test.yml b/assistant_dists/dream_persona_ruxglm_prompted/test.yml new file mode 100644 index 0000000000..c4ded0c1a4 --- /dev/null +++ b/assistant_dists/dream_persona_ruxglm_prompted/test.yml @@ -0,0 +1,34 @@ +services: + agent: + volumes: + - "/cephfs/home/ignatov/artifacts:/output" + ports: + - ${AGENT_PORT}:4242 + mongo: + command: mongod + image: mongo:4.0.0 + ranking-based-response-selector-ru: + volumes: + - "./response_selectors/ranking_based_response_selector:/src" + - "./common:/src/common" + dialogrpt-ru: + volumes: + - "./services/dialogrpt_ru:/src" + - "~/.deeppavlov/cache:/root/.cache" + environment: + - CUDA_VISIBLE_DEVICES=7 + prompt-selector-ru: + volumes: + - "./annotators/prompt_selector:/src" + - "./common:/src/common" + transformers-lm-ruxglm: + volumes: + - "./services/transformers_lm:/src" + - "./common:/src/common" + - "~/.deeppavlov/cache:/root/.cache" + dff-dream-persona-ruxglm-prompted-skill: + volumes: + - "./skills/dff_template_prompted_skill:/src" + - "./common:/src/common" + +version: "3.7" diff --git a/tests/runtests_dream_ruxglm.sh b/tests/runtests_dream_ruxglm.sh new file mode 100644 index 0000000000..d4a478576b --- /dev/null +++ b/tests/runtests_dream_ruxglm.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash + +for ARGUMENT in "$@"; do + + KEY=$(echo $ARGUMENT | cut -f1 -d=) + VALUE=$(echo $ARGUMENT | cut -f2 -d=) + + case "$KEY" in + DEVICE) DEVICE=${VALUE} ;; + MODE) MODE=${VALUE} ;; + *) ;; + esac +done + +function wait_service() { + local timeout=${WAIT_TIMEOUT:-480} + local interval=${WAIT_INTERVAL:-10} + local url=$1 + local reply_keyword=$2 + while [[ $timeout -gt 0 ]]; do + local res=$(curl -s -XGET "$url" | grep "$reply_keyword") + if [ ! -z "$res" ]; then + echo FOUND service $url + echo REPLY: $res + return 0 + fi + sleep $interval + ((timeout-=interval)) + echo wait_service $url timeout in $timeout sec.. + done + echo ERROR: $url is not responding + return 1 +} + +function cleanup() { + local exit_status=${1:-$?} + echo SHUTDOWN TESTING ENVIRONMENT.. + + dockercompose_cmd stop + dockercompose_cmd run -T agent bash -c "chown -R $(id -u):$(id -g) /dp-agent" + dockercompose_cmd run -T agent bash -c "find /dp-agent -name __pycache__ | xargs rm -rf" + dockercompose_cmd run -T mongo bash -c "rm -rf /root/data/db/*" + + dockercompose_cmd down + dockercompose_cmd rm mongo + echo EXIT $0 with STATUS: $exit_status +} + +function logger() { + printf '\e[96m%80s\e[39m\n' | tr ' ' = + echo -e "\e[44m \e[49m $@ \e[44m \e[49m" + printf '\e[96m%80s\e[39m\n' | tr ' ' = +} + +function dockercompose_cmd() { + # if [[ "$DEVICE" == "cpu" ]]; then + # DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.yml -f dev.yml -f cpu.yml -f proxy.yml -f s3.yml -p test" + # else + DOCKER_COMPOSE_CMD="docker-compose --no-ansi -p test -f docker-compose.yml -f assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml -f assistant_dists/dream_persona_ruxglm_prompted/test.yml -f assistant_dists/dream_persona_ruxglm_prompted/proxy.yml" + # fi + eval '$DOCKER_COMPOSE_CMD "$@"' + if [[ $? != 0 ]]; then + logger "FAILED dockercompose_cmd: $@" + fi +} + +function container_is_started() { [ "$(docker ps | grep $1)" ] && return 0 || return 1; } + +if [[ "$DEVICE" == "" ]]; then + DEVICE="gpu" +fi + +if [[ "$MODE" == "" ]]; then + MODE="all" +fi + +if [[ "$MODE" == "clean" ]]; then + cleanup + exit 0 +fi + +set -e + +#DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DIR=$(dirname $(realpath -s $0)) +#trap cleanup EXIT + +echo running tests on $DEVICE in mode: $MODE + +echo Loading testing env.. +AGENT_PORT=${AGENT_PORT:-4242} + +if [[ "$MODE" == "build" ]]; then + dockercompose_cmd build + exit 0 +fi +#dockercompose_cmd logs -f --tail="all" --timestamps & + +if [[ "$MODE" == "start" ]]; then + dockercompose_cmd up -d + dockercompose_cmd logs --no-color -f --tail="all" --timestamps & + wait_service "http://0.0.0.0:$AGENT_PORT/ping" pong + exit 0 +fi + +if [[ "$MODE" == "test_skills" || "$MODE" == "all" ]]; then + # docker-compose -p test -f docker-compose.yml -f dev.yml ps --services | grep -wv -e agent -e mongo + + dockercompose_cmd logs --no-color -f --tail="all" --timestamps & + echo "Passing test data to each skill selected for testing" + + + for container in ranking-based-response-selector-ru dialogrpt-ru prompt-selector-ru + transformers-lm-ruxglm dff-dream-persona-ruxglm-prompted-skill; do + + echo "Run tests for $container" + dockercompose_cmd exec -T -u $(id -u) $container ./test.sh + done + +fi From 3c3685f4aaf24bc1645a32d75d7d71bcf8419ee3 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:19:14 +0300 Subject: [PATCH 46/55] fix: proxy and ru lang --- MODELS.md | 2 +- .../dream_persona_rullama_prompted/proxy.yml | 12 ++++++++++++ assistant_dists/dream_russian_robot/proxy.yml | 12 ++++++++++++ components/dfjkgnhadoik4utfnaksdf.yml | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 assistant_dists/dream_persona_rullama_prompted/proxy.yml create mode 100644 assistant_dists/dream_russian_robot/proxy.yml diff --git a/MODELS.md b/MODELS.md index 647a94ebde..8b1c1cc4de 100644 --- a/MODELS.md +++ b/MODELS.md @@ -16,4 +16,4 @@ Here you may find a list of models that currently available for use in Dream. | ChatGPT 16k | openai-api-chatgpt-16k | [link](https://platform.openai.com/docs/models/gpt-3-5) | no (paid access via API) | supposedly, 175B | - (cannot be run locally) | 16,384 tokens | Same capabilities as the standard gpt-3.5-turbo model but with 4 times the context. NB: paid. You must provide your OpenAI API key to use the model. Your OpenAI account will be charged according to your usage. | | Anthropic Claude-v1 | anthropic-api-claude-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | The largest model, ideal for a wide range of more complex tasks. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | | Anthropic Claude Instant v1 | anthropic-api-claude-instant-v1 | [link](https://docs.anthropic.com/claude/reference/complete_post) | no (paid access via API) | | - (cannot be run locally) | 9,000 tokens | A smaller model with far lower latency, sampling at roughly 40 words/sec! Its output quality is somewhat lower than the latest claude-1 model, particularly for complex tasks. However, it is much less expensive and blazing fast. NB: paid. You must provide your Anthropic API key to use the model. Your Anthropic API account will be charged according to your usage. | -| Russian XGLM 4.5B | transformers-lm-ruxglm | unavailable (private weights) | no | 4.5B | 15GB | 2,048 tokens | A private large language model which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. | +| Russian XGLM 4.5B | transformers-lm-ruxglm | unavailable (private weights) | no | 4.5B | 15GB | 2,048 tokens | A private large language model for the Russian language which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. | diff --git a/assistant_dists/dream_persona_rullama_prompted/proxy.yml b/assistant_dists/dream_persona_rullama_prompted/proxy.yml new file mode 100644 index 0000000000..a0c4893194 --- /dev/null +++ b/assistant_dists/dream_persona_rullama_prompted/proxy.yml @@ -0,0 +1,12 @@ +services: + + dialogrpt-ru: + command: [ "nginx", "-g", "daemon off;" ] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8122 + - PORT=8122 + +version: "3.7" diff --git a/assistant_dists/dream_russian_robot/proxy.yml b/assistant_dists/dream_russian_robot/proxy.yml new file mode 100644 index 0000000000..a0c4893194 --- /dev/null +++ b/assistant_dists/dream_russian_robot/proxy.yml @@ -0,0 +1,12 @@ +services: + + dialogrpt-ru: + command: [ "nginx", "-g", "daemon off;" ] + build: + context: dp/proxy/ + dockerfile: Dockerfile + environment: + - PROXY_PASS=proxy.deeppavlov.ai:8122 + - PORT=8122 + +version: "3.7" diff --git a/components/dfjkgnhadoik4utfnaksdf.yml b/components/dfjkgnhadoik4utfnaksdf.yml index ac4706d6bc..4512865ae1 100644 --- a/components/dfjkgnhadoik4utfnaksdf.yml +++ b/components/dfjkgnhadoik4utfnaksdf.yml @@ -4,7 +4,7 @@ component_type: Generative model_type: NN-based is_customizable: false author: publisher@deeppavlov.ai -description: A private large language model which was fine-tuned +description: A private large language model for the Russian language which was fine-tuned for instruction following by Dmitry Kosenko in Summer 2023. This model is up and running on our servers and can be used for free. ram_usage: 60G From 70eb3fd88f83fb68fd8ae28d70f3120daafa0e04 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:25:40 +0300 Subject: [PATCH 47/55] fix: change port of universal ru --- assistant_dists/universal_ru_prompted_assistant/dev.yml | 2 +- .../docker-compose.override.yml | 4 ++-- .../universal_ru_prompted_assistant/pipeline_conf.json | 2 +- components/dfagno94ntl23rbj.yml | 2 +- .../dff-universal-ru-prompted-skill/environment.yml | 2 +- .../dff-universal-ru-prompted-skill/service.yml | 6 +++--- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/assistant_dists/universal_ru_prompted_assistant/dev.yml b/assistant_dists/universal_ru_prompted_assistant/dev.yml index d9037ffdc2..aa8136158a 100644 --- a/assistant_dists/universal_ru_prompted_assistant/dev.yml +++ b/assistant_dists/universal_ru_prompted_assistant/dev.yml @@ -59,6 +59,6 @@ services: - "./skills/dff_universal_prompted_skill:/src" - "./common:/src/common" ports: - - 8148:8148 + - 8161:8161 version: "3.7" diff --git a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml index 9e3b49a42b..cdd907f98f 100644 --- a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml +++ b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml @@ -6,7 +6,7 @@ services: dialogrpt-ru:8122, transformers-lm-ruxglm:8171, openai-api-chatgpt:8145, openai-api-davinci3:8131, openai-api-gpt4:8159, openai-api-gpt4-32k:8160, openai-api-chatgpt-16k:8167, - dff-universal-ru-prompted-skill:8148" + dff-universal-ru-prompted-skill:8161" WAIT_HOSTS_TIMEOUT: ${WAIT_TIMEOUT:-1800} HIGH_PRIORITY_INTENTS: 0 RESTRICTION_FOR_SENSITIVE_CASE: 0 @@ -177,7 +177,7 @@ services: env_file: [ .env ] build: args: - SERVICE_PORT: 8148 + SERVICE_PORT: 8161 SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 diff --git a/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json index 2623f01668..1ca965dfe0 100644 --- a/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json +++ b/assistant_dists/universal_ru_prompted_assistant/pipeline_conf.json @@ -117,7 +117,7 @@ "connector": { "protocol": "http", "timeout": 120.0, - "url": "http://dff-universal-ru-prompted-skill:8148/respond" + "url": "http://dff-universal-ru-prompted-skill:8161/respond" }, "dialog_formatter": { "name": "state_formatters.dp_formatters:dff_prompted_skill_formatter", diff --git a/components/dfagno94ntl23rbj.yml b/components/dfagno94ntl23rbj.yml index b51e001c71..191a039d4e 100644 --- a/components/dfagno94ntl23rbj.yml +++ b/components/dfagno94ntl23rbj.yml @@ -12,7 +12,7 @@ group: skills connector: protocol: http timeout: 120.0 - url: http://dff-universal-ru-prompted-skill:8148/respond + url: http://dff-universal-ru-prompted-skill:8161/respond dialog_formatter: name: state_formatters.dp_formatters:dff_prompted_skill_formatter skill_name: dff_universal_prompted_skill diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml index 3967fcad9f..cf4ae29b0e 100644 --- a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/environment.yml @@ -1,4 +1,4 @@ -SERVICE_PORT: 8148 +SERVICE_PORT: 8161 SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 diff --git a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml index adb8d86011..e0db082527 100644 --- a/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml +++ b/skills/dff_universal_prompted_skill/service_configs/dff-universal-ru-prompted-skill/service.yml @@ -6,13 +6,13 @@ compose: - .env build: args: - SERVICE_PORT: 8148 + SERVICE_PORT: 8161 SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 context: . dockerfile: ./skills/dff_universal_prompted_skill/Dockerfile - command: gunicorn --workers=1 server:app -b 0.0.0.0:8148 --reload + command: gunicorn --workers=1 server:app -b 0.0.0.0:8161 --reload deploy: resources: limits: @@ -23,5 +23,5 @@ compose: - ./skills/dff_universal_prompted_skill:/src - ./common:/src/common ports: - - 8148:8148 + - 8161:8161 proxy: null From b5fa27ca178f13644d9c7b19a8939aaf04c8de3f Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:27:01 +0300 Subject: [PATCH 48/55] fix: rights on file --- tests/runtests_dream_ruxglm.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tests/runtests_dream_ruxglm.sh diff --git a/tests/runtests_dream_ruxglm.sh b/tests/runtests_dream_ruxglm.sh old mode 100644 new mode 100755 From af5b8c66fc8127b508bfba3d6335a60f34afc095 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 12:42:20 +0300 Subject: [PATCH 49/55] fix: tests skills --- tests/runtests_dream_ruxglm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/runtests_dream_ruxglm.sh b/tests/runtests_dream_ruxglm.sh index d4a478576b..9d84a57635 100755 --- a/tests/runtests_dream_ruxglm.sh +++ b/tests/runtests_dream_ruxglm.sh @@ -110,8 +110,8 @@ if [[ "$MODE" == "test_skills" || "$MODE" == "all" ]]; then echo "Passing test data to each skill selected for testing" - for container in ranking-based-response-selector-ru dialogrpt-ru prompt-selector-ru - transformers-lm-ruxglm dff-dream-persona-ruxglm-prompted-skill; do + for container in ranking-based-response-selector-ru dialogrpt-ru prompt-selector-ru \ + transformers-lm-ruxglm dff-dream-persona-ruxglm-prompted-skill; do echo "Run tests for $container" dockercompose_cmd exec -T -u $(id -u) $container ./test.sh From 6d349943c048cb01187169997429b3c06693be40 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 13:12:40 +0300 Subject: [PATCH 50/55] fix: test for resp selector --- response_selectors/ranking_based_response_selector/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/response_selectors/ranking_based_response_selector/test.py b/response_selectors/ranking_based_response_selector/test.py index 7ed8204c19..88d88655bf 100644 --- a/response_selectors/ranking_based_response_selector/test.py +++ b/response_selectors/ranking_based_response_selector/test.py @@ -12,7 +12,7 @@ def main(): # To skip "Oh, and remember this dialog's id" that raises error due to absence of 'dialog_id' field in test_data. data["dialogs"][0]["human_utterances"].append(data["dialogs"][0]["human_utterances"][0]) result = requests.post(f"http://0.0.0.0:{SERVICE_PORT}/respond", json=data).json() - assert result[0][0] == "program_y", print(result) + assert result[0][0] in ["program_y", "movie_tfidf_retrieval"], print(result) if __name__ == "__main__": From 0c68f861a2840c1a458cc893598cb9398b4542aa Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 20 Jul 2023 14:18:54 +0300 Subject: [PATCH 51/55] fix: tests for proxied components --- tests/runtests_dream_ruxglm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/runtests_dream_ruxglm.sh b/tests/runtests_dream_ruxglm.sh index 9d84a57635..2569d9c399 100755 --- a/tests/runtests_dream_ruxglm.sh +++ b/tests/runtests_dream_ruxglm.sh @@ -110,8 +110,8 @@ if [[ "$MODE" == "test_skills" || "$MODE" == "all" ]]; then echo "Passing test data to each skill selected for testing" - for container in ranking-based-response-selector-ru dialogrpt-ru prompt-selector-ru \ - transformers-lm-ruxglm dff-dream-persona-ruxglm-prompted-skill; do + for container in ranking-based-response-selector-ru prompt-selector-ru \ + dff-dream-persona-ruxglm-prompted-skill; do echo "Run tests for $container" dockercompose_cmd exec -T -u $(id -u) $container ./test.sh From 5ae0ee2706c58b96b6b832f5ce2a0af0755e3f31 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Fri, 21 Jul 2023 10:08:41 +0300 Subject: [PATCH 52/55] fix: remove do sample true --- common/generative_configs/ruxglm_config.json | 1 - 1 file changed, 1 deletion(-) diff --git a/common/generative_configs/ruxglm_config.json b/common/generative_configs/ruxglm_config.json index e45f7c3bdd..0ba6f86d1b 100644 --- a/common/generative_configs/ruxglm_config.json +++ b/common/generative_configs/ruxglm_config.json @@ -1,7 +1,6 @@ { "max_new_tokens": 2048, "min_new_tokens": 8, - "do_sample": true, "num_return_sequences": 2, "repetition_penalty": 1.1, "eos_token_id": [400], From af46ce7045ef976218e4735686a572d28ff270a8 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Mon, 24 Jul 2023 20:19:38 +0300 Subject: [PATCH 53/55] fix: generative params --- common/generative_configs/ruxglm_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/generative_configs/ruxglm_config.json b/common/generative_configs/ruxglm_config.json index 0ba6f86d1b..961ffc8314 100644 --- a/common/generative_configs/ruxglm_config.json +++ b/common/generative_configs/ruxglm_config.json @@ -1,7 +1,7 @@ { "max_new_tokens": 2048, "min_new_tokens": 8, - "num_return_sequences": 2, + "num_return_sequences": 1, "repetition_penalty": 1.1, "eos_token_id": [400], "replacement": [ From bb59db51ccf18b25d3dfb34ed5750f8cf941aa41 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 27 Jul 2023 12:38:05 +0300 Subject: [PATCH 54/55] feat: used sentence ranker url --- .../dream_persona_ruxglm_prompted/docker-compose.override.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml index 463e7a505e..73664b16ba 100644 --- a/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml +++ b/assistant_dists/dream_persona_ruxglm_prompted/docker-compose.override.yml @@ -60,6 +60,7 @@ services: args: SERVICE_PORT: 8135 SERVICE_NAME: prompt_selector + SENTENCE_RANKER_SERVICE_URL: http://dialogrpt-ru:8122/rank_sentences N_SENTENCES_TO_RETURN: 3 PROMPTS_TO_CONSIDER: dream_persona_ru context: . From 43d8252cf47cb5a73ad363a746a8170cf166a4c1 Mon Sep 17 00:00:00 2001 From: dilyararimovna Date: Thu, 27 Jul 2023 13:28:39 +0300 Subject: [PATCH 55/55] feat: utilized default llm --- .../docker-compose.override.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml index cdd907f98f..2a8b84a6f3 100644 --- a/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml +++ b/assistant_dists/universal_ru_prompted_assistant/docker-compose.override.yml @@ -181,8 +181,8 @@ services: SERVICE_NAME: dff_universal_prompted_skill GENERATIVE_TIMEOUT: 120 N_UTTERANCES_CONTEXT: 7 - DEFAULT_LM_SERVICE_URL: http://transformers-lm-oasst12b:8158/respond - DEFAULT_LM_SERVICE_CONFIG: default_generative_config.json + DEFAULT_LM_SERVICE_URL: http://transformers-lm-ruxglm:8171/respond + DEFAULT_LM_SERVICE_CONFIG: ruxglm_config.json context: . dockerfile: ./skills/dff_universal_prompted_skill/Dockerfile deploy: