Giter Club home page Giter Club logo

chinese-ai-writing-share's Introduction

chinese-ai-writing-share

中文AI写作分享

03/2024 更新

  • Gemma-it的prompt需要特殊格式,注意这里的newline也是需要的,另外开头tokenizer会自动加<bos>,结尾我自己加上<eos>

    GEMMA_IT_FORMAT = """<start_of_turn>user
    {user_question}<end_of_turn>
    <start_of_turn>model
    """
    
    • 发现有更方便的封装,只是藏的比较深 😡
      chat = [
          { "role": "user", "content": "Write a hello world program" },
      ]
      prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
      
  • 尝试了Google的Gemma 7B + LoRA,效果还可以

  • 代码参考这里(不知为何同样int8比llama2 7b要很多memory)

  • LoRA ckpt下载 https://huggingface.co/hululuzhu/chinese-couplet-gemma-lora-test-v0.1

  • Before Training

    春风得意花铺路
    春风得意花铺路,春暖花开,美不胜
    美丽**魅力北京
    **美丽**魅力北京,令人惊叹的现代与传统
    鱼书千里梦
    鱼书千里梦,是一个关于爱慕和成长的小说
    日落晚霞临古寺
    夕暮暮色,日落缓缓西下,将天空渲染成 Varies
    
  • After Training for 10mins (significantly undertrained) using T4 GPU

    春风得意花铺路
    秋雨流派诗作韵<eos>
    美丽**魅力北京
    和谐社会和谐社会<eos>
    鱼书千里梦
    鸟歌百载歌<eos>
    日落晚霞临古寺
    月明清风送客船<eos>
    

12/2023 LLM更新

  • 百川7B + LoRA代码走通,希望1月底有空炼完后发布LoRA和大家一起完
    • A100 10分钟后的效果看起来有点意思
    标题: 作诗:冬雪 模仿:杜甫
    诗歌: 严陵滩上白蘋风,江北江南雪正浓。
    标题: 作诗:冬雪 模仿:苏轼
    诗歌: 梅花已报春消息,红蕊繁枝满院香。
    
  • 有资源的朋友可以看一下这个notebook
    • 注意调整IS_TEST_FLOW = True否则只有5%的数据用于微调

为方便写诗模型分享,T5写诗和对联模型都已上传至 HuggingFace

试玩

个人非常满意的个别案例

#### Mengzi T5 Finetune ####
上: 不待鸣钟已汗颜,重来试手竟何艰
下: 何堪击鼓频催泪?一别伤心更枉然
上: 北国风光,千里冰封,万里雪飘
下: 南疆气象,五湖浪涌,三江潮来

標題: 作诗:中秋
詩歌: 秋氣侵肌骨,寒光入鬢毛。雲收千里月,風送一帆高。
標題: 作诗:中秋 模仿:苏轼
詩歌: 月從海上生,照我庭下影。不知此何夕,但見天宇靜。

#### transformer supervised learning ####
上: 不待鸣钟已汗颜,重来试手竟何艰
下: 只缘沧海常风雨,再去翻身只等闲
上: 相思俱付三更月
下: 寂寞难留一夜风

标题: 秋思
正文: 秋风吹雨过,秋色满江城。一叶无人到,千山有客情。
标题: 湾区春日之谜
正文: 春风吹雨不成秋,春色如何一日休。不是春光无处着,只应春色是人愁。

声明

  • 基于主流transformer的业余水平语言模型实现,几小时见效,适合自娱自乐
  • 数据质量直接影响模型效果,模型也因为个人计算资源有限没有压榨性能极限,如模型有异常或低质量输出,请大家见谅
  • 2021 keras transformer Demo使用 topk=1
    • 04/2022: 很遗憾因为2021版的对联vocab被错误覆盖,导致模型输出结果异常,找不到原来代码修复
  • 2022 T5 诗歌使用默认设置 num_beams=2, top_k=50, top_p=0.95,对联使用topk=1
  • 06/2022: 尝试在finetune的诗歌模型上“精读” ericqianli 的600+诗歌,尝试个人风格模仿,质量待分析

架构

  • 2021监督学习方案,自己从头训练
    • 基于Transformer的encoder-decoder
    • transformer使用keras-transformer lib
  • 2022迁移学习方案,使用T5 finetune
    • 预训练使用 澜舟科技的孟子 T5
    • 理论上可以把诗歌和对联两个合起来作为multi-task下游任务,但是对联有很多是现代白话文,古文我只用了唐诗宋词,所以最后还是分开
    • 我只训练了3-4个epoch,看loss的下降速度应该还有很大提升空间

数据来源

语言支持

  • 默认简体中文
  • 2022 T5 inference 支持繁体中文,需要标记 is_input_traditional_chinese=True
  • 如需要训练繁体中文模型,查找chinese_converter.to_simplified改为chinese_converter.to_traditional

训练

  • 我是用 Google Colab Pro(推荐,16G的GPU一个月随便用才9.99!)
  • transformer方案使用TF2 keras,用TPU训练,模型训练时间~10小时
  • T5因为使用simplet5 (pytorch + huggingface 的一个封装),所以使用GPU训练,模型训练时间~6-8小时

模型下载和使用

  • 推荐参考inference下面的notebook来参考使用,模型下载地址也在notebook介绍
    • 重要:模型文件存在Google Drive,推荐用Google账号打开,点击Add to shortcut,之后在你Drive的主页面shared with me看到目录后选择add shortcut to Drive,这样可以mount后本地可以操作文件
  • 模型参数大小
    • 2021 Transformer 对联 ~80M
    • 2021 Transformer 写诗 ~10M
    • 2022 T5 ~250M

更多例子,也可以参考inference下面的notebook

  • 写诗 2021 transformer 方案示例 (80 epochs)
