Skip to content

Commit

Permalink
提示词工程
Browse files Browse the repository at this point in the history
  • Loading branch information
lan-dian committed Apr 14, 2024
1 parent 2db0236 commit acb07f3
Show file tree
Hide file tree
Showing 8 changed files with 133 additions and 72 deletions.
15 changes: 11 additions & 4 deletions docs/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ export default defineConfig4CustomTheme<VdoingThemeConfig>({
// 导航配置
nav: [
{ text: '首页', link: '/' },
{
text: 'Java',
link: '/pages/336431/',
},
// {
// text: 'Java',
// link: '/pages/336431/',
// },
{
text: '技术学习',
link: '/web/',
Expand All @@ -41,6 +41,13 @@ export default defineConfig4CustomTheme<VdoingThemeConfig>({
{ text: "hbase", link: '/pages/0d9ac7/' }
]
},
{
text: 'AI大模型',
link: '/ai/',
items: [
{ text: "提示词工程", link: '/pages/0c8b87/' }
]
},
{ text: '关于', link: '/about/' },
{
text: '索引',
Expand Down
17 changes: 17 additions & 0 deletions docs/00.目录页/02.AI大模型.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
pageComponent:
name: Catalogue
data:
path: 03.AI大模型
description: AI大模型的知识及框架学习
title: AI大模型
date: 2024-04-14 23:35:46
permalink: /ai/
sidebar: false
article: false
comment: false
editLink: false
author:
name: lan-dian
link: https://github.com/lan-dian
---
18 changes: 0 additions & 18 deletions docs/00.目录页/02.页面.md

This file was deleted.

18 changes: 0 additions & 18 deletions docs/00.目录页/03.技术.md

This file was deleted.

18 changes: 0 additions & 18 deletions docs/00.目录页/04.更多.md

This file was deleted.

13 changes: 0 additions & 13 deletions docs/01.java/00.JVM/00.JVM.md

This file was deleted.

104 changes: 104 additions & 0 deletions docs/03.AI大模型/01.提示词工程.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: 提示词工程
date: 2024-04-14 23:35:46
permalink: /pages/0c8b87/
categories:
- AI大模型
tags:
-
author:
name: lan-dian
link: https://github.com/lan-dian
---
这个本质就是教我们怎么和gpt对话能获得更好的效果。

## 理解大模型

大模型的本质就是生成词语的预测,他会在下一个可能的词里面选择出最可能的那个词语,然后不断的构成一句话。他最关键的地方,就是训练了很多数据,让模型的能力有了质变。
所以,大模型对生成结果的正确性,没有任何的把关措施,他是依赖训练和输入的数据生成的。我们知道,无论概率有多低,他总是有一个概率的,所以,大模型可能会产生幻觉,也是说,他可能会说一些完全没有依据的内容。所以我们要告诉大模型,如果他不知道的事情就直接说不知道。
AI大模型最关键的能力是由我们的想象力和提示词工程的能力构建的。

## 模型设置

gpt会提供一些参数让我们对大模型进行微调。

> Temperature
temperature 的参数值越小,模型就会返回越确定的一个结果。对于创造性任务,可以调整高一些,希望结果毕竟确定的可以调低一些,尤其是贯穿在代码里面的,不然很难控制,甚至你可以设置为0,保证每次输出都是一样的。

> max length
这个是控制token长度,生成的token长度,主要是控制成本。

> stop sequences
当模型输出xxx字符串的时候,停止生成

> Frequency Penalty
防止模型输出相同类似的内容

## 角色

system、user 和 assistant。其中 system 不是必需的,但有助于设定 assistant 的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。
system:你是一个专业的Java工程师,你会xxxx。
user:就是我们
assistant:就是ai

## 提示词要素

**指令**:想要模型执行的特定**任务或问题**
**输出指示**:指定**输出的类型或格式**
**上下文**:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
不同的部分尽可能的区分开,上下文尽可能放在最后,用换行隔开。

## 技巧

以下的这些技巧除了和gpt交流,其实人与人之间的交流也是非常需要下面技巧的。

### 子任务划分

大模型的输出能力是有限的,所以我们可以把一个大的任务划分为子任务,可以人为的划分,也可以通过gpt来划分。

### 给出实例

给gpt一些实例,可以大幅度的简化我们的语言描述,而且可以使输出的结果更符合我们预期的结果。

### 不用模糊词

不要用几个,不要用过于等等这种不精确到词,可以具体到数量2-3个这样,gpt是可以理解这些数量的。

### 做什么&不做什么

除了告诉gpt要做什么以为,还要告诉gpt不要做什么。通常,做什么对于gpt来说更关键,和我们人一样,需要知道做什么才能具体的去做。
此外,最好尽可能详细的告诉他怎么完成这件事情,按1,2,3这样的步骤来完成。

### 角色提示

你是一个xxx,你xxxx。
通过对gpt的角色提示,能让他的回答更加贴切。

### 思考过程

让我们逐步思考,给出思考的过程。
对于推理性质比较强的问题,我们可以让gpt给出思考的过程,我们可以学习思考的方式,最关键的时候,这可以**加强gpt的思考能力,而且让我们更容易发现gpt的错误**

### RAG

大模型的输入能力是有限的,可以我们就是想输入这么多东西怎么办?
可以把全部内容存在特殊的数据库里面,然后筛选出最接近的几块内容,来组成大模型的输入。同样的,不可能是所有的内容都和这个问题有关。

### 数据输入

不是所有的数据都被大模型训练过的,如果他不知道这些数据,你就必须采用输入数据的方式来让大模型知道这些东西,比如一个比较新的库的文档。

### 不知道就不说

大模型可能会说一些没有依据的话,尤其我们在编写利用知识库回答用户问题的应用时,一定要告诉gpt,没有依据的事情不要说。

### 引导词

我们想让gpt说出以xxx开头的内容,那么我们可以在结尾的时候,写xxx



2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ heroImage: /img/logo.png
heroText: 岚殿的博客
tagline: Java后端技术博客,分享一些有深度的内容
actionText: 快速开始 →
actionLink: /pages/336431/
actionLink: /web/
bannerBg: none

# features: # 可选的
Expand Down

0 comments on commit acb07f3

Please sign in to comment.