---
base_model: https://huggingface.co/beomi/llama-2-ko-70b
inference: false
language:
- en
- ko
model_name: Llama 2 7B Chat
model_type: llama
pipeline_tag: text-generation
quantized_by: kuotient
tags:
- facebook
- meta
- pytorch
- llama
- llama-2
- kollama
- llama-2-ko
- gptq
license: cc-by-nc-sa-4.0
---
# Llama-2-Ko-70b-GPTQ
- 모델 제작자: [beomi](https://huggingface.co/beomi)
- 원본 모델: [Llama-2-ko-70b](https://huggingface.co/beomi/llama-2-ko-70b)
## Description
이 레포는 [Llama-2-ko-70b](https://huggingface.co/beomi/llama-2-ko-70b)의 GPTQ 모델 파일을 포함하고 있습니다.
## Provided files and GPTQ parameters
하드웨어와 요구사항에 가장 적합한 양자화 매개변수를 선택할 수 있도록 여러 가지(곧) 양자화 매개변수가 제공됩니다.
각 양자화는 다른 브랜치에 있습니다.
모든 GPTQ 양자화는 AutoGPTQ로 만들어졌습니다.
GPTQ 파라미터 정보
- Bits: 양자화된 모델의 비트 크기입니다.
- GS: GPTQ 그룹 사이즈. 숫자가 높을수록 VRAM을 덜 사용하지만 양자화 정확도가 낮아집니다. "None"은 가능한 가장 낮은 값입니다.
- Act Order: True or False. `desc_act`으로도 알려져 있습니다. 참이면 양자화 정확도가 향상됩니다.
- Damp %: 샘플이 정량화를 위해 처리되는 방식에 영향을 주는 GPTQ 매개변수입니다. 0.01이 기본값이지만 0.1을 사용하면 정확도가 약간 향상됩니다.
- GPTQ dataset: 정량화에 사용되는 데이터 세트입니다. 모델 학습에 더 적합한 데이터 세트를 사용하면 정량화 정확도가 향상될 수 있습니다. GPTQ 데이터 세트는 모델 학습에 사용된 데이터 세트와 동일하지 않으므로 학습 데이터 세트에 대한 자세한 내용은 원본 모델 repo를 참조하세요.
- Sequence Length: 정량화에 사용된 데이터 세트 시퀀스의 길이입니다. 이상적으로는 모델 시퀀스 길이와 동일합니다. 일부 매우 긴 시퀀스 모델(16+K)의 경우 더 짧은 시퀀스 길이를 사용해야 할 수도 있습니다. 시퀀스 길이가 짧다고 해서 양자화된 모델의 시퀀스 길이가 제한되는 것은 아닙니다. 이는 긴 추론 시퀀스의 양자화 정확도에만 영향을 미칩니다.
- ExLlama Compatibility: Exllama로 이 파일을 로드할 수 있는지의 여부이며, 현재 4비트의 라마 모델만 지원합니다.
| Branch | Bits | GS | Act Order | Damp % | GPTQ Dataset | Seq Len | Size | ExLlama | Desc |
| ------ | ---- | -- | --------- | ------ | ------------ | ------- | ---- | ------- | ---- |
| [main](https://huggingface.co/kuotient/llama-2-ko-70b-GPTQ/tree/main) | 4 | None | Yes | 0.1 | [wikitext](https://huggingface.co/datasets/wikitext/viewer/wikitext-2-v1/test) | 4096 | 35.8 GB | Yes | 4-bit, Act Order 포함. VRAM 사용량을 줄이기 위한 group size -1. |
# Original model card: Llama 2 ko 70b
> 🚧 Note: this repo is under construction 🚧
# **Llama-2-Ko** 🦙🇰🇷
Llama-2-Ko serves as an advanced iteration of Llama 2, benefiting from an expanded vocabulary and the inclusion of a Korean corpus in its further pretraining. Just like its predecessor, Llama-2-Ko operates within the broad range of generative text models that stretch from 7 billion to 70 billion parameters. This repository focuses on the **70B** pretrained version, which is tailored to fit the Hugging Face Transformers format. For access to the other models, feel free to consult the index provided below.
## Model Details
**Model Developers** Junbum Lee (Beomi)
**Variations** Llama-2-Ko will come in a range of parameter sizes — 7B, 13B, and 70B — as well as pretrained and fine-tuned variations.
**Input** Models input text only.
**Output** Models generate text only.
## Usage
**Use with 8bit inference**
- Requires > 74GB vram (compatible with 4x RTX 3090/4090 or 1x A100/H100 80G or 2x RTX 6000 ada/A6000 48G)
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_8bit = AutoModelForCausalLM.from_pretrained(
"beomi/llama-2-ko-70b",
load_in_8bit=True,
device_map="auto",
)
tk = AutoTokenizer.from_pretrained('beomi/llama-2-ko-70b')
pipe = pipeline('text-generation', model=model_8bit, tokenizer=tk)
def gen(x):
gended = pipe(f"### Title: {x}\n\n### Contents:", # Since it this model is NOT finetuned with Instruction dataset, it is NOT optimal prompt.
max_new_tokens=300,
top_p=0.95,
do_sample=True,
)[0]['generated_text']
print(len(gended))
print(gended)
```
**Use with bf16 inference**
- Requires > 150GB vram (compatible with 8x RTX 3090/4090 or 2x A100/H100 80G or 4x RTX 6000 ada/A6000 48G)
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model = AutoModelForCausalLM.from_pretrained(
"beomi/llama-2-ko-70b",
device_map="auto",
)
tk = AutoTokenizer.from_pretrained('beomi/llama-2-ko-70b')
pipe = pipeline('text-generation', model=model, tokenizer=tk)
def gen(x):
gended = pipe(f"### Title: {x}\n\n### Contents:", # Since it this model is NOT finetuned with Instruction dataset, it is NOT optimal prompt.
max_new_tokens=300,
top_p=0.95,
do_sample=True,
)[0]['generated_text']
print(len(gended))
print(gended)
```
**Model Architecture**
Llama-2-Ko is an auto-regressive language model that uses an optimized transformer architecture based on Llama-2.
||Training Data|Params|Content Length|GQA|Tokens|LR|
|---|---|---|---|---|---|---|
|Llama-2-Ko 70B|*A new mix of Korean online data*|70B|4k|✅|>20B|1e-5|
*Plan to train upto 300B tokens
**Vocab Expansion**
| Model Name | Vocabulary Size | Description |
| --- | --- | --- |
| Original Llama-2 | 32000 | Sentencepiece BPE |
| **Expanded Llama-2-Ko** | 46592 | Sentencepiece BPE. Added Korean vocab and merges |
*Note: Llama-2-Ko 70B uses `46592` not `46336`(7B), will update new 7B model soon.
**Tokenizing "안녕하세요, 오늘은 날씨가 좋네요. ㅎㅎ"**
| Model | Tokens |
| --- | --- |
| Llama-2 | `['▁', '안', '<0xEB>', '<0x85>', '<0x95>', '하', '세', '요', ',', '▁', '오', '<0xEB>', '<0x8A>', '<0x98>', '은', '▁', '<0xEB>', '<0x82>', '<0xA0>', '씨', '가', '▁', '<0xEC>', '<0xA2>', '<0x8B>', '<0xEB>', '<0x84>', '<0xA4>', '요', '.', '▁', '<0xE3>', '<0x85>', '<0x8E>', '<0xE3>', '<0x85>', '<0x8E>']` |
| Llama-2-Ko *70B | `['▁안녕', '하세요', ',', '▁오늘은', '▁날', '씨가', '▁좋네요', '.', '▁', 'ㅎ', 'ㅎ']` |
**Tokenizing "Llama 2: Open Foundation and Fine-Tuned Chat Models"**
| Model | Tokens |
| --- | --- |
| Llama-2 | `['▁L', 'l', 'ama', '▁', '2', ':', '▁Open', '▁Foundation', '▁and', '▁Fine', '-', 'T', 'un', 'ed', '▁Ch', 'at', '▁Mod', 'els']` |
| Llama-2-Ko 70B | `['▁L', 'l', 'ama', '▁', '2', ':', '▁Open', '▁Foundation', '▁and', '▁Fine', '-', 'T', 'un', 'ed', '▁Ch', 'at', '▁Mod', 'els']` |
# **Model Benchmark**
## LM Eval Harness - Korean (polyglot branch)
- Used EleutherAI's lm-evaluation-harness https://github.com/EleutherAI/lm-evaluation-harness/tree/polyglot
### TBD
## Note for oobabooga/text-generation-webui
Remove `ValueError` at `load_tokenizer` function(line 109 or near), in `modules/models.py`.
```python
diff --git a/modules/models.py b/modules/models.py
index 232d5fa..de5b7a0 100644
--- a/modules/models.py
+++ b/modules/models.py
@@ -106,7 +106,7 @@ def load_tokenizer(model_name, model):
trust_remote_code=shared.args.trust_remote_code,
use_fast=False
)
- except ValueError:
+ except:
tokenizer = AutoTokenizer.from_pretrained(
path_to_model,
trust_remote_code=shared.args.trust_remote_code,
```
Since Llama-2-Ko uses FastTokenizer provided by HF tokenizers NOT sentencepiece package,
it is required to use `use_fast=True` option when initialize tokenizer.
Apple Sillicon does not support BF16 computing, use CPU instead. (BF16 is supported when using NVIDIA GPU)
## LICENSE
- Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License, under LLAMA 2 COMMUNITY LICENSE AGREEMENT
- Full License available at: [https://huggingface.co/beomi/llama-2-ko-70b/blob/main/LICENSE](https://huggingface.co/beomi/llama-2-ko-70b/blob/main/LICENSE)
- For Commercial Usage, contact Author.
## Citation
```
@misc {l._junbum_2023,
author = { {L. Junbum} },
title = { llama-2-ko-70b },
year = 2023,
url = { https://huggingface.co/beomi/llama-2-ko-70b },
doi = { 10.57967/hf/1130 },
publisher = { Hugging Face }
}
```