模型概述
模型特點
模型能力
使用案例
🚀 Firefly(流螢): 中文對話式大語言模型
Firefly(流螢)是一個開源的中文對話式大語言模型,使用指令微調技術在中文數據集上進行調優。它採用了詞表裁剪、ZeRO、張量並行等技術,有效降低顯存消耗並提高訓練效率。該模型構造了許多與中華文化相關的數據,旨在提升在對聯、作詩、文言文翻譯等方面的表現,為中文NLP開源社區貢獻力量。
🚀 快速開始
模型使用
from transformers import BloomTokenizerFast, BloomForCausalLM
device = 'cuda'
path = 'YeungNLP/firefly-1b4'
tokenizer = BloomTokenizerFast.from_pretrained(path)
model = BloomForCausalLM.from_pretrained(path)
model.eval()
model = model.to(device)
text = input('User:')
while True:
text = '<s>{}</s></s>'.format(text)
input_ids = tokenizer(text, return_tensors="pt").input_ids
input_ids = input_ids.to(device)
outputs = model.generate(input_ids, max_new_tokens=200, do_sample=True, top_p=0.85, temperature=0.35,
repetition_penalty=1.2, eos_token_id=tokenizer.eos_token_id)
rets = tokenizer.batch_decode(outputs)
output = rets[0].strip().replace(text, "").replace('</s>', "")
print("Firefly:{}".format(output))
text = input('User:')
✨ 主要特性
- 數據集優質:使用firefly-train-1.1M 高質量數據集,包含1.1M中文多任務指令微調數據,涵蓋23種常見中文NLP任務。
- 模型裁剪高效:運用LLMPruner:大語言模型裁剪工具 對多語種大語言模型進行詞表裁剪,減少參數量,提高訓練效率。
- 多參數規模模型:基於bloom-1b4-zh 和bloom-2b6-zh 進行指令微調,獲得firefly-1b4 和firefly-2b6(待訓練結束後分享) 兩種參數規模的中文模型。
- 訓練策略豐富:開源訓練代碼,支持張量並行、ZeRO、Gemini異構內存空間管理等大模型訓練策略。
📦 安裝指南
文檔未提供具體安裝步驟,暫不展示。
💻 使用示例
基礎用法
from transformers import BloomTokenizerFast, BloomForCausalLM
device = 'cuda'
path = 'YeungNLP/firefly-1b4'
tokenizer = BloomTokenizerFast.from_pretrained(path)
model = BloomForCausalLM.from_pretrained(path)
model.eval()
model = model.to(device)
text = input('User:')
while True:
text = '<s>{}</s></s>'.format(text)
input_ids = tokenizer(text, return_tensors="pt").input_ids
input_ids = input_ids.to(device)
outputs = model.generate(input_ids, max_new_tokens=200, do_sample=True, top_p=0.85, temperature=0.35,
repetition_penalty=1.2, eos_token_id=tokenizer.eos_token_id)
rets = tokenizer.batch_decode(outputs)
output = rets[0].strip().replace(text, "").replace('</s>', "")
print("Firefly:{}".format(output))
text = input('User:')
高級用法
文檔未提供高級用法示例,暫不展示。
📚 詳細文檔
模型裁剪
本項目首先使用LLMPruner項目 對原始的Bloom模型進行詞表裁剪,僅取出常用的中英文詞表,大大降低了模型參數量,然後再對其進行指令微調。
Bloom是個多語言模型,由於需要兼容多語言,所以詞表有25w之多,在中文領域中,大部分詞表並不會被用到。我們通過刪減冗餘的詞表,從多語言模型中提取常用的中英文詞表,最終詞表從25w減少到46145,縮減為原來的18.39%,在保留預訓練知識的同時,有效減少參數量,提高訓練效率。
我們在bloom-1b4-zh 與bloom-2b6-zh 的基礎上,進行指令微調,獲得兩種參數規模的中文模型:firefly-1b4 和firefly-2b6(待訓練結束後分享)
數據集
我們收集了23個常見的中文數據集,對於每個任務,由人工書寫若干種指令模板,保證數據的高質量與豐富度,數據量為115萬,形成訓練集firefly-train-1.1M 。數據分佈如下圖所示:
在此基礎上,我們添加了Belle-train_0.5M_CN ,最終得到165萬的訓練數據。每條數據的格式如下,包含任務類型、輸入、目標輸出:
{
"kind": "ClassicalChinese",
"input": "將下面句子翻譯成現代文:\n石中央又生一樹,高百餘尺,條幹偃陰為五色,翠葉如盤,花徑尺餘,色深碧,蕊深紅,異香成煙,著物霏霏。",
"target": "大石的中央長著一棵樹,一百多尺高,枝幹是彩色的,樹葉有盤子那樣大,花的直徑有一尺寬,花瓣深藍色,花中飄出奇異的香氣籠罩著周圍,如煙似霧。"
}
訓練數據集的token長度分佈如下圖所示,絕大部分數據的長度都小於600:
訓練細節
在訓練時,對於每條樣本,我們將input與target處理成如下格式,然後輸出模型中。
<s>input</s></s>target</s>
我們將模型的最大輸入設置為512,input部分不參與計算loss,只計算target部分的損失函數。訓練的超參數設置如下表所示。
參數 | firefly-1b4 | firefly-2b6 |
---|---|---|
Batch size | 16 | 8 |
Learning rate | 3e-5 | 3e-5 |
Warmup step | 3000 | 3000 |
Lr schedule | cosine | cosine |
Max_seq_length | 512 | 512 |
Training step | 90k | - |
🔧 技術細節
文檔未提供更詳細的技術細節,暫不展示。
📄 許可證
文檔未提供許可證信息,暫不展示。
⚠️ 重要提示
經過詞表裁剪後,我們的模型參數量僅為1.4B和2.6B,參數量遠遠小於ChatGPT和LLaMA等上百億上千億的模型,甚至遠遠小於當前主流如Belle、ChatGLM等7B左右的模型。所以在效果上仍存在以下問題:
- 對於事實性知識,容易產生錯誤的回覆。
- 由於未經過無害化微調,可能會產生歧視、危害、違背倫理道德的言論。
- 在代碼、推理上的能力仍有欠缺。
基於以上模型的侷限性,我們要求本項目的代碼、數據、模型等僅用於學術研究,不得用於商業用途,且不得用於對社會造成危害的用途。
📖 引用
若使用本項目的數據、代碼或模型,請引用本項目。
@misc{Firefly,
author = {Jianxin Yang},
title = {Firefly(流螢): 中文對話式大語言模型},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/yangjianxin1/Firefly}},
}
👀 關注我們
🎉 生成效果
下面展示的是firefly-1b4的部分生成效果。
input | output |
---|---|
生成5條QQ音樂熱評 | 1、這首歌是周杰倫寫給張惠妹的,但是張惠妹唱出了自己的風格。😊2、我表白過,她婉拒了,但我還是厚著臉皮找她去KTV唱歌,後來我們成為了無話不談的好朋友,她告訴我她找到真愛了,我祝福他們;她也跟我說生活費花光了,我告訴她我這裡還有一千塊錢,咱倆一人五百湊合著熬過去,我把自己僅有的五百元生活費匯給了她。我知道再也見不到面了,但我相信愛情,只要心中有愛,即使沒有結局,我也願意。 3、“你走以後 我才發現 原來我一直以為的幸福 都只是我以為”4、張惠妹的聲音真的很好聽啊,而且她的歌都很有味道,尤其是這首《我要快樂》,歌詞也寫的非常好,希望她能一直這樣下去,加油!5、好喜歡這首歌,感覺很溫暖,很喜歡這種歌曲,雖然我不是一個特別喜歡的人,但我覺得這首歌可以單曲循環很多遍,每次聽到都會有種想哭的感覺,覺得很美好,希望大家也可以來聽聽,謝謝啦 |
我想讓你做一名記者。您將報道突發新聞,撰寫專題報道和評論文章,開發用於驗證信息和發現來源的研究技術,遵守新聞道德,並使用您自己獨特的風格提供準確的報道。我的第一個建議請求是“我需要幫助寫一篇關於世界主要城市空氣汙染的文章。” | 作為AI語言模型,我沒有個人喜好或情感,因此無法為你提供具體的寫作建議。但是,以下是一些一般性的建議:1. 確定主題:確定你要報道的話題,例如“全球氣候變化的影響”或“環境問題”等。2. 研究相關問題:通過研究相關的科學研究和數據來了解該話題,以便更好地理解該話題。3. 收集信息:在蒐集有關該話題的信息時,需要注意保護個人隱私和信息安全。4. 使用簡潔明瞭的語言表達觀點:儘量避免使用過於複雜的詞彙和句子結構,而是要以簡單易懂的方式傳達你的觀點。5. 提供證據支持觀點:提供有說服力的證據以支持你的觀點,如科學研究、政府報告等。6. 檢查格式和排版:確保你的文本清晰明瞭,易於閱讀和理解。7. 最後,記得保持客觀和公正性:不要過度渲染自己的立場,而應該始終遵循新聞道德和法律規定,以確保報道的真實性和可信度。 |
假設你是一個心理諮詢師,你會如何幫助患者走出陰霾,重拾對生活的希望,請給出你的具體步驟和做法 | 1. 瞭解患者的情感狀態和問題背景。2. 根據患者的需求和症狀制定個性化的治療計劃。3. 鼓勵患者表達自己的想法和感受,並給予適當的反饋和支持。4. 引導患者進行積極的思考和行動,提高他們的自我意識和積極性。5. 在必要時,建議患者尋求專業心理醫生的幫助。 |
昨晚搬磚太晚,起不來,幫我胡謅一個請假條,讓我好發給領導請假 | 尊敬的領導:您好!我於 [日期] 晚上 [時間] 在公司加班,由於工作量大,無法按時完成。因此,我想申請請假一天。具體請假內容如下:[簡要說明原因]。謝謝您理解和採納。此致 敬禮! |
作為一名職場新人,如何制定目標並順利實現個人職業規劃?請有條理的列出行動提綱出來 | 1.明確目標:確定自己的職業目標和職業發展方向。2.瞭解行業:研究當前和未來的職業領域和發展趨勢。3.學習新知識:通過參加培訓、閱讀書籍或參與實習等方式獲取新的知識和技能。4.建立人際關係:與同業交流,加入相關組織或社團等,擴大社交圈。5.尋找機會:在公司內部或者外部尋找機會,如實習、兼職工作、志願活動等。6.持續學習:不斷提升自身能力和專業水平,保持競爭力。 |
一名畫家如何利用社交媒體擴大自身的行業影響力? | 1. 創建專業賬號,如Instagram、Twitter等,以展示自己的作品和經驗。2. 利用Facebook、Twitter等平臺與同業人士建立聯繫,分享他們的經驗和見解。3. 在社交媒體平臺上發佈有價值的內容,如圖片、視頻或文字,以提高自己的知名度。4. 參加各種活動,如展覽、音樂會、藝術展等,以接觸更多的人並擴展自己的影響範圍。 |
請為前往日本旅遊的用戶規劃一份完整的行程安排。 | 以下是一份可能的行程安排:1. 抵達東京,參觀淺草寺和皇居。2. 在上野公園散步或騎自行車遊覽。3. 到大阪城欣賞美麗的自然風光。4. 在大阪市中心逛街或者品嚐美食。5. 在箱根島體驗衝浪、潛水等水上活動。6. 最後一天在京都的清水寺觀賞傳統文化藝術表演。7. 返回家中並結束旅程。 |
把這句話翻譯成中文:Knowledge can be acquired from many sources. These include books, teachers and practical experience, and each has its own advantages. The knowledge we gain from books and formal education enables us to learn about things that we have no opportunity to experience in daily life. | 知識可以從許多來源獲得,包括書籍、教師和實踐經驗。每個來源都有自己的優點。從這些來源獲得的知識使我們能夠了解我們日常生活中所沒有的機會所體驗的。 |
翻譯成英文:簡言之,當我們努力追求目標時,永不放棄是很重要的。不管最後有沒有成功,我們都會學到一些東西,而我們所學到的東西,將會使自己成為一個更好、更有自信的人。 | In short, we must never give up when we strive for our goals. Whether the ends are successful or not, what we learned will make us better and more confident in life. |
請將以下新聞分類為體育、政治或科技:《年薪超4億歐!曝利雅得新月正式報價梅西 球員首選留歐洲》 | 體育 |
怎麼讓自己精力充沛,列5點建議 | 1. 保持充足的睡眠和休息時間。2. 多進行體育鍛煉,如散步、慢跑或騎自行車等。3. 飲食均衡,攝入足夠的蛋白質、碳水化合物和脂肪。4. 喝足夠的水,每天至少八杯。5. 避免過度飲酒和吸菸。 |
明天就假期結束了,有點抗拒上班,應該怎麼辦? | 1. 制定一個詳細的計劃和目標,包括完成的任務、時間分配以及優先級。2. 將任務分為小部分,並逐步完成。不要過度承諾,以免壓力過大。3. 給自己留出一些彈性時間,以應對突發情況或臨時調整計劃的情況。4. 與家人朋友交流溝通,分享自己的感受和想法,尋求支持和建議。5. 在工作期間保持積極心態,學會放鬆自己,享受生活。 |
我要去北京旅遊,給我介紹一些旅遊景點 | 1. 故宮:中國明清兩代的皇宮,是中國最著名的古代建築之一。2. 長城:世界上最長的防禦性牆體,是中國的標誌性景觀。3. 天安門廣場:世界聞名的廣場和城門,也是中國歷史文化的重要場所。4. 王府井大街:具有濃郁的中國風情的購物街,有各種美食、商店和文化活動。5. 頤和園:清代皇家園林,是世界級的文化遺產 |
下面是Firefly模型更具特色的一些例子,Firefly對於文言文、詩詞、對聯、武俠小說、散文、歌詞、文案生成、情感分析等中文任務具有非常優秀的表現。
input | output |
---|---|
文言文翻譯:土地平曠,屋舍儼然,有良田、美池、桑竹之屬。阡陌交通,雞犬相聞。 | 答案:土地平坦寬廣,房屋整齊,有良田、美池和桑樹等樹木,道路交錯,雞狗之聲不絕於耳。 |
將下面的句子翻譯成文言文:我要好好學習,成為國家的棟樑,建立豐功偉業 | 吾欲勤學,為國之棟樑,建大勳 |
文本糾錯:值得強調得是,併購市場的完善與成熟離不開金融體喺的創新。 | 值得強調的是,併購市場的完善與成熟離不開金融體系的創新。 |
對聯:雀躍黃山,仙人指路松迎客 | 下聯:龍騰紫氣,仙鶴歸巢燕報春 |
假設你現在是一個對聯大師,你將根據我給出的上聯,寫出你的下聯,要求對仗工整,平仄押韻,並且具備古風古韻。我的上聯是:燕子播春光,幾分紅,幾分綠。 | 下聯:梅花吐芬芳,一朵白,一朵黃。 |
成語釋義:禍不單行 | 指壞事不會單獨發生。成語出處:《左傳·襄公二十九年》晉侯曰‘吾聞之,禍不單行。’ |
幫我寫一首古詩 | 落葉紛紛舞秋風,寒鴉啼叫夜空紅。明月高懸照湖水,清泉潺潺流竹叢。 |
根據開頭生成古詩:明月松間照 | 清風竹下眠。無心獨徘徊,有夢不成眠。 |
以詠春為標題,生成一首古詩 | 綠陰深處有芳草,花落無聲鳥自啼。誰道春光無限好,一枝紅杏出牆來。 |
根據輸入生成商品文案:類型:裙;風格:簡約;圖案:條紋;圖案:線條;圖案:撞色;裙型:魚尾裙;裙袖長:無袖 | 這款裙子採用的是經典的條紋設計,讓整體的造型更加簡潔大方。同時,它採用了撞色的條紋元素,豐富了整體的視覺效果,讓整體看上去更加有層次感。而且,這條裙子還採用了無袖的設計,能夠很好的修飾手臂上的線條,讓你看起來更加纖細修長。 |
根據標題生成商品文案:南極人羽絨服男短款秋冬輕盈保暖休閒男裝中年男士羽絨冬裝外套 | 90後時尚原創帥氣大叔棉衣,精選優質羽絨填充,牢牢鎖住溫度,帶給您春天般的溫暖,工整細密的走線,束身塑形,更富有男人味,簡約設計時尚百搭,凸顯幹練氣質,搭配一條牛仔褲和一條簡單的圍脖,冬天這樣就能帥氣的度過 |
該評論是正向還是負向:早餐很豐富,服務也熱情,早上很早退房時,前臺值此人員辦理手續也非常快. | 正向 |
該評論是積極還是消極:就沒有見過這樣的酒店,價格不便宜,設備特別陳舊,房間昏暗,外部內部都特髒,上面寫有寬貸竟然還要20元錢,要錢也罷了,IP地址都不能自動獲取. | 消極 |
抽取出下文中的實體:3月31日下午,人民大會堂,習近平主席接連會見了3位外國領導人——西班牙首相桑切斯、馬來西亞總理安瓦爾、新加坡總理李顯龍。這些外國領導人為何選擇這個時間來到北京?習主席在同他們的會見中重點談到了什麼?密集會見釋放了什麼樣的信息?《時政新聞眼》為你解讀。 | 地點:人民大會堂,北京人名:李顯龍,桑切斯,安瓦爾,習近平 |
文本摘要:李強表示,李顯龍先生是中國人民熟識的老朋友,也是我就任國務院總理後接待的首批外國領導人之一,充分表明中國新加坡彼此對雙邊關係的高度重視。習近平主席同總理先生就新時期中新關係發展全面交換意見,明確了中新“全方位高質量的前瞻性夥伴關係”的新定位。中國願同新加坡一道,將“高質量”打造為中新合作最鮮明的標識,推動中新關係和務實合作水平再攀新高,為兩國人民帶來更多福祉,為地區和全球和平穩定與發展繁榮注入更多正能量。 | 李強:希望雙方能夠攜手共進,共同推進中新關係的發展 |
生成文章的摘要:針對央視3·15晚會曝光的電信行業亂象,工信部在公告中表示,將嚴查央視3·15晚會曝光通信違規違法行為。工信部稱,已約談三大運營商有關負責人,並連夜責成三大運營商和所在省通信管理局進行調查,依法依規嚴肅處理。 | 工信部通報三大運營商調查違法行 |
根據題目寫散文:荷塘月色 | 林清玄在湖畔,有一片小小的池塘。它沒有湖的波光粼粼,也沒有小島上的綠樹參天,更沒有山間那座巍峨的高峰聳立其間。但是,在這片小小的池塘中,卻有著一種獨特的美感。這種美感是來自於水底的那份寧靜與祥和,是一種從心底流露出來的喜悅。當夜幕降臨時,我便悄悄地走近這小小池塘,靜靜地看上一會兒,欣賞一會兒,然後又默默地離開。這時候,我才知道,原來這片小小的池塘,竟有這麼多的美麗之處。月光下,水面泛起層層漣漪,微風拂過,水面漾起了陣陣微波,像是一條條銀色的絲帶飄蕩在水面,輕柔地搖曳著,輕輕地飄蕩著……忽然,一陣風吹來,水面頓時泛起了一圈一圈的漣漪,好似一條條金黃色的浪花在水中翻滾、跳躍……接著,又一片片的波浪湧上來了,它們就像一個個頑皮的孩子, |
寫作文,題目:我的老師 | 我有一個好老師,她姓張。她的名字叫張麗萍。張麗萍的頭髮烏黑髮亮,一頭短短的捲髮,臉型圓圓的,眼睛大大的,像兩顆葡萄一樣,鼻子挺挺的,嘴巴小小的,笑起來很甜美,就像一個小天使似的。有一次,我們班上體育課的時候,張麗萍教我們跑步,一開始,我們都跑得飛快,可後來,大家都開始慢了下來,有的甚至都跑到半路就停下來休息一下,這時,張麗萍說:“你們要堅持下去啊!”“嗯!我會努力的!”同學們回答道。於是,張麗萍又繼續給我們講起跑步來:“現在,我來教你們怎麼走步法……” 就這樣,張麗萍一直教我們走步法,直到下課才結束這就是我的好老師——張麗萍 |
金庸武俠續寫:少室山上,少林寺前,蕭峰身陷重圍,無數武林人士欲殺之而後快,除了段譽、虛竹挺身而出。 | 但見群雄中站著一個老者,身穿青袍,頭戴黑緞軟帽,正是玄苦大師。他雙手負在背後,目不轉睛地瞧著阿朱和虛竹二人,臉上神色甚是焦急,叫道:“小師妹,你……你去哪裡?”阿朱微一遲疑:“我且去瞧瞧師父的傷勢如何?這人武功甚高,倒也厲害得很哪!”當下向虛竹和阿紫使個眼色,兩人並肩走向後院。玄慈方丈等都想:“此人年紀雖輕,卻已練成了上乘內功,當真了不起!不知是否該將他一掌打死?”只聽得玄苦大師大聲喝道:“什麼人?你們是來尋仇麼?”聲音洪亮,充滿了憤怒之意。眾人登時肅靜無聲,連那女童也都停了說話。玄苦大師怒氣勃發,呼的一掌擊出,跟著便又呼的一掌拍落。這一次每一掌都勁力十足,啪啪兩響,雙掌相交,各自震得身子搖晃不已。 |
根據下面的歌詞,進行續寫:窗外的麻雀,在電線杆上多嘴 | 說著什麼我卻聽不懂你眼裡的淚水,是那麼的清澈像一滴晶瑩剔透的露珠落在我的指尖你的心事,在我眼中就像那落葉飄零的季節你的愛戀,在我心中就像那落花凋謝的瞬間窗外的小鳥兒在枝頭唱起歌謠訴說我的一切我卻聽不清你眼中的眼淚,是那麼的清澈像一滴晶瑩剔透的露珠落在我的指尖你的心事,在我眼中就像那落葉飄零的季節你的愛戀,在我心中就像那落花凋謝的瞬間窗外的小鳥兒在枝頭唱起歌謠訴說我的一切我卻聽不清窗外的小鳥兒在枝頭唱起歌謠訴說我的一切我卻聽不清 |



