春华:基于Bloom的古汉语问答模型

春华是一个基于Bloom的古汉语问答模型,使用汉语古典文本数据库scripta-sinica进行微调,并结合BELLE项目生成的中文指令数据来让模型具有较好的对话能力。 scripta-sinica包含由殆知阁提供的10万卷,近13亿字古籍文本,约3.14 GB。可以作为对比的是,《四库全书》共收书3503种,79337卷,近230万页,约8亿字。 因此,模型具有丰富的中华古代知识,以及较强的古汉语理解能力。

使用方法

训练中参考了ChatML的结构来组织训练数据,因此,使用时建议也遵循这一规范。

CPU

# pip install -q transformers
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "wptoux/bloom-7b-chunhua"

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint)

def chat(txt):
    prompt = f"""<|im_start|>系统
你是春华,一个基于Bloom的古汉语问答模型,使用汉语古典文本数据库scripta-sinica进行微调,你具有丰富的中华古代知识,以及较强的古汉语理解能力。
<|im_end|>
<|im_start|>用户
{txt}
<|im_end|>
<|im_start|>助手
"""
    inputs = tokenizer.encode(prompt, return_tensors="pt").cuda()
    outputs = model.generate(inputs, max_new_tokens=1000)
    return tokenizer.decode(outputs[0, inputs.size(1):]).strip().split('<|im_end|>')[0]

print(chat('写一首诗介绍你自己'))

"""
输出:
翩翩古风舞,翩翩古风歌,
翩翩古风人,翩翩古风情。
"""

GPU

# pip install -q transformers accelerate
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "wptoux/bloom-7b-chunhua"

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, torch_dtype="auto", device_map="auto")

def chat(txt):
    prompt = f"""<|im_start|>系统
你是春华,一个基于Bloom的古汉语问答模型,使用汉语古典文本数据库scripta-sinica进行微调,你具有丰富的中华古代知识,以及较强的古汉语理解能力。
<|im_end|>
<|im_start|>用户
{txt}
<|im_end|>
<|im_start|>助手
"""
    inputs = tokenizer.encode(prompt, return_tensors="pt").cuda()
    outputs = model.generate(inputs, max_new_tokens=1000)
    return tokenizer.decode(outputs[0, inputs.size(1):]).strip().split('<|im_end|>')[0]

print(chat('写一首诗介绍你自己'))

"""
输出:
翩翩古风舞,翩翩古风歌,
翩翩古风人,翩翩古风情。
"""

GPU 8Bit量化

# pip install -q transformers accelerate bitsandbytes
from transformers import AutoModelForCausalLM, AutoTokenizer

checkpoint = "wptoux/bloom-7b-chunhuaz"

tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto", load_in_8bit=True)

def chat(txt):
    prompt = f"""<|im_start|>系统
你是春华,一个基于Bloom的古汉语问答模型,使用汉语古典文本数据库scripta-sinica进行微调,你具有丰富的中华古代知识,以及较强的古汉语理解能力。
<|im_end|>
<|im_start|>用户
{txt}
<|im_end|>
<|im_start|>助手
"""
    inputs = tokenizer.encode(prompt, return_tensors="pt").cuda()
    outputs = model.generate(inputs, max_new_tokens=1000)
    return tokenizer.decode(outputs[0, inputs.size(1):]).strip().split('<|im_end|>')[0]

print(chat('写一首诗介绍你自己'))

"""
输出:
翩翩古风舞,翩翩古风歌,
翩翩古风人,翩翩古风情。
"""

示例问题

类别 问题 回答
易藏 谦:亨,君子有终。谦者,有而不居之义。止乎内而顺乎外,谦之意也。这句话是什么意思? 这句话的意思是,谦虚是君子的一种美德,它表明一个人有才德而不居功,在内部保持谦虚,在外表上表现得谦恭。这种谦虚的品德是君子应该具备的。
「谦谦君子」,卑以自牧也。把这句话翻译成英文 Modest gentleman, humble himself and keeps himself in order.
儒藏 学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?为什么 这是一道哲学问题,其中包含着对学习、友谊和人际关系的思考。

学而时习之,是说要经常学习,不断进步。不亦说乎?表示学习是一件非常有趣的事情。有朋自远方来,是说有朋友从很远的地方来,是一件非常开心的事情。不亦乐乎?表示有朋友来是一件非常愉快的事情。

人不知,而不愠,是说即使别人不知道自己,也不应该感到愤怒。不亦君子乎?表示即使别人不知道自己,也不应该感到骄傲。

这句话的意思是,学习和友谊都是非常有价值的,我们应该珍惜它们,并努力去追求它们。同时,我们也应该保持谦虚和宽容,不要因为别人的不了解而感到愤怒或骄傲。
道藏 天之道,利而不害;圣人之道,为而不争。在生活中如何做到呢? 在生活中,我们可以通过以下方式做到利而不害、为而不争:

1. 保持谦虚:谦虚是一种美德,它可以让我们更好地与人相处,并避免争强好胜。

2. 尊重他人:尊重他人是利而不害、为而不争的重要体现。我们应该尊重他人的意见和想法,并尽力理解他们的处境。

3. 宽容:宽容是一种美德,它可以让我们更好地接纳和理解他人,并避免争强好胜。

4. 帮助他人:帮助他人是利而不害、为而不争的重要体现。我们应该尽力帮助他人,并尽力为他们提供帮助。

5. 保持冷静:保持冷静可以帮助我们更好地处理问题和矛盾,并避免争强好胜。

希望这些建议能帮助你更好地做到利而不害、为而不争。
佛藏 如下两首诗的观点有何异同?一:身如菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。二:菩提本无树,明镜亦非台。本来无一物,何处惹尘埃。 这两首诗的观点存在差异。第一首诗强调修行,认为修行需要保持心灵的纯净和清洁,而第二首诗则强调无物无我,认为修行不必追求外在的物质和形式。因此,两首诗的观点存在一定的差异。
子藏 鬼谷子中提到了哪些说服人的技巧 鬼谷子中提到了很多说服人的技巧,其中一些包括:

1. 激将法
2. 巧言令色
3. 虚实结合
4. 旁敲侧击
5. 借力打力
6. 激怒对方
7. 诱导对方
8. 转移话题
9. 暗示对方
10. 激怒对方
孙子兵法中,为什么认为攻城是迫不得已的行为,更好的办法是什么? 孙子兵法中认为攻城是迫不得已的行为,是因为攻城需要大量的人力、物力、财力,并且攻城可能会导致大量的人员伤亡和财产损失。相比之下,攻城可能不是最佳选择。

更好的办法是采取其他策略,比如守城、围城、游击战等。这些策略可以更有效地保护城池,减少人员伤亡和财产损失。同时,也可以通过其他方式,比如谈判、协商等,来解决问题。
史藏 明史中,于谦为守护北京城,做出了哪些贡献? 明史中,于谦为守护北京城做出了许多贡献。他是一位著名的将领,在土木之变后,他率领军队保卫了北京城,并成功击退了瓦剌人的入侵。他还是一位著名的政治家,在正统年间,他担任了兵部尚书,并参与了许多重要的决策。此外,他还是一位著名的文学家,他的诗歌作品被广泛传颂。
明史中,王守仁有哪些著名的行为 王守仁(1472年-1529年)是明代著名的思想家、政治家和军事家,他的思想和行为对后世产生了深远的影响。

王守仁最著名的行为之一是平定宸濠之乱。宸濠是明朝嘉靖皇帝的亲生儿子,嘉靖皇帝在位时,宸濠与嘉靖皇帝的妃子陈氏有私情。宸濠造反后,嘉靖皇帝派王守仁率领军队前去平叛。在平叛过程中,王守仁采取了一系列措施,包括围城、攻城、激战等,最终将宸濠平定。

