魔搭ModelScope社区 02月24日
PromptScope: 一个灵活高效的In-Context Training框架
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

PromptScope是支持中英文的In-Context Training框架,可低成本优化LLM性能,适用于多种场景,具有多种特点及优势,介绍了其运行方式和后续计划。

🎯PromptScope是为LLM性能调优设计的框架,支持中英文。

💪具有低成本、高灵活性的特点,支持多种优化方法。

✨TipsOptimizer通过总结Tips提升模型在指定任务上的表现。

🚀介绍了PromptScope的运行方式,包括开通权限、下载仓库等步骤。

2025-02-23 21:14 浙江

PromptScope是高效In-Context Training框架,支持中英文,低成本优化LLM性能,适用于无GPU或闭源模型场景。

01


项目简介



PromptScope 是一个同时支持中英文的 In-Context Training 框架,专为大型语言模型(LLM)性能调优设计。In-Context Training 通过调整模型输入(Instruction/样例),优化模型在特定任务中的表现。相比于 In-Weight Training(如 SFT、DPO、RLHF),PromptScope 具有低成本和更高的灵活性。


- 适用场景包括

      缺乏可用于训练的 GPU 资源

      需要对闭源模型进行性能优化

- PromptScope 的主要特点

      全面的优化方法:支持基于样例的优化和基于指令的优化

      卓越的优化效果:基于TipsOptimizer的方法在中英文开源数据集上效果优于主流优化算法

      高度的灵活性:支持中英文并且提供主流优化算法实现

- 关于TipsOptimizer

      TipsOptimizer是通过从训练集中根据正负样例,总结出一些Tips,添加到原始system prompt中,来帮助模型提升在指定任务上的表现,只需要提供“训练数据”和“评分函数”,就可以进行优化。以下是一个例子,对比展示优化前后的system prompt:


优化前


请判断下面的新闻属于以下哪个类别:

财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐


优化后


请判断下面的新闻属于以下哪个类别:

财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐


- 当新闻内容主要涉及特定领域的科技进步或科学研究时,建议将其分类为“科技”,不建议简单地因为提及国家机构或政策就归类为“时政”。

- 在判断新闻类别时,应重点关注文章的主要信息和核心主题,而不是被次要信息所干扰。

- 对于跨领域的内容,需要仔细区分主次,确保将新闻准确归入最能反映其主要内容的类别。

- 当新闻内容涉及金融产品(如基金)的整体市场表现及行业内部结构变化时,建议归类为“财经”,不建议仅因提及股市就将其分类为“股票”。

...

(红色部分为新增Tips)


欢迎关注PromptScope,在Github上(https://github.com/modelscope/promptscope) 为我们star ?。


02


项目结构




03


效果对比



优化器:qwen-max

推理模型:qwen-plus


英文


中文



GSM8K


BBH

(word_sorting)


BBH

(object_counting)


THUNews


CMMLU

(nutrition)


CMMLU

(college_medical_statistics)


Raw


96.1%


57.0%


97.0%


85.0%


93.2%


73.6%


OPRO


96.3%


56.0%


97.0%


84.0%


90.4%


75.5%


PromptAgent


95.7%


60.0%


97.0%


80.8%


95.9%


71.7%


TipsOptimizer


96.1%


64.0%


98.0%


90.0%


95.9%


83.0%



04


运行方式



    步骤一:开通DashScope平台模型调用权限


    步骤二:下载PromptScope仓库

    git clone https://github.com/modelscope/PromptScope


      步骤三:配置DashScope API-KEY

      export DASHSCOPE_API_KEY="sk-xxxxx"


        步骤四:加载训练和测试数据

        with open("../../data/college_medical_statistics/sample_train_data.jsonl", "r") as f:    train_set = []    for line in f:        train_set.append(json.loads(line))
        with open("../../data/college_medical_statistics/sample_test_data.jsonl", "r") as f: test_set = [] for line in f: test_set.append(json.loads(line))
        with open("../../data/college_medical_statistics/init_system_prompt.txt", "r") as f:
        init_system_prompt = f.read().strip()

          以下是训练/测试数据格式的组织形式:

          [  {    "input": "输入(必填)",    "output": "回复(必填)"  }]


            步骤五:构建评分函数

            def is_good_case(prediction, ground_truth):    # extract final answer    prediction = prediction.split("<answer>")[-1].split("</answer>")[0].strip()    ground_truth = ground_truth    if ground_truth in prediction:        return True, 1 # good case, 得分为1    else:        return False, 0 # bad case, 得分为1


              步骤六:开始运行

              from prompt_scope.core.llms.dashscope_llm import DashscopeLLMfrom prompt_scope.core.offline.tips_generation.static_tips_generation import StaticTipsGeneration
              # 加载推理模型infer_llm = DashscopeLLM(model="qwen-plus", temperature=0.0)# 加载优化模型optim_llm = DashscopeLLM(model="qwen-max", temperature=0.0)
              # 运行代码stg = StaticTipsGeneration( init_system_prompt=init_system_prompt, infer_llm=infer_llm, train_set=train_set, test_set=test_set, is_good_case_func=is_good_case, details_save_dir=f"{current_file_dir}/details_result", language="cn")tips = stg.run()


              05


              后续计划



                更多模型支持(基于api/本地部署)

                支持多模态In-Context Training方式

                更多Optimizer方式,也欢迎大家共建


              欢迎关注PromptScope,在Github上(https://github.com/modelscope/promptscope) 为我们star ?。


              点击阅读原文,即可跳转模型代码




              ?点击关注ModelScope公众号获取

              更多技术信息~




              阅读原文

              跳转微信打开

              Fish AI Reader

              Fish AI Reader

              AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

              FishAI

              FishAI

              鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

              联系邮箱 441953276@qq.com

              相关标签

              PromptScope LLM性能优化 TipsOptimizer 运行方式
              相关文章