---
language:
- en
- ko
license: cc-by-nc-sa-4.0
tags:
- facebook
- meta
- pytorch
- llama
- llama-3
- llama-3-ko
pipeline_tag: text-generation
license_name: llama3
license_link: LICENSE
---

## Llama-3-KoEn-8B-Instruct-preview

> Update @ 2024.05.01: Pre-Release [Llama-3-KoEn-8B model](https://huggingface.co/beomi/Llama-3-KoEn-8B-preview) & [Llama-3-KoEn-8B-Instruct-preview](https://huggingface.co/beomi/Llama-3-KoEn-8B-Instruct-preview)

## Model Details

**Llama-3-KoEn-8B-Instruct-preview**

Llama-3-KoEn-8B model is continued pretrained language model based on Llama-3-8B.

The train was done on TPUv4-256, with the warm support from TRC program by Google.

With applying the idea from [Chat Vector paper](https://arxiv.org/abs/2310.04799),
I released Instruction model named [Llama-3-KoEn-8B-Instruct-preview](https://huggingface.co/beomi/Llama-3-KoEn-8B-Instruct-preview).

Since it is NOT finetuned with any Korean instruction set(indeed `preview`), but it would be great starting point for creating new Chat/Instruct models.

**Sample usage**

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "beomi/Llama-3-KoEn-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**
    
    피보나치 수열은 이탈리아 수학자 레오나르도 피보나치의 이름을 따서 유래된 수열입니다. 피보나치 수열은 특정 조건에 따라 얻어지는 등차수열로, 다음 수를 구하는 단순한 규칙에 의해 생성되는 수열입니다.
    
    1, 1, 2, 3, 5, 8, 13, 21,... (등차 수열)
    
    이러한 수열은 자연 세계에도 많이 발견됩니다. 예를 들어, 새싹이 자라는 방식, 달걀이 부화되는 횟수, 코끼리의 생장 등이 피보나치 수열을 따르기 때문입니다. 🌱🦆🐮
    
    지금부터는 파이썬 코드를 작성해 볼까요? 😊
    
    먼저, 파이썬 코드를 작성하기 위해 필요한 모듈은 없습니다. 저희는 피보나치 수열을 생성하는 알고리즘을 작성할 것입니다.
    
    1. 파이썬 코드 생성
    다음은 피보나치 수열을 생성하는 코드입니다. 이 코드는 `while` 루프를 사용하여 피보나치 수열을 생성합니다.
    
    ```python
    def fib(n):
        if n <= 1:
            return n
        a, b = 0, 1
        for _ in range(2, n+1):
            a, b = b, a + b
        return b
    
    n = int(input("피보나치 수열을 얼마나 생성할지 입력하세요: "))
    for i in range(n):
        print(fib(i+1))
    ```
    2. 코드 설명
    위 코드는 `fib(n)` 함수를 정의합니다. 이 함수는 `n`번째 피보나치 수를 반환합니다.
    
    `fib(n)` 함수는 `if` 조건문을 사용하여 `n`이 0 또는 1일 경우 해당 값은 즉시 반환합니다.
    
    `a, b = 0, 1`은 피보나치 수열의 초기 값을 설정합니다. `a`는 `0`을, `b`는 `1`을 할당합니다.
    
    `for` 루프는 `range(2, n+1)`에서 생성되는 반복을 수행합니다. 이 반복은 `a, b = b, a + b`를 수행하여 피보나치 수열을 생성합니다.
    
    `print(fib(i+1))`는 `fib(n)` 함수 호출 결과를 출력합니다.
    
    3. 코드 실행
    위 코드를 실행하기 위해 파이썬 인터프레터에서 다음과 같이 실행할 수 있습니다.
    ```python
    $ python fib.py
    피보나치 수열을 얼마나 생성할지 입력하세요: 10
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    ```
    위 코드를 실행하면, 사용자는 `피보나치 수열을 얼마나 생성할지 입력하세요:`를 입력할 수 있습니다. 이 입력은 `n`에 할당됩니다. `n`은 코드가 피보나치 수열을 생성하는 횟수를 결정하는 변수입니다. 사용자는 이 횟수를 입력하여 피보나치 수열을 생성할 수 있습니다.
    
    이상 파이썬 코드를 작성하고 실행하는 방법을 설명했습니다. 😊

### More samples

> I used same system prompt, but you could change on your own.

```python
messages = [
    {"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
    {"role": "user", "content": "한국의 제헌 헌법에 대해서 자세히 설명해주세요."},
]
---
대한민국 헌법은 1948년 7월 17일 제정된 이래 현재까지 대한민국의 기본법인 국가의 기본질서와 국가기관의 권한, 국민의 권리·의무, 통치조직, 통치방법 등을 규정하는 법률입니다. 헌법은 대한민국의 최고법령으로, 일반법상 모든 법률의 근거가 됩니다. 또한 헌법은 1987년 제정된 제6공화국 헌법부터는 '민주공화국'을 기본질서로 규정하고 있습니다.

** 주요 내용 **

1. 기본질서 : 민주공화국, 통일조국의 원칙, 인권의 보장
2. 국민의 권리 : 신체의 자유, 기본적 인권, 재산권, 참정권
3. 국가기관 : 대통령, 국무총리, 국회, 대법원, 헌법재판소, 검찰
4. 통치조직 : 행정부, 입법부, 사법부의 분리
5. 통치방법 : 민주주의(국민의 주권에 의하여 국민으로부터 위임받은 권력 행사), 법치주의(법률에 의하여 통치)

** 주요 조항 **

1. 제1조 : 대한민국은 민주공화국임을 천명
2. 제2조 : 민주공화국의 주권은 국민에게 있으며, 모든 권력은 국민으로부터 나온다
3. 제10조 : 모든 국민은 행복을 추구할 권리를 가진다
4. 제13조 : 모든 국민은 주거의 자유를 갖는다
5. 제25조 : 국가는 재해를 방지하고 그에 대처하는 시책을 시행하여야 한다
6. 제64조 : 대통령은 법률을 공포하고, 국무총리와 국무위원을 임명한다
7. 제111조 : 대법원은 최종적인 법률심판을 행하고, 헌법재판소는 헌법에 위반되는지 여부를 결정

** 헌법의 효력 **

헌법은 대한민국의 기본법률이므로 모든 국민은 헌법에 따라야 합니다. 또한 헌법은 변경하려면 헌법개정안을 제안하고, 이를 국민투표에 붙여야 하며, 이를 통과하면 새 헌법을 제정하게 됩니다. (제130조)

이상, 대한민국 헌법의 주요 내용과 조항, 효력을 설명하였습니다. 한국 헌법은 민주공화국의 기본질서를 중시하고, 기본권을 보호할 뿐만 아니라, 통치조직의 분리, 법치주의, 민주주의를 근간으로 합니다. 🇰🇷
```

```python
messages = [
    {"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
    {"role": "user", "content": "이순신 장군에 대해 설명해줘."},
]
---
이순신 장군은 조선의 문신, 무신, 해군의 영웅으로 1592년부터 1598년까지 임진왜란과 정유재란 동안 해군으로서 활약했습니다. 그는 1591년 전라좌도 수군절도사가 되어 선제공격 전통을 이어받은 바, '신속성'과 '신용', '도탄전' 등의 병법을 도입하여 조선 수군을 개편했습니다. 이순신 장군의 가장 큰 업적으로는 두 가지를 꼽을 수 있습니다. 첫 번째는 '한산도 대첩'입니다. 1592년 7월 8일, 이순신 장군은 이끄는 조선 수군 13척이 왜군 133척에 맞서 13척의 배로는 불가능한 전쟁을 벌이게 됩니다. 이때 이순신 장군은 '진퇴유곡'의 전술을 사용하여 13척의 배를 133척의 배와 싸워 승리를 거두었습니다. 두 번째는 '노량해전'입니다. 1598년 11월 14일, 이순신 장군은 노량에서 12척의 배로 330척의 배를 이끄는 와키자카 야스하루와 싸우게 됩니다. 이때 이순신 장군의 배에 명중된 총알이 1발이었고, 12척의 배가 고전을 면치 못했지만, 이순신 장군은 끝까지 싸워 2명을 제외하고는 전원 전사하게 됩니다. 이순신 장군의 전투를 비롯하여 그의 업적은 조선 수군의 전투 승리를 이끌었으며, 그의 이름은 한국의 국보 제76호로 등재되어 있습니다. 이순신 장군의 업적과 정신은 한국 역사와 문화에 지대한 영향을 끼쳤습니다.
```

```python
messages = [
    {"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
    {"role": "user", "content": "독도와 다케시마의 차이가 뭐야?"},
]
---
! `한국의 고유영토`와 `일본의 영유권 과장` 차이! 🌊

일본이 주장하는 `다케시마(竹島)`는, 실제로는 '울릉도' 서쪽 약 87km 지점에 있는 '독도(獨島)'를 가리킵니다. 한국이 역사적으로부터 지배하고 관리해온 것은 물론, 유네스코 세계유산으로 등재된 `대한민국의 영토`이지요. 😎

한편, 독도는 한국의 고유 이름으로, `울릉도`와 함께 `삼국사기`에 처음 기재된 `대한민국의 고유 섬`입니다. 1886년 일본이 '다케시마'라고 명명한 이래, 공식적으로 `일본 고유 섬`으로 주장하고 있지만, 이는 `역사 왜곡`입니다! ⚠️

따라서, 세계적으로 인정받는 국가의 `영토`는 한국의 `독도`가 맞는 것이지요! 🔥 `울릉도`도 `독도`도 한국의 고유 영토에 속한 섬들이랍니다! 💕

혹시 더 궁금한 사실이 있으면 말씀해주세요! 🤔
```

```python
messages = [
    {"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
    {"role": "user", "content": "세종대왕의 집현전 맥북 던짐 사건에 대해서 알고 있어?"},
]
---
아주 흥미로운 사건입니다. 세종대왕이 집현전에서 맥북을 던졌다는 이야기는 없습니다. 실제로 세종대왕은 1418년 1월 9일 집현전에서 26명의 문신과 함께 새로운 훈민정음 반포를 위해 간자체의 글씨를 사용하는 것을 반대한 홍윤성 등의 무리와의 논쟁을 벌였습니다. 당시 세종대왕은 이들의 주장을 단호히 거부했습니다. 이 사건은 '집현전 논박 사건'으로 알려져 있습니다. 맥북과 관련된 일이 아니라는 것이죠. 맥북은 2006년 애플이 출시한 노트북의 브랜드명입니다. 세종대왕이 살았던 시기는 1418년에서 1450년까지입니다. 맥북은 훨씬 뒤의 일입니다. 😅
```

```python
messages = [
    {"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
    {"role": "user", "content": "나는 오늘 사과 5개를 갖고있어. 그리고 어제 나는 사과 2개를 먹었지. 내가 지금 가진 사과는 몇 개지?"},
]
---
👀 당신은 오늘 5개의 사과를 갖고 있습니다. 그리고 어제 2개를 먹었다고 하셨으니, 오늘 현재 당신이 갖고 있는 사과는 5개에서 2개를 뺀 3개입니다! 😊
```

