【课程总结】day25:大模型应用开发之Prompt初步了解

前言

在上一章,我们主要了解了什么是LangChain以及基本的部署方式,本章将结合LangChain框架,了解大模型的应用方式:即Prompt。

大模型的应用方式

大模型的应用,一般有两种方式:

方式一:作为工具使用

说明:

  • 使用方式
    • 访问对应的大模型产品网址,
    • 在输入框中输入关键字/文字进行提问,然后得到结果。
  • 代表产品:豆包、文心一言等等。

更多此类产品可以查看网站中的AI导航,这里我梳理了国内外各类大模型产品。

方式二:大模型的二次开发

说明:

  • 使用方式
    • 基于自研的或者第三方的大模型
    • 使用LangChain框架进行Prompt的构建
    • 调用大模型的API接口进行二次开发
  • 代表产品:阿里云百炼、百度云千帆等等。

大模型应用的本质

本章,我们将重点了解第二种大模型的应用方式,首先我们需要简单回顾下大模型的训练方式以便了解Prompt。

大模型训练的回顾

【课程总结】day24(上):大模型三阶段训练方法(LLaMa Factory)中,我们了解到:

  • 大模型的训练有三个阶段:预训练(PT)监督微调(SFT)偏好纠正(RLHF)
  • 预训练 是大模型修炼内功的过程;
  • 监督微调 是大模型修炼招式的过程,大量的问题解决能力是在这个阶段训练得到的。
  • 监督微调 训练时是通过下面格式的数据进行训练:
[
  {
   
   
    "instruction": "human instruction (required)",
    "input": "human input (optional)",
    "output": "model response (required)",
    "system": "system prompt (optional)",
    "history": [
      ["human instruction in the first round (optional)", "model response in the first round (optional)"],
      ["human instruction in the second round (optional)", "model response in the second round (optional)"]
    ]
  }
]

其中:

system:系统的指令
user:用户指令和用户输入

由此,大模型的训练和应用的本质是:

  • 训练:通过systemusertool(一种工具描述)不同的指令组合和海量数据,让大模型学习知识,由此形成泛化能力,进而能力涌现可以做更多的事情。
  • 应用:通过Prompt(不同的提问方法(指令)),引出大模型不同的能力,让大模型做不同的事情。

具体应用方式

大模型的二次开发具体方式有两个方式:一种是使用大模型最为基础的底层API方式调用,另外一种是使用LangChain框架进行Prompt的构建调用。

使用底层API方式应用
# 导入依赖组件
from modelscope import AutoModelForCausalLM
from modelscope import AutoTokenizer

# 判断设备
device = "cuda" # the device to load the model onto

# 模型ID,对应git clone的模型文件夹名称
model_id = "qwen2-7b-instruct"

# 加载模型
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype="auto",
    device_map="auto"
)

# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)

# 准备提示词
messages = [
    {
   
   "role": "system", "content": """
            你是一个创意文案生成专家。
            """},
    {
   
   "role": "user", "content": """
            用户将输入几个产品的关键字,请根据关键词生成一段适合老年市场的文案,要求:成熟,稳重,符合老年市场的风格。
            用户输入为:助听器,清晰,方便,便宜,聆听世界。
            营销文案为:
    """}
]

# 应用聊天模板
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# 输入内容转ID
model_inputs = tokenizer([text], return_tensors="pt").to(device)

# 模型预测
generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=512
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洞明智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值