[NLP] R.A.G ๊ธฐ๋ฒ•
ยท
NLP(์ž์—ฐ์–ด์ฒ˜๋ฆฌ)
RAG(Retrieval-Augmented Generation)  Retrieval (๊ฒ€์ƒ‰)Augmented (์ฆ๊ฐ•)Generation (์ƒ์„ฑ) RAG ํ”„๋กœ์„ธ์Šค 1. ์ „์ฒ˜๋ฆฌ ์ž‘์—… LOAD (๋ฌธ์„œ ๋กœ๋“œ)  Document Loader ๋ฌธ์„œ๋กœ๋“œ ์„ ํƒ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ ํ…์ŠคํŠธ๋ฅผ ์›ํ˜• ๊ทธ๋Œ€๋กœ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š”๊ฐ€ ?ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ํŠน์ˆ˜๋ฌธ์ž ์ฒ˜๋ฆฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(metadata)์˜ ์ข…๋ฅ˜๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”๊ฐ€? page_content : ๋ฌธ์„œ ๋‚ด์šฉ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ(page) ํ‘œ, ์ฐจํŠธ , ๋ฌธ์„œ์˜ coordinates(์ขŒํ‘œ), ์†์„ฑ(Title , Table, Image, Text) ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์˜ฌ ๋•Œ๋Š” "์†๋„"๋ฅผ ์ค‘์š”์‹œ ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” "๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ"๋ฅผ ๋” ์ค‘์š”์‹œํ•˜๋Š” ๊ฒƒ์ด ์˜ณ์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ๋‹ค.  ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/์Šคํƒ๊ณผํ] ์ฃผ์‹๊ฐ€๊ฒฉ
ยท
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/42583 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr ๐Ÿ“Œ ๋ฌธ์ œ ์ดˆ ๋‹จ์œ„๋กœ ๊ธฐ๋ก๋œ ์ฃผ์‹๊ฐ€๊ฒฉ์ด ๋‹ด๊ธด ๋ฐฐ์—ด prices๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์ง€์ง€ ์•Š์€ ๊ธฐ๊ฐ„์€ ๋ช‡ ์ดˆ์ธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.์ œํ•œ์‚ฌํ•ญprices์˜ ๊ฐ ๊ฐ€๊ฒฉ์€ 1 ์ด์ƒ 10,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.prices์˜ ๊ธธ์ด๋Š” 2 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.๐Ÿ“Œ ํ’€์ด ์•„์ด๋””์–ด๊ฐ€ ์ƒ๊ฐ์ด ์•ˆ๋‚˜์„œ ์™„์ „ํƒ์ƒ‰ ๋ฐฉ์‹์œผ๋กœ ํ•œ ์›์†Œ๋งˆ๋‹ค ์ˆœ์„œ๋Œ€๋กœ ์–ธ์ œ ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/์Šคํƒ๊ณผํ] ํ”„๋กœ์„ธ์Šค
ยท
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/42587 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr๐Ÿ“Œ๋ฌธ์ œ  ์šด์˜์ฒด์ œ์˜ ์—ญํ•  ์ค‘ ํ•˜๋‚˜๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋ฉ๋‹ˆ๋‹ค.1. ์‹คํ–‰ ๋Œ€๊ธฐ ํ(Queue)์—์„œ ๋Œ€๊ธฐ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ํ•˜๋‚˜๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค.2. ํ์— ๋Œ€๊ธฐ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ค‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐฉ๊ธˆ ๊บผ๋‚ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ํ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.3. ๋งŒ์•ฝ ๊ทธ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜/์Šคํƒ๊ณผ ํ] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ฌ๋ฐ”๋ฅธ๊ด„ํ˜ธ
ยท
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/12909 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr ๐Ÿ“Œ  ๋ฌธ์ œ ์„ค๋ช…๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด"()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false..