Skip to content

ghosthamlet/gpt2-ml-torch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2020.12.13 更新微调代码,使用方法见代码内文档:https://github.com/ghosthamlet/gpt2-ml-torch/blob/master/finetune_lm.py

gpt2-ml的pytorch版本预训练模型下载及转换和运用。

运行环境:

在Ubuntu 16.10,Python 3.6.10,Transformers 3.1.0,Pytorch 1.4.0(cuda 10.2)和Tensorflow 1.14.0(转换时才需要)环境测试通过,其他环境未测试,如有需要,大家自己稍作修改modeling_gpt2.py应该就能运行。

模型下载:

注意:带-tf后缀的文件夹是原tensorflow模型,不要下错了

带-bert-tok和-clue-tok的文件夹分别为15G语料和30G语料训练得模型

15G语料模型的对话生成比30G的质量更高,30G语料模型的文章生成(包括诗词)质量更佳

下载后放入 models/ 目录,其中有部分文件和百度云重复,直接覆盖即可

百度下载不会自动检查完整性,下载完请对比sha256值:

mega-bert-tok/pytorch_model.bin

f82940073239a24d17d3d9b549b0671773d9dccc06284fd872ee121831271131

mega-clue-tok/pytorch_model.bin

971f187fd72dc6bea547259daa92b2b5e73732825cc49b82c2d34bc20e39460d

mega-bert-tok-tf/model.ckpt-100000.data-00000-of-00001

4a6e5124df8db7ac2bdd902e6191b807a6983a7f5d09fb10ce011f9a073b183e

mega-clue-tok-tf/model.ckpt-220000.data-00000-of-00001

e698cc97a7f5f706f84f58bb469d614e51d3c0ce5f9ab9bf77e01e3fcb41d482

百度云盘链接: https://pan.baidu.com/s/16tL4Bmoh6jPy0cOND0YyeA 提取码: 84dh

安装:

git clone https://github.com/ghosthamlet/gpt2-ml-torch.git

需转换功能请先修改requirements.txt启用Tensorflow

如之前没有安装上面运行环境提到的依赖:

pip install -r requirements.txt

如需要自己转换Pytorch模型,先在上面的模型下载板块下载-tf后缀的文件夹:

默认是15G语料模型,可通过--model_path指定输出模型目录,--model_tf指定tensorflow模型目录和文件前缀,--config_tf指定tensorflow模型配置文件,此配置文件需从上面的下载板块下载,查看gpt2_ml_torch/config.py

python gpt2_ml_torch/convert.py
生成的pytorch模型在models/ 目录中与tensorflow模型同名但无-tf后缀的文件夹内

生成文字:

默认是15G语料模型,可通过--model_path指定模型目录

