localGPT์™€ llama2๐Ÿฆ™์ด์šฉํ•ด๋ณด๊ธฐ

๋ฐ•ํ•˜์˜ยท2023๋…„ 7์›” 21์ผ
0

LLM

๋ชฉ๋ก ๋ณด๊ธฐ
1/4
post-thumbnail

์–ผ๋งˆ์ „ ์ƒ์—…์ ์œผ๋กœ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ llama2๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค.๐Ÿค—

์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๊ณ ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋Š˜์€ localGPT๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ์—์„œ llama2๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

localGPT๋Š” ์•ž์„œ ํฌ์ŠคํŒ…ํ–ˆ๋˜ privateGPT์—์„œ ์˜๊ฐ์„ ์–ป์—ˆ๋‹คํ•˜๊ณ , ๋‚ด์šฉ์ด๋‚˜ ์ฝ”๋“œ์ ์œผ๋กœ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

[privateGPT์™€์˜ ์ฐจ๋ณ„์ ]

  • GPT4ALL ๋ชจ๋ธ์„ Vicuna-7B ๋ชจ๋ธ๋กœ ๊ต์ฒด
  • LlamaEmbeddings ๋Œ€์‹  InstructorEmbeddings๋ฅผ ์‚ฌ์šฉ
  • ์ž„๋ฒ ๋”ฉ๊ณผ LLM์€ ๋ชจ๋‘ CPU ๋Œ€์‹  GPU์—์„œ ์‹คํ–‰ (GPU๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ CPU๋„ ์ง€์›)

์ €๋Š” ์—ฌ๊ธฐ์„œ Vicuna-7B ๋ชจ๋ธ์„ ๋‹ค์‹œ llama2-7B-chat ๋ชจ๋ธ๋กœ ๊ต์ฒดํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿ’ก Setting

  • ์šฐ์„  ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ํ™œ์„ฑํ™” ํ•ด์ฃผ์„ธ์š”.
conda create -n localGPT
conda activate [๊ฐ€์ƒํ™˜๊ฒฝ ์ด๋ฆ„] pyhton==3.10
  • ๊ทธ๋ฆฌ๊ณ  git์„ cloneํ•ด์ฃผ์‹œ๊ณ ,
git clone https://github.com/PromtEngineer/localGPT.git
  • ๊ธฐ๋ณธ path๋ฅผ ์„ค์ •ํ•˜์—ฌ์ค๋‹ˆ๋‹ค.
cd localGPT
  • ์ด์ œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์ฃผ์‹œ๋ฉด ๊ธฐ๋ณธ ์…‹ํŒ…์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค!
pip install -r requirements.txt

๐Ÿ’ก ๋ฌธ์„œ์ „์ฒ˜๋ฆฌ

์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฌธ์„œ(dox,pdf,csv ์ง€์›)๋ฅผ chunk๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜๊ณ  ์ž„๋ฒ ๋”ฉ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐ์„  ๊ฒ€์ƒ‰์„ ์›ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ SOURCE_DOCUMENTSํŒŒ์ผ์— ๋„ฃ์–ด์ฃผ์„ธ์š”.
  • ๊ทธ ํ›„ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. (cpu๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด 'python run_localGPT.py --device_type cpu')
python ingest.py 

๐Ÿ’ก Model Change(llama2)

  • ํ…์ŠคํŠธ์ด์ œ ๋“œ๋””์–ด ์ œ๊ฐ€ ์‚ฌ์šฉํ•  llama๋ฅผ ๋„ฃ์–ด๋ณด๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

  • llama2๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” metaAI์™€ huggingface์—์„œ๋Š” ์Šน์ธ ์š”์ฒญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ƒ๋žต)

  • huggingface์—์„œ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์œผ์…จ๋‹ค๋ฉด llama2์‚ฌ์šฉ์„ Token์— key๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

huggingface-cli login

  • llama2 ๋ชจ๋ธ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ https://huggingface.co/meta-llama ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์…”์„œ ์‚ฌ์šฉํ•˜์‹ค ๋ชจ๋ธ ์ด๋ฆ„์„ ์ฐพ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค.
  • ๋‹จ, localGPT๋ฅผ ์‚ฌ์šฉํ•˜์‹ค๊ฑฐ๋ผ๋ฉด, ๋ชจ๋ธ ๋’ค์— hf๊ฐ€ ๋ถ™๋Š” ๊ฑธ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ์„ ์„ ํƒํ–ˆ๋‹ค๋ฉด, run_localGPT.pyํŒŒ์ผ์— ๋“ค์–ด๊ฐ„ ํ›„์— ctrl+f๋ฅผ ๋ˆŒ๋Ÿฌ์„œ model_id๋ฅผ ์ฐพ์•„์ฃผ์„ธ์š”.
  • ๊ทธ ํ›„์— ์‚ฌ์šฉํ•˜์‹ค ๋ชจ๋ธ๋กœ ๋ฐ”๊ฟ”์ฃผ์‹œ๊ณ  ์ €์žฅ ํ•ด์ฃผ์„ธ์š”.
  • ์ด๋ ‡๊ฒŒ ๋ชจ๋ธ ์ด๋ฆ„๋งŒ ๋ฐ”๊ฟ”์คฌ๋‹ค๋ฉด ๋ชจ๋ธ์„ ๊ต์ฒดํ•  ์ค€๋น„๋Š” ๋์ด๋ž๋‹ˆ๋‹ค !

๐Ÿ’ก QARetrieval

  • ์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ run_localGPT.py๋ฅผ ๋Œ๋ ค์ฃผ์‹œ๋ฉด ๋ฐ‘์—์™€ ๊ฐ™์ด ์งˆ๋ฌธ์ด ๊ฐ€๋Šฅํ•ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    ( ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ cpu์ง€์›์„ ์›ํ•˜์‹œ๋ฉด 'python run_localGPT.py --device_type cpu'๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.)
python run_localGPT.py


๐Ÿ™ ์†Œ๊ฐ

  • ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ llama2์— ๊ต‰์žฅํ•œ ๊ธฐ๋Œ€๋ฅผ ๊ฑธ์—ˆ๋Š”๋ฐ์š”...!
  • ์ €์˜ ์œ„ ์‹คํ—˜์—์„œ๋Š” ๋ฌธ์„œ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ์งˆ๋ฌธ๋“ค์„ ํ–ˆ์„ ๋•Œ, vicuna-7b๊ฐ€ ์„ฑ๋Šฅ์ด ๋” ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  • ๋˜ llama2-13b๋„ ์‚ฌ์šฉํ•ด๋ณด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ๋ชปํ•œ๊ฒŒ ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.

๐Ÿ“š Inference

profile
NLP ํŒŒ์ดํŒ…ํ•ด์•ผ์ง€!

0๊ฐœ์˜ ๋Œ“๊ธ€