【AI实战】训练一个自己的ChatGPT

【AI实战】训练一个自己的ChatGPT

  • 准备
    • 环境
    • 代码
    • 模型
  • 数据集Belle
    • 下载 Belle 的开源中文数据集(仅限研究使用,禁止商用!)
    • 清洗自己的数据集
    • 上述工作完成后,大概是这样子的
  • 训练
  • 测试
  • 参考

本文使用 Alpaca-LoRA 来训练一个自己的 ChatGPT,数据集包括开源的55w数据集和我自己的1000w的医疗问答数据集。

准备

环境

  • CUDA 10.2
  • Ubuntu 20.04
  • python 3.8
  • torch 2.0.0

代码

使用 Alpaca-LoRA 的代码,我们先 clone Alpaca-LoRA:

git clone git@github.com:tloen/alpaca-lora.git

若出现下面的报错信息:

# git clone git@github.com:tloen/alpaca-lora.gitCloning into 'alpaca-lora'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.

可以按照这篇文章进行处理:
https://blog.csdn.net/helloasimo/article/details/123778112

  • 其他依赖安装

    cd alpaca-lora
    pip install -r requirements.txt
    

    若是失败,可以多试几次,可能是网络问题。

  • 上面完工后,大概是这样子的

    /notebooks/alpaca-lora# ls -lh
    total 44M
    -rw-r--r-- 1 root root  20K Mar 31 07:53 DATA_LICENSE
    -rw-r--r-- 1 root root  635 Mar 31 07:53 Dockerfile
    -rw-r--r-- 1 root root  12K Mar 31 07:53 LICENSE
    -rw-r--r-- 1 root root  15K Mar 31 07:53 README.md
    -rw-r--r-- 1 root root  22M Mar 31 07:53 alpaca_data.json
    -rw-r--r-- 1 root root  22M Mar 31 07:53 alpaca_data_cleaned.json
    -rw-r--r-- 1 root root  643 Mar 31 07:53 docker-compose.yml
    -rw-r--r-- 1 root root 1.5K Mar 31 07:53 export_hf_checkpoint.py
    -rw-r--r-- 1 root root 3.6K Mar 31 07:53 export_state_dict_checkpoint.py
    -rw-r--r-- 1 root root 9.5K Mar 31 07:53 finetune.py
    -rw-r--r-- 1 root root 5.8K Mar 31 07:53 generate.py
    -rw-r--r-- 1 root root  81K Mar 31 07:53 lengths.ipynb
    -rw-r--r-- 1 root root  131 Mar 31 07:53 pyproject.toml
    -rw-r--r-- 1 root root  206 Mar 31 07:53 requirements.txt
    drwxr-xr-x 2 root root 4.0K Mar 31 07:53 templates
    drwxr-xr-x 2 root root 4.0K Mar 31 07:53 utils
    

模型

使用 alpaca-lora-cn-13b 模型作为我们的大模型
地址:https://huggingface.co/facat/alpaca-lora-cn-13b/tree/main

clone模型:

# Make sure you have git-lfs installed (https://git-lfs.github.com)git lfs install
git clone https://huggingface.co/facat/alpaca-lora-cn-13b

注:可能需要手动下载 adapter_model.bin ,到 https://huggingface.co/facat/alpaca-lora-cn-13b/tree/main 可以手动下载

大概是这样子:

/notebooks# ls -lh alpaca-lora-cn-13b/
total 26M
-rw-r--r-- 1 root root 341 Mar 30 09:50 README.md
-rw-r--r-- 1 root root 371 Mar 30 09:50 adapter_config.json
-rw-rw-r-- 1 1003 1003 26M Mar 30 09:54 adapter_model.bin

数据集Belle

【如果没有自己的数据集,就用这个数据集来训练模型】

下载 Belle 的开源中文数据集(仅限研究使用,禁止商用!)

  • 介绍
    该数据集有 55w 条
    下载数据集地址:
    https://huggingface.co/datasets/BelleGroup/generated_train_0.5M_CN/tree/main

  • 数据格式:
    在这里插入图片描述

  • json格式

    {"input": "用一句话描述地球为什么是独一无二的。\\n\n", "target": "地球上有适宜生命存在的条件和多样化的生命形式。"}
    {"input": "给出一段对话,要求GPT模型使用合适的语气和回答方式继续对话。\n对话:\nA:你今天看起来很高兴,发生了什么好事?\nB:是的,我刚刚得到一份来自梅西银行的工作通知书。\nA:哇,恭喜你!你打算什么时候开始工作?\nB:下个月开始,所以我现在正为这份工作做准备。", "target": "A: 这太好了!你的新工作听起来很令人兴奋。你对接下来的日子有什么期望吗?\nB: 是啊,我非常期待能在梅西银行工作。我希望我能够尽快适应新环境,并展示出我的所有技能和才能。"}
    