python gpt2_ml_torch/generate.py --prompt 宇宙的意义是 --max_len 300 --n_seq 3

  1. 宇宙的意义是 无 序 。 因 而 一 切 不 确 定 的 存 在 都 是 无 限 的 。 所 以 我 们 才 有 无 所 不 知 的 物 理 物 理 。 这 便 是 宇 宙 的 意 义 。 没 有 什 么 是 绝 对 的 或 者 完 全 的 。 也 没 有 任 何 >东 西 是 绝 对 的 。 我 们 都 是 普 通 人 , 我 们 也 都 存 在 其 他 的 知 识 , 我 们 也 存 在 宇 宙 的 全 部 面 向 , 所 有 东 西 都 可 以 被 称 为 是 宇 宙 的 一 部 分 , 只 是 在 以 上 内 容 的 框 架 之 下 >, 你 很 难 找 到 某 一 种 或 某 几 种 以 上 的 定 义 。 也 许 , 你 会 认 为 这 些 在 我 们 的 意 识 之 中 都 存 在 , 但 这 才 是 我 们 的 生 活 的 意 义 。 而 每 个 人 的 意 识 之 中 , 都 是 有 自 己 的 意 >识 , 也 就 是 在 相 对 稳 定 的 意 识 之 中 。 而 生 活 在 相 对 稳 定 的 意 识 之 中 的 人 , 就 像 一 个 生 活 在 恒 久 不 变 的 行 星 里 的 人 , 是 无 法 真 的 发 觉 任 何 东 西 的 。 那 么 我 们 还 有 什 >么 呢 ?
  2. 宇宙的意义是 什 么 ? 天 文 学 的 意 义 在 哪 里 ? 首 先 宇 宙 的 本 质 是 什 么 ? 宇 宙 不 是 某 种 科 学 理 论 的 预 言 , 然 而 它 确 实 是 一 种 认 知 的 认 知 。 如 果 要 说 宇 宙 是 什 么 , 那 >宇 宙 就 是 一 堵 无 法 逾 越 的 墙 , 一 个 可 能 性 , 一 个 认 知 的 概 念 。 它 就 是 那 个 能 够 被 你 认 知 和 预 测 的 对 象 。 宇 宙 之 外 的 一 切 如 同 空 旷 的 存 在 者 , 任 何 认 识 都 只 能 是 你 >所 说 的 确 定 , 而 无 法 永 恒 。 在 这 个 可 能 性 下 , 人 的 认 知 不 再 是 确 实 , 而 是 可 知 。 如 果 说 宇 宙 是 一 个 概 念 , 它 确 实 存 在 于 这 个 世 界 , 它 存 在 的 意 义 之 一 也 是 这 个 世 >界 不 再 仅 仅 是 一 个 概 念 , 它 存 在 的 意 义 也 是 我 们 生 活 的 概 念 , 比 如 它 可 以 是 我 们 认 知 世 界 的 认 知 方 式 。 我 认 为 它 与 我 们 的 生 活 就 密 不 可 分 , 有 着 它 独 有 的 个 性。
  3. 宇宙的意义是 在 一 个 特 殊 的 时 间 , 通 过 无 数 的 小 行 星 在 不 同 的 位 置 相 遇 , 让 人 类 对 这 个 世 界 的 理 解 由 地 球 变 成 了 太 阳 系 。 可 以 说 是 一 场 史 无 前 例 的 太 空 旅 行 , >大 家 认 识 的 好 多 事 物 , 其 实 都 不 过 是 太 阳 系 的 小 分 子 结 构 , 只 是 因 为 太 阳 系 还 处 在 星 际 时 代 的 前 期 , 就 像 一 团 无 数 星 际 尘 埃 , 一 瞬 间 被 发 现 , 成 为 了 宇 宙 的 大 创 >世 神 。 很 多 人 看 过 地 心 说 , 也 知 道 银 河 系 与 其 他 行 星 相 比 , 不 过 是 个 几 亿 岁 的 小 神 经 , 但 是 , 这 个 不 是 宇 宙 的 全 体 , 大 爆 炸 之 后 , 如 果 没 有 外 围 的 引 力 , 银 河 系 >就 没 有 什 么 力 量 了 。 地 心 说 主 张 的 就 是 这 个 观 念 , 地 心 说 是 一 个 最 强 的 、 最 正 统 的 理 论 体 系 , 被 称 作 上 帝 的 一 切 智 慧 , 它 从 宇 宙 起 源 出 发 , 到 发 现 一 个 行 星 为 止 >, 没 有 说 过 以 后 就 可 以 毁 灭 任 何 一 个 行 星 了 。

