ChatGPT fine tune微调+prompt介绍

article/2024/9/20 6:42:58

目录

  • 1 如何使用ChatGPT
    • 1.1 图片生成 (image generation)
    • 1.2 对话(chat)
    • 1.3 中文纠错 (Chinese Spelling Correct)
    • 1.4 关键词提取 (keyword extract)
    • 1.5 抽取文本向量 (Embedding)
    • 1.6 微调 (fine tune)
  • 2 如何写好prompt
    • 2.1分类任务
    • 2.2 归纳总结
    • 3.3 翻译
    • 2.4 API接口多样性控制
  • 3 实用资料

1 如何使用ChatGPT

首先我们需要安装openai

pip install openai

安装好openai以及获得API key后,我们就可以调用接口了,首先我们来看下openai能够提供的模型有什么:

import openai
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"models = openai.Model.list()for model in models['data']:print(model['id'])

我们可以看出,目前提供的模型有如下:
在这里插入图片描述
接下来大概介绍一下我们应该怎样去调用接口,获取我们想要的结果。

1.1 图片生成 (image generation)

import openai
import json# 设置API密钥
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"def image_genaration(prompt):response = openai.Image.create(prompt=prompt,n=1,size="1024x1024")image_url = response['data'][0]['url']return image_urlif __name__=='__main__':prompt='a delicious dessert'result = image_genaration(prompt)print(result)

prompt=‘a delicious dessert’, 其中返回url地址,我们将地址复制到浏览器中,打开看到如下图:
在这里插入图片描述
prompt=‘母亲在厨房忙碌着’,OpenAI返回的效果图如下:
在这里插入图片描述
人物画像细节生成还不够逼真。来试一试中国的古诗词效果,
prompt=‘踏花归去马蹄香’

马蹄上应该画出一些蝴蝶🦋来表达马蹄的花香味啊,不太满意~😞

1.2 对话(chat)

api接口调用代码如下所示:

import openai
import json# 设置API密钥
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"
def chat(prompt):response = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content":prompt}]
)answer = response.choices[0].message.contentreturn answerif __name__=='__main__':prompt='人口最多的国家'result = chat(prompt)print(result)

结果如下:
在这里插入图片描述

1.3 中文纠错 (Chinese Spelling Correct)

我们可以通过合理的写prompt,基于问答形式,让gpt-3.5做NLP任务。比如对中文纠错,我们可以这样写prompt,让chagpt能够做纠错NLP任务。如下所示:

def correct():prompt="改正错词输出正确句子:\n\n我在京东电商平台买了苹果耳几和华为体脂称"  #建议prompt: 改正错词输出正确句子:\n\n input_sentenceresponse = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content":prompt}]
)answer = response.choices[0].message.contentreturn answerif __name__=='__main__':result = correct()print(result)

结果如下:
在这里插入图片描述

1.4 关键词提取 (keyword extract)

def keyword():prompt="对下面内容识别2个关键词,每个词字数不超过3个字:\n\n齐选汽车挂件车内挂饰车载后视镜吊坠高档实心黄铜玉石出入平安保男女 红流苏-玉髓平安扣"  #建议prompt: 对下面内容识别n个关键词,每个词字数不超过m个字:\n\n input dataresponse = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content":prompt}]
)answer = response.choices[0].message.contentreturn answerif __name__=='__main__':result = keyword()print(result)

在这里插入图片描述
对于不同的prompt,输出的结果差异也较大。所以对于具体的任务场景,我们需要尝试不同的prompt, 根据结果的反馈,不断的调整和优化prompt,从而得到更加准确的结果

1.5 抽取文本向量 (Embedding)

def embedding():content = '苹果手机'response = openai.Embedding.create(model="text-embedding-ada-002",input=content
)answer = response.data[0].embeddingreturn answerif __name__=='__main__':result = embedding()print(len(result))print(result)

得到结果如下:
在这里插入图片描述
是一个1536维度的向量,我们可以基于文本的向量去做很多任务,比如计算两个向量的余弦值,计算相似性分值等。

1.6 微调 (fine tune)

openAI提供了接口可以用我们自己的数据进行fine tune,得到适应我们自己业务场景的新模型。假如我们需要训练一个适应我们自己领域知识的聊天机器人,我们可以按照下面流程来做fine tune。

  • 数据准备

