我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
- AI說書 - 從0開始 - 180 | RoBERTa 預訓練前言:RoBERTa 預訓練前言
- AI說書 - 從0開始 - 181 | 預訓練模型資料下載與相關依賴準備:預訓練模型資料下載與相關依賴準備
- AI說書 - 從0開始 - 182 | 資料清洗:資料清洗
- AI說書 - 從0開始 - 183 | 初始化模型與 Tokenizer:初始化模型與 Tokenizer
- AI說書 - 從0開始 - 184 | 訓練 & 驗證資料集切割:訓練 & 驗證資料集切割
- AI說書 - 從0開始 - 185 | 初始化 Trainer:撰寫 Training Argument 並初始化 Trainer
- AI說書 - 從0開始 - 186 | 訓練並儲存模型:訓練並儲存模型
模型訓練完也執行完儲存的動作後,現在要來製作一個 Inference 函數,方便後續使用:
from transformers import RobertaConfig, RobertaForCausalLM
from transformers import RobertaTokenizer
tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = RobertaForCausalLM.from_pretrained(model_path)
def generate_response(prompt):
inputs = tokenizer(prompt, return_tensors = "pt", max_length = 50, truncation = True)
output = model.generate(**inputs, max_length = 200, temperature = 0.9, num_return_sequences = 1)
generated_text = tokenizer.decode(output[0], skip_special_tokens = True)
return generated_text