python gpt2_ml_torch/generate.py --prompt 宇宙的意义是 --max_len 300 --n_seq 3 --model_path ./models/mega-clue-tok/

  1. 宇宙的意义是 什 么 , 科 研 工 作 者 们 还 在 为 找 不 到 答 案 而 苦 恼 , 我 们 这 些 生 活 在 地 球 上 的 人 就 先 忙 着 干 活 吧 , 等 有 一 天 科 学 家 们 可 以 给 我 们 一 个 回 答 让 我 们 在 有 生 之 年 可 以 得 到 圆 满 的 答 案 。 人 生 而 为 人 , 为 什 么 非 要 有 什 么 意 义 好 的 一 个 文 化 与 思 想 的 传 承 应 该 是 “ 无 意 义 ” 或 者 说 “ 无 中 心 思 想 ” , 就 像 我 小 时 候 经 常 问 我 妈 妈 : “ 长 大 以 后 到 底 有 什 么 用 ? ” 我 妈 给 的 回 答 是 : “ 长 大 以 后 不 一 定 有 人 用 心 珍 惜 你 , 没 有 人 因 为 你 长 大 了 , 就 会 多 珍 惜 你 几 回 。 你 长 大 了 , 如 果 不 珍 惜 , 长 大 了 也 许 就 会 忘 记 这 个 事 情 了 , 长 大 了 也 许 就 不 在 是 我 们 记 忆 中 的 那 个 样 子 了 。 ” “ 这 种 意 义 , 没 必 要 问 。 ” 宇 宙 的 意 义 就 是 : 我 不 知 道 宇 宙 的 意 义 到 底 是 什 么 。 我 只 知 道 我 现 在 的 人 生 意 义 。
  2. 宇宙的意义是 什 么 ? 如 果 宇 宙 是 一 个 大 型 的 黑 洞 , 这 个 黑 洞 里 面 又 有 无 限 多 的 恒 星 呢 ? 如 果 太 阳 、 月 亮 不 止 和 地 球 这 样 一 个 大 星 球 生 命 在 一 起 , 它 们 甚 至 可 以 穿 梭 行 驶 无 数 光 年 , 多 出 来 的 恒 星 星 球 也 可 以 被 大 气 层 吞 噬 呢 ? 如 果 所 有 物 质 只 存 在 一 个 星 球 , 它 们 会 不 会 都 被 一 种 无 形 的 力 量 吸 收 掉 ? 如 果 其 他 星 球 上 有 文 明 , 并 且 他 们 能 制 止 地 球 上 的 所 有 物 体 穿 越 太 阳 系 呢 ? 那 些 星 系 中 的 星 星 为 什 么 都 是 以 超 光 速 的 超 新 星 爆 炸 形 式 存 在 ? 如 果 所 有 星 球 都 以 原 子 的 形 式 存 在 , 它 们 也 会 互 相 吸 引 吗 ? 只 要 想 一 想 , 宇 宙 中 还 有 地 球 这 样 一 个 星 球 存 在 , 并 且 有 人 能 制 造 出 那 样 的 一 个 物 质 世 界 的 宇 宙 , 我 们 在 这 个 宇 宙 里 的 存 在 也 就 毫 无 意 义 。 但 如 果 是 在 黑 洞 里 , 那 宇 宙 还 有 意 义 吗 ? 所 谓 真 善 美
  3. 宇宙的意义是 什 么 ? 我 们 有 这 样 的 疑 问 , 这 可 能 是 因 为 我 们 的 人 生 经 历 还 没 有 让 我 们 真 正 清 楚 意 义 是 什 么 。 有 些 人 很 可 能 因 为 经 历 少 , 没 有 什 么 意 义 感 。 有 些 人 可 能 也 不 能 直 接 证 明 意 义 的 存 在 。 所 以 才 会 质 疑 自 己 的 人 生 意 义 何 在 ? 不 一 样 的 经 历 , 造 成 不 一 样 的 思 维 和 生 活 。 我 们 通 常 认 同 这 样 一 种 观 点 , 也 是 我 们 普 遍 认 同 的 人 生 价 值 。 人 生 没 有 什 么 意 义 , 但 是 要 有 意 义 。 因 为 你 还 有 老 婆 孩 子 亲 人 , 为 了 这 些 意 义 , 让 自 己 的 人 生 意 义 更 美 好 , 或 者 让 未 来 更 美 好 , 总 会 有 意 义 吧 。 那 么 意 义 究 竟 是 什 么 呢 ? 让 我 们 先 想 一 个 问 题 , 关 于 意 义 。 我 们 知 不 知 道 人 生 意 义 是 什 么 ? 很 多 人 自 认 为 人 生 的 意 义 是 做 出 好 的 选 择 , 想 清 楚 自 己 真 正 的 所 求 。 也 许 没 有 对 的 答 案 , 因 人 而 异 , 或 者 每 个 人 的

