首页IT科技pinetwork开源代码(ChatGPT开源平替——OpenChatKit(前OpenAI团队打造))

pinetwork开源代码(ChatGPT开源平替——OpenChatKit(前OpenAI团队打造))

时间2025-06-18 07:48:56分类IT科技浏览4542
导读:❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️...

❤️觉得内容不错的话            ,欢迎点赞收藏加关注😊😊😊                    ,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关       ,linux学习相关         ,读研读博相关......)👈

(封面图由ERNIE-ViLG AI 作画大模型生成)

ChatGPT开源平替——OpenChatKit(前OpenAI团队打造)

OpenChatKit是一个由前OpenAI研究员共同打造的开源聊天机器人平台            。它包含了训练好的大型语言模型              、定制配方和可扩展的检索系统                   ,可以帮助用户快速构建高精度                   、多功能的聊天机器人应用                    。

其中           ,最核心的组件是一个经过微调的      、具有200亿参数的语言模型——GPT-NeoXT-Chat-Base-20B       。这个模型基于EleutherAI的GPT-NeoX模型      ,重点调整了多轮对话          、问答                    、分类         、提取和摘要等多项任务                  ,并使用了4300万条高质量指令进行训练         。这使得OpenChatKit在处理聊天对话时可以提供高精度      、流畅的回答                   。

除此之外              ,OpenChatKit还提供了定制配方的功能   ,可以帮助用户根据自己的数据集微调模型                  ,以提高模型在特定任务上的表现           。另外                 ,该平台还提供了可扩展的检索系统,可以从文档存储库                    、API或实时更新信息源等多个来源中检索信息               ,以提供更全面的回答      。

OpenChatKit详细介绍

OpenChatKit是一款开源的聊天工具包                    ,由前OpenAI研究员和Together Computer共同开发                  。该工具包包含了一个200亿参数的大型语言模型            、定制配方和可扩展的检索系统   ,可帮助用户构建高效的聊天机器人和对话系统              。

200亿参数的语言模型

OpenChatKit的核心是一个200亿参数的语言模型            ,使用了EleutherAI的GPT-NeoX-20B进行微调                    ,以实现更高效的对话和任务处理   。该模型在100%碳负载计算上进行了4300万条指令的微调       ,着重于多轮对话   、问答                    、分类               、提取和摘要等多个任务                  。这样的微调可使模型更好地适应用户需求         ,并提供更准确的回答                 。

定制配方

除了强大的语言模型                   ,OpenChatKit还提供了定制配方           ,可帮助用户调整模型以满足特定的任务需求。用户只需准备自己的数据集      ,并使用OpenChatKit的配方来微调模型即可获得高精度的结果               。这样的配方可帮助用户快速构建自己的聊天机器人和对话系统                  ,提高对话效率和准确度                    。

可扩展的检索系统

OpenChatKit还提供了一个可扩展的检索系统              ,可帮助用户从文档存储库、API或其他实时更新信息源中添加信息   。这样的检索系统可使机器人更加智能   ,能够从更多的信息中获取答案                  ,并提供更加准确的回答            。

模型优点

多轮对话:OpenChatKit的语言模型可进行多轮对话                 ,并能够在多次对话中保持上下文,并根据用户的需求提供相应的回答                    。

问答:OpenChatKit的语言模型可对问题进行答复               ,并可基于文档或数据集提供更加准确的答案       。

分类:OpenChatKit的语言模型可对文本进行分类                    ,并可用于情感分析                 、主题分类和意图识别等任务         。

提取:OpenChatKit的语言模型可从文本中提取结构化信息   ,并可用于自然语言生成和自动摘要等任务                   。

多语言支持:OpenChatKit的语言模型可支持多种语言            ,可应用于不同国家和地区的聊天机器人和对话系统           。

高效的微调:OpenChatKit的定制配方可使用户快速微调模型                    ,提高对话效率和准确度      。

训练细节

OpenChatKit的训练细节包括硬件                  、优化器   、梯度累积              、批次和学习率等参数设置                  。

硬件

OpenChatKit的模型训练使用了2 x 8 x A100 GPU的硬件配置              。

优化器

在优化器方面       ,OpenChatKit采用了8bit-AdamW   。8-bit训练是一种使用低位精度进行训练的技术         ,它可以提高模型的训练速度和内存效率                  。AdamW是Adam算法的一个变种                   ,它使用L2正则化来更新权重           ,可以帮助模型更好地避免过拟合                 。

梯度累积

