获得徽章 0
1986年,BP算法的引入虽然给神经网络带来短暂的复兴,但彼时多层感知机(MLP)只有输入层,隐藏层,输出层三层。主要是由于梯度消失和梯度爆炸问题,导致加更多层数无法训练。
1990年,SVM为代表的传统机器学习的强势崛起,性能和效果碾压神经网络,并且有精密的数理基础做支撑。神经网络再度进入至暗时刻。
2006年,Hinton首次提出来深度学习的概念,用来摆脱早已被污名化的神经网络一词。技术上首次引入了无监督学习预训练+有监督学习微调的方法,缓解多层神经网络的训练问题。
2012年,Hinton的学生在ImageNet大赛中异军突起,神经网络终于登堂入室,开启了名为深度学习的新纪元。
#挑战每日一条沸点#
展开
评论
1958年感知机(Perceptron)的出现,成为神经网络历史上第一个可训练并进行模式识别的模型。
1969年感知机被发现无法解决非线性问题(比如XOR)。
彼时大家都知道引入非线性函数并且让感知机变成多层,可以在理论上解决这个问题。但是当时这种模型无法训练。
1986年Hinton等人在神经网络中推广反向传播(BP)算法,并引入了Sigmoid等平滑可微的非线性函数,解决了多层感知机(MLP)的训练问题。
展开
评论
#挑战每日一条沸点# vllm启动的时候可以设置--max-model-len参数,限制输入的prompt的token长度,对于超过限制的直接拒绝处理,因为可能有显存爆掉的风险。

如果vllm在启动的时候没有设置--max-model-len,vllm会读取模型config.json中max_position_embeddings参数作为max-model-len的值,max_position_embeddings表示的是模型训练的时候支持的位置编码的最大长度。所以vllm如果设置的--max-model-len大于config.json的max_position_embeddings直接启动失败。
展开
1
sglang使用tp的时候,要设置两个环境变量GLOO_SOCKET_IFNAME和NCCL_SOCKET_IFNAME,比如:
export GLOO_SOCKET_IFNAME=eth0
export NCCL_SOCKET_IFNAME=eth0
Gloo是CPU通信库,NCCL是Nvidia GPU的通信库。
而vllm的tp不需要设置这个,因为vllm的tp只能是单节点(机器)内的tp,sglang的tp可以跨节点。
展开
评论
初学者一个常见的误解是以为transformers或者vllm的模型对象调用generate方法是做一次forward…其实是N次,一次forward一会生成一个token,generate会生成多个token直到生成完毕或者达到最大token数限制
评论
serve run app.yml --runtime-env-json='{"env_vars": {"ABC": "xxxx"}}'

如果ray serve除了可以通过yaml中注册环境变量,也可以像上面这样在运行时注册环境变量,对于一些偏动态的数据,这样设置环境变量更方便。当和yaml内环境变量同名的时候以yaml为准
展开
评论
FlashAttention 这一性能优化技术主要用在推理时候的prefill阶段和训练时候的整个forward阶段。
1
vllm有served-model-name参数,设置模型名。sglang无类似参数,默认模型名是default。说实话vllm其实也太不需要提供设置模型名的功能,因为一个端口只有一个模型在在提供服务,又不会出现单端口多模型
2
Twitter开源时间线推荐架构整理
评论
下一页
个人成就
文章被点赞 119
文章被阅读 41,925
掘力值 1,261
收藏集
0
关注标签
27
加入于