Text Generation
Transformers
Safetensors
Korean
gemma2
text-generation-inference
trl
conversational
4-bit precision
bitsandbytes
Instructions to use Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit") model = AutoModelForCausalLM.from_pretrained("Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit
- SGLang
How to use Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit with Docker Model Runner:
docker model run hf.co/Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit
QCR + GEN for Conversational RAG Chatbot
데모링크: https://warm-nearby-marmoset.ngrok-free.app/
개요
이 모델은 QCR(Query Context Rewriter)과 GEN(Generator) 기능을 동시에 수행하는 4비트로 머지&양자화된 모델입니다. 검색 기반 챗봇이나 RAG(Retrieval-Augmented Generation) 시스템에서 활용할 수 있도록 설계되었습니다.
- QCR 기능: 사용자의 입력을 분석하여 검색에 필요한 쿼리를 생성하거나, 필요하지 않을 경우 빈 문자열을 반환합니다.
- GEN 기능: 검색된 문서 청크(또는 컨텍스트)를 활용하여 자연스러운 답변을 생성합니다.
로딩시 오직 5.2GB만의 VRAM을 사용합니다.
데이터셋 및 학습 특징
- 10개 주요 토픽(가족/주거, 스포츠, 쇼핑, 미용/건강 등)의 대화 데이터를 증강하여 제작.
- 약 18,000개의 QCR + GEN 샘플 포함.
- QCR 데이터
- 일반 대화(인사, 농담 등)는 빈 문자열(
"")을 반환하여 검색을 생략하고 즉시 답변 가능.
- 일반 대화(인사, 농담 등)는 빈 문자열(
- GEN 데이터
- 검색된 문서 청크(최대 5개, 각 512 토큰 이하)를 활용하여 답변 생성.
- 6가지 다양한 데이터 구성:
- 관련 정보가 있는 답변
- 관련 정보가 없는 답변
- 관련성이 혼재된 상황
- 검색 청크가 전혀 없는 경우 등
이러한 데이터 구성을 통해 더 자연스러운 대화를 구현할 수 있도록 학습되었습니다.
모델 사용 방식
- QCR을 통해 검색 쿼리 생성 → 검색 엔진을 통해 문서 검색 → GEN으로 답변 생성
- 불필요한 검색 방지(QCR이 빈 문자열 반환) → 인사, 잡담 등은 직접 응답 가능.
- 4bit 양자화 모델 사용 가능 → 메모리 절감 및 고속 추론 가능.
프롬프트 템플릿
Query Context Rewriter (QCR)
# Query Rewriter
### Instruction:
다음은 대화 기록(Context)와 사용자의 질문(Input)입니다.
사용자의 질문에 답을 제공하기 위해 필요한 단일 문자열 검색 쿼리를 생성하세요.
검색이 필요하지 않거나 쿼리가 불필요한 경우(인사, 잡담 등)에는 빈 문자열을 반환하세요.
최종 출력 형식은 {'search': '<검색 쿼리>'}입니다.
### Conversation:
{대화 맥락}
### Input:
{사용자 질문}
### Response:
{'search': '{생성된 검색 쿼리 또는 빈 문자열}'}
Generator (GEN)
# Generator
### Instruction:
당신은 외부검색을 이용하여 사용자에게 도움을 주는 인공지능 조수입니다.
- Context는 외부검색을 통해 반환된 사용자 요청과 관련된 정보들입니다.
- Context를 활용할 때 문장 끝에 사용한 문서 조각의 [Index]를 붙이고 자연스러운 답변을 작성하세요. (e.g. [1])
- Context의 정보가 사용자 요청과 관련이 없거나 도움이 안될 수 있습니다. 관련있는 정보만 활용하고, 없는 정보를 절대 지어내지 마세요.
- 되도록이면 일반 지식으로 답변하지 말고, 최대한 Context를 통해 답변을 하려고 하세요.
- Context에 없을 경우에는 이 점을 언급하며 사죄하고 다른 주제나 질문을 추천해주세요.
- 사용자 요청에 알맞는 자연스러운 대화를 하세요.
- 항상 존댓말로 답변하세요.
### Conversation:
{대화 맥락}
### Context:
{검색된 문서 청크}
### Input:
{사용자 질문}
### Response:
{모델이 생성한 응답}
예시 대화 샘플
1. 검색이 필요 없는 경우
예제 1: 인사 및 일반적인 대화
User> 안녕? 넌 누구니?
[QCR 단계] 검색 쿼리 생성...
{'search': ''} → 검색 불필요로 판단.
[답변 생성 중]...
Assistant> 안녕하세요! 저는 외부검색을 통해 다양한 정보를 활용하여 사용자님께 도움을 주는 인공지능 조수입니다. 어떤 주제나 질문이든 편하게 말씀해 주세요. 오늘 하루가 어떠셨나요?
2. 검색이 필요한 경우
예제 2: 영화 추천 요청
User> 넷플릭스에서 볼만한 영화 추천해줘.
[QCR 단계] 검색 쿼리 생성...
{'search': '넷플릭스 추천 영화 목록'} → 검색 필요.
[검색된 문서 활용 후 답변 생성]
Assistant> 넷플릭스에서 인기 있는 영화 목록은 다음과 같습니다.
1. '블랙 미러: 밴더스내치'
2. '돈 룩 업'
3. '익스트랙션'
더 궁금한 점이 있으시면 말씀해주세요!
예제 3: 특정 정보 요청 (스포츠 규칙)
User> 복싱의 룰이 어떻게 되나요?
[QCR 단계] 검색 쿼리 생성...
{'search': '복싱 룰 설명'} → 검색 필요.
[검색된 문서 활용 후 답변 생성]
Assistant> 복싱 경기의 기본 룰은 다음과 같습니다.
- 각 라운드는 3분 진행되며, 1분의 휴식이 주어집니다.
- 글러브 착용은 필수이며, 다운된 선수는 10초 안에 일어나야 합니다.
- 주요 타격 기술로는 스트레이트, 훅, 어퍼컷 등이 있습니다.
더 궁금한 사항이 있으시면 질문해주세요!
3. 과거 대화 기반 질문
예제 4: 문맥을 유지한 질문
User> 넷플릭스 영화 추천해줘.
[QCR 단계] 검색 쿼리 생성...
{'search': '넷플릭스 추천 영화 목록'} → 검색 필요.
[검색된 문서 활용 후 답변 생성]
Assistant> 넷플릭스에서 인기 있는 영화 목록은 다음과 같습니다.
1. '블랙 미러: 밴더스내치'
2. '돈 룩 업'
3. '익스트랙션'
User> 오징어 게임은 어때?
[QCR 단계] 검색 쿼리 생성...
{'search': '오징어 게임 정보'} → 검색 필요.
[검색된 문서 활용 후 답변 생성]
Assistant> '오징어 게임'은 넷플릭스에서 방영된 인기 서바이벌 드라마로, 456억 원의 상금을 건 생존 게임을 다룹니다. 게임에는 '무궁화꽃이 피었습니다', '달고나 뽑기' 등의 한국 전통 놀이가 포함되어 있습니다.[1][2] 시즌 2 제작이 확정되었으며, 2024년 방영 예정입니다.[3] 더 자세한 정보가 필요하시면 알려주세요!
4. 갑작스러운 토픽 변경
예제 5: 검색 중간에 주제 전환
User> 넷플릭스에서 볼만한 영화 추천해줘.
[QCR 단계] 검색 쿼리 생성...
{'search': '넷플릭스 추천 영화 목록'} → 검색 필요.
User> 근데 레슬링 규칙은 어떻게 돼?
[QCR 단계] 검색 쿼리 생성...
{'search': '레슬링 규칙 설명'} → 검색 필요.
[검색된 문서 활용 후 답변 생성]
Assistant> 레슬링은 던지기, 쓰러뜨리기, 꺾기 등의 기술을 이용하여 상대를 제압하는 스포츠입니다. 경기 방식은 올림픽 스타일인 '그레코로만형'과 '자유형'으로 나뉩니다.[1] 특정 규칙이 궁금하시다면 추가로 질문해주세요!
이러한 예시들을 참고하여 검색 기반 모델을 효과적으로 활용할 수 있습니다.
테스트 노트북 (Colab)
간단히 코드를 실행해보려면 test_run.ipynb 파일을 Google Colab에서 바로 열어보세요.
- 런타임 유형에서 GPU를 T4로 선택하세요.
- 이후, 셀을 순서대로 실행하며 필요한 라이브러리를 설치하고 모델 및 FAISS 인덱스를 로드합니다.
- 완성된 RAG 기반 챗봇 예시 코드를 체험할 수 있습니다
주의사항
- 검색 엔진과 함께 사용할 경우 QCR을 먼저 실행하여 검색 쿼리를 생성한 후, 검색된 문서 청크를 바탕으로 GEN을 실행해야 합니다.
- 검색된 청크는 최대 512 토큰 길이이며, 학습 과정에서 최대 5개의 청크를 반영하였으므로 이에 맞춰 활용하는 것이 중요합니다.
- QCR의 프롬프트 형식을 반드시 지켜야 검색 쿼리 생성이 올바르게 이루어집니다.
- GEN의 답변에서는 검색된 문서 출처(Index)를 정확히 기재해야 하며, 관련성이 없으면 없는대로 안내해야 합니다.
- 이 모델은 input output 포함 전체 8192 토큰을 지원하나, 대화기록에 한하여 최대 토큰 수는 2000 이내로 맞춰서 사용하는것이 가장 안정적입니다.
이 모델을 통해 보다 효율적인 검색 + 정확한 답변을 제공하는 AI 시스템을 구축할 수 있습니다.
- Downloads last month
- 6
Model tree for Austin9/gemma-2-9b-it-Ko-ChatRAG-bnb-4bit
Base model
google/gemma-2-9b Finetuned
google/gemma-2-9b-it Quantized
unsloth/gemma-2-9b-it-bnb-4bit