library_name: transformers
license: cc-by-nc-4.0
datasets:
- kyujinpy/KOR-OpenOrca-Platypus-v3
language:
- ko
- en
tags:
- Economic
- Finance
Model Details
Model Developers: Sogang University SGEconFinlab(<https://sc.sogang.ac.kr/aifinlab/)
Model Description
This model is a language model specialized in economics and finance. This was learned with various economic/finance-related data. The data sources are listed below, and we are not releasing the data that we trained on because it was used for research/policy purposes. If you wish to use the original data, please contact the original author directly for permission to use it.
- Developed by: Sogang University SGEconFinlab(https://sc.sogang.ac.kr/aifinlab/)
- License: cc-by-nc-4.0
- Base Model: yanolja/KoSOLAR-10.7B-v0.2(https://huggingface.co./yanolja/KoSOLAR-10.7B-v0.2)
Loading the Model
peft_model_id = "SGEcon/KoSOLAR-10.7B-v0.2_fin_v4"
config = PeftConfig.from_pretrained(peft_model_id)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, quantization_config=bnb_config, device_map={"":0})
model = PeftModel.from_pretrained(model, peft_model_id)
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
model.eval()
Conducting Conversation
import re
def gen(x):
inputs = tokenizer(f"### ์ง๋ฌธ: {x}\n\n### ๋ต๋ณ:", return_tensors='pt', return_token_type_ids=False)
# ๋ฐ์ดํฐ๋ฅผ GPU๋ก ์ด๋(์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ)
inputs = {k: v.to(device="cuda" if torch.cuda.is_available() else "cpu") for k, v in inputs.items()}
gened = model.generate(
**inputs,
max_new_tokens=256, # ์๋ก ์์ฑํ ํ ํฐ์ ์ต๋ ๊ฐ์
early_stopping=True,
num_return_sequences=1, # ํ๋์ ๋ต๋ณ๋ง ์์ฑ
do_sample=True, # ๋ค์ํ ๋ต๋ณ ์์ฑ์ ์ํด ์ํ๋ง ํ์ฑํ
eos_token_id=tokenizer.eos_token_id, # EOS ํ ํฐ ID ์ฌ์ฉ
temperature=0.9, # ์์ฑ ๋ค์์ฑ ์กฐ์ ์ ์ํ ์จ๋ ์ค์
top_p=0.8, # nucleus sampling์์ ์ฌ์ฉํ p ๊ฐ
top_k=50 # top-k sampling์์ ์ฌ์ฉํ k ๊ฐ
)
# ์์ฑ๋ ์ํ์ค๋ฅผ ๋์ฝ๋ํ์ฌ ์ถ๋ ฅ ํ
์คํธ๋ก ๋ณํ
decoded = tokenizer.decode(gened[0], skip_special_tokens=True).strip()
# "### ๋ต๋ณ:" ๋ฌธ์์ด ์ดํ์ ํ
์คํธ๋ง ์ถ์ถ
answer_start_idx = decoded.find("### ๋ต๋ณ:") + len("### ๋ต๋ณ:")
complete_answer = decoded[answer_start_idx:].strip()
# ์ฒซ ๋ฒ์งธ ๊ตฌ๋์ (. ? !)์ ์ฐพ์์ ๊ทธ ๋ถ๋ถ๊น์ง๋ง ์ถ์ถ
match = re.search(r"[\.\?\!][^\.\?\!]*$", complete_answer)
if match:
complete_answer = complete_answer[:match.end()].strip()
return complete_answer
Training Details
First, we loaded the base model quantized to 4 bits. It can significantly reduce the amount of memory required to store the model's weights and intermediate computation results, which is beneficial for deploying models in environments with limited memory resources. It can also provide faster inference speeds. Then,
Training Data
- ํ๊ตญ์ํ: ๊ฒฝ์ ๊ธ์ต์ฉ์ด 700์ (https://www.bok.or.kr/portal/bbs/B0000249/view.do?nttId=235017&menuNo=200765)
- ๊ธ์ต๊ฐ๋ ์: ๊ธ์ต์๋น์ ์ ๋ณด ํฌํธ ํ์ธ ๊ธ์ต์ฉ์ด์ฌ์ (https://fine.fss.or.kr/fine/fnctip/fncDicary/list.do?menuNo=900021)
- KDI ๊ฒฝ์ ์ ๋ณด์ผํฐ: ์์ฌ ์ฉ์ด์ฌ์ (https://eiec.kdi.re.kr/material/wordDic.do)
- ํ๊ตญ๊ฒฝ์ ์ ๋ฌธ/ํ๊ฒฝ๋ท์ปด: ํ๊ฒฝ๊ฒฝ์ ์ฉ์ด์ฌ์ (https://terms.naver.com/list.naver?cid=42107&categoryId=42107), ์ค๋์ TESAT(https://www.tesat.or.kr/bbs.frm.list/tesat_study?s_cateno=1), ์ค๋์ ์ฃผ๋์ด TESAT(https://www.tesat.or.kr/bbs.frm.list/tesat_study?s_cateno=5), ์๊ธ์๊ธํ๊ฒฝ(https://sgsg.hankyung.com/tesat/study)
- ์ค์๋ฒค์ฒ๊ธฐ์ ๋ถ/๋ํ๋ฏผ๊ตญ์ ๋ถ: ์ค์๋ฒค์ฒ๊ธฐ์ ๋ถ ์ ๋ฌธ์ฉ์ด(https://terms.naver.com/list.naver?cid=42103&categoryId=42103)
- ๊ณ ์ฑ์ผ/๋ฒ๋ฌธ์ถํ์ฌ: ํ๊ณยท์ธ๋ฌด ์ฉ์ด์ฌ์ (https://terms.naver.com/list.naver?cid=51737&categoryId=51737)
- ๋งจํ์ ๊ฒฝ์ ํ 8ํ Word Index
- yanolja/KoSOLAR-10.7B-v0.2(<yanolja/KoSOLAR-10.7B-v0.2>)
Training Procedure
Training Hyperparameters
Hyperparameter | SGEcon/KoSOLAR-10.7B-v0.2_fin_v4 |
---|---|
Lora Method | Lora |
load in 4 bit | True |
learning rate | 1e-5 |
lr scheduler | linear |
lora alpa | 16 |
lora rank | 16 |
lora dropout | 0.05 |
optim | paged_adamw_32bit |
target_modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, lm_head |
Evaluation
Testing Data, Factors & Metrics
Testing Data
[More Information Needed]
Results
[More Information Needed]