首页 > 其他分享 >如何高度优化适用于企业的AI (二) 数据准备

如何高度优化适用于企业的AI (二) 数据准备

时间:2023-06-27 17:56:57浏览次数:65  
标签:CLI AI 优化 微调 适用 OpenAI openai 数据 我们

我们先从快速浏览整个过程

  1. 首先, 我们需要数据, 要尽可能使用CSV/Json格式, 基于这些信息, 我们要让AI获取所有所需要的信息来正确的完成它的工作
  2. 准备数据, 微调过程需要很长的书剑才能运行, 我们肯定是不希望出现错误的, 所以我们使用OpenAI的数据准备工具(CLI tool)来处理我们的数据, 让格式正确, 这样就不会被拒绝
  3. 上传数据, 告诉OpenAI来制作我们的微调模型, 同样的, 我们同样使用CLI tool来执行此操作, 启动是很快的, 但这可能需要很长时间来处理请求
  4. 当上面这个过程结束的时候, 我们会有自己特殊的端点, 然后我们可以使用我们新训练的模型来进行对话了

以上就是这整个过程的工作原理, 下面让我们一步一步的开始操作

1.Get Data

我们需要一些数据来微调我们的模型, 那第一个问题来了: 微调模型需要多少数据?
OpenAI给出了我们建议:

原文: You should provide at least a fewhundred high-quality examples,ideally vetted by human experts.
翻译: 你应该提供至少几百个高质量的例子, 最好由人类专家审查

更重要是, OpenAI说:

原文: Increasing the number of examples isusually the best and most reliable wayofimproving performance.
翻译: 增加示例数量, 通常是提高性能最好最可靠的方法

所以, 以上是微调模型的原则, 这是绝对要记住的
那有了数据量, 我们再来谈谈数据格式
下面是OpenAI官方给出的要求, 希望数据为 Json-L格式, 并给我们一个示例
image.png
Json-L是每行都用Json格式化的数据, 每行都必须是有效的Json, 而且每行都必须以换行符结尾
当然, 你如果不会写也不要紧, 我们会使用一种特殊的工具来创建它
现在让我们来使用更简单的CSV或逗号分隔值数据, 然后让OpenAI tool来完成繁重的工作
OpenAI对于我们的数据给了一些进一步的标准

原文: Each prompt should end with a separator to showwhere the prompt ends and the completion begins.
翻译: 每个提示都已分隔符结尾来显示提示结束位置和完成的开始位置
原文: Each completion should start with a whitespace
翻译: 每个完成都应该以空白开始
原文: Each completion should end with a stop sequence toinform the model where the completion ends.
翻译: 每个完成都应该以一个停止序列结束,以告知模型完成的终点

stop sequence是什么我们暂时还不需要, 等我们后面到项目用的时候再来讨论它
坏消息是: 官方并没有告诉我们到底想要什么, 甚至是什么是停止序列, 什么样的分隔符, 甚至连个例子都没有
好消息是: 它提供了工具, ↓
image.png
看一下这次训练我准备的数据
image.png
prompt里给的是关键词, completion里给的是回复, 每个数据都是来自于真实的数据
当然, 你也可以不必局限于这个格式, 你也可以直接在下面写一段总结式的内容, 直接作为 prompt
理想情况下, 我们需要更多的数据来训练, 但这里, 我们用这部分数据来尝试微调的工作原理
下面我们开始进行数据处理前的准备
我们将会使用终端来进行数据处理, 使用的python3 以及pip(自己安装)
升级pip到最新版 python3 -m ensurepip --upgrade
安装OpenAI工具 pip install --upgrade openai
image.png
这里要特别说明一下, 我们创建的微调模型是只有我们自己才能使用的, 所以, OpenAI工具需要我们的API秘钥
你可以使用export OPENAI_API_KEY="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"这个命令添加openAI秘钥

PS: windows系统是不认export指令的
所以到这里我们就开始使用CentOS系统了, 上面的操作都在CentOS系统上执行一遍

image.png
到这个命令为止, 系统并不会返回我们执行的结果, 说明已经成功接受了我们的秘钥

2.Prep Data

截止到当前操作, 我们已经成功安装OpenAI CLI并指定上了我们的秘钥
下面我们开始用它来准备我们的数据
现在, 我已经将准备好的数据放到了服务器上
image.png
然后让我们进入到这个文件夹下, 并执行
openai tools fine_tunes.prepare_data -f XXXX.csv
这个命令就是来告诉OpenAI使用微调工具来准备我们的数据, -f标识将识别数据文件
这里我们遇到了一个问题
我们的终端一直在报: openai: 未找到命令
查阅了一些资料后发现, 可能是由于在使用OpenAI CLI命令时尚未激活虚拟环境(Virtual Environment)所致
所以我们再来创建一个虚拟环境

