|
--- |
|
license: llama2 |
|
language: |
|
- ja |
|
--- |
|
|
|
The English document is [here](https://huggingface.co./watashiha/Watashiha-Llama-2-13B-Ogiri-sft-neuron/blob/main/README_en.md) |
|
|
|
## モデル概要 |
|
[Watashiha-Llama-2-13B-Ogiri-sft](https://huggingface.co./watashiha/Watashiha-Llama-2-13B-Ogiri-sft)をAWSの[inf2インスタンス](https://aws.amazon.com/jp/ec2/instance-types/inf2/)で動作するようにコンパイルされたモデルです。 |
|
|
|
コンパイルは以下の記事を参考に行いました。 |
|
https://huggingface.co./docs/optimum-neuron/tutorials/llama2-13b-chatbot |
|
|
|
|
|
* License: [LLAMA 2 COMMUNITY LICENSE](https://github.com/facebookresearch/llama/blob/main/LICENSE) |
|
|
|
|
|
## 使用方法 |
|
|
|
1. AWS EC2で**inf2.xlarge**のインスタンスを立てる。 |
|
モデルのダウンロードで50GBほど必要になるので、ストレージのサイズは256GB以上に設定しておくのをおすすめします。 |
|
AMIは以下のものを使用してください。 |
|
**Deep Learning AMI Neuron PyTorch 1.13 (Ubuntu 20.04) 20240102** |
|
|
|
2. 以下のコマンドを実行し、用意されているpython環境を有効にする。 |
|
```bash |
|
source /opt/aws_neuron_venv_pytorch/bin/activate |
|
``` |
|
|
|
3. **optimum**をインストールする。 |
|
```bash |
|
pip install optimum[neuronx] |
|
``` |
|
|
|
4. 上記の手順を終えたら、以下のソースコードを実行。 |
|
```python |
|
from optimum.neuron import NeuronModelForCausalLM |
|
from transformers import AutoTokenizer |
|
|
|
model_name = "watashiha/Watashiha-Llama-2-13B-Ogiri-sft-neuron" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True) |
|
model = NeuronModelForCausalLM.from_pretrained(model_name) |
|
|
|
odai = "マジシャンのショーでアシスタントが消えたまま戻ってこない時の一言。" |
|
text = f""" |
|
以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。 |
|
|
|
### 指示: |
|
入力の文は大喜利のお題です。お題に沿った面白いボケを生成してください。 |
|
|
|
### 入力: |
|
{odai} |
|
|
|
### 応答: |
|
""" |
|
text = text.lstrip() |
|
|
|
token_ids = tokenizer.encode(text, return_tensors="pt") |
|
input_len = token_ids.shape[1] |
|
output_ids = model.generate( |
|
token_ids, |
|
max_length=input_len + 64, |
|
do_sample=True, |
|
top_p=0.9, |
|
top_k=50, |
|
temperature=0.8, |
|
pad_token_id=tokenizer.pad_token_id, |
|
eos_token_id=tokenizer.eos_token_id, |
|
) |
|
output = tokenizer.decode(output_ids.tolist()[0], skip_special_tokens=True) |
|
print(output) |
|
""" |
|
以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。 |
|
|
|
### 指示: |
|
入力の文は大喜利のお題です。お題に沿った面白いボケを生成してください。 |
|
|
|
### 入力: |
|
マジシャンのショーでアシスタントが消えたまま戻ってこない時の一言。 |
|
|
|
### 応答: |
|
もうアシスタントいらなくない? |
|
""" |
|
``` |
|
|
|
### コンパイルのパラメータ |
|
|
|
#### input_shapes |
|
``` |
|
{ |
|
"batch_size": 1, |
|
"sequence_length": 1024, |
|
} |
|
``` |
|
|
|
#### compiler_args |
|
``` |
|
{ |
|
"num_cores": 2, |
|
"auto_cast_type": 'bf16', |
|
} |
|
``` |
|
|