File size: 3,187 Bytes
f4666af ac1b2f5 f4666af |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
---
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',
}
```
|