Views
No views yet
drug_summary, drug_details) 및 제품 유형 정의(drug_type_definition), DUR 규제 정의(drug_dur_type_definition)를 활용하여intfloat/multilingual-e5-small을 선택했습니다.small 모델은 약 33M 파라미터로, M1/M2 맥북 등 로컬 환경에서도 안정적으로 fine-tuning 가능했습니다."기침약", "열 내리는 약")와 제품명("판콜에이", "타이레놀") 간 의미 매칭에 뛰어난 성능을 보입니다.SentenceTransformer 인터페이스와 100% 호환되어, PyTorch 기반 pipeline 통합이 용이했습니다.drug_type_def_list.csv"해열제" → "체온을 낮추는 약" 과 같은 개념 매핑 학습/model/fine_tuned_e5_small_drugtypedrug_dur_type_similarity_train.csv"임부금기", "노인주의", "병용금기" 등 DUR 타입과 전문적 설명 간 의미 매핑 학습/model/fine_tuned_e5_small_drugdurtypedrug_product_similarity_train.csv (약 3,000건 샘플)"판콜에이내복액" 같은 실제 제품과 "열을 내리는 약" 같은 질의 간 의미 매칭 강화/model/fine_tuned_e5_small_drugproduct_accumfine_tuned_e5_small_drugdurtype 모델을 기반으로,ingredient_name)과 제품 유형(product_type)을 결합한fine_tuned_e5_small_drug_ptype_ingredients)을 추가로 수행하였습니다.| 항목 | 값 |
|---|---|
| 학습 데이터 | "성분명은(는) 제품유형 제제에서 사용되는 의약 성분이다." |
| 샘플 사이즈 | 1,289 |
| 평균 손실 | 0.0012 |
| 유사도 평가 | 의미적 구분이 충분히 이루어지지 않음 |
| 관찰 예시 | “소염·진통제” 계열의 이부프로펜과 비관련 성분인 염화나트륨, 세티리진이 모두 0.91~0.94 수준의 유사도를 보임 |
1from sentence_transformers import SentenceTransformer, util
2
3model = SentenceTransformer("Yoonyoul/fine-tuned-e5-small-drugproduct")
4
5query = "열을 내리는 약은?"
6docs = [
7 "판콜에이내복액은 해열진통제입니다.",
8 "마이암부톨정은 항결핵제입니다.",
9 "지르텍정은 항히스타민제입니다."
10]
11
12emb_q = model.encode(query, convert_to_tensor=True)
13emb_d = model.encode(docs, convert_to_tensor=True)
14
15scores = util.cos_sim(emb_q, emb_d)[0]
16for doc, score in zip(docs, scores):
17 print(f"{doc} → 유사도: {score.item():.4f}")| 항목 | 버전 |
|---|---|
| Python | 3.12.4 |
| torch | 2.4.1 |
| transformers | 4.44.2 |
| sentence-transformers | 3.0.1 |
| accelerate | 0.27.0 |
| pandas | 2.2.3 |
intfloat/multilingual-e5-smallYoonyoul/fine-tuned-e5-small-drugproduct