Llama-3.2-1B-Instruction-FFT
Collection
1B-Instruction-FFT Training
•
2 items
•
Updated
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = 'MDDDDR/Llama-3.2-1B-Instruct-FFT-coder-python'
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id,
device_map="cuda:0",
torch_dtype=torch.bfloat16)
instruction = '''LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.
예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
###입력 : 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.
###출력 : 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.
###입력 예제 :
ACAYKP
CAPCAK
###출력 예제 : 4
'''
messages = [
{
"role":"user",
"content":"아래는 문제를 설명하는 지시사항입니다. 이 요청에 대해 적절하게 답변해주세요.\n###지시사항:{instruction}\n###답변:".format(instruction=instruction)
}
]
with torch.no_grad():
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=False)
inputs = tokenizer(prompt, return_tensors="pt", padding=False).to('cuda')
outputs = model.generate(**inputs,
use_cache=False,
max_length=256,
top_p=0.9,
temperature=0.7,
repetition_penalty=1.0,
pad_token_id=tokenizer.pad_token_id)
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
final_output = output_text.split('답변:')[-1].strip()
print(final_output)
# ```python
# def longest_common_subsequence(str1, str2):
# m = len(str1)
# n = len(str2)
# dp = [[0] * (n+1) for _ in range(m+1)]
#
# for i in range(m+1):
# for j in range(n+1):
# if i == 0 or j == 0:
# dp[i][j] = 0
# elif str1[i-1] == str2[j-1]:
# dp[i][j] = dp[i-1][j-1] + 1
# else:
# dp[i][j] = max(dp[i-1][j], dp[i][j-1])
#
# return dp[m][n]
#
# print(longest_common_subsequence("ACAYKP", "CAPCAK")) # Output: 4
# ```
Base model
meta-llama/Llama-3.2-1B-Instruct