๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒŸ AI & ML Tech/LLM

[LLM] Ollama: ๋กœ์ปฌ์—์„œ LLM์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ• | ollama ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

by ๋ญ…์ฆค 2024. 9. 11.
๋ฐ˜์‘ํ˜•

์š”์ฆ˜์€ ํ—ˆ๊น…ํŽ˜์ด์Šค, ๋žญ์ฒด์ธ ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋•์— LLM์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ •๋ง ๋‹ค์–‘ํ•˜๊ณ  ํŽธ๋ฆฌํ•ด์กŒ์–ด์š”. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ๋ณต์žกํ•œ ์„ค์ •์ด๋‚˜ ๋†’์€ ๋น„์šฉ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผํ•˜๋Š” ๋ถ„๋“ค๋„ ๋งŽ์ฃ . ์ด๋Ÿด ๋•Œ ๋„์›€์ด ๋˜๋Š” ํ”Œ๋žซํผ์ด ๋ฐ”๋กœ Ollama์ž…๋‹ˆ๋‹ค. Ollama๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ผ์šฐ๋“œ ์—†์ด๋„ ๋กœ์ปฌ์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค˜์š”. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ์ง€ํ‚ค๋ฉด์„œ๋„ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋‹ˆ, AI ๊ธฐ์ˆ ์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ต๋‹ˆ๋‹ค.


 

๐Ÿ“Œ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋กœ์ปฌ์—์„œ ๋ชจ๋ธ ์‹คํ–‰ : Ollama๋Š” LLM์„ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜์š”. ๋•๋ถ„์— ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€์ง€ ์•Š์œผ๋‹ˆ ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”.
  • ์‚ฌ์ „ ํ•™์Šต๋œ ๋ชจ๋ธ ์ œ๊ณต : Ollama๋Š” ์ด๋ฏธ ํ•™์Šต๋œ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ด์„œ, ์‚ฌ์šฉ์ž๋Š” ํ…์ŠคํŠธ ์ƒ์„ฑ, ๋ฒˆ์—ญ, ์š”์•ฝ ๋“ฑ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋ณต์žกํ•œ ์„ค์ • ์—†์ด๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ ์ด ์ •๋ง ํŽธ๋ฆฌํ•˜์ฃ .
  • ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ธํ„ฐํŽ˜์ด์Šค : Ollama๋Š” ์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์„œ ๊ฐœ๋ฐœ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, AI ์ดˆ๋ณด์ž๋„ ์†์‰ฝ๊ฒŒ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋ณต์žกํ•œ ๊ธฐ์ˆ  ์—†์ด๋„ ๋ฐ”๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒŒ ํฐ ์žฅ์ ์ด์—์š”.
  • ๋ฐ์ดํ„ฐ ํ”„๋ผ์ด๋ฒ„์‹œ ๋ณด์žฅ : Ollama๋Š” ๋กœ์ปฌ์—์„œ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€๋กœ ์œ ์ถœ๋˜์ง€ ์•Š์•„์š”. ๋ฏผ๊ฐํ•œ ์ •๋ณด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ, ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๋ถ„๋“ค์—๊ฒŒ ์•ˆ์„ฑ๋งž์ถค์ด์—์š”.

๐Ÿ“Œ ์‹ค์Šต - ํ„ฐ๋ฏธ๋„

1.  ollama ๋‹ค์šด๋กœ๋“œ

 

Download Ollama on macOS

Download Ollama on macOS

ollama.com

 

  • ๋‹ค์šด๋กœ๋“œ๋Š” ์œ„ ๋งํฌ์—์„œ OS์— ๋งž๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ๋ฆฌ๋ˆ…์Šค์—์„œ๋„ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด ํ•œ ์ค„๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

 

2.  ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ

ollama pull llama3.1
ollama run llama3.1

 

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•์€ ํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—์š”.
  • ์œ„์™€ ๊ฐ™์ด ollama pull {model} ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ๋กœ์ปฌ์— ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ollama pull {model}๋กœ ๋จผ์ € ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ollama run {model}๋กœ ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ
  • ollama run {model} ๋ช…๋ น์–ด๋กœ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ, ๋Œ€ํ™” ์‹œ์ž‘์„ ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ต๋‹ˆ๋‹ค.

 

 

  • ollama run์„ ์‹คํ–‰ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹œ์ž‘ ํ•ด์š”.
  • ๊ต‰์žฅํžˆ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ์ธ llama3.1 8B ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ ํ•ด๋ณด๊ณ  ์žˆ๋„ค์š” ใ…Žใ…Ž
  • ์ด ์ •๋„ ๋ชจ๋ธ์ด ์ผ๋ฐ˜์ ์œผ๋กœ GPU ์—†๋Š” ์ปดํ“จํ„ฐ์—์„œ๋„ ๊ฐ€๋ณ๊ฒŒ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

 

