Model
- base model: beomi/Llama-3-KoEn-8B-Instruct-preview
Dataset
Load Model
Use the following Python code to load the model:
from transformers import AutoTokenizer, AutoModelForCausalLM
path = 'youjunhyeok/llama3-8b-ko-sft-v1'
model = AutoModelForCausalLM.from_pretrained(path)
tokenizer = AutoTokenizer.from_pretrained(path)
model.to('cuda')
Chat
def chat(message):
messages = [
{"role": "system", "content": "당신은 인공지능 어시스턴트입니다. 친절하고 정확한 답변을 해주세요."},
{"role": "user", "content": message},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=0.9,
top_p=0.95,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
chat('ETL 파이프라인을 어떻게 구현해야할까?')
Output
ETL(데이터 추출, 변환 및 로드) 파이프라인을 구현하려면 먼저 데이터 소스, 목표, 중간 결과물과 같은 ETL 파이프라인의 각 단계에 대한 명확한 이해와 구현 계획이 필요합니다. 다음은 일반적인 ETL 파이프라인 구현 프로세스입니다:
1. 데이터 소스 이해: ETL 파이프라인의 첫 번째 단계는 데이터 소스를 결정하는 것입니다. ETL 파이프라인에 사용할 데이터 소스 유형을 식별하고 데이터 소스에서 추출할 데이터에 대한 구체적인 계획을 세웁니다.
2. ETL 도구 선택: ETL을 구현하는 데 사용할 도구를 결정합니다. ETL 프로세스의 특정 요구 사항에 따라 다양한 도구를 사용할 수 있습니다. 인기 있는 도구로는 Oracle의 Informatica, Microsoft의 Power BI, 데이터웨어하우스 툴인 Talend 등이 있습니다.
3. 추출 계획 수립: 데이터 소스에서 데이터를 추출할 계획을 세웁니다. 이 단계에서는 데이터 소스에서 필요로 하는 데이터 유형, 구조 및 형식을 파악합니다. 추출 프로세스에 대한 로드맵을 만들고, 데이터 변환 및 로드에 대한 필요성을 식별하는 것이 중요합니다.
4. 변환 계획 수립: 데이터를 변환하기 위해 실행할 프로세스를 결정합니다. 데이터 포맷을 변환하고, 데이터 유형을 변환하며, 필요한 경우 데이터 값을 정규화하거나 결합합니다.
5. 데이터 로드 계획 수립: 변환된 데이터를 데이터베이스나 기타 목적지에 로드할 계획을 세웁니다. 이 단계에서는 데이터베이스 디자인, 저장 프로시저 또는 파이프라인 구성을 결정합니다.
6. ETL 파이프라인 구현: ETL 도구를 사용하여 ETL 파이프라인을 구현합니다. 소스, 변환, 로드 단계를 순서대로 처리하여 필요한 데이터 변환을 수행합니다.
7. 데이터 품질 관리: ETL 파이프라인이 올바르게 작동하고 데이터 품질이 유지되도록 테스트하고 모니터링합니다. 데이터 오류 및 누락 항목을 검출하고 데이터 품질을 유지하기 위한 프로세스를 구현합니다.
BenchMark (KOR)
# alias
A = youjunhyeok/llama3-koen-8b-sft-v1
B = DavidAhn/Llama-3-8B-slerp-262k
C = meta-llama/Meta-Llama-3-8B
D = chihoonlee10/T3Q-ko-solar-dpo-v7.0 (24.05.24 ko 리더보드 1등)
Benchmark (macro_f1) | A | B | C | D |
---|---|---|---|---|
kobest_boolq (0-shot) | 78.1 | 33.5 | 38.2 | 34.1 |
kobest_boolq (5-shot) | 85.0 | 68.8 | 83.8 | 93.1 |
kobest_copa (0-shot) | 80.4 | 58.5 | 63.1 | 81.0 |
kobest_copa (5-shot) | 84.0 | 61.7 | 69.1 | 91.0 |
kobest_hellaswag (0-shot) | 51.7 | 43.2 | 42.1 | 55.1 |
kobest_hellaswag (5-shot) | 51.7 | 45.3 | 44.2 | 55.2 |
kobest_sentineg (0-shot) | 81.5 | 34.8 | 51.5 | 82.7 |
kobest_sentineg (5-shot) | 97.7 | 85.8 | 94.7 | 91.4 |
BenchMark (ENG)
# alias
A = youjunhyeok/llama3-koen-8b-sft-v1
B = DavidAhn/Llama-3-8B-slerp-262k
C = meta-llama/Meta-Llama-3-8B
A | B | C | |
---|---|---|---|
openbookqa | 0.310 | 0.312 | 0.338 |
hellaswag | 0.544 | 0.587 | 0.576 |
boolq | 0.807 | 0.832 | 0.831 |
arc_easy | 0.753 | 0.808 | 0.815 |
arc_challenge | 0.421 | 0.518 | 0.529 |
Llama_factory Train Config
{data_dir}, {dataset_name}, {output_dir} is variable
cutoff_len: 1024
dataset: {dataset_name}
dataset_dir: {data_dir}
ddp_timeout: 180000000
do_train: true
eval_steps: 500
eval_strategy: steps
finetuning_type: lora
flash_attn: auto
fp16: true
gradient_accumulation_steps: 8
include_num_input_tokens_seen: true
learning_rate: 5.0e-05
logging_steps: 5
lora_alpha: 16
lora_dropout: 0.05
lora_rank: 16
lora_target: all
lr_scheduler_type: cosine
max_grad_norm: 1.0
max_samples: 300000
model_name_or_path: beomi/Llama-3-KoEn-8B-Instruct-preview
num_train_epochs: 1.0
optim: adamw_torch
output_dir: {output_dir}
packing: false
per_device_eval_batch_size: 16
per_device_train_batch_size: 16
plot_loss: true
preprocessing_num_workers: 16
report_to: all
save_steps: 1000
stage: sft
template: llama3
val_size: 0.01
warmup_steps: 1000
- Downloads last month
- 1,661
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social
visibility and check back later, or deploy to Inference Endpoints (dedicated)
instead.