Views
No views yet
name_similarity_model_0.2klue/bert-base1import torch
2from transformers import AutoTokenizer, AutoModel
3import json
4
5# 모델 정보 로드
6with open('name_similarity_model_0.2_model_info.json', 'r') as f:
7 model_info = json.load(f)
8
9with open('name_similarity_model_0.2_tokenizer_info.json', 'r') as f:
10 tokenizer_info = json.load(f)
11
12# 토크나이저 로드
13tokenizer = AutoTokenizer.from_pretrained(tokenizer_info['model_name'])
14
15# 모델 로드 (PyTorch)
16model = torch.load('name_similarity_model_0.2.pth', map_location='cpu')
17model.eval()
18
19# ONNX 모델 사용 (더 빠른 추론)
20import onnxruntime as ort
21onnx_session = ort.InferenceSession('name_similarity_model_0.2.onnx')
22
23def calculate_similarity(text1, text2):
24 # 텍스트 토크나이징
25 inputs1 = tokenizer(text1, return_tensors='pt', max_length=64, padding=True, truncation=True)
26 inputs2 = tokenizer(text2, return_tensors='pt', max_length=64, padding=True, truncation=True)
27
28 # 유사도 계산
29 with torch.no_grad():
30 similarity = model(inputs1, inputs2)
31
32 return similarity.item()
33
34# 예시 사용
35text1 = "스탠다드 더블룸"
36text2 = "Standard Double Room"
37similarity_score = calculate_similarity(text1, text2)
38print(f"유사도: {similarity_score:.4f}")1import onnxruntime as ort
2import numpy as np
3from transformers import AutoTokenizer
4
5# ONNX 세션 생성
6session = ort.InferenceSession('name_similarity_model_0.2.onnx')
7
8# 토크나이저 로드
9tokenizer = AutoTokenizer.from_pretrained('klue/bert-base')
10
11def calculate_similarity_onnx(text1, text2):
12 # 텍스트 토크나이징
13 inputs1 = tokenizer(text1, return_tensors='np', max_length=64, padding=True, truncation=True)
14 inputs2 = tokenizer(text2, return_tensors='np', max_length=64, padding=True, truncation=True)
15
16 # ONNX 모델 추론
17 input_feed = {
18 'input_ids_1': inputs1['input_ids'].astype(np.int64),
19 'attention_mask_1': inputs1['attention_mask'].astype(np.int64),
20 'input_ids_2': inputs2['input_ids'].astype(np.int64),
21 'attention_mask_2': inputs2['attention_mask'].astype(np.int64)
22 }
23
24 similarity = session.run(None, input_feed)[0]
25 return similarity[0][0]
26
27# 예시 사용
28similarity_score = calculate_similarity_onnx("스탠다드 더블룸", "Standard Double Room")
29print(f"유사도: {similarity_score:.4f}")name_similarity_model_0.2.pth: PyTorch 모델 파일name_similarity_model_0.2.onnx: ONNX 모델 파일 (추론 최적화)name_similarity_model_0.2_model_info.json: 모델 메타데이터name_similarity_model_0.2_tokenizer_info.json: 토크나이저 정보roomtype_id를 가진 객실명들property_id이지만 다른 roomtype_id를 가진 객실명들