清洗自己的数据集

将数据清洗为上述 json 格式
数据有1000w条,太大了,这里就不放出来了。
数据格式同上。

数据清洗后的数据格式如下:
all_data.train.json:

[{"instruction": "Give three tips for staying healthy.","input": "","output": "1. Eat a balanced diet and make sure to include plenty of fruits and vegetables. \n2. Exercise regularly to keep your body active and strong. \n3. Get enough sleep and maintain a consistent sleep schedule."},{"instruction": "What are the three primary colors?","input": "","output": "The three primary colors are red, blue, and yellow."}
]

上述工作完成后,大概是这样子的

/notebooks# ls -lh
total 1.5G
drwxr-xr-x 6 root root 4.0K Mar 31 07:53 alpaca-lora
drwxr-xr-x 3 root root 4.0K Mar 31 08:15 alpaca-lora-cn-13b
drwxrwxr-x 2 1003 1003 4.0K Mar 30 09:14 data

其中清洗的数据:

/notebooks/data# du -sh all_data.train.json
6.2G    all_data.train.json

训练

  • 单卡训练
python3 finetune.py \--base_model 'decapoda-research/llama-7b-hf' \--data_path '../data/all_data.train.json' \--output_dir './lora-alpaca-zh' \--micro_batch_size 1 \--num_epochs 3

过程如下:
在这里插入图片描述
下载数据特别大,需要比较长的时间(我用了大概4个小时)!!!

  • 多卡训练
    我用了4个卡
WORLD_SIZE=4 CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun \--nproc_per_node=2 \--master_port=1234 \finetune.py \--base_model 'decapoda-research/llama-7b-hf' \--data_path '../data/all_data.train.json' \--output_dir './lora-alpaca-zh' \--micro_batch_size 1 \--num_epochs 3

测试

python3 generate.py \--load_8bit \--base_model 'decapoda-research/llama-7b-hf' \--lora_weights './lora-alpaca-zh'
  • 测试效果

参考

  • https://huggingface.co/facat/alpaca-lora-cn-13b/tree/main
  • https://github.com/tloen/alpaca-lora
  • https://github.com/gururise/AlpacaDataCleaned

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3991.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT探索系列之三:探究ChatGPT的训练、优化和应用方法

文章目录 前言一、ChatGPT训练原理二、采样和微调阶段三、采样和训练奖励模型阶段三、采样和训练奖励模型阶段总结 前言 ChatGPT发展到目前,其实网上已经有大量资料了,博主做个收口,会出一个ChatGPT探索系列的文章,帮助大家深入了…

想让 ChatGPT 帮忙进行数据分析?你还需要做......

近年,火出圈的 ChatGPT 掀起了久违的人工智能的热潮,如何更好地让人工智能真正为企业所用,也成了近期的热门话题。大数据和人工智能两者相辅相成,人工智能的训练以大量数据作为基础,而数据的价值则需要人工智能的充分挖…

高频交易与量化交易到底有什么区别?

高频交易也可以说是量化交易,但是量化交易可不仅仅是高频交易。或者说,高频交易是量化交易中的一个部分,一种形式。都是资本市场和计算机领域快速发展的必然产物。 近些年来国内的大数据产业链和芯片的迅猛发展,投资所需的大型数…

外汇量化交易之高频交易策略

很多投资者对外汇高频交易策略一知半解今日小恩与大家聊聊高频交易策略。 外汇高频交易策略是什么? 字面意思也可以理解,高频率做单的外汇交易方式。高频交易是自动化交易的一种形式,它利用复杂的计算机技术和软件系统以极快的速度快速执行…

《量化交易》

量化交易到底是如何帮助大家赚钱的呢? 很多人都会觉得在如今的投资市场上,币圈的量化交易好像非常的神秘,也营造出一种神话的形象,今天就为大家详细的介绍一下,到底什么是量化交易,怎么样才能够有效获得稳定…

