Views
No views yet
config.json — 모델 아키텍처 설정(hidden size, layer 수 등). 구조 정보라 보통 수정하지 않습니다.generation_config.json — generate()의 기본값(max_new_tokens, temperature, top_p, 등)tokenizer.json — Fast 토크나이저 전체 정의(vocab/merges/전처리 파이프라인 포함)tokenizer_config.json — 토크나이저 메타(model_max_length, 특수토큰 정책 등)special_tokens_map.json — eos/pad 등 특수 토큰 매핑model-00001-of-00002.safetensors, model-00002-of-00002.safetensors — 모델 가중치 샤드(shard) 파일model.safetensors.index.json — 각 파라미터 텐서가 어느 shard에 있는지 인덱스 맵config.json — Model architecture settings (hidden size, number of layers, etc.). Structural info; usually not modified.generation_config.json — Default parameters for generate() (e.g., max_new_tokens, temperature, top_p).tokenizer.json — Full definition of the Fast tokenizer (vocab/merges/preprocessing pipeline).tokenizer_config.json — Tokenizer metadata (model_max_length, special-token policies, etc.).special_tokens_map.json — Mapping for special tokens (e.g., eos, pad).model-00001-of-00002.safetensors, model-00002-of-00002.safetensors — Sharded model weights.model.safetensors.index.json — Index mapping that shows which tensors live in which shard.1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch, unicodedata, re
3
4RID = "seoseo99/qwen2-1_5b-sum_lk_gemini"
5
6tok = AutoTokenizer.from_pretrained(RID, use_fast=True, trust_remote_code=True)
7if tok.pad_token is None:
8 tok.pad_token = tok.eos_token
9
10model = AutoModelForCausalLM.from_pretrained(
11 RID,
12 torch_dtype=torch.float32, # GPU면 bfloat16/auto 가능
13 low_cpu_mem_usage=True,
14 trust_remote_code=True,
15).eval()
16
17review = "여기에 리뷰 본문을 넣으세요"
18
19sys = ("다음 한국어 리뷰 본문을 1~3문장으로 간결하게 요약하세요. "
20 "과장/광고 톤 금지, 제목/지역/날짜는 출력하지 마세요.")
21body = unicodedata.normalize("NFKC", review).replace("\n", " ")
22
23msgs = [
24 {"role": "system", "content": sys},
25 {"role": "user", "content": "【리뷰 본문】\n" + body},
26]
27
28ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
29
30out = model.generate(
31 ids,
32 max_new_tokens=180,
33 num_beams=4,
34 do_sample=False,
35 no_repeat_ngram_size=4,
36 repetition_penalty=1.05,
37 eos_token_id=tok.eos_token_id,
38)
39
40text = tok.decode(out[0, ids.shape[-1]:], skip_special_tokens=True)
41text = unicodedata.normalize("NFKC", text).replace("\n", " ")
42text = re.sub(r"\s+([\.!?])", r"\1", text).strip()
43print(text if text.endswith(('.', '!', '?')) else text + '.')