Semantic Router - juunho/SKCC_LCL GitHub Wiki

2. Split Module

λ§Žμ€ LLM tasksμ—μ„œ input의 κΈΈμ΄λŠ” λͺ¨λΈ μ„±λŠ₯의 μ œμ•½μ„ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€. λ”°λΌμ„œ κΈ΄ text(ex: document, corpus...)λ₯Ό 닀루기 μœ„ν•΄μ„œ, split 및 chunking 과정이 ν•„μš”ν•©λ‹ˆλ‹€. λ³Έ LCL κ³Όμ •μ—μ„œλŠ” semantic_router의 RollingWindowSplitter와 FastEmbedEncoder(intfloat/multilingual-e5-large)λ₯Ό μ΄μš©ν•˜μ—¬, λ“€μ–΄μ˜€λŠ” documentλ₯Ό splitting & chunking ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν˜„μž¬ μ‚¬μš©ν•˜λŠ” e5-large Encoder λͺ¨λΈμ€ 2.0GB둜, ν˜„μž¬ λ“±μž₯ν•˜κ³  μžˆλŠ” LLM의 semantic 이해λŠ₯λ ₯을 λ”°λΌκ°ˆ μˆ˜λŠ” μ—†μœΌλ‚˜, λŒ€λŸ‰μ˜ documentλ₯Ό μ²˜λ¦¬ν•΄μ•Όν•˜λŠ” μƒν™©μ—μ„œ μœ μš©ν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.

