赞
踩
torchrun分布式启动,所以要想在云端的环境下在本地的IDE上debug,需要设置一下,具体可以参考这里,需要传入的路径参数全部使用绝对路径。
目录
即prompts,实例中的如下所示
['I believe the meaning of life is', 'Simply put, the theory of relativity states that ', 'A brief message congratulating the team on the launch:\n\n Hi everyone,\n \n I just ', 'Translate English to French:\n \n sea otter => loutre de mer\n peppermint => menthe poivrée\n plush girafe => girafe peluche\n cheese =>']
示例如下
- # 传入
- 'I believe the meaning of life is'
-
- # tokenizer
- [306, 4658, 278, 6593, 310, 2834, 338]
-
- # 加入bos后
- [1, 306, 4658, 278, 6593, 310, 2834, 338]
- # 传入
- 'Simply put, the theory of relativity states that '
-
- #
- [3439, 17632, 1925, 29892, 278, 6368, 310, 14215, 537, 5922, 393, 29871]
-
- #
- [1, 3439, 17632, 1925, 29892, 278, 6368, 310, 14215, 537, 5922, 393, 29871]
每个句子都被tokenizer用向量来表示。不过发现并不是逐词对应一个编码,有的对应了两个。其实这就涉及了sentencepiece的原理,见这里。由于兴趣使然,继续探索了一下
- 'I believe the meaning of life is'
- [306, 4658, 278, 6593, 310, 2834, 338]
- 'I believe, the meaning of life is '
- [306, 4658, 29892, 278, 6593, 310, 2834, 338, 29871]
嗯,可以确定除了单词外,标点符号和空格也算做句子的一个部分。
- 'Simply' >> [3439, 17632]
- 'simply' >>[3763]
-
- 'Big' >>[7997]
- 'big' >>[4802]
-
不再继续探索了,详细的去查看sentencepiece原理,以及字节对编码 (BPE) (byte-pair-encoding (BPE))
1、RSMNorm
一种标准化方法,详见这里
2、注意力运算
transformer decoder,应用掩码mask,主要的是采用RoPE位置编码方式,见这里
至于transformer的结构,见这里这里,不再详细赘述。
注意力运算方式采用GQA方式(Group Query Attention),至于相关的MHA,MQA的原理详见这里
3、FeedForward
前向传播过程
主要是有个并行相乘的过程,激活函数采用 SiLU。
关于 sentencepiece的探讨
以下面文档为例训练了一下,其中包括中文和英文
- 一、一些注意事项
- 1.opencv默认读取的格式是BGR,也就是三通道的顺序。
- 2.而用matplotlib画的图是RGB的,所以其跟用opencv画的图颜色不太一样。
- cv2.waitKey(0)表示按键盘任意键后,显示的图片会消失。
- 如果cv2.waitKey(1000),则等1000ms后显示的图片自动消失。
- b,g,r三通道按顺序依次来。每个通道的形状都是一样的。b,g,r依次对应通道0,1,2,所以可以对其进行按通道处理,
- 即只保留其中的一个通道,使其它通道为全为0。
- 注:图中的cv_show为一个自定义的函数。这就是对这个图像矩阵进行切片操作一样。
- 填充位置:上、下、左、右依次对应top_size,bottom_size,left_size,right_size
- cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
- 加个常数,矩阵的每个位置都加10。
- 其最大只能表示255,所以加和后的数为除256取余。
- 两个同型图片或者加个同型矩阵,表示为对应位置加和。其最大只能表示
- 3月11日下午三点半左右
- 菜鸟网络青岛即墨园区附近
-
- 一辆面包车发生交通事故
-
- 车头内凹受损严重
-
- 不明液体泄漏一地
-
- 驾驶员被困车内
-
- 此时
-
- 路过的多位热心人急伸援手
-
- 维持现场秩序
-
- 并及时找来工具砸车玻璃救人
-
- 不到十分钟
-
- 被困驾驶员便被救出
-
- 视频上传网络后
-
- 引发网友热议点赞
-
- 3月12日上午
-
- 记者联系到
-
- 参与救人的隋向坤等人
-
- 了解了当时
-
- 惊险又温暖的事发经过
- 网传:砸玻璃救被困司机现场视频热传获赞
-
- “我们一起把这个人救出来了,安全驾驶!”3月11日下午,网友“@TOP8小龙虾大闸蟹”发布视频,记录了其参与的一起马路救援。
-
- 网传视频时长17秒,在视频中,一辆面包车侧翻在马路上,周围洒落了很多撞击碎片和不明液体,面包车车头受损严重,凹陷进去一大块,一名白衣男子拿着一个工具,在砸前风挡玻璃。
-
- 很快,前风挡玻璃被砸开一个洞,车内的司机从驾驶室钻了出来。
-
- 从视频来看,尽管面包车已经面目全非,但是车内人员似乎受伤并不严重。
-
- 视频一经发布,立即引发广大网友的关注和热议。
-
- “车被撞成这样,即使车里的人没事,也要第一时间救人,因为车辆有自燃的可能,一旦发生起火,后果不堪设想。”
-
- “出门在外,一定要安全驾驶,带上平安上路,载着幸福回家。”
-
- “为这些及时伸出援手的热心人点赞。”
-
- 记者注意到,在视频下的留言中,除了点赞和安全提醒,还有网友“曝光”了白衣男子的身份,“救人的这个人叫隋向坤”“即墨移风店七级社区后吕村的”。
- 月12日上午,记者辗转联系到了隋向坤,他介绍了当时的现场情况。“当时我们开车沿着北赵线行驶,当经过菜鸟网络青岛即墨园区附近时,发现路中间有一辆
- 面包车侧翻了。当时没想太多,我们抓紧时间停车,跑过去看看有没有人员受伤。过去后,
- 发现车内有个司机被困在驾驶室,他自己出不来,当时我和朋友一起,三个人抓紧想办法救人。”隋向坤说。
得到的词汇表结果如下
- <unk> 0
- <s> 0
- </s> 0
- , -2.70614
- ▁ -3.29977
- 。 -3.735
- 的 -3.88153
- t -4.52595
- _ -4.55706
- 1 -4.66518
- 了 -4.66623
- 一 -4.72225
- size -4.79318
- 为 -4.93599
- 后 -4.93599
- 车 -5.10193
- 有 -5.10267
- i -5.10269
- “ -5.26253
- ” -5.27607
- e -5.30048
- 其 -5.30267
- 上 -5.30268
- cv -5.30269
- R -5.3027
- g -5.3027
- m -5.30271
- 2. -5.30308
- 来 -5.36046
- b -5.42288
- 视频 -5.50133
- 不 -5.50318
- 在 -5.54744
- 和 -5.55094
- 网友 -5.55265
- 事 -5.55266
- 砸 -5.55266
- 隋向坤 -5.55267
- 被困 -5.55267
- a -5.55267
- 月 -5.55267
- 自 -5.55267
- 是 -5.55269
- B -5.55269
- r -5.55269
- y -5.55269
- l -5.5527
- 、 -5.55272
- 车内 -5.55382
- 通道 -5.57373
- 。” -5.5878
- 一个 -5.60327
- ▁“ -5.60654
- 中 -5.85697
- 出 -5.87985
- 人 -5.88318
- 这 -5.88391
- 时 -5.88421
- 2 -5.88449
- 被 -5.88597
- 即 -5.88597
- 3 -5.88599
- 大 -5.886
- 数 -5.886
- 矩阵 -5.886
- 没 -5.886
- 司机 -5.886
- 我们 -5.886
- 所以 -5.88601
- 现场 -5.88601
- h -5.88601
- w -5.88601
- 想 -5.88601
- 着 -5.88601
- : -5.88602
- 多 -5.88602
- 看 -5.88602
- 路 -5.88602
- E -5.88602
- 位置 -5.88602
- 按 -5.88602
- ( -5.88603
- T -5.88603
- 点赞 -5.88616
- 一样 -5.88848
- 一起 -5.88892
- op -5.97992
- to -6.2533
- 救人 -6.35325
- 三 -6.35584
- 0 -6.36683
- 当时 -6.37716
- 加 -6.38142
- 图 -6.38303
- 片 -6.38306
- ) -6.38325
- 面包车 -6.38459
- 全 -6.38492
- 经 -6.38519
- 注 -6.38519
- 使 -6.38596
- ▁网传 -6.38598
- 也 -6.38598
- 发生 -6.38598
- 安全驾驶 -6.38598
- 撞 -6.38598
- 日下午 -6.38598
- 白衣男子 -6.38598
- 要 -6.38598
- 工具 -6.38598
- 个同型 -6.38599
- 果 -6.38599
- 除 -6.38599
- 传 -6.386
- 伸 -6.386
- 到 -6.386
- 取 -6.386
- 可 -6.386
- 失 -6.386
- 定 -6.386
- 对 -6.386
- 并 -6.386
- 留 -6.386
- 些 -6.386
- 从 -6.38601
- 太 -6.38601
- 都 -6.38601
- 很 -6.38601
- G -6.38602
- K -6.38602
- O -6.38602
- s -6.38602
- 凹 -6.38602
- 消 -6.38602
- 用 -6.38602
- 等 -6.38602
- 键 -6.38602
- 他 -6.38603
- 右 -6.38603
- 开 -6.38603
- P -6.38604
- 下 -6.38604
- 左 -6.38604
- f -6.38605
- 救 -7.01003
- p -7.05187
- o -7.36039
- 个 -7.36221
- 辆 -7.37107
- 起 -7.37386
- 样 -7.37563
- 内 -7.37937
- 当 -7.38203
- 5 -7.38255
- 间 -7.38261
- . -7.38308
- 过 -7.38316
- 安 -7.38323
- 意 -7.38397
- 者 -7.38498
- 记 -7.385
- 去 -7.38528
- 行 -7.38529
- 进 -7.38529
- 点 -7.38531
- 赞 -7.38531
- 成 -7.3859
- ! -7.38595
- 7 -7.38595
- 七 -7.38595
- 份 -7.38595
- 光 -7.38595
- 叫 -7.38595
- 因 -7.38595
- 堪 -7.38595
- 店 -7.38595
- 把 -7.38595
- 曝 -7.38595
- 火 -7.38595
- 社 -7.38595
- 秒 -7.38595
- 移 -7.38595
- 第 -7.38595
- 级 -7.38595
- 蟹 -7.38595
- 设 -7.38595
- 身 -7.38595
- 还 -7.38595
- 醒 -7.38595
- 里 -7.38595
- 长 -7.38595
- 闸 -7.38595
- 风 -7.38595
- 家 -7.38597
- 快 -7.38597
- 6 -7.38599
- 两 -7.38599
- 保 -7.38599
- 只 -7.38599
- 广 -7.38599
- 或 -7.38599
- 立 -7.38599
- 持 -7.38599
- 8 -7.386
- @ -7.386
- M -7.386
- c -7.386
- 义 -7.386
- 交 -7.386
- 以 -7.386
- 位 -7.386
- 余 -7.386
- 作 -7.386
- 便 -7.386
- 像 -7.386
- 关 -7.386
- 函 -7.386
- 分 -7.386
- 切 -7.386
- 区 -7.386
- 十 -7.386
- 半 -7.386
- 吕 -7.386
- 周 -7.386
- 回 -7.386
- 围 -7.386
- 地 -7.386
- 外 -7.386
- 它 -7.386
- 小 -7.386
- 带 -7.386
- 常 -7.386
- 平 -7.386
- 幸 -7.386
- 序 -7.386
- 式 -7.386
- 录 -7.386
- 急 -7.386
- 找 -7.386
- 拿 -7.386
- 提 -7.386
- 援 -7.386
- 操 -7.386
- 故 -7.386
- 旦 -7.386
- 村 -7.386
- 格 -7.386
- 此 -7.386
- 泄 -7.386
- 洒 -7.386
- 洞 -7.386
- 漏 -7.386
- 热 -7.386
- 燃 -7.386
- 理 -7.386
- 福 -7.386
- 秩 -7.386
- 维 -7.386
- 而 -7.386
- 能 -7.386
- 色 -7.386
- 获 -7.386
- 落 -7.386
- 虾 -7.386
- 解 -7.386
- 言 -7.386
- 认 -7.386
- 说 -7.386
- 读 -7.386
- 通 -7.386
- 钟 -7.386
- 钻 -7.386
- 项 -7.386
- 颜 -7.386
- 龙 -7.386
- 又 -7.386
- 发 -7.386
- 暖 -7.386
- 温 -7.386
- 险 -7.386
- 惊 -7.38601
- 默 -7.38601
- 乎 -7.38602
- 任 -7.38602
- 会 -7.38602
- 似 -7.38602
- 但 -7.38602
- 办 -7.38602
- 动 -7.38602
- 友 -7.38602
- 处 -7.38602
- 如 -7.38602
- 尽 -7.38602
- 己 -7.38602
- 已 -7.38602
- 朋 -7.38602
- 法 -7.38602
- 盘 -7.38602
- 目 -7.38602
- 管 -7.38602
- 载 -7.38602
- 门 -7.38602
- 非 -7.38602
- 面 -7.38602
- A -7.38605
- C -7.38605
- D -7.38605
- k -7.38605
- 介 -7.38605
- 停 -7.38605
- 况 -7.38605
- 击 -7.38605
- 则 -7.38605
- 北 -7.38605
- 名 -7.38605
- 块 -7.38605
- 形 -7.38605
- 情 -7.38605
- 沿 -7.38605
- 状 -7.38605
- 碎 -7.38605
- 绍 -7.38605
- 赵 -7.38605
- 跑 -7.38605
- 跟 -7.38605
- 转 -7.38605
- 辗 -7.38605
- 陷 -7.38605
- 驶 -7.38605
- 填 -7.38607
- = -7.3861
- I -7.3861
- L -7.3861
- 充 -7.3861
- 线 -7.3861
- 鸟 -8.1869
- 马 -8.187
- 顺 -8.1871
- 青 -8.1872
- 附 -8.1873
- 近 -8.1874
- 议 -8.1875
- 衣 -8.1876
- 菜 -8.1877
- 联 -8.1878
- 翻 -8.1879
- 紧 -8.188
- 系 -8.1881
- 白 -8.1882
- 画 -8.1883
- 男 -8.1884
- 生 -8.1885
- 液 -8.1886
- 每 -8.1887
- 最 -8.1888
- 显 -8.1889
- 明 -8.189
- 损 -8.1891
- 挡 -8.1892
- 抓 -8.1893
- 手 -8.1894
- 心 -8.1895
- 引 -8.1896
- 布 -8.1897
- 工 -8.1898
- 岛 -8.1899
- 就 -8.19
- 室 -8.1901
- 子 -8.1902
- 头 -8.1903
- 型 -8.1904
- 园 -8.1905
- 同 -8.1906
- 及 -8.1907
- 参 -8.1908
- 前 -8.1909
- 具 -8.191
- 侧 -8.1911
- 体 -8.1912
- 伤 -8.1913
- 与 -8.1914
- n -8.1915
- d -8.1916
- 阵 -8.1917
- 重 -8.1918
- 置 -8.1919
- 络 -8.192
- 矩 -8.1921
- 次 -8.1922
- 机 -8.1923
- 所 -8.1924
- 应 -8.1925
- 墨 -8.1926
- 场 -8.1927
- 司 -8.1928
- 依 -8.1929
- 们 -8.193
- 严 -8.1931
- 隋 -8.1932
- 表 -8.1933
- 璃 -8.1934
- 玻 -8.1935
- 日 -8.1936
- 我 -8.1937
- 坤 -8.1938
- 困 -8.1939
- 员 -8.194
- 向 -8.1941
- 受 -8.1942
- 午 -8.1943
- 现 -8.1944
- 包 -8.1945
- 驾 -8.1946
- 示 -8.1947
- 道 -8.1948
- v -8.1949
- 频 -8.195
- 视 -8.1951
- z -8.1952
- 网 -8.1953
进行了一下测试
- if __name__ == '__main__':
-
- model_path = '************/model_output/Chinese.model'
-
- s = spm.SentencePieceProcessor(model_file=model_path)
- mm = s.EncodeAsPieces('测试一下,看看什么情况')
- print(mm)
- print('==================')
- word = '测试一下,看看什么情况'
-
- tokenizer = Tokenizer(model_path)
- token=tokenizer.encode(word, bos=True, eos=False)
- print(token)
- print('==================')
- decode_token = tokenizer.decode(token)
- print(decode_token)
- # 得到的输出
-
- ['▁', '测试', '一', '下', ',', '看', '看', '什么', '情', '况']
- ==================
- [1, 4, 0, 11, 141, 3, 76, 76, 0, 317, 310]
- ==================
- ⁇ 一下,看看 ⁇ 情况
-
- Process finished with exit code 0
不在词汇表中的token在decode时会显示??,0代表的是unseen的。这说明这个词汇表的长度还是太小了。这只是各测试,看看其中的过程。
因为这只是测试,所以感觉没有什么太复杂的东西。真正的难点应该是训练的整体流程,需要克服许多困难。不过本次测试对llama也有了一定的了解,同时对大模型的一些使用的技术有了相关了解。(●ˇ∀ˇ●)
***
你看看现在哪有瓜啊,这都是大鹏的瓜,
***
model.args
ModelArgs(dim=4096, n_layers=32, n_heads=32, n_kv_heads=None, vocab_size=32000, multiple_of=256, ffn_dim_multiplier=None, norm_eps=1e-06, max_batch_size=4, max_seq_len=128)
- Transformer(
- (tok_embeddings): ParallelEmbedding()
- (layers): ModuleList(
- (0): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (1): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (2): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (3): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (4): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (5): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (6): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (7): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (8): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (9): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (10): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (11): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (12): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (13): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (14): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- (15): TransformerBlock(
- (attention): Attention(
- (wq): ColumnParallelLinear()
- (wk): ColumnParallelLinear()
- (wv): ColumnParallelLinear()
- (wo): RowParallelLinear()
- )
- (feed_forward): FeedForward(
- (w1): ColumnParallelLinear()
- (w2): RowParallelLinear()
- (w3): ColumnParallelLinear()
- )
- (attention_norm): RMSNorm()
- (ffn_norm): RMSNorm()
- )
- )
- (norm): RMSNorm()
- (output): ColumnParallelLinear()
- )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。