AgileBoot – 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

AgileBoot是笔者在业余时间基于ruoyi改造优化的前后端全栈项目。

学习一个项目首先的第一步就是把项目给run起来。 为了便于大家把项目Run起来~ 写个启动说明

请确保您的机子上安装好了JDK,Docker,npm。 什么?? 你还没有安装? 没事下面有几个安装小教程。

手把手 Mysql Docker 安装

比如你想把docker内的Mysql数据,存在你的宿主机的话,需要在你宿主机创建一个目录。
假设你的工作目录是 D:/workspace 那就创建一个 D:/workspace/mysql/data 目录。

注意上面的 D:/workspace/mysql/data 将作为启动docker的命名参数。

docker pull mysql:版本号

docker pull mysql:8
docker run -d -v D:/workspace/mysql/data:/var/lib/mysql -it --name mysql8 -p 33067:3306 -e MYSQL_ROOT_PASSWORD=12345  mysql:8 --default-authentication-plugin=mysql_native_password

注意 以上

docker exec -it mysql8 /bin/bash
mysql -uroot- p

填入我们刚才的初始密码 12345

由于Mysql8出于安全考虑 默认不允许外部连接直接访问。所以需要打开权限。

use mysql
alter 'root'@'%' identified with mysql_native_password by '12345';
flush privileges;
drop database if exists agileboot;
create database agileboot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

navicat直接导入 后端项目中sql文件夹下的数据库脚本 agileboot_xxxxxx.sql文件
或者mysql命令打开agileboot库,复制脚本文件内容直接执行即可。

手把手 Redis Docker 安装

docker pull redis:版本号

docker pull redis:7-alpine

如果版本号过期的话,可以置空,会拉取最新的镜像,下面的启动命令可以去除掉 : 7-alpine

注意 以上

git clone https://github.com/valarchie/AgileBoot-Back-End

找到 AgileBooAdminApplication 直接点击run
注意:AgileBoo ApiApplication 是开放API使用的启动类,如果不需要开放API给客户端调用,不需要启动该类。

