《AI大模型之美》笔记备忘

《AI大模型之美》

作者Github地址:xuwenhao (Stanley Xu) · GitHub

工具软件推荐:

彩云小译(谷歌插件):可在线将英文网页无损对照翻译中文,首月免费。

SCISPACE:https://typeset.io/  辅助读论文网站,可局部圈出来让AI解释、可让AI整理中心思想等。——助教

Poe:Quora发布,可以使用包括chatgpt的好几个大语言模型。

Glarity:快速总结视频内容的插件,免费,有chatgpt账号即可

Github Copilot:代码神器,通过把具体需求描述给Chatgpt就可得到一段可用代码。十之八九是对的,只需少量修改。需要$10/月。https://github.com/github-copilot/signup

notion.ai:找灵感、头脑风暴的新ideas和角度。Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

Colab:  在线使用Jupyterlab,无需本地搭建环境  https://colab.research.google.com/icon-default.png?t=N7T8https://colab.research.google.com/

一些利用chatgpt的技巧:

一、在新领域、不熟悉的名词、概念,让他去解释。——助教

二、网上一段不熟悉的代码粘给他,让AI去为你解释,远远快过查文档。——助教

需要练习的to-do-list:

OPENAI/常规方法

2.1重新出发,学会和AI说话——调通系统,完成和chatgpt 的API_KEY 首次连接,返回数据。/完成Colab的使用。/

2.4模型性能大比拼——利用不同预训练模型处理T5和GPT-3

利用Colab制作T5模型,训练练习:(Colab安装各种包速度都极快,百兆/s以上)

1,利用以下代码在Colab中安装包:

!pip install openai

!pip install transformers

! uname -a  # 查看系统  x86_64 GNU/Linux

! python --version  # 查看python版本 Python 3.6.7

! nvcc --version # 查看cuda版本 release 9.2, V9.2.148

!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 #利用上述三行代码返回值,到pytorch官网找安装链接拷贝到此

!pip install torchvision

安装pytorch如出错,参考链接:https://www.cnblogs.com/jiaxin359/p/10234946.html

注意,colab的文件存在:/content/drive/MyDrive/Colab Notebooks文件夹里。如果有数据就要上传到此处,但上传后只是一次性的,运行完就自动删除。[20230531,无法按照如下链接方式上传data文件,原因未知]如何在colab中加载数据集并且运行文件_colab加载大型数据集_Clownorange的博客-CSDN博客

接下来:使用终极解决方案,即用colab访问云盘的东东:事先把课程相关资料传到Google云盘,然后按照路径规则就可以随意访问。图解colab读取Google Drive 文件 - 知乎

如下就是提取云盘的data文件进行运算。

注意,在运行11_colab_chatglm_opensource案例时,假若colab没调到GPU模式,会有各种报错。如果GPU模式不让用,就再等一段时间就可以再次使用了。

错误集:

1,jupyter notebook打开后,发现版本不对。

解决方案:在conda中先打开Testpy310虚拟环境,然后在虚拟环境中输入jupyter notebook,即可在该环境中打开jupyter notebook。(不知为何今晚从快捷方式打开jupyter notebook后,再改kernel不行?)

一些Prompt使用技巧(Prompt工程):

一、搭建一个学习版神经网络,由简单的两层隐藏层:

比如,想搭建一个最简单的四层神经网络,你可以这样和chatgpt说:

"我有一个bunch形式的数据集名字为bunch。bunch.data是由64个样本组成,每个样本有三个特征值。buch.target是由64个样本组成,每个样本有6个目标值。我想用sklearn搭建一个神经网络,总共有四层,包含输入层、两层隐藏层(分别为10,10个神经元)和输出层。输入三个特征值来预测六个目标值。我需要将bunch分割为训练集和测试集,测试集占比30%。另外,模型评估利用准确率作为标准,并且实时打印出来曲线,请给我python的完整代码。"

当然, 有几个前提默认了,即数据都被搞的干净了。例如:

1,bunch中的数据都去掉了类似"“>”这种的字符串。csv文件也是干净的utf-8

2,bunch也被强制转换成了np.array数组)。如果出错,问问chatgpt该怎么做,也是个不错的快速找代码bug的方法。

以下是chatgpt给你写的生成代码示例:

import pandas as pd
from sklearn.datasets import load_svmlight_file
from sklearn.datasets import dump_svmlight_file
from sklearn.utils import Bunch

data = pd.read_csv('file.csv', skiprows = 1)
X = data.iloc[:, 1:4]
y = data.iloc[:, 4:]
bunch = Bunch(data=X, target=y)
bunch.feature_names=['A', 'B', 'C']
bunch.target_names = ['T1', 'T2', 'T3', 'T4', 'T5', 'HAZ']

