AnIma / Ocelot f_1
Update @ 2025.08.04: First release of malpyung_korean_language_rag_sota
This model card corresponds to the 10.8B Instruct version of the Yanolja EEVE model.
Resources and Technical Documentation:
Citation
@misc {ai-AnIma/malpyung_korean_language_rag_sota,
author = { {frcp, nebchi, DaKu00, philosokey-M} },
title = { malpyung_rag },
year = 2025,
url = { https://huggingface.co/ai-AnIma/malpyung_korean_language_rag_sota },
publisher = { Hugging Face }
}
Model Developers: frcp, nebchi, DaKu00, philosokey-M
κ³Όμ κ°μ: κ΅λ¦½κ΅μ΄μ νκ΅μ΄ μ΄λ¬Έ κ·λ² κΈ°λ° μμ±
- λ³Έ κ³Όμ λ νκ΅μ΄ μ΄λ¬Έ κ·λ² κ΄λ ¨ μ§λ¬Έμ λν΄, κ΅μ΄ μ§μμ μ°Έμ‘°νμ¬ μ λ΅κ³Ό κ·Έ μ΄μ λ₯Ό μμ±νλ κ²μ λͺ©νλ‘ ν©λλ€. μ΄ κ³Όμ λ κ΅λ¦½κ΅μ΄μμ γ2024λ κΈμ°κΈ° 첨μ μ§μμ μν μ§μλ¬Έ κΈ°λ° μμ± λ§λμΉ κ΅¬μΆ μ°κ΅¬γ μ¬μ μ κ²°κ³Όλ¬ΌμΈ γκΈμ°κΈ° 첨μ μ§μμ μν κΈ°μ΄ μλ£γ λ₯Ό κΈ°λ°μΌλ‘ μ€κ³λμμ΅λλ€.
π§ Model Details
κ²μ ꡬ쑰: Hybrid Search + Reranker
- λ³Έ μμ€ν μHybrid Searchμ Cross-Encoder κΈ°λ° Rerankerλ₯Ό κ²°ν©ν Advanced RAG ꡬ쑰λ₯Ό μ±ννμμ΅λλ€.
- Hybrid Searchλ
Reciprocal Rank Fusion (RRF)μκ³ λ¦¬μ¦μ ν΅ν΄ λ€μν κ²μ κ²°κ³Όμ μμλ₯Ό ν΅ν©νμ¬, κ²μ μ λ°λμ λ€μμ±μ λμμ ν보νμμ΅λλ€. - μ΄ν Cross-Encoder Rerankerκ° μ§μμ ν보 λ¬Έμ κ° μλ―Έ μ ν©μ±μ νκ°νμ¬ μ΅μ’ μλ΅ νμ§μ κ·Ήλνν©λλ€.
μλ² λ© λ° Reranker λͺ¨λΈ: Qwen3 μν€ν μ² κΈ°λ°
- Qwen3 κΈ°λ° Embedding λͺ¨λΈκ³Ό Cross-Encoder Rerankerλ λͺ¨λ Open Modelλ‘, MTEBλ²€μΉλ§ν¬μ Retrivalκ³Ό STSμμ SOTAλ₯Ό κΈ°λ‘ν μν€ν μ²μ λλ€.
- νκ΅μ΄λ₯Ό ν¬ν¨ν λ€μν μΈμ΄μμ λ¬Έλ§₯ νμ , μλ―Έ νν, μ νν λ¬Έμ μ¬μ λ ¬μ κ°μ μ μ§λλ©°, μ€μ μ§μ μλ΅ νλ¦μμ κ³ μ λ° κ²μ μ±λ₯μ λ°νν©λλ€.
PDF λ¬Έμ μ²λ¦¬:
- PDF κΈ°λ° λ¬Έμμ μ μ λ μ 보 μΆμΆμ μν΄ Layout λΆμ(layout analyzing) κΈ°λ²κ³Ό Semantic Chunkingμ νμ©νμ¬ λ¬Έλ¨ κ΅¬μ‘°λ₯Ό μλ² λ© λͺ¨λΈμ νμ©νμ¬ μ²λ¦¬νμμ΅λλ€.
- OCRμ λ³ν μ μ©νμ¬, λ¬Έμ λ΄ λͺ¨λ μ λ³΄κ° κ²μ λ° RAGμ νμ© κ°λ₯νλλ‘ μ μ²λ¦¬ νμ΄νλΌμΈμ ꡬμΆνμμ΅λλ€.
ν΄λΉ νμ΄νλΌμΈμ μλ―Έ λ¨μ μ²ν¬ κ΅¬μ± β μλ² λ© β Hybrid κ²μμ νλ¦μ κΈ°λ°μΌλ‘ μ νλ λμ κ²μ λ° μλ΅ μμ±μ μ€νν©λλ€.
π οΈ λͺ¨λΈ μ¬μ© μμ
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
from langchain.vectorstores import Qdrant
from langchain.vectorstores.qdrant import QdrantVectorStore, RetrievalMode
# λͺ¨λΈ λ° ν ν¬λμ΄μ λ‘λ
tokenizer = AutoTokenizer.from_pretrained("ai-AnIma/malpyung_korean_language_rag_sota")
model = AutoModelForCausalLM.from_pretrained(
"ai-AnIma/malpyung_korean_language_rag_sota", device_map="auto"
)
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=4096)
# Qdrant λ²‘ν° DB λ‘λ
qdrant = QdrantVectorStore(
client=client,
collection_name="my_documents",
embedding=embeddings,
sparse_embedding=sparse_embeddings,
retrieval_mode=RetrievalMode.HYBRID,
vector_name="dense",
sparse_vector_name="sparse",
)
# μ§μ
query = "'κ°μΆμ κΈ°λ₯Ό λμλ {λ¨Ήμ΄λ/λ¨Ήμ΄μ}μ μ‘°μ ν΄ μ£Όμ΄μΌ νλ€.' κ°μ΄λ° μ¬λ°λ₯Έ κ²μ μ ννκ³ , κ·Έ μ΄μ λ₯Ό μ€λͺ
νμΈμ."
# λ¬Έμ κ²μ
found_docs = qdrant.similarity_search(query, k=5)
found_texts = "\n".join([doc.page_content for doc in found_docs])
# ν둬ννΈ ν
νλ¦Ώ μ±μ°κΈ°
prompt_template = """
λ€μ μ 보λ₯Ό λ°νμΌλ‘ μ§λ¬Έμ λ΅νμΈμ:
{context}
μ§λ¬Έ: {question}
μ£Όμ΄μ§ μ§λ¬Έμλ§ λ΅λ³νμΈμ. λ¬Έμ₯μΌλ‘ λ΅λ³ν΄μ£ΌμΈμ. λ΅λ³ν λ μ§λ¬Έμ μ£Όμ΄λ₯Ό μ¨μ£ΌμΈμ.
λ΅λ³:
"""
filled_prompt = prompt_template.format(context=found_texts, question=query)
messages = [
{"role": "user", "content": filled_prompt}
]
# Chat template μ μ©
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
# μμ±
outputs = pipe(prompt, temperature=0.2, top_p=0.9)
print(outputs[0]["generated_text"][len(prompt):])
results
"κ°μΆμ κΈ°λ₯Ό λμλ λ¨Ήμ΄μμ μ‘°μ ν΄ μ£Όμ΄μΌ νλ€."κ° μ³λ€. ν μμ μ νμμ΄λ μλ§μ΄ κ³ μ μ΄λ μΈλμ΄μΌ λλ λ
립μ μΈ ν λ¨μ΄λ‘ μΈμνμ¬ λμ λ²μΉμ μ μ©νκ³ , μλ§μ΄ νμμ΄μΌ λλ νλμ λ¨μ΄λ‘ μΈμ νμ§ μμ λμ λ²μΉμ μ μ©νμ§ μλλ€. λ°λΌμ νμμ΄ 'ι'μ μλ§μ΄ κ³ μ μ΄λ μΈλμ΄μΌ λλ 'μ'μ΄ λκ³ νμμ΄μΌ λλ 'λ'μ΄ λλ€. 'λ¨Ήμ΄'λ κ³ μ μ΄μ΄λ―λ‘ 'λ¨Ήμ΄μ'μ΄ λ§λ λ§μ΄λ€.
β Evaluation Results
λ³Έ λͺ¨λΈ AnIma/f_1μ λ΄λΆ λ² μ΄μ€λΌμΈ λͺ¨λΈκ³Ό λΉκ΅ν΄μ λͺ¨λ μ£Όμ μ§νμμ μ΅κ³ μ±λ₯μ κΈ°λ‘νμ΅λλ€.
| Model ID | F1 Score | BLEURT | BERTScore | ROUGE-1 | μ μΆ μΌμ |
|---|---|---|---|---|---|
| AnIma/f_1 (Hybrid+Reranker) | 68.52 | 59.06 | 80.01 | 45.56 | 2025.07.31 21:40 |
| try_01 (Not Hybrid) | 57.41 | 57.22 | 55.17 | 40.22 | 2025.07.21 13:41 |
| qwen-8b (λν μ μΆ) | 42.19 | 34.54 | 53.13 | 70.36 | 2025.06.16 07:45 |
| hyperclovax-1.5b (λν μ μΆ) | 39.27 | 31.93 | 46.73 | 70.69 | 2025.06.16 07:44 |
- κΈ°μ‘΄ μ체 μ€ν λͺ¨λΈ λλΉ BLEURT, BERTScore, ROUGE-1 λͺ¨λμμ +10~30μ μ μ μλ―Έν μ±λ₯ ν₯μμ κΈ°λ‘νμ΅λλ€.
- κ²½μ§λν baseline λͺ¨λΈ λλΉ BLEURT κΈ°μ€ μ΅λ +24.5μ , BERTScore κΈ°μ€ +33μ ν₯μλμμΌλ©°, νκ· μ μ κΈ°μ€μΌλ‘λ μ½ 20μ μ΄μ ν₯μλ κ²°κ³Όλ₯Ό 보μμ΅λλ€.
- Downloads last month
- -