股票量化交易-获取数据的N种方法

来源:萧遥量化 作者: sally 在上一篇的基础上再分享两个量化股票需要的数据资源。 通过python第三方库pytdx获取 这是个很强大的第三方库,原理是解析通达信的.dat底层数据。没错,我说的就是老少皆宜,平时看盘下单的…

MT4_应用于外汇交易的量化模型

MT4_应用于外汇交易的量化模型 你好!欢迎浏览本文章模型设计的数据来源历史数据的提取与处理历史数据的选取与提取历史数据的处理 寻找符合涨跌要求的历史数据段对已选取时间段的值进行技术分析对每个时间段的值及技术指标值进行绘图调用所有函数并运行 数据指标的分…

量化交易之数据获取篇

该篇主要是是用来展示量化交易的效果,不构成任何投资建议,仅供参考 先说说思路 该篇主要是教你怎么去获取数据,包括怎么去选取一支好的基金,怎么去获取基金往期的历史数据 先说说怎么去选取一支好的基金吧 个人认为如何判断一…

期货CTP接口与程序化(量化交易)的对接(1)

很多人写CTP都是为了自动交易。 费好大劲,CTP接口写好了,该往策略方面靠了。 有同学说:“那简单,把文华的策略翻译到CTP里去。” 姑且不论这么做是否可行。我这篇文章要说的,不是这么简单的一个东西,而是一…

散户如何进行开展量化股票交易的?

散户如何进行开展量化股票交易的?也就是投资者交易的条件,达到了投资者设定的条件时候,系统接口就会自动交易,下面来看看具体的流程: 依据个股的历史记录,进行多因子选股,比如,把市…

带你了解Ptrade量化交易功能

Ptrade,适用于交易活跃用户、量化爱好者以及专业量化投资者,又可面向高净值的机构或个人。 PTrade个人专业交易系统,是一款面向个人投资者,尤其是中高净值个人投资者的专业交易系统。系统采用先进的技术框架,具有功能…

ChatGPT真猛!直接写了一本量化交易的书(附下载)

量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾…

音视频技术开发周刊 | 296

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 22字声明、近400名专家签署、AI教父Hinton与OpenAI CEO领头预警:AI可能灭绝人类! 这份声明一经发布,便迅速得到了多伦多大学计算机科学…

青云科技财务负责人、核心技术人员相继离职;作业帮正在内测大模型;OpenAI月活用户数量超8亿丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 新媒股份与科大讯飞共同成立元宇宙XR联合创新实验室 近日,广东南方新媒体股份有限公司(以下简称“新媒股份”)与科大讯飞股份有限公司(以下简称“科大讯飞”&…

美国新闻集团拟起诉微软谷歌OpenAI;大厂核心技术人员开启创业潮;京东云首次发布数智平台“优加”丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 美国新闻集团拟起诉微软谷歌OpenAI 自ChatGPT风靡全球后,AI版权问题就成为近来国外争论不休的一个焦点。据报道,AI技术的发展已经引发了新闻出版业的不满,他们认为自己的内容…

OpenAI创始人的Web3愿景:Worldcoin打造AI数字通行证

摘要 以Chatgpt为代表的人工智能的能力正在迅速接近人类,并且已经在许多利基领域超越了人类。越来越强大的模型似乎越来越超出人控制的可能, AI既可以助人,也存在“鸠占鹊巢”挤占人类的存在空间和利益,甚至不排除AI作恶的可能。在…

现在就是成为“新程序员”的黄金时刻!

整理 | 王启隆 出品 | CSDN(ID:CSDNnews) “自然语言代替了编程语言,大大地降低了程序员的门槛。现在,ChatGPT 将全球的知识库和代码都放在了你的手中,只要有想象力,人人都能成为「新程序员」。…

ChatGPT 爆火的背后:深度解读“智能对话”与“人机交互”技术

图灵人工智能 作者 | 鲁冬雪 智能对话技术在近几年来取得了惊人的进步,最近爆火的 ChatGPT 更是将智能对话推到了至高潮。像 ChatGPT 这样的聊天机器人有着广泛的用途,然而想要让其达到真正的智能水平,还有很多挑战需要克服,比…

图灵逝世 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 6 月 7 日,在 1742 年的今天,普鲁士数学家克里斯蒂安哥德巴赫在写给瑞士数学家莱昂哈德欧拉的通信中,提出了以下的猜想&…