beomi's picture
Update README.md
f6b4e2d
|
raw
history blame
3.24 kB
metadata
language:
  - en
  - ko
pipeline_tag: text-generation
tags:
  - facebook
  - meta
  - pytorch
  - llama
  - llama-3
  - llama-3-ko
license: other
license_name: llama3
license_link: LICENSE

Llama-3-Open-Ko-8B-Instruct-preview

Sample usage

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype="auto",
    device_map="auto",
)

messages = [
    {"role": "system", "content": "μΉœμ ˆν•œ μ±—λ΄‡μœΌλ‘œμ„œ μƒλŒ€λ°©μ˜ μš”μ²­μ— μ΅œλŒ€ν•œ μžμ„Έν•˜κ³  μΉœμ ˆν•˜κ²Œ λ‹΅ν•˜μž. λͺ¨λ“  λŒ€λ‹΅μ€ ν•œκ΅­μ–΄(Korean)으둜 λŒ€λ‹΅ν•΄μ€˜."},
    {"role": "user", "content": "ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ΄ 뭐야? 그리고 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ— λŒ€ν•΄ 파이썬 μ½”λ“œλ₯Ό 짜쀘볼래?"},
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

terminators = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = model.generate(
    input_ids,
    max_new_tokens=512,
    eos_token_id=terminators,
    do_sample=True,
    temperature=1,
    top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

Sample Output

μ—¬λŸ¬λΆ„κ»˜μ„œλŠ” λ¬Όλ‘  μ•„μ‹œλŠ”μ§€λΌλ„ μ„€λͺ…을 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€! ν”Όλ³΄λ‚˜μΉ˜(Piconacci) μˆ˜μ—΄μ€ λ‹€μŒκ³Ό 같은 μˆ˜μ—΄μ„ λ§ν•©λ‹ˆλ‹€: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,.... μ΄λ ‡κ²Œ κ³„μ†λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 μˆ˜μ—΄μ€ μΌλ°˜μ μœΌλ‘œλŠ” μˆ˜ν•™μ—μ„œ λ¬΄ν•œνžˆ μ§€μ†λ©λ‹ˆλ‹€. 각 μˆ˜λŠ” 이전 수의 두 λ°°κ°€ λ˜λŠ” μˆ˜μ—΄μž…λ‹ˆλ‹€.

이 μˆ˜μ—΄μ„ 파이썬(Python)으둜 κ΅¬ν˜„ν•˜κ³ μž ν•˜μ‹ λ‹€λ©΄ λ‹€μŒκ³Ό 같은 μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

이 μ½”λ“œμ—μ„œλŠ” n이 μž…λ ₯받은 수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ³€μˆ˜λ‘œ, ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. 이 μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚€λ©΄ μž…λ ₯받은 μˆ˜μ— 따라 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ ν•΄λ‹Ή 항을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, fibonacci(10) ν•˜λ©΄ 55λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

이 μ½”λ“œλŠ” μž¬κ·€μ  ν•¨μˆ˜μ΄κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬ μ‚¬μš©μ΄ 쀄어듀 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μž¬κ·€μ  ν•¨μˆ˜λŠ” λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ΄ λ§Žμ•„μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 쀄이기 μœ„ν•΄ μ΄ν„°λ ˆμ΄ν‹°λΈŒ ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

a, b = 0, 1
for i in range(n):
    a, b = b, a + b

이 μ½”λ“œμ—μ„œλŠ” μ΄ν„°λ ˆμ΄ν‹°λΈŒ ν•¨μˆ˜λ‘œ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. 이 μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚€λ©΄ μž…λ ₯받은 μˆ˜μ— 따라 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ ν•΄λ‹Ή 항을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 μ½”λ“œλŠ” λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μ€„μž…λ‹ˆλ‹€. λ‹€λ§Œ, 이 μ½”λ“œλŠ” 더 λ³΅μž‘ν•©λ‹ˆλ‹€. 이 μ½”λ“œλ₯Ό 더 κ°„λ‹¨ν•˜κ²Œ ν•˜λ €λ©΄ μ΄ν„°λ ˆμ΄ν‹°λΈŒ ν•¨μˆ˜λ₯Ό 더 잘 κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

a, b = 0, 1
while True:
    if n == 1:
        return a
    a, b = b, a + b
    n -= 1

이 μ½”λ“œμ—μ„œλŠ” μž…λ ₯받은 μˆ˜μ— 따라 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜...