From f3c2fa6ef788e55f99f3b5187dba5404035f9772 Mon Sep 17 00:00:00 2001 From: xming521 <1223398803@qq.com> Date: Sat, 14 Jun 2025 21:38:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0pyproject.toml=E4=B8=AD?= =?UTF-8?q?=E7=9A=84vllm=E4=BE=9D=E8=B5=96=E7=89=88=E6=9C=AC=E8=87=B30.9.1?= =?UTF-8?q?=EF=BC=9B=E7=A6=BB=E7=BA=BF=E6=8E=A8=E7=90=86=E6=94=B9=E4=B8=BA?= =?UTF-8?q?chat=E6=96=B9=E5=BC=8F=E8=B0=83=E7=94=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- weclone/core/inference/offline_infer.py | 11 ++++++++--- weclone/prompts/clean_data.py | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index fd1ad6b..b57fb58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ config_changelog = """ [dependency-groups] main = [ "llamafactory @ git+https://github.com/hiyouga/LLaMA-Factory.git", - "vllm==0.8.5.post1; platform_system == 'Linux'", + "vllm==0.9.1; platform_system == 'Linux'", "torch>=2.6.0", "transformers==4.52.1", "accelerate==1.7.0", diff --git a/weclone/core/inference/offline_infer.py b/weclone/core/inference/offline_infer.py index db502ce..f835784 100644 --- a/weclone/core/inference/offline_infer.py +++ b/weclone/core/inference/offline_infer.py @@ -1,4 +1,4 @@ -from typing import List, Optional, Union, cast +from typing import List, Optional, cast from llamafactory.data import get_template_and_fix_tokenizer from llamafactory.extras.misc import get_device_count @@ -16,7 +16,7 @@ from weclone.utils.config_models import VllmArgs def vllm_infer( - inputs: Union[str, List[str]], + inputs: List[str], model_name_or_path: str, adapter_name_or_path: Optional[str] = None, dataset: str = "alpaca_en_demo", @@ -116,5 +116,10 @@ def vllm_infer( if isinstance(model_args.vllm_config, dict): engine_args.update(model_args.vllm_config) - results = LLM(**engine_args).generate(inputs, sampling_params, lora_request=lora_request) + messages_list = [[{"role": "user", "content": text}] for text in inputs] + extra_body = {"guided_json": json_schema, "enable_thinking": False} + + results = LLM(**engine_args).chat( + messages_list, sampling_params, lora_request=lora_request, chat_template_kwargs=extra_body + ) # type: ignore return results diff --git a/weclone/prompts/clean_data.py b/weclone/prompts/clean_data.py index 3357b33..8a438e5 100644 --- a/weclone/prompts/clean_data.py +++ b/weclone/prompts/clean_data.py @@ -12,7 +12,7 @@ CLEAN_PROMPT = """ # 核心评估点 (请在心中衡量) 1. **相关性 (Relevance):** 【回答 A】是否直接回应或恰当地衔接了【问题/上下文 Q】?它是在回答问题,还是完全跑题了?只有当【回答 A】与【问题/上下文 Q】**明显矛盾**、**完全不着边际**(即使考虑上下文也无法合理化),或简短回答**明显不适用于**该【问题/上下文 Q】时,才给予低分。 2. **逻辑性 (Coherence):** 【回答 A】本身是否符合基本的逻辑?结合【问题/上下文 Q】来看,这个问答对是否构成了一个符合逻辑的交流片段?是否存在明显的矛盾、混乱的内容?只有当【回答 A】**自身逻辑混乱**、**与Q存在无法解释的矛盾**时,才给予低分。 -3. **风格代表性** (Style Representativeness): 评估【回答 A】(以及可能的【问题/上下文 Q】)是否展现了自然、独特的人类对话风格特征。它是否仅仅是功能性的信息传递,还是带有个性化的色彩?关注点包括但不限于:是否体现了特定的语气(如友好、幽默、不耐烦、正式、脏话),是否包含口头禅、俚语、网络用语(如“yyds”、“绝绝子”)、表情符号 Emoji、颜文字、标点符号的特殊使用如“!!!”、“???”、“~”等表达、特定的缩写或短语、非标准的但一致的表达方式(如方言词汇、个人口癖)?如果包含请给予5分,不包含给予5分以下分数 +3. **风格代表性** (Style Representativeness): 评估【回答 A】是否展现了自然、独特的人类对话风格特征。它是否仅仅是功能性的信息传递,还是带有个性化的色彩?关注点包括但不限于:是否体现了特定的语气(如友好、幽默、不耐烦、正式、脏话),是否包含口头禅、俚语、网络用语(如“yyds”、“绝绝子”)、表情符号 Emoji、颜文字、标点符号的特殊使用如“!!!”、“???”、“~”等表达、特定的缩写或短语、非标准的但一致的表达方式(如方言词汇、个人口癖)?如果包含请给予5分,不包含给予5分以下分数 # 评分标准 (1-5分)