日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

聊聊Llama2-Chinese中文大模型

發布時間:2024/1/16 windows 69 coder
生活随笔 收集整理的這篇文章主要介紹了 聊聊Llama2-Chinese中文大模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請注明出處:https://www.cnblogs.com/zhiyong-ITNote

基本簡述

Llama2-Chinese 大模型:由清華、交大以及浙大博士團隊領銜開發;基于200B中文語料庫結合Llama2基座模型訓練。
Llama中文社區:國內最領先的開源大模型中文社區。
Atom大模型:為了區別于原始的Llama2模型,后續中文Llama2大模型,改名為Atom大模型。
模型獲取地址:Huggingface
GITHUB地址:GITHUB

模型信息

Huggingface上Llama-Chinese大模型集合:

查看下Llama2-Chinese-7b-Chat模型的config.json:

查看下Atom-7B-Chat的config.json:

簡單看看區別,官方說明:

  1. Atom模型:基于Llama2-7B采用大規模的中文數據進行了繼續預訓練。
  2. Llama2-Chinese:由于Llama2本身的中文對齊較弱,我們采用中文指令集,對meta-llama/Llama-2-7b-chat-hf進行LoRA微調,使其具備較強的中文對話能力。

總結來說,Atom模型時重新預訓練的;而Llama2-Chinese模型是微調后的。因此如果想要比較完善更全面的中文模型,建議是用Atom模型。

轉載請注明出處:https://www.cnblogs.com/zhiyong-ITNote

調用說明

根據 官方文檔 在命令行調用API:

from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-2-7b-chat-hf',device_map='auto',torch_dtype=torch.float16,load_in_8bit=True)
model =model.eval()
tokenizer = AutoTokenizer.from_pretrained('meta-llama/Llama-2-7b-chat-hf',use_fast=False)
input_ids = tokenizer(['<s>Human: 介紹一下中國\n</s><s>Assistant: '], return_tensors="pt",add_special_tokens=False).input_ids.to('cuda')
generate_input = {
    "input_ids":input_ids,
    "max_new_tokens":512,
    "do_sample":True,
    "top_k":50,
    "top_p":0.95,
    "temperature":0.3,
    "repetition_penalty":1.3,
    "eos_token_id":tokenizer.eos_token_id,
    "bos_token_id":tokenizer.bos_token_id,
    "pad_token_id":tokenizer.pad_token_id
}
generate_ids  = model.generate(**generate_input)
text = tokenizer.decode(generate_ids[0])
print(text)

分析來看,調用的是基于Llama2微調后的模型,而不是預訓練的模型。暫時也沒有看到Atom預訓練模型調用的資料。在這里補一下:

# 轉載請注明出處:https://www.cnblogs.com/zhiyong-ITNote
from transformers import AutoTokenizer, LlamaForCausalLM
model = LlamaForCausalLM.from_pretrained('mnt/data/zhangzheng/data/AtoM-7B/checkpoint-56000',device_map='auto',torch_dtype=torch.float16,load_in_8bit=True)
model =model.eval()
tokenizer = AutoTokenizer.from_pretrained('mnt/data/zhangzheng/data/AtoM-7B/checkpoint-56000',use_fast=False)
input_ids = tokenizer(['<s>Human: 介紹一下中國\n</s><s>Assistant: '], return_tensors="pt",add_special_tokens=False).input_ids.to('cuda')
generate_input = {
    "input_ids":input_ids,
    "max_new_tokens":512,
    "do_sample":True,
    "top_k":50,
    "top_p":0.95,
    "temperature":0.3,
    "repetition_penalty":1.3,
    "eos_token_id":tokenizer.eos_token_id,
    "bos_token_id":tokenizer.bos_token_id,
    "pad_token_id":tokenizer.pad_token_id
}
generate_ids  = model.generate(**generate_input)
text = tokenizer.decode(generate_ids[0])
print(text)

其實就是根據huggingface上的模型config.json文件的_name_or_path屬性值重新配置模型名稱即可。

LlamaForCausalLM

這個類是Llama2模型對接到transformers庫的銜接類。由config.json的architectures屬性值指定了。而且在官方文檔有API說明.

對應在github上的實現:

從之前ChatGLM-6B的源碼結構分析來看,Llama2的關鍵源碼也是這個llama文件夾下的這些文件,尤其是modeling_llama.py文件。

總結

從目前官方提供的文檔等信息來看,資料還是比較少的,尤其是Atom模型的信息及示例等。這也需要我們在自身學習的過程中幫助社區不斷地完善相關信息,反哺社區和中文大模型的發展。

轉載請注明出處:https://www.cnblogs.com/zhiyong-ITNote

總結

以上是生活随笔為你收集整理的聊聊Llama2-Chinese中文大模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。