電商網(wǎng)絡(luò)運(yùn)營浙江搜索引擎優(yōu)化
使用Transformers來使用模型
如希望使用Qwen-chat進(jìn)行推理,所需要寫的只是如下所示的數(shù)行代碼。請(qǐng)確保你使用的是最新代碼,并指定正確的模型名稱和路徑,如Qwen/Qwen-7B-Chat
和Qwen/Qwen-14B-Chat
這里給出了一段代碼
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig# 可選的模型包括: "Qwen/Qwen-7B-Chat", "Qwen/Qwen-14B-Chat"
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)# 打開bf16精度,A100、H100、RTX3060、RTX3070等顯卡建議啟用以節(jié)省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 打開fp16精度,V100、P100、T4等顯卡建議啟用以節(jié)省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 使用CPU進(jìn)行推理,需要約32GB內(nèi)存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="cpu", trust_remote_code=True).eval()
# 默認(rèn)使用自動(dòng)模式,根據(jù)設(shè)備自動(dòng)選擇精度
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True).eval()# 可指定不同的生成長度、top_p等相關(guān)超參
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)# 第一輪對(duì)話
response, history = model.chat(tokenizer, "你好", history=None)
print(response)
# 你好!很高興為你提供幫助。# 第二輪對(duì)話
response, history = model.chat(tokenizer, "給我講一個(gè)年輕人奮斗創(chuàng)業(yè)最終取得成功的故事。", history=history)
print(response)
# 這是一個(gè)關(guān)于一個(gè)年輕人奮斗創(chuàng)業(yè)最終取得成功的故事。
# 故事的主人公叫李明,他來自一個(gè)普通的家庭,父母都是普通的工人。從小,李明就立下了一個(gè)目標(biāo):要成為一名成功的企業(yè)家。
# 為了實(shí)現(xiàn)這個(gè)目標(biāo),李明勤奮學(xué)習(xí),考上了大學(xué)。在大學(xué)期間,他積極參加各種創(chuàng)業(yè)比賽,獲得了不少獎(jiǎng)項(xiàng)。他還利用課余時(shí)間去實(shí)習(xí),積累了寶貴的經(jīng)驗(yàn)。
# 畢業(yè)后,李明決定開始自己的創(chuàng)業(yè)之路。他開始尋找投資機(jī)會(huì),但多次都被拒絕了。然而,他并沒有放棄。他繼續(xù)努力,不斷改進(jìn)自己的創(chuàng)業(yè)計(jì)劃,并尋找新的投資機(jī)會(huì)。
# 最終,李明成功地獲得了一筆投資,開始了自己的創(chuàng)業(yè)之路。他成立了一家科技公司,專注于開發(fā)新型軟件。在他的領(lǐng)導(dǎo)下,公司迅速發(fā)展起來,成為了一家成功的科技企業(yè)。
# 李明的成功并不是偶然的。他勤奮、堅(jiān)韌、勇于冒險(xiǎn),不斷學(xué)習(xí)和改進(jìn)自己。他的成功也證明了,只要努力奮斗,任何人都有可能取得成功。# 第三輪對(duì)話
response, history = model.chat(tokenizer, "給這個(gè)故事起一個(gè)標(biāo)題", history=history)
print(response)
# 《奮斗創(chuàng)業(yè):一個(gè)年輕人的成功之路》
這段代碼怎么用呢?
我們來分析一下吧\
從transformers庫中導(dǎo)入類
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
這兩行是從Hugging Face的Transformers庫中導(dǎo)入了三個(gè)類:
【AutoModelForCausalLM】:這是一個(gè)用于加載預(yù)訓(xùn)練的因果語言模型(Causal Language Model)的類。因果語言模型是一種可以生成連續(xù)文本的模型,例如在對(duì)話生成或故事生成等任務(wù)中。
【AutoTokenizer】:這是一個(gè)用于加載預(yù)訓(xùn)練的分詞器(Tokenizer)的類。分詞器是用于將輸入文本切分成模型可以理解的單元(如單詞、子詞或字符)的工具。
【GenerationConfig】:這是一個(gè)用于配置生成任務(wù)的類。它可以用于設(shè)置生成任務(wù)的各種參數(shù),例如生成文本的最大長