python gpt2_ml_torch/generate.py --prompt "【上联】悠悠柳岸落红霞 【下联】" --max_len 100 --n_seq 3

  1. 【上联】悠悠柳岸落红霞 【下联】 思 无 邪 松 烟 绿 水 悠 悠 , 柳 岸 落 红 。 红 雨 过 后 , 湖 光 山 色 依 然 碧 蓝 , 美 丽 的 湖 光 山 色 中 , 三 月 桃 花 漫 山 遍 野 开 放 , 湖 上 人 们 静 静 诉 说 着 传 说 中 的 樱 花 雨 , 湖 面 泛 起 水 , 柳 堤 上 散 落 着 樱 花 树 。
  2. 【上联】悠悠柳岸落红霞 【下联】 万 里 莺 莺 啼 尽 红 尘 , 山 河 倒 影 入 斜 阳 。 谁 能 凭 一 身 诗 意 把 灵 魂 纳 进 诗 篇 , 谁 就 成 功 的 成 为 了 一 个 传 奇 ! 古 人 不 乏 美 女 , 而 她 们 更 能 让 你 看 懂 人 生 , 看 透 世 道 , 体 会 人 情 。
  3. 【上联】悠悠柳岸落红霞 【下联】 苍 山 淡 墨 写 婵 娟 【 横 批 】 悠 悠 的 柳 岸 , 一 弯 秋 水 , 淡 淡 的 绿 红 。 出 自 《 三 朝 北 盟 会 编 · 章 文 正 公 奇 幻 世 界 》 【 开 本 】 长 安 书 帖 【 序 >言 】 不 仅 我 们 生 活 在 一 个 多 元 化 的 时 代 , 许 多 人 也 已 是 多 元 的。

python gpt2_ml_torch/generate.py --prompt "【上联】悠悠柳岸落红霞 【下联】" --max_len 100 --n_seq 3 --model_path ./models/mega-clue-tok/

  1. 【上联】悠悠柳岸落红霞 【下联】 秋 风 萧 里 惊 银 杏 【 横 批 】 柳 岸 黄 花 花 【 评 语 】 写 景 之 诗 , 写 物 之 诗 , 写 情 之 诗 , 写 思 之 诗 , 写 言 之 诗 , 写 意 之 诗 最 能 体 现 柳 永 才 气 。 柳 永 的 词 格 调 非 常 平 , 非 常 雅 , 非 常 华 丽 !
  2. 【上联】悠悠柳岸落红霞 【下联】 飘 飘 秋 风 扫 落 叶 【 横 批 】 一 江 春 水 【 上 联 】 风 吹 江 南 烟 雾 起 【 下 联 】 雨 洗 秋 风 落 叶 飘 【 横 批 】 大 地 湖 心 【 上 联 】 江 水 潺 潺 碧 波 平 【 下 联 】 秋 风 吹 起 漫 江 雨 ( 云 ) 【 横 批 】 天 空 湖 心
  3. 【上联】悠悠柳岸落红霞 【下联】 飞 飘 山 脚 惊 风 雨 【 横 批 】 云 来 风 往 【 答 案 】 风 来 云 去 自 然 界 中 有 风 、 云 、 雨 相 依 相 偎 、 风 来 雨 降 , 云 归 风 散 ; 不 同 的 天 气 有 不 同 的 雨 势 和 风 力 , 形 成 风 、 云 、 雨 的 相 依 相 偎 、 风 来 云 动 、 云 归 风

