大模型的短期记忆和长期记忆各自的使用场景

吾名爱妃,性好静亦好动。好编程,常沉浸于代码之世界,思维纵横,力求逻辑之严密,算法之精妙。亦爱篮球,驰骋球场,尽享挥洒汗水之乐。且喜跑步,尤钟马拉松,长途奔袭,考验耐力与毅力,每有所进,心甚喜之。

 
吾以为,编程似布阵,算法如谋略,需精心筹谋,方可成就佳作。篮球乃团队之艺,协作共进,方显力量。跑步与马拉松,乃磨炼身心之途,愈挫愈勇,方能达至远方。愿交志同道合之友,共探此诸般妙趣。

诸君,此文尚佳,望点赞收藏,谢之!

大模型的记忆能力是不可或缺的一部分。目前,有多种方法可以让AI应用具备记忆功能,其中一种是仿照人脑记忆原理,给大模型添加显式记忆。人类的记忆大致可以分为三部分:显式记忆、隐式记忆、外部信息。其中显式记忆可以主动回忆的长期记忆,比如读过的文章,获取显式记忆很容易,但提取时需要一定的回忆过程。隐式记忆是无意识使用的长期记忆,比如骑自行车的技能,获取隐式记忆需要大量重复练习,但使用时毫不费力。可以看出,两种记忆形式在获取和使用的效率上形成了鲜明的互补。

对于大模型而言,其“长期记忆”存储在模型的参数中,短期记忆则体现为模型一次对话中可回忆起的上下文长度的context。例如GPT-4的context是128k,这相当于可一次性输入10万汉字左右。大模型的短期记忆和长期记忆的使用场景如下:

  • 短期记忆
    • 多轮对话场景
### LSTM与CNN结合的Python实现 #### 模型架构介绍 LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN),能够学习长期依赖关系,在处理预测时间序列方面表现出色。而CNN(Convolutional Neural Network)擅长于提取局部特征,尤其适合图像数据上的操作。当两者结合起来时,则可以发挥各自的优势来解决复杂的问题。 对于时间序列分析而言,先利用一维卷积层捕捉输入信号中的短周期模式;再通过双向或多层堆叠的方式引入LSTM单元去建模更长时间跨度内的动态变化规律[^1]。 #### Keras框架下的具体编码实例 下面给出一段基于Keras库构建并编译一个简单版本的CNN-LSTM混合模型用于回归任务(如空气质量指数AQI预测): ```python from keras.models import Model from keras.layers import Input, Dropout, Conv1D, MaxPooling1D, LSTM, Dense def create_cnn_lstm_model(input_shape, lstm_units): # 定义输入张量形状 inputs = Input(shape=input_shape) # 添加Dropout防止过拟合 drop_layer = Dropout(rate=0.25)(inputs) # 卷积层配置参数 conv_layer = Conv1D(filters=10, kernel_size=1, strides=1, padding="valid", dilation_rate=1)(drop_layer) pool_layer = MaxPooling1D()(conv_layer) # 长短期记忆层设置 lstm_layer = LSTM(units=lstm_units)(pool_layer) # 输出层定义 output_layer = Dense(1, activation='linear')(lstm_layer) # 构造最终模型对象 model = Model(inputs=[inputs], outputs=[output_layer]) return model if __name__ == "__main__": input_dim = (None, 3) # 假设每条记录有三个属性值 units_num = 50 # LSTM隐藏状态数量 cnn_lstm_net = create_cnn_lstm_model(input_dim, units_num) cnn_lstm_net.compile(optimizer='adam', loss='mse') cnn_lstm_net.summary() ``` 此段代码展示了如何创建一个基础版的一维卷积加单向长短期记忆网络结构,并完成了对其初始化权重以及损失函数的选择工作。值得注意的是这里采用均方误差作为评估指标,适用于连续数值类型的输出场景[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值