标题: 秋思
正文: 秋风吹雨过,秋色满江城。一叶无人到,千山有客情。
标题: 百度
正文: 百尺孤城上,千金万里中。山川无限水,水石有余风。
标题: 湾区春日之谜
正文: 春风吹雨不成秋,春色如何一日休。不是春光无处着,只应春色是人愁。
  • 写诗 2022 T5 finetune 方案示例(4 epochs)
标题: 作诗:秋思
诗歌: 秋思不可奈,况复值新晴。露叶红犹湿,风枝翠欲倾。客愁随日薄,归夢逐云轻。独倚阑干久,西风吹雁声。
标题: 作诗:秋思 模仿:杜甫
诗歌: 西风动高树,落叶满空庭。白露侵肌冷,青灯照眼青。客愁随暮角,归夢逐残星。独坐还成感,秋声不可听。
标题: 作诗:秋思 模仿:李白
诗歌: 秋色满空山,秋风动客衣。浮云不到处,明月自来归。
标题: 作诗:秋思 模仿:李清照
诗歌: 秋思不可奈,况复在天涯。客路逢寒食,家书报早炊。风霜侵鬓发,天地入诗脾。欲寄南飞雁,归期未有期。
标题: 作诗:秋思 模仿:苏轼
诗歌: 西风吹雨过江城,独倚阑干思不胜。黄叶满庭秋意动,碧梧当户夜寒生。故园夢断人千里,新雁书来雁一行。莫怪衰翁无业,一樽聊复慰平生。

标题: 作诗:百花
诗歌: 百花开尽绿阴成,红紫妖红照眼明。谁道东风无意思,一枝春色爲谁荣。
标题: 作诗:百花 模仿:杜甫
诗歌: 百花开尽绿阴成,独有江梅照眼明。莫道春光无别意,只应留得一枝横。
标题: 作诗:百花 模仿:李白
诗歌: 百花如锦树,春色满芳洲。日暖花争发,风轻絮乱流。香飘金谷露,艳拂玉山楼。谁道无情物,年年爲客愁。
标题: 作诗:百花 模仿:李清照
诗歌: 百花如锦水如蓝,春到园林处处堪。谁道东风不相识,一枝开尽绿阴南。
标题: 作诗:百花 模仿:苏轼
诗歌: 百花开尽绿阴成,谁道春风不世情。若使此花无俗韵,世间那得有芳名。

標題: 作诗:春节
詩歌: 去年今日到江干,家在青山綠水間。老去心情渾似舊,春來情緒只如閒。
標題: 作诗:春节 模仿:杜甫
詩歌: 江上春歸早,山中客到稀。亂花隨處發,細草向人飛。節物催年老,生涯逐日非。故園桃李樹,猶得及芳菲。
標題: 作诗:春节 模仿:李白
詩歌: 去年今日來,花發滿城開。今歲明朝去,明年依舊來。
標題: 作诗:春节 模仿:李清照
詩歌: 去年今日是今朝,不覺今年又一宵。但有梅花堪共醉,何須柳絮更相撩。
標題: 作诗:春节 模仿:苏轼
詩歌: 今年春色到江干,柳眼桃腮次第看。但得此身長健在,不須回首歎凋殘。

標題: 作诗:中秋
詩歌: 秋氣侵肌骨,寒光入鬢毛。雲收千里月,風送一帆高。
標題: 作诗:中秋 模仿:杜甫
詩歌: 秋色滿江天,清光萬里懸。雲開見海月,水落見沙田。白露侵肌冷,青苔滿鬢鮮。何當一樽酒,共醉玉壺前。
標題: 作诗:中秋 模仿:李白
詩歌: 中秋月色好,況復是中秋。玉兔擣藥杵,金烏搗藥。雲開天似水,風起海如漚。此夜何人見,長歌淚不流。
標題: 作诗:中秋 模仿:李清照
詩歌: 秋氣侵肌骨,寒光入鬢毛。客愁隨日減,詩思逐風高。露重衣襟溼,天高雁影豪。何當一樽酒,來此醉陶陶。
標題: 作诗:中秋 模仿:苏轼
詩歌: 月從海上生,照我庭下影。不知此何夕,但見天宇靜。
  • 对联 2021 transformer 方案示例 (60 epochs)
上: 欢天喜地度佳节
下: 举国迎春贺新年
上: 不待鸣钟已汗颜,重来试手竟何艰
下: 只缘沧海常风雨,再去翻身只等闲
上: 相思俱付三更月
下: 寂寞难留一夜风
  • 对联 2022 T5 finetune 方案示例(3 epochs)
上: 欢天喜地度佳节
下: 笑语欢歌迎新春
上: 不待鸣钟已汗颜,重来试手竟何艰
下: 何堪击鼓频催泪?一别伤心更枉然
上: 当年欲跃龙门去,今日真披马革还
下: 此日当登虎榜来,他年又见龙图新
上: 载歌在谷
下: 对酒当歌
上: 北国风光,千里冰封,万里雪飘
下: 南疆气象,五湖浪涌,三江潮来
上: 寂寞寒窗空守寡
下: 逍遥野渡醉吟诗
上: 烟锁池塘柳
下: 云封岭上松
上: 五科五状元,金木水火土
下: 三才三进士,诗书礼乐诗
上: 望江楼,望江流,望江楼上望江流,江楼千古,江流千古
下: 听雨阁,听雨落,听雨阁中听雨落,雨阁万重,雨落万重
上: 載歌在谷
下: 對酒當歌
上: 飛龍在天
下: 臥虎於淵
上: 都說臺北風光好
下: 不曉臺灣景色新

chinese-ai-writing-share's People

Contributors

hululuzhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

chinese-ai-writing-share's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.