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μ λμΆνλ κ³Όμ μμ λ€μμ κ·Έλ¦Όμ²λΌ μκ°νλ κ·Έλ¦Όλ νμΈν μ μμ΅λλ€.