Sentence Similarity
sentence-transformers
Safetensors
Korean
xlm-roberta
patent
feature-extraction
text-embeddings-inference
Instructions to use sttempler/KORPatent-BGE with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use sttempler/KORPatent-BGE with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("sttempler/KORPatent-BGE") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
File size: 7,406 Bytes
5d7eef6 8b54e34 ea164f3 d620e1c 809ffb8 ea164f3 d02df2b ea164f3 218fcb3 809ffb8 2ebbdf8 ea164f3 d620e1c d4a6fab ea164f3 d620e1c 7cf58fc ea164f3 85a6f60 ea164f3 d620e1c d4a6fab a0762f6 ea164f3 d620e1c ea164f3 e5f0a7d ea164f3 e5f0a7d ea164f3 d620e1c d4a6fab a0762f6 d4a6fab f49576d ea164f3 920057b bf25a47 ce71f6e ea164f3 ac7fc99 f160989 0e0bdc1 d4a6fab a0762f6 d760ffa ea164f3 7a311fe ea164f3 55fc95d c017fc9 d760ffa 4dc9f6b 2c695a9 4dc9f6b 4d124f7 4dc9f6b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | ---
license: mit
language:
- ko
base_model:
- BAAI/bge-m3
pipeline_tag: sentence-similarity
library_name: sentence-transformers
tags:
- patent
- feature-extraction
- sentence-similarity
---
# KORPatent-BGE
## Model Summary[EN]
This model is a KOREAN patent-domain embedding model fine-tuned from [BGE-M3](https://huggingface.co/BAAI/bge-m3) using curriculum triplet learning without relying on pseudo similarity scores (pseudo labels) generated by other models.
Instead of collecting dense, per-pair similarity scores for massive patent pairsโwhich is costly and often infeasibleโwe define Anchor / Positive / Negative triplets using objective rules based on:
- Main IPC hierarchy
- Sub IPC hierarchy
- Keyword overlap constraints
Training progresses from easy discrimination to hard discrimination via 5-stage Curriculum Learning, encouraging the model to learn both coarse technical boundaries and fine-grained technical distinctions.
- Base model: [BGE-M3](https://huggingface.co/BAAI/bge-m3)
- Post-hoc weight interpolation: initial fine-tuned model + [KURE-v1](https://huggingface.co/nlpai-lab/KURE-v1)
## Model Summary[KO]
์ด ๋ชจ๋ธ์ [BGE-M3](https://huggingface.co/BAAI/bge-m3)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ๋ค๋ฅธ ๋ชจ๋ธ์ด ์์ฑํ ์์ฌ ์ ์ฌ๋ ์ ์(์์ฌ ๋ ์ด๋ธ, pseudo label)์ ์์กดํ์ง ์๊ณ ์ปค๋ฆฌํ๋ผ ํธ๋ฆฌํ๋ ํ์ต(curriculum triplet learning)์ผ๋ก ๋ฏธ์ธ์กฐ์ ํ ํ๊ตญ์ด ํนํ ๋๋ฉ์ธ ์๋ฒ ๋ฉ ๋ชจ๋ธ์
๋๋ค.
๋ฐฉ๋ํ ํนํ ์์ ๋ํด ์๋ง๋ค ์กฐ๋ฐํ ์ ์ฌ๋ ์ ์๋ฅผ ์์งํ๋ ๋ฐฉ์์ ๋น์ฉ์ด ํฌ๊ณ ์ข
์ข
์คํ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฐ ๋ฐฉ์ ๋์ , ๋ค์์ ๊ฐ๊ด์ ๊ท์น์ ๊ธฐ๋ฐํด ์ต์ปค(Anchor) / ํฌ์งํฐ๋ธ(Positive) / ๋ค๊ฑฐํฐ๋ธ(Negative) ํธ๋ฆฌํ๋ ์ ์ ์ํ์ต๋๋ค.
- ์ฃผ(Main) IPC ๊ณ์ธต
- ํ์(Sub) IPC ๊ณ์ธต
- ํค์๋ ์ค๋ณต ์ ์ฝ
ํ์ต์ 5๋จ๊ณ ์ปค๋ฆฌํ๋ผ ํ์ต(Curriculum Learning)์ ํตํด ์ฌ์ด ๊ตฌ๋ถ์์ ์ด๋ ค์ด ๊ตฌ๋ถ์ผ๋ก ์งํ๋๋ฉฐ, ๋ชจ๋ธ์ด ๊ฑฐ์น ์์ค์ ๊ธฐ์ ์ ๊ฒฝ๊ณ์ ๋ฏธ์ธํ ๊ธฐ์ ์ ์ฐจ์ด๋ฅผ ๋ชจ๋ ํ์ตํ๋๋ก ์ ๋ํฉ๋๋ค.
- ๊ธฐ๋ฐ ๋ชจ๋ธ: [BGE-M3](https://huggingface.co/BAAI/bge-m3)
- ์ฌํ ๊ฐ์ค์น ๋ณด๊ฐ(Post-hoc weight interpolation): ์ด๊ธฐ ๋ฏธ์ธ์กฐ์ ๋ชจ๋ธ + [KURE-v1](https://huggingface.co/nlpai-lab/KURE-v1)
---
## Key Features[EN]
- **Patent-domain specialization**: robust semantic similarity in patent text.
- **No teacher-score dependency**: not used external model similarity scores as pseudo labels.
- **Curriculum triplet training**: with custom loss function.
- **Explicit hard negatives**: negatives are intentionally selected using IPC/keyword rules.
- **Post-hoc interpolation**: improves general-purpose behavior while retaining patent-domain gains.
## Key Features[KO]
- **ํนํ ๋๋ฉ์ธ ํนํ**: ํนํ ํ
์คํธ์์ ๊ฒฌ๊ณ ํ ์๋ฏธ ์ ์ฌ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- **๊ต์ฌ ์ ์ ๋น์์กด**: ์ธ๋ถ ๋ชจ๋ธ์ ์ ์ฌ๋ ์ ์๋ฅผ ์์ฌ ๋ ์ด๋ธ๋ก ์ฌ์ฉํ์ง ์์์ต๋๋ค.
- **์ปค๋ฆฌํ๋ผ ํธ๋ฆฌํ๋ ํ์ต**: ์ปค์คํ
์์ค ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- **๋ช
์์ ํ๋ ๋ค๊ฑฐํฐ๋ธ**: ๋ค๊ฑฐํฐ๋ธ๋ฅผ IPC/ํค์๋ ๊ท์น์ผ๋ก ์๋์ ์ผ๋ก ์ ๋ณํฉ๋๋ค.
- **์ฌํ ๋ณด๊ฐ**: ํนํ ๋๋ฉ์ธ ์ฑ๋ฅ์ ์ ์งํ๋ฉด์ ๋ฒ์ฉ ์ฑ๋ฅ์ ๊ฐ์ ํฉ๋๋ค.
---
## Intended Use[EN]
**Recommended**
- Patent semantic search / prior art retrieval based on dense retrieval
- Patent clustering, de-duplication, and nearest-neighbor exploration
- Patent-to-patent similarity scoring (cosine similarity)
- For RAG
**Not recommended / out of scope**
- Legal advice, patent validity judgments, infringement or claim scope interpretation
- High-stakes decisions without expert review
## Intended Use[KO]
**๊ถ์ฅ**
- ๋ฐ์ง ๊ฒ์(dense retrieval) ๊ธฐ๋ฐ ํนํ ์๋ฏธ ๊ฒ์ / ์ ํ๊ธฐ์ ์กฐ์ฌ
- ํนํ ๊ตฐ์งํ, ์ค๋ณต ์ ๊ฑฐ, ์ต๊ทผ์ ์ด์ ํ์
- ํนํ ๊ฐ ์ ์ฌ๋ ์ฐ์ (์ฝ์ฌ์ธ ์ ์ฌ๋)
- RAG ์ฉ๋
**๋น๊ถ์ฅ / ์ ์ฉ ๋ฒ์ ๋ฐ**
- ๋ฒ๋ฅ ์๋ฌธ, ํนํ ์ ํจ์ฑ ํ๋จ, ์นจํด ๋๋ ์ฒญ๊ตฌ๋ฒ์ ํด์
- ์ ๋ฌธ๊ฐ ๊ฒํ ์๋ ์ค๋ํ ์์ฌ๊ฒฐ์
---
## Training Data (Title + Abstract + Claims)
- [ํนํ ๋ถ์ผ ์๋๋ถ๋ฅ ๋ฐ์ดํฐ](https://aihub.or.kr/aihubdata/data/view.do?dataSetSn=547)
- [๊ตญ๊ฐ์ค์ ๊ธฐ์ ๋์ ํนํ ๋ฐ์ดํฐ](https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&dataSetSn=71739)
- [์ฐ์
์ ๋ณด ์ฐ๊ณ ์ฃผ์๊ตญ ํนํ ์-ํ ๋ฐ์ดํฐ](https://aihub.or.kr/aihubdata/data/view.do?dataSetSn=563)
- [๊ณผํ๊ธฐ์ ํ์ค๋ถ๋ฅ ๋์ ํนํ ๋ฐ์ดํฐ](https://aihub.or.kr/aihubdata/data/view.do?dataSetSn=71531)
---
## UMAP Visualization by IPC Subclass

Patent documents inherently share highly overlapping terminology, making it fundamentally difficult to separate them based on surface-level text alone.
As an illustrative example to demonstrate our model's capability to capture true semantic context, we selected five IPC subclasses for UMAP visualization: G01D (General Measurement), G01R (Measuring Electric Variables), H03K (Pulse Techniques), G05B (Control Systems), and H01L (Semiconductor Devices).
These subclasses represent a continuous technical workflow: Measurement โ Signal Processing โ Control โ Hardware Manufacturing. While their textual vocabularies are heavily intertwined, they have distinctly different functional roles from a domain knowledge perspective.
ํนํ ๋ฌธ์๋ ๋ณธ์ง์ ์ผ๋ก ๋งค์ฐ ์ค์ฒฉ๋ ์ฉ์ด๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์, ํ๋ฉด์ ์ธ ํ
์คํธ๋ง์ผ๋ก ๊ตฌ๋ถํ๊ธฐ๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ์ด๋ ต์ต๋๋ค.
๋ชจ๋ธ์ด ์ค์ ์๋ฏธ์ ๋งฅ๋ฝ์ ํฌ์ฐฉํ๋ ๋ฅ๋ ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์์๋ก, UMAP ์๊ฐํ์ ๋ค์ฏ ๊ฐ์ IPC ์๋ธํด๋์ค๋ฅผ ์ ํํ์ต๋๋ค: G01D(์ผ๋ฐ ์ธก์ ), G01R(์ ๊ธฐ ๋ณ๋ ์ธก์ ), H03K(ํ์ค ๊ธฐ์ ), G05B(์ ์ด ์์คํ
), H01L(๋ฐ๋์ฒด ์์).
์ด ์๋ธํด๋์ค๋ค์ ์ธก์ โ ์ ํธ ์ฒ๋ฆฌ โ ์ ์ด โ ํ๋์จ์ด ์ ์กฐ๋ก ์ด์ด์ง๋ ์ฐ์์ ์ธ ๊ธฐ์ ํ๋ฆ์ ๋ํ๋
๋๋ค. ํ
์คํธ ์ดํ๋ ์๋ก ํฌ๊ฒ ์ฝํ ์์ง๋ง, ๋๋ฉ์ธ ์ง์ ๊ด์ ์์๋ ๊ธฐ๋ฅ์ ์ญํ ์ด ๋๋ ท์ด ๋ค๋ฆ
๋๋ค.
---
## Usage
### Sentence-Transformers
```python
from sentence_transformers import SentenceTransformer
import torch
model = SentenceTransformer("sttempler/KORPatent-BGE", device="cuda" if torch.cuda.is_available() else "cpu")
sentences = [
"์ธ๊ฐ ์ ํธ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ์๋ด ์ฑ๋ด ์๋ต์ ์ ๋ ฌํ๋ RLHF ๊ธฐ๋ฐ ํ์ต ๋ฐฉ๋ฒ.",
"์ ํธ ํผ๋๋ฐฑ์ผ๋ก ๋ณด์ ์ ํธ๋ฅผ ๊ตฌ์ฑํ์ฌ ์์ฑ ๋ชจ๋ธ์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ํค๋ ๋ฐฉ๋ฒ."
]
emb = model.encode(sentences, normalize_embeddings=True)
score = float(emb[0] @ emb[1].T)
print(score)
# 0.7382504343986511
```
---
### Citation
If you use this model in your research, please cite the following doctoral dissertation:
```bibtex
@phdthesis{kim2026koreanpatentembedding,
title = {A Study on Domain-Specific Long-Context Embedding Models for Advancing Korean Patent Retrieval},
author = {Kim, Yongwoo},
school = {Hanyang University},
department = {Graduate School of Technology & Innovation Management},
year = {2026},
type = {Doctoral dissertation},
note = {Korean title: ํ๊ตญ์ด ํนํ ๊ฒ์์ ์ํ ์ฅ๋ฌธ ์๋ฒ ๋ฉ ๋ชจ๋ธ}
}
``` |