python gpt2_ml_torch/generate.py --prompt "刘梅和李丽是好朋友,她们正在讨论吃饭的问题。[刘梅] 中午去哪里吃? [李丽] 吃麦当劳怎么样? [刘梅]" --max_len 200 --n_seq 1

  1. 刘梅和李丽是好朋友,她们正在讨论吃饭的问题。[刘梅] 中午去哪里吃? [李丽] 吃麦当劳怎么样? [刘梅] 汉 堡 包 比 较 合 口 味 , 还 是 炸 鸡 腿 堡 更 合 口 味 ? [ 刘 梅 ] 在 哪 里 吃 ? [ 李 丽 ] 在 中 国 >菜 网 订 餐 , 可 以 享 受 汉 堡 和 炸 鸡 腿 堡 的 优 惠 , 汉 堡 包 的 价 格 比 炸 鸡 腿 堡 要 低 , 如 果 你 的 汉 堡 夹 着 炸 鸡 肉 的 话 , 会 更 合 口 味 。 [ 刘 梅 ] 那 李 丽 是 做 什 么 的 ? [ 李 丽 ] 我 们 是 一 个 餐 饮 网 站 、 厨 师 培 训 、 淘 宝 运 营 团 队 。 ( 刘 梅 ) 如 果 您 是 想 了 解 食 品 行 业 的 信 息 , 请 关 注。

python gpt2_ml_torch/generate.py --prompt "刘梅和李丽是好朋友,她们正在讨论吃饭的问题。[刘梅] 中午去哪里吃? [李丽] 吃麦当劳怎么样? [刘梅]" --max_len 200 --n_seq 1 --model_path ./models/mega-clue-tok/

  1. 刘梅和李丽是好朋友,她们正在讨论吃饭的问题。[刘梅] 中午去哪里吃? [李丽] 吃麦当劳怎么样? [刘梅] 对 , 我 们 去 麦 当 劳 好 不 好 ? [ 李 丽 ] 那 里 很 远 , 有 高 速 路 堵 塞 。 [ 刘 梅 ] 有 高 速 路 堵 塞 是 什 么 意 思 ? [ 李 丽 ] 我 可 以 理 解 成 你 们 这 是 文 化 差 异 吗 ? [ 李 丽 ] 我 觉 得 你 们 看 了 一 些 文 章 啊 。 [ 刘 梅 ] 那 我 就 理 解 成 你 们 的 想 法 是 不 同 的 意 思 , 我 觉 得 没 有 问 题 。 [ 李 丽 ] 没 别 的 意 思 , 就 是 这 样 。 [ 刘 梅 ] 那 我 们 是 不 是 可 以 改 成 吃 麦 当 劳 更 好 ?

调用:

from gpt2_ml_torch.config import MODEL_PATH

from gpt2_ml_torch.generate import generate

print(generate(prompt='中国人', model_path=MODEL_PATH, n_seq=1, max_len=100, no_gpu=False))

[{'generated_text': '中国人 对 所 有 文 化 都 喜 欢 分 个 好 恶 高 下 : 如 果 中 国 人 很 喜 欢 韩 流 , 那 韩 娱 的 受 众 肯 定 不 会 特 别 喜 欢 这 种 类 型 的 韩 国 综 艺 。 中 国 人 很 喜 欢 美 剧 , 美 剧 和 韩 剧 的 受 众 都 不 会 特 别 喜 欢 这 种 类 型 的 美 剧 。 中 国 人 看 日 本 电 影 对 美 妆 都 不 懂 ,'}]

print(generate(prompt='中国人', model_path='./models/mega-clue-tok/', n_seq=1, max_len=100, no_gpu=False))

[{'generated_text': '中国人 的 智 商 是 在 变 高 , 变 聪 明 , 但 却 达 不 到 西 方 国 家 的 文 化 高 度 。 为 什 么 ? 因 为 中 国 文 化 注 重 的 是 思 维 , 注 重 的 是 过 程 , 注 重 的 是 结 果 的 优 越 性 , 而 这 些 在 西 方 没 有 那 么 重 视 。 西 方 注 重 的 是 想 象 力 , 是 直 觉 。 思 维 是 为 了 想 象 ,'}]

Releases

No releases published

Packages

No packages published

Languages