此外,王守仁还曾担任过南京兵部尚书、右都御史等重要职务,并参与过平定云南、贵州等地的叛乱。王守仁的思想和行为对明代的政治、军事、文化等方面产生了深远的影响。
三国志对诸葛亮的评价 三国志对诸葛亮的评价是:“亮博学多能,才兼文武,奇谋伟略,世之奇才也。”
诗藏 To be, or not to be- that is the question:
Whether it's nobler in the mind to suffer,
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them. To die- to sleep-
No more; and by a sleep to say we end
根据上述内容,创作一首古诗
生死两难存天理,
命运不公遭折磨;
奋起反抗扫逆境,
力尽身亡永无忧
作一篇赋来描述杜甫的才华 苍龙高飞兮九天之上,
巨鳌入海兮万国之乡。

金樽十里清风起,
玉笛一声山水长。

诗歌浩渺如烟云,
笔墨纵横似江涛。

少年壮志几时休,
人生离合犹如此。

他才是中国文学史上的神人!他的诗篇将永远流传于世!
集藏 三国演义中,诸葛亮有哪些智慧? 诸葛亮是三国时期著名的政治家、军事家、文学家,他的智慧和才能在三国演义中得到了广泛的描绘。诸葛亮的智慧主要体现在以下几个方面:

1. 战略眼光:诸葛亮在军事上非常有战略眼光,他能够预见未来可能发生的情况,并制定出相应的战略方案。

2. 洞察人心:诸葛亮能够洞察人心,了解人的心理和行为,并据此制定出相应的战略方案。

3. 韬光养晦:诸葛亮在面对敌人时,总是保持着低调,不轻易暴露自己的真实意图。

4. 随机应变:诸葛亮在面对不同的情况时,总是能够随机应变,制定出相应的战略方案。

总的来说,诸葛亮的智慧体现在他能够预见未来、洞察人心、韬光养晦、随机应变等方面,这些智慧帮助他成为了一个非常成功的战略家。
西游记中,孙悟空的七十二变有哪些功能? 在《西游记》中,孙悟空的七十二变是一种幻术,可以让孙悟空变成各种不同的动物形态,包括人、动物、植物等。这些变身可以帮助孙悟空进行各种活动,例如战斗、逃跑、侦察、寻找食物等。此外,七十二变还可以帮助孙悟空隐藏自己的身份,以免被敌人发现。总的来说,七十二变是一种非常有用的幻术,可以帮助孙悟空在各种情况下生存下来。
医藏 本草纲目中有哪些药材 《本草纲目》是中国古代的一部药物学著作,记载了中国古代药材的种类、性状、功效、主治等内容。其中,有许多药材是中华传统医学中常用的药物,如人参、黄芪、当归、枸杞子、甘草、白术等。此外,书中还记载了许多其他药材,如菊花、山楂、木瓜、薄荷等。
艺藏 太极者,无极而生,动静之机,阴阳之母也。动之则分,静之则合。太极拳经中的这句话什么意思? 太极拳经中的这句话是太极拳的基本原理之一,意思是“太极”是由“无极”而生出来的,它包含着动静的两种状态,同时也代表着阴阳两种对立的元素。太极拳的练习需要通过动静结合的方式来达到阴阳平衡的状态,从而达到身体和心灵的和谐统一。

注:
生成参数:temperature=0.4, top_k=0, top_p=0.9, max_new_tokens=1000, do_sample=True
生成古诗的参数:temperature=0.7, top_k=0, repetition_penalty=1.2, max_new_tokens=1000, do_sample=True

缺陷:

虽然模型经历了大量数据的训练,但其输出结果可能包含不准确或存在偏见的情况。

Belle数据集的要求:
仅允许将此数据集及使用此数据集生成的衍生物用于研究目的,不得用于商业,以及其他会对社会带来危害的用途。 本数据集不代表任何一方的立场、利益或想法,无关任何团体的任何类型的主张。因使用本数据集带来的任何损害、纠纷,本项目不承担任何责任。

Downloads last month
15
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Dataset used to train wptoux/bloom-7b-chunhua