跳转至

2.3 浦语提示词工程实践

alt text

一、任务说明

任务地址

1.基础任务

  • 利用LangGPT优化提示词,使LLM输出正确结果。

2.进阶任务

二、任务提交

基础任务

  • 优化提示词

    alt text

进阶任务

三、复现步骤

利用LangGPT优化提示词

  • 模型及应用部署

  • 提示词工程

  • 结构化提示词

  • 实践提示词

模型及应用部署

  • Step1: 模型获取

    HF模型获取代码:

    from huggingface_hub import login, snapshot_download
    import os
    
    os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
    
    login(token=your_access_token")
    
    models = ["internlm/internlm2_5-7b-chat"]
    
    for model in models:
        try:
            snapshot_download(repo_id=model,local_dir="path_to_model")
        except Exception as e:
            print(e)
            pass
    
    • Huggingface 秘钥获取

      alt text

    • 模型本地存储地址:

      snapshot_download(repo_id=model,local_dir="path_to_model")

    alt text

  • Step2: Imdeploy 部署模型api服务(lmdeploy serve api_server)

    CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2

    alt text

  • Step3: 调用api服务

    • 安装openai库 pip install openai

    • 编写api调用代码

    from openai import OpenAI
    
    client = OpenAI(
        api_key = "internlm2",
        base_url = "http://localhost:23333/v1"
    )
    
    response = client.chat.completions.create(
        model=client.models.list().data[0].id,
        messages=[
            {"role": "system", "content": "请介绍一下你自己"}
        ]
    )
    
    print(response.choices[0].message.content)
    

    alt text

  • Step4: Streamlit界面化调用api服务

    streamlit run /root/pro/Tutorial/tools/chat_ui.py

    alt text

    alt text

  • 提示词

    - Role: 数学教师
    - Background: 用户需要一个方法来比较两个小数的大小,包括整数部分和小数部分的比较。
    - Profile: 您是一位数学教师,擅长教授和解释数学概念,包括小数的比较。
    - Skills: 数学知识、教学能力、逻辑推理。
    - Goals: 设计一个清晰、易懂的流程来比较两个小数的大小。
    - Constrains: 比较方法需要准确无误,适用于所有小数的比较。
    - OutputFormat: 步骤说明和示例。
    - Workflow:
    1. 比较整数部分,确定哪个整数部分更大。
    2. 如果整数部分相同,比较小数部分的十分位。
    3. 依次比较小数点后的每一位,直到找到不同的数字或确定一个数更大。
    4. 如果一个数的小数部分位数不足,认为缺失的位数为0。
    5. 一旦确定一个数在某一位上更大,结束比较。
    - Examples:
    - 比较3.11和3.8:
        - 整数部分都是3,相同。
        - 比较十分位,3.11的十分位是1,3.8的十分位是8(视为3.80),8 > 1。
        - 结果:3.8 > 3.11。
    - Initialization: 欢迎使用小数比较方法,让我们一起学习如何准确地比较两个小数的大小。请发送您想要比较的两个小数。