Llama 3 Portuguese Tom Cat 8b Instruct
基於Llama3 8B微調的葡萄牙語對話模型,填補了葡萄牙語模型的空白,優化了對話能力
下載量 54
發布時間 : 4/30/2024
模型概述
該模型基於30萬條葡萄牙語對話數據進行訓練,旨在提供高質量的葡萄牙語對話體驗。基於Meta的Llama3 8B模型進行微調,主要優化了葡萄牙語理解和生成能力。
模型特點
葡萄牙語優化
專門針對葡萄牙語進行微調,提供更自然的葡萄牙語理解和生成能力
指令跟隨
能夠很好地理解和執行用戶指令,適合構建對話系統
多量化版本支持
提供從完整模型到4位量化的多種版本,適應不同硬件需求
模型能力
葡萄牙語文本生成
對話系統構建
問答系統
指令跟隨
使用案例
教育
數學解釋
可以扮演數學老師解釋基礎數學概念
能清晰解釋2+2=4等基礎數學問題
考試輔助
幫助準備ENEM等葡萄牙語考試
在ENEM挑戰賽測試中達到70.4%準確率
專業服務
法律諮詢
解釋巴西律師公會(OAB)相關信息
能準確描述巴西律師公會的職能和結構
情感分析
仇恨言論檢測
識別葡萄牙語中的仇恨言論
在HateBR測試中達到86.99宏觀F1值
🚀 Llama-3-portuguese-Tom-cat-8b-instruct
該模型基於30萬個葡萄牙語聊天記錄的超集進行訓練,旨在填補葡萄牙語模型的空白。它在Llama3 8B的基礎上進行微調,主要適用於聊天場景。
如果你正在尋找兼容性更強的模型,Luana模型還有可以與LlamaCpp一起運行的GGUF系列。你可以從以下模型開始探索GGUF模型:
探索這個和其他模型,找到最適合你需求的模型!
🚀 快速開始
完整模型:A100
半精度模型:L4
8位或4位量化:T4或V100
你可以以正常形式使用該模型,也可以進行4位量化。下面我們將介紹這兩種方法。請記住,在提示詞中使用合適的動詞很重要。告訴模型如何行動或表現,這樣你就能引導它們給出合適的回覆。像這樣的要點可以幫助模型(即使是像8B這樣的小模型)表現得更好。
!pip install -q -U transformers
!pip install -q -U accelerate
!pip install -q -U bitsandbytes
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
model = AutoModelForCausalLM.from_pretrained("rhaymison/Llama-3-portuguese-Tom-cat-8b-instruct", device_map= {"": 0})
tokenizer = AutoTokenizer.from_pretrained("rhaymison/Llama-3-portuguese-Tom-cat-8b-instruct")
model.eval()
你可以使用Pipeline來使用該模型。
from transformers import pipeline
pipe = pipeline("text-generation",
model=model,
tokenizer=tokenizer,
do_sample=True,
max_new_tokens=512,
num_beams=2,
temperature=0.3,
top_k=50,
top_p=0.95,
early_stopping=True,
pad_token_id=tokenizer.eos_token_id,
)
def format_prompt(question:str):
system_prompt = "Abaixo está uma instrução que descreve uma tarefa, juntamente com uma entrada que fornece mais contexto. Escreva uma resposta que complete adequadamente o pedido."
return f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{ system_prompt }<|eot_id|><|start_header_id|>user<|end_header_id|>
{ question }<|eot_id|><|start_header_id|>assistant<|end_header_id|>"""
prompt = format_prompt("Me fale sobra a OAB, Ordem dos Advogados do Brasil")
result = pipe(prompt)
result[0]["generated_text"].split("assistant<|end_header_id|>")[1]
#A Ordem dos Advogados do Brasil (OAB) é a entidade responsável por regulamentar e fiscalizar a profissão de advogado no Brasil.
#Foi criada em 1930, com o objetivo de proteger os direitos e interesses dos advogados e da sociedade, garantindo a defesa dos direitos e garantias fundamentais.
#A OAB é uma entidade de direito público, com personalidade jurídica própria, e é composta por advogados e advogadas que atuam em todo o território nacional.
#A entidade é dirigida por um Conselho Federal, que é o órgão máximo da OAB, e é composto por 32 membros, eleitos por votação direta dos advogados e advogadas.
#A OAB tem como principais atribuições:. Regulamentar a profissão de advogado: a OAB estabelece as normas e regulamentações para a formação, habilitação e exercício
#a profissão de advogado no Brasil. Fiscalizar a atividade dos advogados: a OAB fiscaliza a atividade dos advogados, verificando se eles atendem às normas e
#regulamentações estabelecidas.. Defender os direitos e interesses dos advogados: a OAB defende os direitos e interesses dos advogados, garantindo que eles
#possam exercer sua profissão com liberdade e segurança.\n4. Representar a sociedade: a OAB representa a sociedade, defendendo os direitos e interesses dos
#dadãos e das instituições.A OAB também é responsável por: Certificar a formação e habilitação dos advogados; Fiscalizar a atividade dos advogados, verificando
#se eles atendem às normas e regulamentações estabelecidas;\n* Defender os direitos e interesses dos advogados, garantindo que eles possam exercer sua profissão
#com liberdade e segurança; Representar a sociedade, defendendo os direitos e interesses dos cidadãos e das instituições.Além disso, a OAB também é responsável por:
#Publicar o Diário da Ordem dos Advogados do Brasil
prompt = format_prompt("Haja como um professor de matemática e me explique porque 2 + 2 = 4")
result = pipe(prompt)
result[0]["generated_text"].split("assistant<|end_header_id|>")[1]
#Meu aluno, é um prazer explicar um conceito fundamental da matemática! equação 2 + 2 = 4 pode parecer simples, mas é
#importante entender por quê ela é verdadeira. Em matemática, a adição é uma operação que combina dois números para obter um resultado.
#Nesse caso, estamos adicionando 2 e 2. Para entender melhor, vamos começar com um exemplo concreto. Imagine que você tem 2 maçãs em uma mesa e seu amigo também tem
#2 maçãs em outra mesa. Se você e seu amigo combinam suas maçãs, você terá agora 4 maçãs.Agora, vamos usar símbolos para representar essa situação.
#Podemos escrever 2 + 2 =?, e o resultado é 4. Isso significa que quando você soma 2 e 2, o resultado é 4. Mas por quê isso é verdade? Isso é porque a adição é
#uma operação que segue certas regras. Uma dessas regras é que a ordem em que você soma os números não muda o resultado. Isso significa que 2 + 2 é igual a 2 + 2,
#independentemente da ordem em que você soma.Além disso, a adição também é uma operação que é associativa, o que significa que você pode adicionar números em
#qualquer ordem e o resultado será o mesmo. Por exemplo, (2 + 2) + 0 = 2 + (2 + 0). Isso é verdade porque a adição é uma operação que é idempotente, o que significa
#que adicionando 0 a um número não muda o resultado.Portanto, quando você soma 2 e 2, o resultado é 4 porque a adição segue essas regras. A equação 2 + 2 = 4
#é verdadeira porque é uma consequência lógica da definição da adição e das regras que a governam.Espero que isso tenha ajudado a entender melhor por quê 2 + 2 = 4,
#meu aluno!
如果你遇到“CUDA Out of memory”等內存問題,你應該使用4位或8位量化。在Colab中使用完整模型需要A100。如果你想使用4位或8位量化,T4或L4就可以解決問題。
💻 使用示例
4位量化示例
from transformers import BitsAndBytesConfig
import torch
nb_4bit_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True
)
model = AutoModelForCausalLM.from_pretrained(
base_model,
quantization_config=bnb_config,
device_map={"": 0}
)
📚 詳細文檔
開放葡萄牙語大語言模型排行榜評估結果
詳細結果可在此處和🚀 開放葡萄牙語大語言模型排行榜上查看。
指標 | 數值 |
---|---|
平均值 | 70.57 |
ENEM挑戰(無圖像) | 70.40 |
BLUEX(無圖像) | 58 |
OAB考試 | 51.07 |
Assin2 RTE | 90.91 |
Assin2 STS | 75.40 |
FaQuAD NLI | 76.05 |
HateBR Binary | 86.99 |
葡萄牙語仇恨言論二分類 | 60.39 |
tweetSentBR | 65.92 |
交流反饋
歡迎提出任何想法、提供幫助或反饋問題。
郵箱:rhaymisoncristian@gmail.com
📄 許可證
本項目採用Apache-2.0許可證。
Phi 2 GGUF
其他
Phi-2是微軟開發的一個小型但強大的語言模型,具有27億參數,專注於高效推理和高質量文本生成。
大型語言模型 支持多種語言
P
TheBloke
41.5M
205
Roberta Large
MIT
基於掩碼語言建模目標預訓練的大型英語語言模型,採用改進的BERT訓練方法
大型語言模型 英語
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基礎模型的蒸餾版本,在保持相近性能的同時更輕量高效,適用於序列分類、標記分類等自然語言處理任務。
大型語言模型 英語
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一個多語言大語言模型,針對多語言對話用例進行了優化,在常見的行業基準測試中表現優異。
大型語言模型 英語
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基於100種語言的2.5TB過濾CommonCrawl數據預訓練的多語言模型,採用掩碼語言建模目標進行訓練。
大型語言模型 支持多種語言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基於Transformer架構的英語預訓練模型,通過掩碼語言建模目標在海量文本上訓練,支持文本特徵提取和下游任務微調
大型語言模型 英語
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI發佈的開放預訓練Transformer語言模型套件,參數量從1.25億到1750億,旨在對標GPT-3系列性能,同時促進大規模語言模型的開放研究。
大型語言模型 英語
O
facebook
6.3M
198
1
基於transformers庫的預訓練模型,適用於多種NLP任務
大型語言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多語言大語言模型系列,包含8B、70B和405B參數規模,支持8種語言和代碼生成,優化了多語言對話場景。
大型語言模型
Transformers 支持多種語言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基礎版是由Google開發的文本到文本轉換Transformer模型,參數規模2.2億,支持多語言NLP任務。
大型語言模型 支持多種語言
T
google-t5
5.4M
702
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98