File size: 2,953 Bytes
21ca209 ecf5522 21ca209 bb1cac3 d7f4da9 bb1cac3 1f6f3f0 d7f4da9 0fc1eb6 9f2b4e6 d7f4da9 245ff98 bb1cac3 0fc1eb6 aee1080 9f2b4e6 aee1080 9f2b4e6 aee1080 673a1b8 aee1080 673a1b8 aee1080 673a1b8 aee1080 673a1b8 aee1080 9f2b4e6 93a69e2 aee1080 a1b0da1 5a0cf70 a1b0da1 8cbb3d6 5a0cf70 aee1080 |
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 |
---
license: apache-2.0
tags:
- trl
- sft
---
# Model Card for Model ID
## 2023 AIA LLM課程範例
<!-- Provide a quick summary of what the model is/does. -->
- 基礎模型: huggingface平台的Llama-2-7b-chat-hf ( https://huggingface.co/meta-llama/Llama-2-7b-chat-hf)
- 採用8bits精度載入模型權重 (load_in_8bit=True)
- 使用peft library的LoRA訓練方式,進行fine-tuning:
```python
lora_alpha = 16
lora_dropout = 0.1
lora_r = 8
```
### 資料集
(語料包括:英,中,日,韓) HF連結: https://huggingface.co/datasets/timdettmers/openassistant-guanaco
### 訓練環境
使用google colab 免費資源(GPU: T4, 15GB)
### 執行範例
**1.先確認所需library**
```python
#確認安裝所需套件
!pip install -q -U trl transformers accelerate git+https://github.com/huggingface/peft.git
#LlamaTokenizer requires the SentencePiece library
!pip install sentencepiece
```
**2.下載模型**
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
model_name = "stuser2023/Llama2-7b-finetuned"
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quantization_config,
device_map={'': 0}, # 設定使用的設備,此處指定為 GPU 0
trust_remote_code=True,
)
model.config.use_cache = False
model=model.eval() #把Dropout功能關掉
```
**3.進行推論(文字生成)**
```python
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path, trust_remote_code=True, padding=True)
tokenizer.pad_token = tokenizer.eos_token
input_ids = tokenizer(['<s>Human: 在未來的2040年,人類社會將進入\n</s><s>Assistant: '], return_tensors="pt",add_special_tokens=False).input_ids.to('cuda')
generate_input = {
"input_ids":input_ids,
"max_new_tokens":384,
"do_sample":True,
"top_k":50,
"top_p":0.95,
"temperature":0.3,
"repetition_penalty":1.3,
"eos_token_id":tokenizer.eos_token_id,
"bos_token_id":tokenizer.bos_token_id,
"pad_token_id":tokenizer.pad_token_id
}
generate_ids = model.generate(**generate_input)
text = tokenizer.decode(generate_ids[0])
print(text)
```
### 目前的生成效果
```python
'''
### Human:在未來的2040年,人類社會將進入一個新的時代。
### Assistant:人類社會在2040年進入一個新的時代,這個時代是一個高度技術和人工智慧的時代。
人類將使用自動駕駛汽車和處理資料,並且人類將使用人工智慧來解決問題。
人類將使用數位貨幣來儲存和交換貨幣,並且人類將使用雷射和激光來傳遞資料。
人類將使用創新的技術來改善生活。
人類將使用處理資料和數位貨幣來儲存和交換資料。
人類將使用雷射和激光來傳遞資料。
人類將使用創新的技術來改善生活。
人類將使用處理資料和數位貨幣來儲存和交換資料
'''
``` |