我们可以先把数据转成csv格式,需提供prompt列和对应的completion列,其中prompt相当于问题,completion就是对应的答案,如下是我们要用来fine tune模型的result.csv训练样本内容显示:
在这里插入图片描述
然后我们可以用openAI提供的数据处理工具对数据转成json格式的文件

openai tools fine_tunes.prepare_data -f result.csv

执行完后,我们会得到一个对应的json文件:result_prepared.jsonl

  • 模型微调训练
    接下来我们就可以用已有的模型 (ada, babbage, curie, davinci) 进行fine tune,官方给出的具体可以用来做微调的模型主要如下:
    在这里插入图片描述
    首先需要指定我们自己的API key:
export OPENAI_API_KEY="sk-Wljk3BVhN0VieGCwAzEX*********"

然后开始训练:

openai api fine_tunes.create -t result_prepared.jsonl -m ada

在这里用我们自己的数据result_prepared.jsonl,基于base model: ada模型提交fine tune任务。提交后会返回给我们一个JOB ID,通过这个job id我们可以跟进模型在远程服务器训练情况:

 openai api fine_tunes.follow -i ft-sWKDNnTmUyOGEdpvbAOvEaZt

我们可以看到结果如下:
在这里插入图片描述
可以看到我们的模型训练好了模型名称叫做:ada:ft-personal-2023-03-27-03-24-09,然后我们就可以试用我们训练好的模型看效果了,测试如下:

openai api completions.create -m ada:ft-personal-2023-03-27-03-24-09 -p <YOUR_PROMPT>

其中<YOUR_PROMPT>写入我们要测试的问题就好。

现在我们可以去远程服务器上查看下我们fine tune好的模型是否已经有了:

models = openai.Model.list()

发现有了刚刚fine tune的模型:
在这里插入图片描述
对于分类,实体识别等任务,OPNAI官网也提供了如何做处理数据,让模型做fine tune,详情可以参考官网https://platform.openai.com/docs/introduction/overview

2 如何写好prompt

prompt如何表达,对于chatgpt返回的答案会差异很大,通过prompt正确的表达问题,chatgpt才会返回更合适的结果。通过自己这些天的尝试以及官网给的提示,感受就是在写prompt时候,可以通过说明,例子,限制条件,修饰词等具体表达问题,这样chatgpt会给出更加精准的答案。接下来,我们对几种常见的任务,prompt应用如何写。

2.1分类任务

我们可以对prompt这么构造:
判断content属于A,B,C,D哪一种分类
content: detail
分类:

对应的查询结果如下:
在这里插入图片描述

2.2 归纳总结

提供了非常强大能力,能够基于学到的广泛知识,给出问题解决方案,合理的建议,实施步骤,商业计划,人物描写等等。所以我们可以合理写prompt,更有意思的答案。
在这里插入图片描述

哈哈,看起来不够大胆,于是进一步发问
在这里插入图片描述
给出的这些答案果然更加激动人心。

3.3 翻译

我们可以将一种语言翻译成我们大多数其他语言。对于翻译任务,我们只需要写prompt表达我们的意愿就是:
将下面内容翻译成英语,日语,德语
content

在这里插入图片描述

2.4 API接口多样性控制

在调用API接口的时候,我们可以通过设置两个参数=='temperature’和’top_p’来控制生成文本的多样性和可控度==。当temperature较高时,生成的文本会更加随机和多样化,而当temperature较低时,生成的文本会更加保守和可控。top_p参数用于控制生成文本的可控度,它会限制模型生成文本时可以选择的token的数量。具体来说,当top_p越低时,模型只考虑概率分布中累计概率最高的一部分token,而忽略其他低概率的token。这样一来,生成的文本就更加可控,因为只有那些最可能的token才会被考虑。而当top_p越高的时候,生成的文本可能会更加灵活和多样,因为模型会考虑更多的低概率token。每次调用的时候,我们可以设置这两个参数:
在这里插入图片描述

3 实用资料

大模型训练平台:https://github.com/hpcaitech/ColossalAI
相关资料:中文精选资源清单


http://chatgpt.dhexx.cn/article/93GyUgRm.shtml

相关文章