3.  ๋Œ€ํ™” ์‹œ์ž‘

  • ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ฐฝ์ด ๋œจ๋Š”๋ฐ์š”.
  • ์ €๋Š” '์•ˆ๋…•' ์ด๋ผ๊ณ  ๋ณด๋‚ด๊ณ , 'ํŒŒ์ด์ฌ ์–ธ์–ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ค˜' ๋ผ๊ณ  ๋ฌผ์–ด๋ดค๋„ค์š”
  • ๊ต‰์žฅํžˆ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ์ด๋ผ ๋‹ต๋ณ€๋„ ๋น ๋ฅด๊ฒŒ ๋˜์ง€๋งŒ, ์‚ฌ์‹ค ์กฐ๊ธˆ ์“ฐ๋‹ค๋ณด๋ฉด ๋‹ต๋ณ€ ์ˆ˜์ค€์ด ๊ทธ๋ฆฌ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž 

 

๐Ÿ“Œ ์‹ค์Šต - ํŒŒ์ด์ฌ

import ollama
response = ollama.chat(model='llama3.1', messages=[
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
])
print(response['message']['content'])
  • ํŒŒ์ด์ฌ์—์„œ๋„ ์•„~์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ollama๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.
  • pip install ollama๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ 
  • ์œ„์™€ ๊ฐ™์ด ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ LLM์œผ๋กœ ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•„๋ž˜๋Š” 'Why is the sky blue?' ๋ผ๋Š” ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•œ ๋‚ด์šฉ์ด์—์š”.

 

๐Ÿ“Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ชจ๋ธ

 

 

GitHub - ollama/ollama: Get up and running with Llama 3.1, Mistral, Gemma 2, and other large language models.

Get up and running with Llama 3.1, Mistral, Gemma 2, and other large language models. - ollama/ollama

github.com

 

  • ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์œ„ ollama ๊นƒํ—™์— ๋“ค์–ด๊ฐ€์‹œ๋ฉด ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์–ด์š”.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฉ”ํƒ€์˜ llama3.1 8B, ๊ตฌ๊ธ€์˜ Gemma2๋ฅผ ๋งŽ์ด๋“ค ์‚ฌ์šฉํ•˜์‹ ๋‹ค๊ณ  ํ•˜๋„ค์š”.
  • ํ•œ๊ตญ์–ด ๋Œ€ํ™”์˜ ๊ฒฝ์šฐ Gemma 2 27B๊ฐ€ ๊ดœ์ฐฎ๋‹ค๋Š” ์†Œ๋ฌธ์ด...
  • Nvidia A100 40G ์‚ฌ์šฉ์‹œ llama3.1 70B๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๊ธด ํ•˜๋„ค์š” ใ…Žใ…Ž

LLM์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๋Œ€๋ถ€๋ถ„ ๋จผ์ € OpenAI์˜ ChatGPT ๊ฐ™์€ ๋ชจ๋ธ์„ ์ ‘ํ•˜๊ฒŒ ๋˜๊ณ , RAG๋‚˜ Function Calling ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•์„ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์ฃ . ํ•˜์ง€๋งŒ ๋„๋ฉ”์ธ ํŠนํ™” ๋ชจ๋ธ์„ ๋งŒ๋“ค๋ ค๋ฉด ๊ฒฐ๊ตญ ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•˜๊ฑฐ๋‚˜, ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ RAG ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์š”. ์ด๋Ÿด ๋•Œ, ๋กœ์ปฌ์—์„œ ๋ชจ๋ธ์„ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋Š” Ollama๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ ์ข‹์€ ํ”Œ๋žซํผ์ด์—์š”.

 

์—ฌ๋Ÿฌ๋ถ„๋„ Ollama๋กœ ์ง์ ‘ ๋กœ์ปฌ์—์„œ AI ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ณด์‹œ๊ณ , ๋” ์ข‹์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๊ณต์œ ํ•ด ์ฃผ์„ธ์š”! ๐Ÿ˜ƒ

๋ฐ˜์‘ํ˜•