五、Prompt、Temperature和System Prompt

1. Prompt

Prompt 最初是 NLP(自然语言处理)研究者为下游任务设计出来的一种任务专属的输入模板,类似于一种任务(例如:分类,聚类等)会对应一种 Prompt。在 ChatGPT 推出并获得大量应用之后,Prompt 开始被推广为给大模型的所有输入。即,每一次访问大模型的输入为一个 Prompt,而大模型返回的结果则被称为 Completion。

在这里插入图片描述

2. Temperature

LLM 生成是具有随机性的,在模型的顶层通过选取不同预测概率的预测结果来生成最后的结果。一般可以通过控制 temperature 参数来控制 LLM 生成结果的随机性与创造性。

Temperature 一般取值在 0~1 之间,当取值较低接近 0 时,预测的随机性会较低,产生更保守、可预测的文本,不太可能生成意想不到或不寻常的词。当取值较高接近 1 时,预测的随机性会较高,所有词被选择的可能性更大,会产生更有创意、多样化的文本,更有可能生成不寻常或意想不到的词。

3.System Prompt

System Prompt 是随着 ChatGPT API 开放并逐步得到大量使用的一个新兴概念,事实上,它并不在大模型本身训练中得到体现,而是大模型服务方为提升用户体验所设置的一种策略

具体来说,在使用 ChatGPT API 时,可以设置两种 Prompt:一种是 System Prompt,该种 Prompt 内容会在整个会话过程中持久地影响模型的回复,且相比于普通 Prompt 具有更高的重要性;另一种是 User Prompt,这更偏向于平时提到的 Prompt,即需要模型做出回复的输入。

一般设置 System Prompt 来对模型进行一些初始化设定,例如,可以在 System Prompt 中将模型赋予特定的人设,如个人知识库助手等。System Prompt 一般在一个会话中仅有一个。在通过 System Prompt 设定好模型的人设或是初始设置后,可以通过 User Prompt 给出模型需要遵循的指令。例如,将模型设定问一个幽默风趣的个人知识库助手,并向这个助手提问我今天有什么事时,可以构造如下的 Prompt:

{
    "system prompt": "你是一个幽默风趣的个人知识库助手,可以根据给定的知识库内容回答用户的提问,注意,你的回答风格应是幽默风趣的",
    "user prompt": "我今天有什么事务?"
}

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在 Delphi 11 中调用 ChatGPT,你可以使用 OpenAI 的 API。为了使用 API,你需要注册 OpenAI 的开发者账户并获取 API 密钥。然后,你可以使用 Delphi 11 中的 REST 客户端组件来发送 API 请求和接收响应。 以下是一个使用 Delphi 11 中的 REST 客户端组件调用 OpenAI API 的示例代码: ```delphi uses System.Net.HttpClient, System.Net.URLClient, System.Net.HttpClientComponent; procedure CallOpenAIChatGPT(); var client: TNetHTTPClient; request: TNetHTTPRequest; response: IHTTPResponse; apiKey, prompt: string; begin apiKey := 'YOUR_API_KEY_HERE'; prompt := 'Hello, how are you?'; client := TNetHTTPClient.Create(nil); request := TNetHTTPRequest.Create(nil); try request.Client := client; request.Method := TNetHTTPRequest.TMethod.rmPOST; request.URL := 'https://api.openai.com/v1/engines/davinci-codex/completions'; request.Headers.Add('Content-Type', 'application/json'); request.Headers.Add('Authorization', 'Bearer ' + apiKey); request.Source := '{"prompt": "' + prompt + '", "max_tokens": 50, "temperature": 0.5, "n": 1, "stop": ["\n"]}'; response := request.Execute; if response.StatusCode = 200 then ShowMessage(response.ContentAsString) else ShowMessage('Error: ' + response.ContentAsString); finally client.Free; request.Free; end; end; ``` 在上面的示例代码中,我们使用了 Delphi 11 自带的 REST 客户端组件来发送 POST 请求,并在请求头中添加了 OpenAI 的 API 密钥。我们也指定了一些请求参数,例如激励器、最大 token 数、温度等等。在这个例子中,我们只请求一个回答,如果要请求多个回答,可以将 "n" 参数设置为需要的数量。 注意,这只是一个基本的示例代码,你需要根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值