ChatGPT的平替来了?一文总结 ChatGPT 的开源平替,你值得拥有

文章目录 【AIGC精选】总结 ChatGPT 的开源平替&#xff0c;你值得拥有1.斯坦福发布 Alpaca 7B&#xff0c;性能匹敌 GPT-3.52.弥补斯坦福 Alpaca 中文短板&#xff0c;中文大模型 BELLE 开源3.国产AI大模型 ChatGLM-6B 开启内测4.中文 Alpaca 模型 Luotuo 开源5. ChatGPT 最强…

分享一个苹果Siri接入ChatGPT的方法,让你的Siri更智能

今天我给大家分享一个苹果Siri接入ChatGPT的方法&#xff0c;让你的Siri更智能&#xff1b; 方法很简单&#xff0c;只需要几步&#xff1a; 1、只需添加一个快捷指令 2、在唤醒Siri后&#xff0c;说出指令名称即可 3、Hey Siri 智能助手&#xff0c;我在 4、长按指令可以…

【ChatGPT】多国“围堵”,万人抵制,AI发展的红线到底在哪?

个人主页&#xff1a;【&#x1f60a;个人主页】 文章目录 前言Chatgpt&#x1f4bb;&#x1f4bb;&#x1f4bb;多国拟发ChatGPT禁令&#x1f232;&#x1f232;&#x1f232;开端发展高潮 联名抵制自我辩解&#x1f39b;️&#x1f39b;️&#x1f39b;️名家争言比尔盖茨&am…

ChatGPT或要推出APP,OpenAI官宣为ChatGPT招募移动端开发工程师

文 | 兔子酱 OpenAI官方招聘页面放出了英雄帖&#xff0c;他们正在为ChatGPT招聘移动端工程师&#xff1a; 传送门&#xff1a; https://openai.com/careers/mobile-engineering-manager-chatgpt 其中&#xff0c;跨iOS和Android的工程主管年薪为20至37万美元,总薪酬还包括慷慨…

把ChatGPT的所有插件整理成中文后!真要说卧槽了..

大家好&#xff0c;我是五竹。 ChatGPT如约向用户开放了联网功能和众多插件&#xff0c;五竹从上周开始满怀着热情等待着&#xff0c;看别人的测评效果都快把我羡慕哭了。最终等来的却是Plus账号给封了&#xff0c;而且至今也没有续上&#xff0c;只能说非常无奈。算了&#x…

【回眸】ChatGPT Plus(GPT4体验卡)

前言 没忍住诱惑&#xff0c;开了个GPT4.0的会员&#xff0c;给大家表演一波 开通成功 开始问问题 写一个CNN疲劳驾驶监测代码&#xff0c;要求{使用Python语言&#xff0c;使用包&#xff0c;能成功运行&#xff0c;需要调用电脑摄像头&#xff0c;要求GUI界面有一些参数…

手把手教你做一个 ChatGPT !丝滑小白版,只需一张单卡 GPU,轻松开启个性化训练!...

大家好&#xff0c;我是贺同学。 一直以来密切关注 ChatGPT 的趋势&#xff0c;最近相关的话题可谓是热度不减&#xff0c;虽然从事互联网行业&#xff0c;但一直对 LLM 相关领域关注较少。 最近的 ChatGPT 的火热&#xff0c;让我对 LLM 相关开源社区也关注了起来&#xff0c;…

Python+ChatGPT实战之进行游戏运营数据分析

文章目录 一、数据二、目标三、解决方案1. DAU2. 用户等级分布3. 付费率4. 收入情况5. 付费用户的ARPU 最近ChatGPT蛮火的&#xff0c;今天试着让ta写了一篇数据分析实战案例&#xff0c;大家来评价一下&#xff01; 一、数据 您的团队已经为您提供了一些游戏数据&#xff0c;…

使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】

代码 package com.atguigu.java4;/*** author zyz* version 1.0* data 2023/2/20 14:55* Description:*/import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random;class MineSweeper ex…

ChatGPT惊人语录大赏

作者 | 智商掉了一地 编辑 | 夕小瑶的卖萌屋 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 这几天ChatGPT实在太火了&#xff0c;笔者的朋友圈已经被ChatGPT的各种金句刷屏了&#xff…

ChatGPT实现游戏 NPC 对话