为了能够训练更大的批次      ,OpenChatKit使用了梯度累积技术                  ,将多个小批次的梯度相加后再更新模型参数。在训练过程中              ,OpenChatKit采用了2次梯度累积               。

批次

OpenChatKit使用了一个相对较大的批次大小   ,每个批次包含2 x 2 x 64 x 2048 = 524,288个标记                    。这可以帮助模型更好地利用硬件资源                  ,提高训练速度和效率   。

学习率

在学习率方面                 ,OpenChatKit采用了一种温和的预热策略,将学习率逐步增加到1e-6               ,预热期为100个步骤                    ,之后保持不变            。这种策略可以帮助模型更好地适应训练数据   ,避免在训练初期发生梯度爆炸或消失等问题                    。

通过这些参数设置            ,OpenChatKit能够在大规模数据上进行高效                   、准确的模型训练                    ,从而为用户提供更好的聊天体验和更多的应用场景       。

github介绍

OpenChatKit是一个强大的开源工具       ,为不同应用提供专门或通用的聊天机器人的创建基础         。该工具包包括一个经过调整的      、拥有200亿参数的语言模型          、一个拥有60亿参数的模型以及一个可扩展的检索系统         ,可以包括来自自定义库的最新响应                   。它是在Together                    、LAION和Ontocord.ai合作的OIG-43M训练数据集上训练的           。这不仅是一个模型发布                   ,而且是一个开源项目的开始      。我们发布了一组工具和流程           ,以进行社区贡献的持续改进                  。

在这个项目中      ,你可以找到以下内容的代码:

训练OpenChatKit模型 使用模型进行推理测试 使用检索索引扩展模型

在开始之前                  ,你需要安装PyTorch和其他依赖项              。

OpenChatKit的基础模型是GPT-NeoXT-Chat-Base-20B              ,它是GPT-NeoX的一个 fine-tuned 版本   ,用于对话数据集   。我们在Huggingface上发布了该模型的预训练权重togethercomputer/GPT-NeoXT-Chat-Base-20B                  。

该聊天模型是在LAION         、Together和Ontocord.ai创建的OIG数据集上进行训练的                 。你可以通过在repo的根目录下运行以下命令从Huggingface下载该数据集:

python data/OIG/prepare.py

在训练之前                  ,你需要从Eleuther AI下载GPT-NeoX-20B                 ,并将其准备好进行微调。在repo的根目录下,运行以下命令:

python pretrained/GPT-NeoX-20B/prepare.py

为了微调GPT-NeoXT-Chat-Base-20B               ,你可以使用 training/finetune_GPT-NeoXT-Chat-Base-20B.sh 脚本来配置和运行训练循环               。在下载数据集和基础模型之后                    ,运行以下命令:

bash training/finetune_GPT-NeoXT-Chat-Base-20B.sh

默认情况下   ,训练脚本只是打印损失            ,但它也可以使用loguru输出指标或将其报告给Weights & Biases                    。

你可以使用以下命令将权重转换为Huggingface格式                    ,以便使用该模型执行推理:

mkdir huggingface_models && python tools/convert_to_hf_gptneox.py --ckpt-path model_ckpts/GPT-Neo-XT-Chat-Base-20B/checkpoint_5 --save-path /huggingface_models/GPT-NeoXT-Chat-Base-20B --n-stages 8 --n-layer-per-stage 6

为了测试该模型       ,OpenChatKit提供了一个简单的命令行测试工具来与机器人进行交互   。你可以通过以下命令来启动测试工具:

python inference/bot.py

如果要从Huggingface仓库加载基础模型         ,可以使用以下命令:

python inference/bot.py --model togethercomputer/GPT-NeoXT-Chat-Base-20B

OpenChatKit还提供了一个检索增强模型的实验性功能                   ,可使用维基百科索引查询            。你可以通过以下命令来下载维基百科索引:

python data/wikipedia-3sentence-level-retrieval-index/prepare.py

在启动检索增强模型之前           ,你需要使用以下命令启动OpenChatKit测试工具:

python inference/bot.py --retrieval

当模型和索引加载完毕后      ,所有查询都将与额外的上下文进行增强                    。

总之                  ,OpenChatKit是一个非常有用的开源工具              ,可以帮助你快速创建不同类型的聊天机器人   ,并提供各种训练和测试工具       。它是一个活跃的开源项目                  ,社区可以不断改进它         。

❤️觉得内容不错的话                 ,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关               ,linux学习相关                    ,读研读博相关......)👈

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
seo网站优化怎么做(掌握SEO的相关优化,让你的网站飞速发展) 日本服务器推荐(日本服务器部署转播业务好处有哪些)