metadata
license: apache-2.0
Korean Pre-Trained Crypto RoBERTa model fine-tuned on BTC sentiment classification dataset.
For more details, check our work CBITS: Crypto BERT Incorporated Trading System on IEEE Access.
Example Use Case: BTC Sentiment Classification
from tokenization_roberta_spm import FairSeqRobertaSentencePieceTokenizer
from transformers import XLMRobertaForSequenceClassification
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = XLMRobertaForSequenceClassification.from_pretrained("axiomlabs/KR-cryptoroberta-base", num_labels=3)
model.eval()
model.to(device)
tokenizer = FairSeqRobertaSentencePieceTokenizer.from_pretrained("fairseq-roberta-all-model")
title = "์ฐ์ฆ๋ฒก, ์ธ๊ตญ๊ธฐ์
์ ์ํธํํ ๊ฑฐ๋์๊ธ ๊ตญ๋ด๊ณ์ข ์
๊ธ ํ์ฉ"
content = "๋นํธ์ฝ์ธ๋ท์ปด์ ๋ฐ๋ฅด๋ฉด ์ฐ์ฆ๋ฒ ํค์คํ ์ค์์ํ์ด ์ธ๊ตญ๊ธฐ์
์ ๊ตญ๋ด ์ํ ๊ณ์ข ๊ฐ์ค ๋ฐ ์ํธํํ ๊ฑฐ๋ ์๊ธ ์
๊ธ์ ํ์ฉํ๋ค. ์์ ์ฐ์ฆ๋ฒ ํค์คํ์ ์ธ๊ตญ๊ธฐ์
์ ์ํ ๊ณ์ข ๊ฐ์ค ๋ฑ์ ์ ํ ๋ฐ ๊ธ์งํ ๋ฐ ์๋ค. ๊ฐ์ ์์ ๋ฐ๋ผ ์ด๋ฌํ ์๊ธ์ ์ํธํํ ๋งค์
์ ์ํด ๊ฑฐ๋์๋ก ์ด์ฒด, ํน์ ์๊ธ์ด ์ ์
๋ ๊ดํ ๊ถ ๋ด ๋ฑ๋ก๋ ๋ฒ์ธ ๊ณ์ข๋ก ์ด์ฒดํ ์ ์๋ค. ๋ค๋ง ๊ทธ ์ธ ๋ค๋ฅธ ๋ชฉ์ ์ ์ํ ์ฌ์ฉ์ ๊ธ์ง๋๋ค. ํด๋น ๊ฐ์ ์์ ์ง๋ 2์ 9์ผ ๋ฐํจ๋๋ค."
encoded_input = tokenizer(str(title), str(content), max_length=512, padding="max_length", truncation=True, return_tensors="pt").to(device)
with torch.no_grad():
output = model(**encoded_input).logits
output = nn.Softmax(dim=1)(output)
output = output.detach().cpu().numpy()[0]
print("ํธ์ฌ: {:.2f}% | ์
์ฌ: {:.2f}% | ์ค๋ฆฝ: {:.2f}%".format(output[0]*100,output[1]*100,output[2]*100))
Example Use Case: Crypto Embedding Similarity
from tokenization_roberta_spm import FairSeqRobertaSentencePieceTokenizer
from transformers import XLMRobertaForSequenceClassification
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = AutoModel.from_pretrained("axiomlabs/KR-cryptoroberta-base")
model.eval()
model.to(device)
tokenizer = FairSeqRobertaSentencePieceTokenizer.from_pretrained("fairseq-roberta-all-model")
title1 = "USDN ๋ค์ค๋ด๋ณด ์์ฐ ์ ํ ์ ์ ํต๊ณผ"
content1 = "์จ์ด๋ธ ์ํ๊ณ ์คํ
์ด๋ธ์ฝ์ธ USDN์ ๋ค์ค๋ด๋ณด ์์ฐ์ผ๋ก ์ ํํ๋ ์ ์ ํฌํ๊ฐ ์ฐฌ์ฑ 99%๋ก ์ค๋ ํต๊ณผ๋๋ค. ์์ ์ฝ์ธ๋์ค๋ ์จ๋ธ๊ฐ $WX,$SWOP,$VIRES,$EGG,$WEST๋ฅผ ๋ด๋ณด๋ก ํด USDN์ ์จ์ด๋ธ ์ํ๊ณ ์ธ๋ฑ์ค ์์ฐ์ผ๋ก ๋ง๋ค์ด USDN ๋ํ๊น
์ด์๋ฅผ ํด๊ฒฐํ ํ๋์ ๊ณต๊ฐํ๋ค๊ณ ์ ํ ๋ฐ ์๋ค."
title2 = "์จ์ด๋ธ, USDN ๊ณ ๋ ์ฒญ์ฐ์ ํฌํ ํต๊ณผ๋ก 30%โ"
content2 = "์ ํฌ๋ฐ์ด์ ๋ฐ๋ฅด๋ฉด ์จ์ด๋ธ(WAVES) ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์คํ
์ด๋ธ์ฝ์ธ ๋ดํธ๋ฆฌ๋
ธ(USDN)์ ๋ํ๊ทธ ๋ฐ์ ์์ด ๋๊ท๋ชจ USDN ํฌ์ง์
์ฒญ์ฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํฌํ๊ฐ ๋ง์ฅ์ผ์น๋ก ํต๊ณผ ๋จ์ ๋ฐ๋ผ WAVES๊ฐ ๋ช์๊ฐ ์์ 30%๋ ์์นํญ์ ๋ํ๋๋ค. ์ง๋ 28์ผ ์จ์ด๋ธ ํ์ด ๋ฐํํ USDN์ ๋ฌ๋ฌ ํ๊ทธ ํ๋ณต ๊ณํ์ ๋ค์๊ณผ ๊ฐ๋ค.- ์ปค๋ธ ๋ฐ CRV ํ ํฐ์ผ๋ก USDN ์ ๋์ฑ ๊ณต๊ธ.- ๊ณ ๋ ๊ณ์ข๋ฅผ ์ฒญ์ฐ์์ผ Vires ์ ๋์ฑ ๋ณต๊ตฌ.- USDN ๋ด๋ณด๋ฌผ์ ๋๋ฌ์ ๊ฑธ์ณ ์ฒ์ฒํ ํ๋งค.- ๋ดํธ๋ฆฌ๋
ธ ํ๋กํ ์ฝ ์๋ณธ ์กฐ๋ฌ์ ์ํ ์๋ก์ด ํ ํฐ ๋ฐํ."
encoded_input1 = tokenizer(str(title1), str(content1), max_length=512, padding="max_length", truncation=True, return_tensors="pt").to(device)
encoded_input2 = tokenizer(str(title2), str(content2), max_length=512, padding="max_length", truncation=True, return_tensors="pt").to(device)
with torch.no_grad():
emb1 = model(**encoded_input1)[0][:,0,:].detach().cpu().numpy()
emb2 = model(**encoded_input2)[0][:,0,:].detach().cpu().numpy()
sim_scores = cdist(emb1, emb2, "cosine")[0]
print(f"cosine distance = {sim_scores[0]}")