|
--- |
|
license: llama3.3 |
|
--- |
|
README.md |
|
Mô hình XaXeXu |
|
Đây là mô hình LLM đã được tinh chỉnh từ Meta-Llama-3-8B sử dụng QLoRA để giảm chi phí tính toán nhưng vẫn đảm bảo hiệu suất cao. Mục đích của mô hình là sinh output kết quả từ bộ dữ liệu ELYZA-tasks-100. |
|
|
|
1. Cài đặt môi trường |
|
Đầu tiên, cài đặt các thư viện cần thiết: |
|
|
|
bash |
|
Sao chép mã |
|
pip install transformers bitsandbytes accelerate peft datasets torch |
|
Ngoài ra, cần đăng nhập vào Hugging Face CLI để tải mô hình: |
|
|
|
bash |
|
Sao chép mã |
|
huggingface-cli login |
|
2. Tải mô hình |
|
Dưới đây là cách tải tokenizer và mô hình đã tinh chỉnh: |
|
|
|
python |
|
Sao chép mã |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig |
|
|
|
model_name = "meta-llama/Meta-Llama-3-8B" |
|
|
|
# Cấu hình nén QLoRA |
|
bnb_config = BitsAndBytesConfig( |
|
load_in_4bit=True, |
|
bnb_4bit_compute_dtype=torch.float16, |
|
bnb_4bit_quant_type="nf4", |
|
bnb_4bit_use_double_quant=False, |
|
) |
|
|
|
# Tải tokenizer và mô hình |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, |
|
device_map="auto", |
|
quantization_config=bnb_config, |
|
torch_dtype=torch |
|
|
|
|
|
|
|
|
|
|
|
Bạn đã nói: |
|
viết bằng tiếng nhật |
|
ChatGPT đã nói: |
|
ChatGPT |
|
以下は、Hugging Face上のxaxexu/XaXeXuリポジトリのREADME.mdの完全なサンプルです。 |
|
|
|
XaXeXuモデル |
|
このリポジトリには、Meta-Llama-3-8BをベースにQLoRAを使用してファインチューニングされたXaXeXuモデルが含まれています。 |
|
日本語のベンチマーク ELYZA-tasks-100 に対して高精度な結果を出力するために設計されています。 |
|
|
|
環境構築 |
|
以下のライブラリをインストールすることで環境をセットアップできます。 |
|
|
|
bash |
|
Sao chép mã |
|
pip install transformers bitsandbytes accelerate peft datasets |
|
Hugging Faceアカウントでログインする必要があります。 |
|
|
|
bash |
|
Sao chép mã |
|
huggingface-cli login |
|
モデルのダウンロード |
|
モデルはHugging Faceから直接ダウンロードできます。 |
|
|
|
python |
|
Sao chép mã |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig |
|
import torch |
|
|
|
# モデル名 |
|
model_name = "meta-llama/Meta-Llama-3-8B" |
|
|
|
# 量子化設定 (QLoRA用) |
|
bnb_config = BitsAndBytesConfig( |
|
load_in_4bit=True, |
|
bnb_4bit_compute_dtype=torch.float16, |
|
bnb_4bit_quant_type="nf4", |
|
bnb_4bit_use_double_quant=False, |
|
) |
|
|
|
# トークナイザーとモデルのロード |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, |
|
device_map="auto", |
|
quantization_config=bnb_config, |
|
torch_dtype=torch.bfloat16, |
|
) |
|
ベンチマークデータのダウンロード |
|
ELYZA-tasks-100データセットを使用します。 |
|
|
|
python |
|
Sao chép mã |
|
from datasets import load_dataset |
|
|
|
# データセットのロード |
|
dataset = load_dataset("elyza/ELYZA-tasks-100", split="test") |
|
print(dataset) |
|
モデルの実行と出力 |
|
入力データを処理し、出力を生成してoutput_results.jsonlとして保存します。 |
|
|
|
python |
|
Sao chép mã |
|
import json |
|
|
|
# ベンチマークデータの入力から出力を生成 |
|
results = [] |
|
for sample in dataset: |
|
input_text = sample["input"] |
|
inputs = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True, max_length=512) |
|
outputs = model.generate(**inputs, max_new_tokens=128) |
|
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
results.append({"input": input_text, "output": output_text}) |
|
|
|
# JSONL形式で結果を保存 |
|
with open("output_results.jsonl", "w", encoding="utf-8") as f: |
|
for result in results: |
|
f.write(json.dumps(result, ensure_ascii=False) + "\n") |
|
|
|
print("出力結果は 'output_results.jsonl' に保存されました。") |
|
出力例 |
|
output_results.jsonlのサンプル内容: |
|
|
|
json |
|
Sao chép mã |
|
{"input": "日本の経済成長について説明してください。", "output": "日本の経済成長は主に高度経済成長期に急速に進みました..."} |
|
{"input": "古代ギリシャの哲学者について教えてください。", "output": "古代ギリシャの哲学者には、ソクラテス、プラトン、アリストテレスがいます..."} |