๐Ÿ’ก Mac mini์— LLM ์„ค์น˜ํ•ด์„œ ๋‚˜๋งŒ์˜ ์ง€์‹ ๋น„์„œ ๋งŒ๋“ค๊ธฐ(1)

๐Ÿ’ก Mac mini์— LLM ์„ค์น˜ํ•ด์„œ ๋‚˜๋งŒ์˜ ์ง€์‹ ๋น„์„œ ๋งŒ๋“ค๊ธฐ

์†Œ๊ฐœ

์ตœ๊ทผ AI๋ฅผ ํ™œ์šฉํ•œ ์ง€์‹ ๊ด€๋ฆฌ์— ๊ด€์‹ฌ์ด ๋งŽ์•„์กŒ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งค๋‹ฌ ์ง€์ถœ๋˜๋Š” GPT ๊ตฌ๋…๋ฃŒ๋Š” ์€๊ทผํžˆ ๋ถ€๋‹ด์Šค๋Ÿฝ๋”๋ผ๊ณ ์š”. ๐Ÿคฏ ๊ทธ๋ž˜์„œ '์ด๊ฑธ ํ™ˆ์„œ๋ฒ„์—์„œ ๋กœ์ปฌ๋กœ ๋Œ๋ฆด ์ˆ˜ ์—†์„๊นŒ?'๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Mac mini ํ•œ ๋Œ€๋กœ ๋‚˜๋งŒ์˜ ์ง€์‹ ์ž๋™ํ™” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฒˆ ์‹คํ—˜์˜ ๋ชฉํ‘œ์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ LLM์„ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ , ์งˆ๋ฌธ-๋‹ต๋ณ€ ๋‚ด์šฉ์„ Markdown์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  Obsidian์— ์Œ“์•„๋‘๋ฉฐ, ํ•„์š”ํ•  ๋• ๊ฒ€์ƒ‰๋„ ๊ฐ€๋Šฅํ•œ ๊ฐœ์ธ RAG ์‹œ์Šคํ…œ๊นŒ์ง€ ์™„์„ฑํ•ด๋ณด์ž๋Š” ์•ผ์‹ฌ์ฐฌ ํ”„๋กœ์ ํŠธ์˜€์ฃ . ์ด๋ฆ„ํ•˜์—ฌ NavisRAG ๐Ÿš€

์ง„ํ–‰ ๋ฐฉ๋ฒ•

๐Ÿ–ฅ ์‚ฌ์šฉํ•œ ํ™˜๊ฒฝ

  • Mac mini (2024 ์ค‘๊ณ  ๊ตฌ๋งค)

    • ๋ชจ๋ธ: Mac14,3

    • ์นฉ์…‹: Apple M2 (8์ฝ”์–ด: 4P + 4E)

    • ๋ฉ”๋ชจ๋ฆฌ: 16GB

    • ๋””์Šคํฌ: 512GB SSD

  • ๋„คํŠธ์›Œํฌ: LGU+ ๊ณต์œ ๊ธฐ

  • LLM ๋Ÿฐ์ฒ˜: Ollama (๋˜๋Š” LM Studio)

  • ๋ชจ๋ธ: LLaMA 3 8B (4bit ์–‘์žํ™”)

๐Ÿง  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

[ChatGPT ๋Œ€ํ™”] โ†’ .md ์ €์žฅ โ†’ n8n/Python ํŒŒ์„œ โ†’ Obsidian ์ •๋ฆฌ โ†’ Chroma ๋ฒกํ„ฐ DB โ†’ ๋กœ์ปฌ LLM (Ollama)

โš™๏ธ ๊ตฌ์ถ• ๋‹จ๊ณ„ ์š”์•ฝ

  1. Ollama ์„ค์น˜

brew install ollama
  1. ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ

ollama pull llama3
  1. ์„œ๋ฒ„ ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ

ollama run llama3
curl localhost:11434/api/generate -d '{"prompt": "Hello!"}'

๐Ÿงช ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ

  • ๋Œ€ํ™” ํ…Œ์ŠคํŠธ (CLI ์ƒ์—์„œ)

ollama run llama3

ํ•œ๊ตญ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ ์Šคํฌ๋ฆฐ ์ƒท
  • API๋กœ ํ˜ธ์ถœ ํ…Œ์ŠคํŠธ

curl <http://localhost:11434/api/generate> -d '{
  "model": "llama3",
  "prompt": "Mac mini์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ LLM ์ถ”์ฒœํ•ด์ค˜."
}'
  • Python ์—ฐ๋™ ํ…Œ์ŠคํŠธ (์˜ต์…˜)

import requests

res = requests.post("<http://localhost:11434/api/generate>", json={
    "model": "llama3",
    "prompt": "๋งฅ๋ฏธ๋‹ˆ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ํ”„๋กœ์ ํŠธ ๋ญ๊ฐ€ ์žˆ์„๊นŒ?"
})
print(res.json())

๐Ÿ› ๏ธ ์œ ์ง€ ๊ด€๋ฆฌ

  • ๋ชจ๋ธ ์‹คํ–‰ ์ƒํƒœ ํ™•์ธ

ollama list

๊ฒฐ๊ณผ์™€ ๋ฐฐ์šด ์ 

โœ… ์ž˜ ๋œ ์ 

  • M2 Mac mini๋กœ๋„ LLM์ด ๊ฝค ์•ˆ์ •์ ์œผ๋กœ ๋Œ์•„๊ฐ

  • Ollama๋Š” ์„ค์น˜์™€ ์‹คํ–‰์ด ์ง๊ด€์ ์ด๊ณ  ๋น ๋ฆ„

  • Markdown ๊ธฐ๋ฐ˜ ์ง€์‹ ์ž๋™ํ™” ์‹œ์Šคํ…œ ๋งŒ์กฑ๋„ ๋†’์Œ

๐Ÿ˜… ์•„์‰ฌ์šด ์  & ๊ฐœ์„ ํ•  ๋ถ€๋ถ„

  • ๊ธฐ๋ณธ ์„ค์น˜ ๋ชจ๋ธ์€ ๋ชจ๋‘ ์˜์–ด๋กœ ์‘๋‹ตํ•จ โ†’ ํ•œ๊ธ€ ํŠนํ™” ๋ชจ๋ธ๋กœ ๋ณ€๊ฒฝ ํ•„์š”

  • ๋งค๋ฒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ๋ฒˆ๊ฑฐ๋กœ์›€ โ†’ SSH ํ‚ค ์ž๋™ํ™”๋กœ ํ•ด๊ฒฐ

๐Ÿ’ก ๋А๋‚€ ์ 

"AI๋Š” ๋น„์‹ธ๋‹ค"๋Š” ํŽธ๊ฒฌ์„ ๊นฐ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒฝํ—˜์ด์—ˆ์–ด์š”. ์•ฝ๊ฐ„์˜ ์ดˆ๊ธฐ ์…‹์—…๋งŒ ๋„˜๊ธฐ๋ฉด, ๋งค๋‹ฌ ์ˆ˜ ๋งŒ ์›์˜ ๊ตฌ๋…๋ฃŒ ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ์“ธ๋งŒํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์ฒด๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ํ•œ๊ธ€ ํŠนํ™” ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•ด ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ์‘๋‹ต์„ ๋ชฉํ‘œ๋กœ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Š

๐Ÿ‘‰ ์ด ๊ฒŒ์‹œ๊ธ€๋„ ์ฝ์–ด๋ณด์„ธ์š”