出现以下字样即启动成功。

  ____   _                _                                                           __         _  _
 / ___| | |_  __ _  _ __ | |_   _   _  _ __    ___  _   _   ___  ___  ___  ___  ___  / _| _   _ | || |
 \___ \ | __|/ _` || '__|| __| | | | || '_ \  / __|| | | | / __|/ __|/ _ \/ __|/ __|| |_ | | | || || |
  ___) || |_| (_| || |   | |_  | |_| || |_) | \__ \| |_| || (__| (__|  __/\__ \\__ \|  _|| |_| || ||_|
 |____/  \__|\__,_||_|    \__|  \__,_|| .__/  |___/ \__,_| \___|\___|\___||___/|___/|_|   \__,_||_|(_)
                                      |_|

git clone https://github.com/valarchie/AgileBoot-Front-End

安装依赖

npm install

启动项目

npm run dev

出现以下字样即启动成功

  vite v2.6.14 dev server running at:

  > Local: http://127.0.0.1:80/

  ready in 7167ms.

如果遇到什么启动问题的话,请大家留言评论。

交流群:1398880

Original: https://www.cnblogs.com/valarchie/p/16787097.html
Author: CoderV的进阶笔记
Title: AgileBoot – 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)



相关阅读

Title: ChatGPT:探索RLHF与GPT的完美结合

前言

ChatGPT已经发布一周了热度依旧不减,ChatGPT也各种大显神通,为各大网友”出谋划策”,有写周报的,有写绩效的甚至还有写论文的,作为一个NLP从业者,除了好好体验下其中的乐趣,其背后的原理当然也要有所了解,本文就从其技术细节为大家一一揭开奥秘。

ChatGPT的前世

ChatGPT出来之前,相信大家体验过很多智能问答机器人,大部分的评价都是”人工智障”,而ChatGPT则给人一种忽如一夜春风来,千树万树梨花开的感觉,怎么AI突然变得如此智能!实际上,ChatGPT的成功源自于2年前的GPT3+后期的RLHF优化,所以说

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

接下来我们就先简单回顾下GPT3,GPT3是一个基于transformer decoder的生成模型,其参数规模达到了 1750亿,并且使用45TB数据进行训练,其预训练任务就是”句子接龙”,给定前文持续预测下一个字,因此只要有干净的文本数据就能作为模型的训练数据。虽然任务简单,但由于模型规模大数据量大,训练成本达到了数千万美元,在模型训练过程中还有一个小插曲,研究人员发现了代码中有一个小bug,但因为训练成本昂贵并未修复这个bug。

GPT3首次把模型的规模带到了千亿级别,开辟了大模型赛道,其次也为NLP带来了一种新的范式prompt,prompt为GPT3带来了0样本、小样本的学习能力,也为BERT base级别的模型带来了一些新的玩法。

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

GPT3在AI圈内掀起了很大的浪花,但是并未出圈,其关键原因在于其存在严重的弱点

  • 可能会产生偏见,因为它是基于现有数据训练的,如果有任何偏见存在于训练数据中,那么它的结果也会受到影响。
  • 模型的训练和使用过程中存在安全漏洞,因为它会存储用户数据,而且它的使用还可能导致机器不可控。

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

这些问题被统一称为misalignment,随着语言模型的规模越来越大,模型的输出很难满足用户的需求,并且对于生成模型来说,如果要生成不同的答案就涉及到采样算法,那这对于生成的内容来说就更难控制了,那么怎么解决这个问题呢?接下来我们就来看看ChatGPT是怎么做到的。

; 管得住嘴的ChatGPT

在ChatGPT面世前OpenAI还出过一篇paper:Training language models to follow instructions with human feedback,一看这标题就能感觉到肯定少不了人工打标,这篇paper提出了对于GPT3的改进称为InstructGPT,InstructGPT的目标就是要解决GPT3″管不住嘴”的问题,其解决方案叫做RLHF,其包含3个步骤

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

1、Collect demonstration data, and train a supervised policy

GPT3面世后,OpenAI提供了api,付费后即可集成到自己的项目中,用户使用的时候直接采用 prompt的方法做0样本或小样本的预测,这个过程让OpenAI收集到了大量的prompt数据,研究人员从这些prompt中采样一部分,人工对这些prompt做回答,得到的结果称为demonstration即有标签数据,再用这些demonstration继续fine-tuning GPT3,这个过程称为supervised fine-tuning (SFT)。GPT3的预训练阶段使用的是网上海量的数据,这些数据的质量鱼龙混杂,监督学习的目的就是让模型能生成更多符合人类预期的答案,从而尽可能避免生成一些有害的信息。

2、Collect comparison data, and train a reward model

但是监督学习毕竟需要标注大量数据,OpenAI在怎么有钱也不能这么造呀,于是乎OpenAI想了个办法,搞个模型来判断GPT3输出的有没有问题。于是在有了SFT模型后,继续采样prompt,让SFT模型输出多个不同的output,人工对output做排序,把这个结果拿去训练一个RM(reward model),这个模型和SFT结果一样,只是size小一些,paper中提到6B级别的模型比175B级别的模型更加稳定。注意这里的output是一个zero mean的,这样RM模型只要输出一个大于0的值那么就认为GPT3生成的内容是OK的。

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

最后看下loss function,其中 r θ r_{\theta}r θ​表示的是RM,x x x表示的是用户输入的内容,y y y表示不同的答案,注意这里有一个组合数( K 2 ) \binom{K}{2}(2 K ​) 训练的时候要把同一个组合数中的内容放到一个batch内,不然会出现过拟合的情况,K通常取4到9之间的一个值,可以看到这其实就是一个pairwise模型。

; 3、Optimize a policy against the reward model using PPO

有了RM,下一步我们就可以用RM的输出结果来反哺SFT模型了,其思路是采用RM的输出值作为reward,基于 RL的思路进行优化,

  • policy:给GPT输入文本后输出结果的过程
  • action:词典
  • observation:输出文本

  • objective function:一共包含三项,其中r θ r_{\theta}r θ​是RM的输出分数,第二项是KL惩罚项,目的是为了让 RL模型的输出结果和SFT模型的输出结果差距不要太大,第三项则是为了保证RL模型能保留好语言模型的能力,整个模型称为PPO-ptx。有了这样的一个模型框架后 ,有新的prompt模型就能做到持续的自迭代。

    AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

有多少人工才有多少智能

在RLHF的优化过程中其实存在很多的标注任务,OpenAI把标注这个过程看的其实非常的重,他们组建了一个40人的外包标注团队,并且基于以下标准 对标注人员做了一个严格的筛选:

  • 确保标注人员对信息敏感,OpenAI首先准备了一份自己标注的数据,这些数据包含一些敏感信息,需要标注人员的标注结果和OpenAI认为的敏感信息是尽可能一致的。
  • 排序阶段的标注需要和OpenAI研究人员标注的排序尽可能一致
  • OpenAI构建了一些敏感prompt,让标注人员编写demonstration,研究人员对每个demonstration给一个1-7分的Likert scale(李克特量表),并针对标注人员计算平均分数。
  • 询问标注人员对于哪些话题或者文化群体更能识别出敏感话题

基于以上4个标准OpenAI筛选出了个标注团队,可见只有高质量的数据才能给模型带来质的提升。

最后看看整体的效果,基于PPO-ptx的模型效果提升明显,特别是6B规模的模型效果出色。

AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

; 思考

ChatGPT火了之后,大家都在讨论能否把ChatGPT应用到自己的业务中或者能否把RL应用到业务中减少些人力标注成本,这里也说说我自己对这两个问题的想法。

  • ChatGPT规模比较大,想直接落地难度还是很高的,仅仅算力就已经挡住了大部分人,但是从上文的效果图中也能看到,6B规模的模型在RLHF的思路下效果也是不错的,所以如果真的想朝着这个方向去落地,可以考虑下6B规模的模型,目前抱抱脸也有很多同规模大小的开源语言模型可以尝试下,不过RLHF的标注成本也不低能否承受也需要提前考虑清楚。
  • RL真的适合应用在NLP应用中码?我觉得还是要看场景,在ChatGPT中RL其实解决的是misalignment问题,GPT3本身已经具备了较强的生成能力,只是说容易”胡言乱语”,RL的任务只是纠正GPT3的这个缺点,并且RM的上限决定了GPT3能把这个缺点改进多少。所以说RL也不是万能的,在我看来ChatGPT使用RL更多是为了尽可能节约人工标注成本。

ChatGPT应该只是OpenAI的压轴戏,让我们一起期待23年初的GPT4能带给我们带来怎样的惊喜。

Original: https://blog.csdn.net/u012526436/article/details/128319103
Author: 爱编程真是太好了
Title: ChatGPT:探索RLHF与GPT的完美结合

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/363622/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总