python3 -m venv myenv
source myenv/bin/activate
pip install openai
openai --version

image.png
可以看到, 现在确实能够使用OpenAI CLI了
继续重复上面的命令, 我们又遇到了新的问题
image.png
OK, 继续安装pandas

pip install openai pandas

image.png
pandas安装成功, 我们再来试一下
image.png

image.png
然后下面的, 都选y就可以了
image.png

然后就得到了OpenAI CLI给处理好的Jsonl文件

现在我们已经准备好我们的数据了, 下面就开始进行模型微调~

关注一下, 持续更新~
公众号

标签:CLI,AI,优化,微调,适用,OpenAI,openai,数据,我们
From: https://www.cnblogs.com/KDArticle/p/17509427.html

相关文章

  • 数据库架构优化
    数据库架构优化一.分库分表1.整除取余比如有user有10个库,每个库有100张表userid=100087存放的数据库和表格的路径100087%10=7第7个库10087%100=87第87张表2.根据id最后1位和两位插入数据库和表Id的最后1位为数据库的位置Id的最后两位为表格的位置二.读写分离,主从配置主数据库进......
  • 代码优化
    代码优化1.使用对象池减少对重复对象的创建,比如tcp链接、数据库链接、多线程2.调整连接数,连接池、数据库链接数、tomcat、nginx连接数3.利用缓存技术增加缓存、本地缓存(tomcat内存之中,不走网络)、redis缓存4.串行改并行,即单线程改多线程5.同步改异步,使用场景:本次调用接口的结果会影......
  • 使用AI聊天模型写作和编码心得
    合集地址给大家推荐一个国内暂时免费使用AI聊天模型的网站:ChatAnywhere有需要的朋友可以点击试用一下。写文档要点详细描述要干的事情说清楚你的需求,例如:可以使用序号列出所有需求,让AI模型来梳理逻辑对描述不清楚的带你让模型进一步解释时,需要把最初的问题再说清楚,避免断连逐级扩散......
  • 如何高度优化适用于企业自定义的AI (一) 序言
    概述在当前信息时代的背景下,社会对AI的需求在不断增长.AI的快速发展得益于大数据、云计算和计算能力的提升,使得机器学习和深度学习等技术取得了重大突破.AI在图像识别、语音识别、自然语言处理等领域展现出惊人的能力,为企业带来了巨大的商机.然而,通用的AI解决方案无法......
  • AIGC时代,基于云原生 MLOps 构建属于你的大模型(上)
    为了满足企业在数字化转型过程中对更新迭代生产力工具的需求,灵雀云近日推出了云原生MLOps解决方案,帮助企业快速落地AI技术、实现智能化应用和服务。 为什么要打造云原生MLOps解决方案? 随着信息化技术的不断发展,企业在数字化转型的过程中,需要不断地更新迭代生产力工具,从最......
  • AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)
    为了满足企业在数字化转型过程中对更新迭代生产力工具的需求,灵雀云近日推出了AlaudaMLOps解决方案,帮助企业快速落地AI技术、实现智能化应用和服务。 AIGC大模型已成为企业创新引擎  随着ChatGPT的爆火,越来越多的人考虑使用AI来提升我们日常工作的效率和质量,通过对话协......
  • 微信商家转账零钱优化版
    配置文件<?phpreturn['abc'=>["merchant_id"=>env('POINT_ABC_MERCHANTID'),"app_id"=>env('POINT_ABC_APP_ID'),"......
  • 容器管理工具portainer安装
    dockerrun-d-p9000:9000--nameportainer--restart=always--privileged=true-v/var/run/docker.sock:/var/run/docker.sock-vportainer_data:/dataportainer/portainer 下面是添加node节点   ......
  • AI作画本地搭建
    前言NovelAI(简称NAI)是一个线上的深度学习小说续写平台,而NAIDiffusion是NAI在2022年10月3日推出的基于StableDiffusion算法的自动生成二次元图片的服务在线版NovelAI官网:https://novelai.net/进入官网,在首页最底端可以看到付费信息,免费套餐没有AI作画功能本地搭建......
  • redis-分布式锁优化思路
    1.加锁的代码块,粒度越小越好,语句越少越好,更不容易出现"插队"的现象2.分段锁思路:以"超卖"为例,原本是待促销200件商品,一把锁,现改成10款20件商品的促销,改成10把锁,当并发小于10的时候,甚至都不需要锁,就可以并发安全......