Views
No views yet
1### Load model
2import torch
3from unsloth import FastLanguageModel
4from unsloth.chat_templates import get_chat_template
5from transformers import TextStreamer
6
7max_seq_length = 2048 # Choose any! We auto support RoPE Scaling internally!
8dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
9load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.
10model_path = "daekeun-ml/Phi-3-medium-4k-instruct-ko-poc-v0.1"
11
12model, tokenizer = FastLanguageModel.from_pretrained(
13 model_name = model_tar_dir, # Choose ANY! eg teknium/OpenHermes-2.5-Mistral-7B
14 max_seq_length = max_seq_length,
15 dtype = dtype,
16 load_in_4bit = load_in_4bit,
17 # token = "hf_...", # use one if using gated models like meta-llama/Llama-2-7b-hf
18)
19tokenizer = get_chat_template(
20 tokenizer,
21 chat_template = "phi-3", # Supports zephyr, chatml, mistral, llama, alpaca, vicuna, vicuna_old, unsloth
22 mapping = {"role" : "from", "content" : "value", "user" : "human", "assistant" : "gpt"}, # ShareGPT style
23)
24
25params = {
26 "max_new_tokens": 256,
27 "use_cache": True,
28 "temperature": 0.05,
29 "do_sample": True
30}
31
32### Inference
33FastLanguageModel.for_inference(model) # Enable native 2x faster inference
34
35# 1st example
36messages = [
37 {"from": "human", "value": "Continue the fibonnaci sequence in Korean: 1, 1, 2, 3, 5, 8,"},
38 {"from": "assistant", "value": "피보나치 수열의 다음 숫자는 13, 21, 34, 55, 89 등입니다. 각 숫자는 앞의 두 숫자의 합입니다."},
39 {"from": "human", "value": "Compute 2x+3=12 in Korean"},
40]
41inputs = tokenizer.apply_chat_template(
42 messages,
43 tokenize = True,
44 add_generation_prompt = True, # Must add for generation
45 return_tensors = "pt",
46).to("cuda")
47
48text_streamer = TextStreamer(tokenizer)
49_ = model.generate(input_ids = inputs, streamer = text_streamer, **params)
50
51# 2nd example
52messages = [
53 {"from": "human", "value": "What is Machine Learning in Korean?"},
54 {"from": "assistant", "value": "인공지능의 한 분야로 방대한 데이터를 분석해 향후 패턴을 예측하는 기법입니다."},
55 {"from": "human", "value": "What is Deep Learning in Korean?"},
56]
57inputs = tokenizer.apply_chat_template(
58 messages,
59 tokenize = True,
60 add_generation_prompt = True, # Must add for generation
61 return_tensors = "pt",
62).to("cuda")
63
64from transformers import TextStreamer
65text_streamer = TextStreamer(tokenizer)
66_ = model.generate(input_ids = inputs, streamer = text_streamer, **params)1# 1st example
2<s><|user|> Continue the fibonnaci sequence in Korean: 1, 1, 2, 3, 5, 8,<|end|><|assistant|> 피보나치 수열의 다음 숫자는 13, 21, 34, 55, 89 등입니다. 각 숫자는 앞의 두 숫자의 합입니다.<|end|><|user|> Compute 2x+3=12 in Korean<|end|><|assistant|> 방정식 2x + 3 = 12에서 x를 풀려면 다음 단계를 따르십시오.
3
41. 방정식의 양쪽에서 3을 빼서 방정식의 한쪽에 대해 x를 분리합니다.
5
62x + 3 - 3 = 12 - 3
7
82x = 9
9
102. 이제 방정식의 양쪽을 2로 나누어 x의 값을 구합니다.
11
122배 / 2 = 9 / 2
13
14x = 4.5
15
16따라서 방정식 2x + 3 = 12에 대한 해는 x = 4.5입니다.<|end|>
17
18# 2nd example
19<s><|user|> What is Machine Learning in Korean?<|end|><|assistant|> 인공지능의 한 분야로 방대한 데이터를 분석해 향후 패턴을 예측하는 기법입니다.<|end|><|user|> What is Deep Learning in Korean?<|end|><|assistant|> 복잡한 데이터 세트를 분석하고 복잡한 패턴을 인식하고 학습하는 데 사용되는 딥러닝은 많은 레이어로 구성된 신경망의 하위 집합입니다. 이 기술은 이미지 인식, 자연어 처리 및 자율 운전과 같은 다양한 응용 분야에서 큰 발전을 이뤘습니다.<|end|>