|
--- |
|
license: cc-by-sa-3.0 |
|
tags: |
|
- Composer |
|
- MosaicML |
|
- llm-foundry |
|
- StreamingDatasets |
|
- mpt-7b |
|
datasets: |
|
- kunishou/databricks-dolly-15k-ja |
|
- Jumtra/oasst1_ja |
|
- Jumtra/jglue_jsquad |
|
- Jumtra/jglue_jsquads_with_input |
|
inference: false |
|
language: |
|
- ja |
|
--- |
|
|
|
# MPT-7B-inst |
|
|
|
このモデルは、MosaicMLのllm-foundryリポジトリを使用して[mosaicml/mpt-7b-instruct](https://huggingface.co/mosaicml/mpt-7b-instruct)をファインチューニングしたモデルです。 |
|
|
|
## Model Date |
|
|
|
June 28, 2023 |
|
|
|
## Model License |
|
|
|
CC-BY-SA-3.0 |
|
|
|
## 評価 |
|
|
|
[Jumtra/test_data_100QA](https://huggingface.co/datasets/Jumtra/test_data_100QA)を用いてモデルの正答率を評価した |
|
|
|
| model name | 正答率 | |
|
| ---- | ---- | |
|
| mosaicml/mpt-7b | 16/100 | |
|
| mosaicml/mpt-7b-instruct | 28/100 | |
|
| Jumtra/mpt-7b-base | 47/100 | |
|
| Jumtra/mpt-7b-inst | 46/100 | |
|
|
|
|
|
## 使用方法 |
|
|
|
注意:このモデルでは、from_pretrainedメソッドにtrust_remote_code=Trueを渡す必要があります。 |
|
これは、Hugging Faceのtransformersパッケージにはまだ含まれていないカスタムのMPTモデルアーキテクチャを使用しているためです。 |
|
MPTには、FlashAttention、ALiBi、QK LayerNormなど、多くのトレーニング効率化機能のオプションが含まれています。 |
|
|
|
```python |
|
# 使用したプロンプトフォーマット |
|
INSTRUCTION_KEY = "### Instruction:" |
|
RESPONSE_KEY = "### Response:" |
|
INTRO_BLURB = "Below is an instruction that describes a task. Write a response that appropriately completes the request." |
|
PROMPT_FOR_GENERATION_FORMAT = """{intro} |
|
{instruction_key} |
|
{instruction} |
|
{response_key} |
|
""".format( |
|
intro=INTRO_BLURB, |
|
instruction_key=INSTRUCTION_KEY, |
|
instruction="{instruction}", |
|
response_key=RESPONSE_KEY, |
|
) |
|
``` |
|
|
|
|
|
```python |
|
import torch |
|
import transformers |
|
name = 'Jumtra/mpt-7b-inst' |
|
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True) |
|
config.attn_config['attn_impl'] = 'torch' |
|
config.init_device = 'cuda:0' # For fast initialization directly on GPU! |
|
model = transformers.AutoModelForCausalLM.from_pretrained( |
|
name, |
|
config=config, |
|
torch_dtype=torch.bfloat16, # Load model weights in bfloat16 |
|
trust_remote_code=True |
|
).to("cuda:0") |
|
model.eval() |
|
|
|
input_text = PROMPT_FOR_GENERATION_FORMAT.format(instruction = "ニューラルネットワークとは何ですか?") |
|
|
|
inputs = tokenizer(input_text, return_tensors="pt").to(model.device) |
|
input_length = inputs.input_ids.shape[1] |
|
|
|
# Without streaming |
|
with torch.no_grad(): |
|
generation_output = model.generate( |
|
**inputs, |
|
max_new_tokens=2048, |
|
do_sample=True, |
|
temperature=0.01, |
|
top_p=0.01, |
|
top_k=60, |
|
repetition_penalty=1.1, |
|
return_dict_in_generate=True, |
|
remove_invalid_values=True, |
|
pad_token_id=tokenizer.pad_token_id, |
|
bos_token_id=tokenizer.bos_token_id, |
|
eos_token_id=tokenizer.eos_token_id, |
|
) |
|
token = generation_output.sequences[0, input_length:] |
|
output = tokenizer.decode(token) |
|
print(output) |
|
|
|
#ニューラルネットワーク(NN)は、人工知能の分野で使用される深い学習アルゴリズムの一種です。これらのアルゴリズムは、データを使って自動的に学習し、特定の目的を達成するために予測や決定を行うことができます。ニューラルネットワークは、多くの異なるアプリケーションで使用されており、自動車の運転システム、検索エンジン、画像認識などです。<|endoftext|> |
|
``` |
|
|
|
## 引用 |
|
|
|
``` |
|
@online{MosaicML2023Introducing, |
|
author = {MosaicML NLP Team}, |
|
title = {Introducing MPT-7B: A New Standard for Open-Source, |
|
ly Usable LLMs}, |
|
year = {2023}, |
|
url = {www.mosaicml.com/blog/mpt-7b}, |
|
note = {Accessed: 2023-03-28}, % change this date |
|
urldate = {2023-03-28} % change this date |
|
} |
|
``` |