λ‹€μŒ 경둜의 μ½”λ“œ: splitter/splitter.pyλŠ” νŠΉμ • 예제 document(SKT κ΄€λ ¨)λ₯Ό splitting & chunkingν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. input 및 output 결과의 일 뢀뢄은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • input :

    제1μ‘°(λͺ©μ ) 이 약관은 SKν…”λ ˆμ½€(μ΄ν•˜ "νšŒμ‚¬") 'λ‚΄κ°€κ³ λ₯ΈνŒ¨ν‚€μ§€'(μ΄ν•˜ "νŒ¨ν‚€μ§€") μƒν’ˆ κ°€μž…, 이용 및 해지에 κ΄€ν•œ 기본적인 사항을 정함을 λͺ©μ μœΌλ‘œ ν•©λ‹ˆλ‹€.

    제2μ‘°(μ•½κ΄€μ˜ 적용) νšŒμ‚¬μ˜ νŒ¨ν‚€μ§€ μƒν’ˆμ„ μ΄μš©ν•  λ•Œμ—λŠ” 이 μ•½κ΄€κ³Ό ν•¨κ»˜ νšŒμ‚¬ 및 각 μƒν’ˆλ³„ μ œνœ΄μ‚¬ μ΄μš©μ•½κ΄€(μ΄ν•˜ "κ°œλ³„μ•½κ΄€")을 μ μš©ν•©λ‹ˆλ‹€. 단, 이 μ•½κ΄€, κ°œλ³„μ•½κ΄€ 사이에 μƒμΆ©λ˜λŠ” λ‚΄μš©μ΄ μžˆλŠ” 경우, 이 μ•½κ΄€, κ°œλ³„μ•½κ΄€μ˜ 순으둜 μ μš©ν•©λ‹ˆλ‹€.

    제3μ‘°(μš©μ–΄μ˜ μ •μ˜) κ°œλ³„ μ•½κ΄€μ—μ„œ μ •μ˜ν•œ μš©μ–΄ 이외 이 μ•½κ΄€μ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄μ˜ μ •μ˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

    β‘  νŒ¨ν‚€μ§€ μƒν’ˆ : 'λ‚΄κ°€κ³ λ₯ΈνŒ¨ν‚€μ§€' μΆœμ‹œ(2018. 10. 18.) 이후 νšŒμ‚¬ 및 νšŒμ‚¬μ˜ λŒ€λ¦¬μ Β·νŒλ§€μ μ„ ν†΅ν•˜μ—¬ νšŒμ‚¬μ—μ„œ μ§€μ •ν•œ μƒν’ˆμ„ 2개 이상 κ°€μž…ν•˜μ—¬ μ΄μš©ν•˜λŠ” μƒν’ˆμœΌλ‘œ 고객의 자율 μ˜μ‚¬μ— 따라 선택이 κ°€λŠ₯함 β‘‘ μ œνœ΄μ‚¬ : νŒ¨ν‚€μ§€ μƒν’ˆμ„ μ΄μš©ν•˜λŠ” κ³ κ°μ—κ²Œ μš”κΈˆν• μΈ λ“± νŒ¨ν‚€μ§€ ν˜œνƒμ„ μ œκ³΅ν•˜λŠ” μ‚¬μ—…μž β‘’ νŒ¨ν‚€μ§€ ν˜œνƒ : νšŒμ‚¬ λ˜λŠ” μ œνœ΄μ‚¬κ°€ νŒ¨ν‚€μ§€ μƒν’ˆ μ΄μš©κΈ°κ°„ λ™μ•ˆ μ΄μš©μžμ—κ²Œ μ œκ³΅ν•˜λŠ” μš”κΈˆν• μΈ λ˜λŠ” 기타 λͺ¨λ“  경제적인 이읡 및 이용 편의 β‘£ 메인 μƒν’ˆ : νŒ¨ν‚€μ§€ ν˜œνƒμ„ λ°›κΈ° μœ„ν•΄ νšŒμ‚¬κ°€ μ§€μ •ν•œ μƒν’ˆ 쀑 1개 이상 λ°˜λ“œμ‹œ 선택해야 ν•˜λŠ” μƒν’ˆ β‘€ 제휴 μƒν’ˆ : νŒ¨ν‚€μ§€ μƒν’ˆμ— ν¬ν•¨λ˜λŠ” μƒν’ˆμœΌλ‘œμ„œ SKν…”λ ˆμ½€ 이동전화λ₯Ό μ΄μš©ν•˜λŠ” κ²½μš°μ—λ§Œ κ°€μž…μ΄ κ°€λŠ₯ν•œ μƒν’ˆ 제4μ‘°(νŒ¨ν‚€μ§€ μƒν’ˆ 이용쑰건) ...

  • output :

    [제1μ‘°(λͺ©μ ) 이 약관은 SKν…”λ ˆμ½€(μ΄ν•˜ "νšŒμ‚¬") 'λ‚΄κ°€κ³ λ₯ΈνŒ¨ν‚€μ§€'(μ΄ν•˜ "νŒ¨ν‚€μ§€") μƒν’ˆ κ°€μž…, 이용 및 해지에 κ΄€ν•œ 기본적인 사항을 정함을 λͺ©μ μœΌλ‘œ ν•©λ‹ˆλ‹€.,

    제2μ‘°(μ•½κ΄€μ˜ 적용),

    νšŒμ‚¬μ˜ νŒ¨ν‚€μ§€ μƒν’ˆμ„ μ΄μš©ν•  λ•Œμ—λŠ” 이 μ•½κ΄€κ³Ό ν•¨κ»˜ νšŒμ‚¬ 및 각 μƒν’ˆλ³„ μ œνœ΄μ‚¬ μ΄μš©μ•½κ΄€(μ΄ν•˜ "κ°œλ³„μ•½κ΄€")을 μ μš©ν•©λ‹ˆλ‹€. 단, 이 μ•½κ΄€, κ°œλ³„μ•½κ΄€ 사이에 μƒμΆ©λ˜λŠ” λ‚΄μš©μ΄ μžˆλŠ” 경우, 이 μ•½κ΄€, κ°œλ³„μ•½κ΄€μ˜ 순으둜 μ μš©ν•©λ‹ˆλ‹€.,

    제3μ‘°(μš©μ–΄μ˜ μ •μ˜),

    κ°œλ³„ μ•½κ΄€μ—μ„œ μ •μ˜ν•œ μš©μ–΄ 이외 이 μ•½κ΄€μ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄μ˜ μ •μ˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.,

    β‘  νŒ¨ν‚€μ§€ μƒν’ˆ : 'λ‚΄κ°€κ³ λ₯ΈνŒ¨ν‚€μ§€' μΆœμ‹œ(2018. 10. 18.) 이후 νšŒμ‚¬ 및 νšŒμ‚¬μ˜ λŒ€λ¦¬μ Β·νŒλ§€μ μ„ ν†΅ν•˜μ—¬ νšŒμ‚¬μ—μ„œ μ§€μ •ν•œ μƒν’ˆμ„ 2개 이상 κ°€μž…ν•˜μ—¬ μ΄μš©ν•˜λŠ” μƒν’ˆμœΌλ‘œ 고객의 자율 μ˜μ‚¬μ— 따라 선택이 κ°€λŠ₯함 β‘‘ μ œνœ΄μ‚¬ : νŒ¨ν‚€μ§€ μƒν’ˆμ„ μ΄μš©ν•˜λŠ” κ³ κ°μ—κ²Œ μš”κΈˆν• μΈ λ“± νŒ¨ν‚€μ§€ ν˜œνƒμ„ μ œκ³΅ν•˜λŠ” μ‚¬μ—…μž β‘’ νŒ¨ν‚€μ§€ ν˜œνƒ : νšŒμ‚¬ λ˜λŠ” μ œνœ΄μ‚¬κ°€ νŒ¨ν‚€μ§€ μƒν’ˆ μ΄μš©κΈ°κ°„ λ™μ•ˆ μ΄μš©μžμ—κ²Œ μ œκ³΅ν•˜λŠ” μš”κΈˆν• μΈ λ˜λŠ” 기타 λͺ¨λ“  경제적인 이읡 및 이용 편의 β‘£ 메인 μƒν’ˆ : νŒ¨ν‚€μ§€ ν˜œνƒμ„ λ°›κΈ° μœ„ν•΄ νšŒμ‚¬κ°€ μ§€μ •ν•œ μƒν’ˆ 쀑 1개 이상 λ°˜λ“œμ‹œ 선택해야 ν•˜λŠ” μƒν’ˆ β‘€ 제휴 μƒν’ˆ : νŒ¨ν‚€μ§€ μƒν’ˆμ— ν¬ν•¨λ˜λŠ” μƒν’ˆμœΌλ‘œμ„œ SKν…”λ ˆμ½€ 이동전화λ₯Ό μ΄μš©ν•˜λŠ” κ²½μš°μ—λ§Œ κ°€μž…μ΄ κ°€λŠ₯ν•œ μƒν’ˆ,

    제4μ‘°(νŒ¨ν‚€μ§€ μƒν’ˆ 이용쑰건), ...]

ν•΄λ‹Ή output을 λ„μΆœν•˜λŠ” κ³Όμ •μ—μ„œ λ‹€μŒμ˜ 그림처럼 μ‹œκ°ν™”λœ 그림도 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

image