游戏 NPC 对话 玩游戏的一个必要过程&#xff0c;就是和 NPC 对话&#xff0c;领取任务&#xff0c;获取线索。有趣的游戏&#xff0c;会根据用户和 NPC 交流时的不同选择&#xff0c;触发不同剧情走向。甚至多个 NPC 之间还能有罕见的隐藏剧情&#xff0c;等待用户发掘。可以…

ChatGPT使用Java编写猜数游戏

目录 使用ChatGPT编写的代码如下 存在的问题 改进的Java代码 猜数游戏相信很多学编程的同学都听说过&#xff0c;在学习循环的那一节的课后作业相信就有这个题目&#xff0c;正好现在ChatGPT正火的时候&#xff0c;我也尝试了让它写一下这个代码&#xff0c;很遗憾&#xff0…

调戏chatGPT(一)玩个猜数字游戏

最近chatGPT火得不要不要的&#xff0c;本着热情拥抱新生事物的原则&#xff0c;我也去测试了一下&#xff0c;发现这货果然很智能&#xff0c;我们是不是已经处在AI技术革命性突破的前夜了呢。 chatGPT的功能远远不止聊天&#xff0c;所以我用一个专栏来展示一下&#xff0c;…

ChatGPT 设计游戏剧情 | 基于 AI 5 天创建一个农场游戏,完结篇!

欢迎使用 AI 进行游戏开发&#xff01; 在本系列中&#xff0c;我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏。到本系列结束时&#xff0c;您将了解到如何将多种 AI 工具整合到游戏开发流程中。本文将向您展示如何将 AI 工具用于: 美术风格 游戏设计 3D 素材 2D …

ChatGPT设计的游戏火了!玩法代码一力搞定,自称「原创」却被指:抄袭了

鱼羊 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT&#xff0c;现在多了一重“游戏制作人”的身份。 不仅游戏玩法由它设计&#xff0c;连游戏代码和网页&#xff0c;也全部由ChatGPT搞定。 游戏界面长这样&#xff1a; ChatGPT还亲自给这个小游戏取了个名字&#xff1a;Sumplet…

用ChatGPT做一款二次元卡牌游戏!完成度超90%,即将开放源码!

1.0 游戏策划设计 孙二喵&#xff0c;继上次借助ChatGPT做了一个3D小游戏后&#xff0c;很多朋友问&#xff0c;AI可以做大型项目么&#xff1f;还是仅限于简单的小游戏。 *AI生成的3D小游戏 所以二喵准备接着用 AI 设计一款中型体量的卡牌游戏&#xff0c;发布到微信小游戏和海…

【广州华锐互动】ChatGpt在元宇宙游戏领域有哪些应用场景?

游戏已经成为了许多人的娱乐方式。然而&#xff0c;如何提高游戏体验仍然是一个关键的问题。这里&#xff0c;我们介绍一种新型的技术&#xff1a;ChatGpt。 ChatGpt是一种基于自然语言处理的人工智能技术&#xff0c;可以帮助游戏开发人员制作出更加智能的游戏。它可以在元宇宙…

ChatGPT游戏领域的创新助手|小智ai

ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT-3.5丨开源AI平台 导语&#xff1a; ChatGPT&#xff08;Chat Generative Pre-trained Transformer&#xff09;作为一种先进的自然语言处理模型&#xff0c;不仅在对话领域取得了突破&#xff0c;而且…

NPC 也有了生命?当 ChatGPT 注入游戏你能想象吗

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 引言&#xff1a;西部世界元宇宙&#xff0c;还记得吗ChatGPT 的世界&#xff1f; 下图就是一个 ChatGPT 小镇&#xff1a; 引言&#xff1a;西部世界 《西部世界》以一个虚构的游戏般的“西部世界”为背景…

ChatGPT 又整活了,从零开始设计并实现一个类似数独的游戏 Sumplete

ChatGPT 又整活了。这次是从零开始设计并实现一个类似数独的游戏。 数独应该很多人都玩过&#xff0c;规则也很简单。 那能不能设计一款与数独类似的新游戏呢&#xff1f;国外有位叫 Daniel Tait 的工程师就想到了让 ChatGPT 来试试。经过几个小时与 ChatGPT 的对话&#xff0c…