59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
|
|
---
|
|||
|
|
license: llama3
|
|||
|
|
language:
|
|||
|
|
- ja
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 概要
|
|||
|
|
|
|||
|
|
elyza/Llama-3-ELYZA-JP-8Bを元にchat vectorを用いて改良しAItuberに特化させました。 gemini-proによる自動評価でそこそこ強いです(elyza-task100で3.81点)
|
|||
|
|
|
|||
|
|
また、当モデルの特徴としてハルシネーション率が5%以下という高い安定性と高性能の両立が挙げられます。
|
|||
|
|
|
|||
|
|
|
|||
|
|
## how to use
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import torch
|
|||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|||
|
|
|
|||
|
|
DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです。特に指示が無い場合は、常に日本語で回答してください。"
|
|||
|
|
text = "優秀なAIとはなんですか? またあなたの考える優秀なAIに重要なポイントを5つ挙げて下さい。"
|
|||
|
|
|
|||
|
|
model_name = "DataPilot/Llama3-ArrowSE-8B-v0.3"
|
|||
|
|
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|||
|
|
model_name,
|
|||
|
|
torch_dtype="auto",
|
|||
|
|
device_map="auto",
|
|||
|
|
)
|
|||
|
|
model.eval()
|
|||
|
|
|
|||
|
|
messages = [
|
|||
|
|
{"role": "system", "content": DEFAULT_SYSTEM_PROMPT},
|
|||
|
|
{"role": "user", "content": text},
|
|||
|
|
]
|
|||
|
|
prompt = tokenizer.apply_chat_template(
|
|||
|
|
messages,
|
|||
|
|
tokenize=False,
|
|||
|
|
add_generation_prompt=True
|
|||
|
|
)
|
|||
|
|
token_ids = tokenizer.encode(
|
|||
|
|
prompt, add_special_tokens=False, return_tensors="pt"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
with torch.no_grad():
|
|||
|
|
output_ids = model.generate(
|
|||
|
|
token_ids.to(model.device),
|
|||
|
|
max_new_tokens=1200,
|
|||
|
|
do_sample=True,
|
|||
|
|
temperature=0.6,
|
|||
|
|
top_p=0.9,
|
|||
|
|
)
|
|||
|
|
output = tokenizer.decode(
|
|||
|
|
output_ids.tolist()[0][token_ids.size(1):], skip_special_tokens=True
|
|||
|
|
)
|
|||
|
|
print(output)
|
|||
|
|
```
|