import numpy as np
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# 读取数据, 把数据中的“≥”号去掉,容易报错
remove_greater_than = np.frompyfunc(lambda x: float(x.replace('≥', '')) if isinstance(x, str) else x, 1, 1)
X = remove_greater_than(bunch.data).astype(float)
y = remove_greater_than(bunch.target).astype(float)


# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 搭建神经网络模型
model = MLPRegressor(hidden_layer_sizes=(10, 10), max_iter=1000)

# 训练模型
model.fit(X_train, y_train)

# 预测结果
y_pred_train = model.predict(X_train)
y_pred_test = model.predict(X_test)

# 计算均方差
train_mse = mean_squared_error(y_train, y_pred_train)
test_mse = mean_squared_error(y_test, y_pred_test)
print("训练集均方差:", train_mse)
print("测试集均方差:", test_mse)

# 绘制误差随迭代次数的变化曲线
train_loss_curve = model.loss_curve_
plt.plot(train_loss_curve)
plt.xlabel('迭代次数')
plt.ylabel('损失')
plt.title('训练集损失曲线')
plt.show()

一般来说,好的chatgpt助力需要以下几点:

一、足够好和清晰完整的prompt描述,让他充分了解你的需求。【非常重要!!!!!】

二、可以先让chatgpt生个随机的数据集,形状和我们已有数据集相同,先把它构建的网络模型跑通。【先run起来,跑通也非常重要】

三、搞干净你的数据集,并去替换第二步中的数据,thousand years later。

在prompt工程中,一般需要结构化你的需求,比如2017年论文Prediction of temperature and HAZ in the thermal-based processes with Gaussian heat中的例子,如果你要将论文所做的工作抽象,也许是下面这样写prompt:

‘’‘

Prompt: 我想用python写一个算法实现用GA遗传算法去优化ANN的三个参数,找到最佳ANN配置的程序。并以横坐标GA的代数,纵坐标ANN的MSE误差函数
画数据图。具体流程见下面:
'''
一、数据处理 随机生成一个64行,9列的数据,并且学习sklearn内部的数据集格式,将文件前三列赋值给bunch.data变量,
将文件后六列赋值给bunch.target。 这样我们得到一个bunch形式的数据集名字为bunch。bunch.data是由64个样本组成,
每个样本有三个特征值。buch.target是由64个样本组成,每个样本有6个目标值。

二、搭建神经网络ANN
2.1用sklearn搭建一个神经网络ANN,总共有三层,包含一层输入层、一层隐藏层、和一层输出层。其中隐藏层神经元数量Nh、动量系数B、和学习率n
这三个变量由第三步决定进行确定 
2.2神经网络的初始权重均在[-0.5,0.5]之间,输入三个特征值来预测六个目标值。我需要将第一步数据处理得到的bunch数据集分割为训练集和测试集,
测试集占比30%。

三、搭建遗传算法GA
使用遗传算法对ANN中的隐藏层神经元数量Nh(限制在[1,10])、动量系数B(限制在[0,1])和学习率n(限制在[0,1]这三个变量进行优化。 
遗传算法的相关参数值如下:
Population number: Npop=100;
Probablity crossover: Pc=0.95;
Probability Mutation: Pm=0.01;
Generation Number: Ngen=65;
Iteration: 4000;
GA的选优方法算子为锦标赛和轮盘赌法,交叉算子是一点型,突变算子为均匀型。

四、主干逻辑:
以下,我将用分步和类似流程图的方式讲主干逻辑。

1,开始:初始化GA。
2,随机生成几个初始种群,作为第一代每个种群代表不同的ANN三个参数:隐藏层神经元数量Nh(限制在[1,10])、动量系数B(限制在[0,1])
和学习率n(限制在[0,1] 
3,将这几个种群分别计算ANN的MSE误差函数。
4,利用锦标赛和轮盘赌方法选出最好的ANN参数结构,并存下来最好个体的这三个参数。 
5,判断最好个体的这三个参数,带入ANN后是否达到我们想要的误差率目标。 
如果达到目标:跳转到步骤8 如果未达到目标:跳转到步骤6
6、选优成为父代后,复制、突变、交叉运算符 
7.生成新的种群,然后返回步骤3。
8.停止遗传算法训练。 
9、开始反向传播训练 
10、BPNN预测 
11.在横坐标上绘制GA的每一代最好的MSE误差函数数据图,在纵坐标上绘制神经网络。  
'''
注意,以上直接给我可以一键拷贝粘贴运行的python代码

‘’‘

当你运转以上prompt的时候,你也许会发现:

一、chatgpt每次生成的都不同,且很多连跑通都不行。跑不通的就果断舍弃,连在此基础上修改的意义都没有。

二、有些跑通的(至少没少逻辑步骤且不报错。)存下来作为母版。,里面缺一些你要的步骤,得自己加上。

三、pormpt在chatgpt和在bingAI上的差距非常大。相对来说,BingAI的生成能力和质量差一个数量级。用BingAI做这种事情就是浪费时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值