SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-31

วิธีนำเข้าไฟล์ GGUF เข้าสู่ Ollama อย่างละเอียด

เรียนรู้วิธีนำเข้าโมเดล GGUF จาก Hugging Face หรือไฟล์ในเครื่องเข้าสู่ Ollama พร้อมวิธีแก้ไขปัญหา Chat Template ไม่ตรงกันที่ทำให้โมเดลตอบกลับเป็นข้อความผิดพลาด

สองวิธีในการนำเข้าโมเดล GGUF เข้าสู่ Ollama

มีสองวิธีในการนำเข้าโมเดล GGUF เข้าสู่ Ollama โดยวิธีที่เหมาะสมจะขึ้นอยู่กับว่าไฟล์นั้นอยู่ที่ใดในขณะนี้ หากโมเดลอยู่ใน repository ของ Hugging Face คำสั่ง ollama run เพียงคำสั่งเดียวจะดึงโมเดลมาและรันได้ทันทีโดยไม่ต้องใช้ Modelfile หากไฟล์ .gguf อยู่บนดิสก์ของเซิร์ฟเวอร์คุณแล้ว ให้คุณเขียน Modelfile สองบรรทัดและรัน ollama create

ทั้งสองเส้นทางจะนำไปสู่จุดหมายเดียวกัน คือโมเดลที่มีชื่ออยู่ในไลบรารี Ollama ในเครื่องของคุณ ซึ่ง ollama run และ Ollama API สามารถให้บริการได้ ให้ใช้วิธีแรกเมื่อมีผู้อื่นเผยแพร่ไฟล์นั้นไว้ และใช้วิธีที่สองเมื่อคุณทำ quantization โมเดลด้วยตนเอง เมื่อไฟล์ถูกส่งมาผ่าน scp หรือ rsync หรือเมื่อเครื่องไม่สามารถเชื่อมต่อกับ Hugging Face ได้

ไฟล์ GGUF คือไฟล์ไบนารีหนึ่งไฟล์ที่รวมน้ำหนัก (weights), tokenizer และ metadata ของโมเดลไว้ด้วยกัน มันเป็นรูปแบบที่ llama.cpp อ่านได้ และเนื่องจาก Ollama ถูกสร้างขึ้นบน llama.cpp จึงเป็นเหตุผลว่าทำไมโมเดลแบบเปิดเกือบทุกตัวจึงมีการแปลงเป็น GGUF โดยชุมชน Ollama ไม่สามารถโหลดโฟลเดอร์ของน้ำหนัก .safetensors โดยตรงได้ ขั้นตอนการแปลงจึงมีความจำเป็น

เนื้อหาทั้งหมดด้านล่างนี้ตั้งสมมติฐานว่ามีการติดตั้ง Ollama และบริการกำลังทำงานอยู่ หากยังไม่ได้ติดตั้ง ให้เริ่มจาก การติดตั้ง Ollama บน VPS แล้วค่อยกลับมาที่นี่ ให้รัน ollama list ก่อน หากคำสั่งแสดงตารางข้อมูลขึ้นมา (แม้จะเป็นตารางว่าง) แทนที่จะเป็นข้อผิดพลาดในการเชื่อมต่อ แสดงว่าเซิร์ฟเวอร์พร้อมทำงานและส่วนที่เหลือของคู่มือนี้จะใช้งานได้ตามปกติ

เส้นทางที่หนึ่ง: รัน GGUF จาก Hugging Face โดยไม่ต้องใช้ Modelfile

Ollama สามารถดึงไฟล์ GGUF จาก repository ของ Hugging Face ได้โดยตรง คำสั่งที่ใช้คือ path ของ repository โดยมี prefix เป็น hf.co/:

ollama run hf.co/{username}/{repository}

ทั้ง hf.co และ huggingface.co สามารถใช้เป็นชื่อโดเมนได้ ตัวอย่างจริงจากเอกสารประกอบของ Hugging Face:

ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF

การรันครั้งแรกจะเป็นการดาวน์โหลดไฟล์ ดังนั้น prompt สำหรับแชทจะยังไม่ปรากฏจนกว่าการดาวน์โหลดจะเสร็จสิ้น หลังจากนั้นโมเดลจะถูกเก็บไว้ใน library ของคุณและเริ่มทำงานได้อย่างรวดเร็ว ให้เปิด shell ที่สองแล้วรัน ollama list เพื่อดูชื่อที่โมเดลถูกจัดเก็บไว้ ชื่อนั้นจะเป็นสตริง hf.co/... ทั้งหมดรวมถึง tag ซึ่งพิมพ์ได้ยากทุกครั้ง คุณสามารถตั้งชื่อเล่นสั้นๆ ให้มันได้:

ollama cp hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF my-llama
ollama run my-llama

เส้นทางนี้ใช้ได้เฉพาะกับ repository ที่มีไฟล์ GGUF อยู่จริงเท่านั้น หาก repository เผยแพร่เฉพาะน้ำหนักแบบ .safetensors และไม่มีไฟล์อื่น Ollama จะไม่มีข้อมูลให้ดึง และคุณจำเป็นต้องทำขั้นตอนการแปลงไฟล์ที่อธิบายไว้ในส่วนถัดไป

Ollama เลือก quantization แบบใด?

เอกสารประกอบของ Ollama บน Hugging Face ซึ่งอ่านเมื่อวันที่ 25 สิงหาคม 2026 ระบุไว้อย่างชัดเจนเกี่ยวกับค่าเริ่มต้นว่า: "โดยค่าเริ่มต้น ระบบจะใช้รูปแบบ quantization แบบ Q4_K_M หากมีอยู่ใน repository ของโมเดลนั้น หากไม่มี ระบบจะเลือกรูปแบบ quant ที่เหมาะสมที่สุดที่มีอยู่ใน repository ให้โดยอัตโนมัติ" ดังนั้น repository ที่เผยแพร่ไฟล์ quant ไว้สิบแบบจะให้ผลลัพธ์เป็น Q4_K_M และ repository ที่ไม่มี Q4_K_M จะให้ผลลัพธ์เป็นรูปแบบที่ Ollama เลือกให้คุณ โปรดอ่านหน้านั้นซ้ำก่อนที่คุณจะใช้งานจริง เนื่องจากค่าเริ่มต้นอาจมีการเปลี่ยนแปลงได้

คุณสามารถระบุ quant ที่ต้องการได้โดยเพิ่มเป็น tag ต่อท้าย:

ollama run hf.co/{username}/{repository}:{quantization}
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:iq3_m
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Llama-3.2-3B-Instruct-IQ3_M.gguf

ชื่อของ quantization ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่ ดังนั้น :iq3_m และ :IQ3_M จึงมีความหมายเหมือนกัน คุณยังสามารถระบุชื่อไฟล์แบบเต็มเป็น tag ได้ ซึ่งเป็นวิธีที่ปลอดภัยเมื่อชื่อย่อใน repository มีความกำกวม tag ที่ระบุจะต้องเป็นชื่อไฟล์ที่มีอยู่จริงใน repository นั้น ดังนั้นให้เปิดแท็บ Files and versions เพื่อตรวจสอบชื่อไฟล์ที่ถูกต้องก่อนพิมพ์ คุณต้องการ quant แบบใดนั้นขึ้นอยู่กับประเด็นเรื่องหน่วยความจำและคุณภาพ ซึ่ง ความแตกต่างระหว่าง Q4, Q8 และ FP16 ได้อธิบายการแลกเปลี่ยนระหว่างสองปัจจัยนี้ไว้อย่างเหมาะสมแล้ว

เส้นทางที่สอง: การนำเข้าไฟล์ .gguf จากดิสก์ของคุณเอง

เมื่อไฟล์อยู่ในเซิร์ฟเวอร์แล้ว คุณต้องมี Modelfile ซึ่งสามารถเขียนเพียงบรรทัดเดียวได้ ให้สร้างไดเรกทอรี นำ Modelfile ไปวางไว้ที่นั่น และชี้ FROM ไปยังไฟล์ดังกล่าว:

mkdir -p ~/models/my-model
cd ~/models/my-model
FROM /home/you/models/my-model-Q4_K_M.gguf

บันทึกไฟล์นั้นเป็น Modelfile จากนั้นสร้างโมเดล:

ollama create my-model

ollama create จะอ่านไฟล์ที่ชื่อ Modelfile ในไดเรกทอรีปัจจุบันโดยค่าเริ่มต้น ให้ใช้ -f เมื่อไฟล์ของคุณมีชื่ออื่นหรืออยู่ที่อื่น ดังเช่นใน ollama create my-model -f /home/you/models/my-model/Modelfile เรียกใช้ ollama create --help เพื่อดู flag และค่าเริ่มต้นในการ build ของคุณ เส้นทางใน FROM สามารถเป็นแบบสัมบูรณ์ (absolute path) หรือแบบสัมพัทธ์ (relative path) เทียบกับ Modelfile ดังนั้น FROM ./my-model-Q4_K_M.gguf จึงใช้งานได้เมื่อทั้งสองไฟล์อยู่ในไดเรกทอรีเดียวกัน การใช้เส้นทางแบบสัมบูรณ์จะช่วยตัดปัญหาเรื่องตำแหน่งที่ตั้งไปได้ทั้งหมด

ตรวจสอบผลลัพธ์ก่อนที่คุณจะใช้งาน:

ollama list
ollama show my-model
ollama run my-model "Reply with one short sentence."

ollama list ควรแสดงรายการ my-model ขึ้นมา ollama show my-model จะแสดงสถาปัตยกรรม, จำนวนพารามิเตอร์, ความยาวบริบท (context length) และการทำ quantization ที่ Ollama อ่านได้จาก metadata ของไฟล์โดยตรง ให้อ่านค่าเหล่านั้นแทนการเชื่อชื่อไฟล์ เพราะชื่อไฟล์เป็นเพียงข้อความที่ใครบางคนพิมพ์ขึ้นมาเอง หากโมเดลตอบคำถามทดสอบของคุณด้วยภาษาปกติแล้วหยุดทำงาน แสดงว่าการนำเข้าสำเร็จ หากไม่เป็นเช่นนั้น ให้ไปที่ส่วนเทมเพลตด้านล่าง เพราะนั่นมักเป็นสาเหตุของปัญหาเสมอ

สิ่งที่ควรทราบเกี่ยวกับพื้นที่ดิสก์: ollama create จะคัดลอกไฟล์ GGUF เข้าไปในที่เก็บโมเดลของ Ollama แทนการอ้างอิงไฟล์จากตำแหน่งเดิม น้ำหนัก (weights) จะถูกเก็บไว้บนดิสก์สองชุดจนกว่าคุณจะลบไฟล์ต้นฉบับทิ้ง ให้ลบไฟล์ต้นฉบับออกเมื่อ ollama run my-model ใช้งานได้แล้ว หรือเก็บไว้ในที่ที่คุณไม่ต้องเสียค่าใช้จ่ายซ้ำซ้อน ตำแหน่งที่ Ollama เก็บโมเดลไว้บนดิสก์ มีรายละเอียดเกี่ยวกับโครงสร้างและการย้ายตำแหน่ง

เมื่อใดที่ --quantize มีผล และเมื่อใดที่ไม่มีผล

ollama create มี flag --quantize ซึ่งมีไว้สำหรับกรณีเดียวเท่านั้น คือโมเดลต้นฉบับอยู่ในรูปแบบ FP16 หรือ FP32 ซึ่งหมายถึงน้ำหนักที่มีความละเอียดสูง (full precision) เอกสารการนำเข้าของ Ollama ระบุรายการ q8_0 รวมถึงรูปแบบ k-means อย่าง q4_K_S และ q4_K_M ไว้เป็นเป้าหมาย

ollama create --quantize q4_K_M my-model

อย่าใช้ flag ดังกล่าวกับไฟล์ที่ผ่านการทำ quantization มาแล้ว .gguf ที่มีชื่อระบุ Q4_K_M หรือ Q5_K_S ได้ผ่านขั้นตอนนี้มาแล้ว และ flag นี้จะไม่มีผลใดๆ การทำ quantization เป็นการแปลงทางเดียวจากความละเอียดสูงลงสู่ความละเอียดต่ำ ดังนั้นจึงไม่มีเส้นทางจาก Q4 กลับขึ้นไปเป็น Q8 หากแหล่งที่มาของคุณคือที่เก็บไฟล์ .safetensors บน Hugging Face ให้แปลงไฟล์ก่อนด้วย convert_hf_to_gguf.py จากที่เก็บข้อมูลของ llama.cpp ซึ่งเป็นเครื่องมือที่เอกสารของ Ollama แนะนำ จากนั้นจึงนำเข้าไฟล์ GGUF ที่สคริปต์นั้นสร้างขึ้น ความสัมพันธ์ระหว่าง Ollama และ llama.cpp อธิบายเหตุผลว่าทำไมสคริปต์การแปลงจึงเป็นส่วนหนึ่งของโปรเจกต์อื่น

เหตุใด GGUF ที่นำเข้าจึงตอบกลับเป็นข้อความขยะหรือไม่ยอมหยุดทำงาน?

นี่คือความล้มเหลวที่บทเรียนการนำเข้าส่วนใหญ่ข้ามไป และเป็นสิ่งที่คุณจะต้องพบเจอ อาการที่เกิดขึ้นดูเหมือนโมเดลเสียหาย โดยจะมี control token ปรากฏเป็นข้อความที่มองเห็นได้ในการตอบกลับ เช่น สตริง <|im_start|>assistant หรือ <|end|> โมเดลจะตอบคำถามแล้วเขียนคำถามของผู้ใช้ขึ้นมาใหม่และตอบคำถามนั้นด้วย การสร้างข้อความจะดำเนินต่อไปจนกว่าคุณจะกด Ctrl+C

โมเดลไม่ได้เสียหาย แต่ chat template ไม่ถูกต้อง chat template คือตัวครอบที่แปลงข้อความของคุณให้เป็นลำดับ token ที่แม่นยำตามที่โมเดลถูกฝึกมา โดยมีเครื่องหมายเฉพาะสำหรับระบุจุดสิ้นสุดของ system prompt และจุดเริ่มต้นของ user turn Ollama จะเลือก template ให้คุณโดยอัตโนมัติ เอกสารระบุว่า template "จะถูกเลือกโดยอัตโนมัติจากรายการ template ที่ใช้กันทั่วไป" โดยอ้างอิงจาก metadata tokenizer.chat_template ที่เก็บไว้ภายในไฟล์ GGUF เมื่อ metadata ดังกล่าวหายไป หรือไม่ตรงกับรายการใดเลย คุณจะได้ template แบบทั่วไป โมเดลจึงเห็น prompt ที่มีรูปแบบไม่เหมือนกับสิ่งที่เคยถูกฝึกมา ทำให้มันไม่พบเครื่องหมาย end-of-turn ที่มันเรียนรู้ว่าจะต้องหยุดเมื่อใด

ให้แสดงผล template ที่ Ollama เลือกใช้จริง:

ollama show --template my-model
ollama show --modelfile my-model

หาก template ว่างเปล่าหรือเป็นแบบทั่วไปอย่างเห็นได้ชัด นั่นคือสาเหตุ ให้คุณเขียน template ขึ้นมาเองใน Modelfile:

FROM /home/you/models/my-model-Q4_K_M.gguf

TEMPLATE """{{ if .System }}<|system|>
{{ .System }}<|end|>
{{ end }}{{ if .Prompt }}<|user|>
{{ .Prompt }}<|end|>
{{ end }}<|assistant|>
{{ .Response }}<|end|>"""

PARAMETER stop "<|end|>"

สร้างโมเดลใหม่ด้วย ollama create my-model แล้วส่ง prompt ทดสอบเดิมอีกครั้ง พารามิเตอร์ stop คือตาข่ายนิรภัยของคุณ โดยจะสั่งให้ Ollama ตัดการสร้างข้อความเมื่อสตริงนั้นปรากฏขึ้น ซึ่งจะช่วยแก้ปัญหาอาการไม่ยอมหยุดทำงานในขณะที่คุณยังคงปรับแต่งตัวครอบอยู่ หากการตอบกลับยังคงดำเนินต่อไปเนื่องจากไม่พบเครื่องหมายที่คุณกำหนดไว้ การจำกัดจำนวน num_predict จะช่วยตัดการทำงานที่จำนวน token คงที่โดยไม่คำนึงถึงสิ่งที่ template สร้างออกมา

template ต้องเป็น Go template ไม่ใช่ Jinja template เอกสารของ Hugging Face ระบุเรื่องนี้ไว้อย่างชัดเจน และมีความสำคัญเนื่องจากฟิลด์ tokenizer.chat_template ใน repository ของโมเดลต้นฉบับใช้ Jinja การคัดลอกมาวางโดยไม่แก้ไขจะไม่สามารถใช้งานได้ ไวยากรณ์ของ Ollama มีตัวแปรสามตัวคือ {{ .System }} สำหรับ system prompt, {{ .Prompt }} สำหรับข้อความของผู้ใช้ และ {{ .Response }} สำหรับการตอบกลับของโมเดล ให้ค้นหาเครื่องหมาย turn จริงของโมเดลจาก model card หรือไฟล์ tokenizer_config.json ของโมเดลนั้น แล้วเขียนใหม่เป็นไวยากรณ์ Go ด้วยตนเอง

ทางลัดหนึ่งวิธีช่วยประหยัดเวลาได้มาก โมเดลจำนวนมากใช้รูปแบบ prompt ร่วมกัน ดังนั้นหากมีโมเดลอื่นใน library ของคุณที่ใช้รูปแบบเดียวกัน ให้รันคำสั่ง ollama show --template กับโมเดลนั้นแล้วคัดลอกสิ่งที่แสดงผลออกมา

ไฟล์ template, system และ params ใน Hugging Face repo

เส้นทางของ Hugging Face มอบการควบคุมแบบเดียวกับไฟล์ใน repository แทนการใช้คำสั่งใน Modelfile หากคุณเป็นเจ้าของ repository หรือกำลังเผยแพร่ไฟล์ quant ของคุณเอง ให้เพิ่มไฟล์เหล่านี้ลงไป แล้ว ollama run hf.co/... ทุกตัวจะดึงค่าเหล่านั้นไปใช้งาน

  • ไฟล์ชื่อ template ใช้เก็บ Go template โดยมีกฎเดียวกันคือต้องใช้ Go ไม่ใช่ Jinja
  • ไฟล์ชื่อ system ใช้เก็บ system prompt
  • ไฟล์ชื่อ params ใช้เก็บ sampling parameters และต้องอยู่ในรูปแบบ JSON เท่านั้น

ตัวอย่างไฟล์ params แบบย่อ:

{
  "stop": ["<|end|>"],
  "temperature": 0.7
}

ในกรณีที่คุณไม่ได้เป็นเจ้าของ repository คุณจะไม่สามารถเพิ่มไฟล์เหล่านี้ได้ ให้ทำการ pull โมเดลหนึ่งครั้ง จากนั้นรัน ollama show --modelfile hf.co/... เพื่อดึงข้อมูลที่ได้รับมา แล้วบันทึกผลลัพธ์นั้นเป็น Modelfile โดยบรรทัด FROM จะชี้ไปยัง blob ที่ Ollama ดาวน์โหลดมาไว้แล้ว คุณจึงสามารถแก้ไขบรรทัด TEMPLATE และ PARAMETER แล้วรัน ollama create เพื่อสร้างสำเนาในเครื่องที่แก้ไขแล้วโดยไม่ต้องดาวน์โหลดข้อมูลใหม่ นี่เป็นวิธีมาตรฐานในการแก้ไขไฟล์ quant ของผู้อื่นที่ตั้งค่ามาไม่ถูกต้อง

วิธีการนำเข้า GGUF repository แบบส่วนตัว

Repository แบบส่วนตัวจำเป็นต้องใช้ SSH key ของ Ollama ในบัญชี Hugging Face ของคุณ วิธีการที่ระบุไว้ในเอกสารสำหรับกรณีนี้จะใช้ SSH key แทน API token ดังนั้น token ที่คุณมีอยู่แล้วจะไม่สามารถใช้เปิดเข้าถึงได้

ให้แสดงผล public key ออกมา บนเซิร์ฟเวอร์ Linux ที่ติดตั้ง Ollama ด้วยสคริปต์อย่างเป็นทางการ บริการจะทำงานในฐานะผู้ใช้ ollama ดังนั้น key จะถูกเก็บไว้ใน home directory ของผู้ใช้นั้น:

sudo cat /usr/share/ollama/.ollama/id_ed25519.pub

หากคุณเริ่มการทำงานของ ollama serve ด้วยตัวเองในฐานะผู้ใช้ของคุณเอง path จะเป็น ~/.ollama/id_ed25519.pub แทน ให้คัดลอกข้อความทั้งบรรทัด เปิดการตั้งค่าบัญชี Hugging Face ของคุณที่ https://huggingface.co/settings/keys แล้วเพิ่มเป็น SSH key ใหม่ จากนั้นคำสั่งปกติจะสามารถใช้งานกับ repository ส่วนตัวของคุณได้:

ollama run hf.co/{username}/{repository}

หากการดึงข้อมูลยังคงล้มเหลวหลังจากที่คุณเพิ่ม key แล้ว เป็นไปได้ว่าคุณแสดงผลไฟล์ผิดไฟล์ เซิร์ฟเวอร์จะเป็นผู้ดำเนินการดาวน์โหลดและนำเสนอ key ของตัวมันเอง และเซิร์ฟเวอร์ที่เริ่มการทำงานโดย systemd จะไม่อ่านไฟล์ ~/.ollama ของผู้ใช้คุณ ดังนั้น key ที่อยู่ภายใต้ home directory ของคุณจึงไม่ใช่ key ที่ Hugging Face มองเห็น

โมเดลจะทำงานบน VPS ของคุณได้หรือไม่

ตัวเลขที่ใช้ตัดสินเรื่องนี้คือขนาดไฟล์บนดิสก์รวมกับหน่วยความจำที่ context window ของคุณต้องการ น้ำหนักของโมเดลจะถูกโหลดเข้าสู่หน่วยความจำในขนาดที่ใกล้เคียงกับที่ใช้ในไฟล์ และการจัดสรรพื้นที่สำหรับ context จะเพิ่มขึ้นตามจำนวน token ที่คุณกำหนด ให้รัน ollama list เพื่ออ่านขนาดที่ Ollama บันทึกไว้สำหรับโมเดลนั้น แล้วนำไปเปรียบเทียบกับ free -h บนเซิร์ฟเวอร์ของคุณ โดยต้องเผื่อพื้นที่ว่างไว้สำหรับระบบปฏิบัติการและโปรเซสอื่นๆ ที่รันอยู่บนเซิร์ฟเวอร์ด้วย หากคุณต้องการดูตัวอย่างการคำนวณจริงจากโมเดลที่ใช้งานได้จริง การรัน Nemotron 3.5 Lightning บน VPS จะระบุ tag ที่ต้องใช้ในการดึงโมเดล, ปริมาณ RAM ที่จำเป็น และข้อมูลว่าเซิร์ฟเวอร์ที่ใช้เฉพาะ CPU จะรองรับการทำงานได้หรือไม่

Context คือส่วนที่ผู้ใช้มักลืม โมเดลที่โหลดด้วยค่าเริ่มต้นอาจทำงานล้มเหลวเมื่อคุณเพิ่มค่า num_ctx เนื่องจากหน่วยความจำที่ต้องจัดสรรจะขยายตามขนาด window ที่คุณระบุ การตั้งค่า num_ctx และผลกระทบต่อหน่วยความจำ มีรายละเอียดการคำนวณขนาดที่เหมาะสม เมื่อผลรวมหน่วยความจำที่ต้องการมีขนาดใหญ่เกินไป วิธีแก้ไขมักจะเป็นการเลือกใช้โมเดลรุ่นที่ทำ quantization เล็กลง ซึ่งเป็นข้อแลกเปลี่ยนที่อธิบายไว้ใน การเปรียบเทียบ Q4 กับ Q8

ความล้มเหลวที่เกิดขึ้นจะเห็นได้ชัดเจน บน VPS ที่ใช้เฉพาะ CPU ตัว kernel out of memory killer จะหยุดการทำงานของโปรเซส และ journalctl -u ollama -n 50 ร่วมกับ dmesg จะแสดงบันทึกการสั่งหยุดโปรเซสนั้น สำหรับเซิร์ฟเวอร์ที่มี GPU คำสั่ง ollama ps จะแสดงคอลัมน์ PROCESSOR ซึ่งบอกคุณว่าโมเดลที่โหลดถูกเก็บไว้ในหน่วยความจำของ GPU, หน่วยความจำของระบบ หรือแบ่งเก็บทั้งสองส่วน โมเดลที่ถูกย้ายไปเก็บในหน่วยความจำของระบบจะยังคงตอบสนองได้แต่จะทำงานช้าลง การวัดจำนวน token ต่อวินาที จะช่วยเปลี่ยนคำว่า "ช้า" ให้เป็นตัวเลขที่คุณสามารถนำมาเปรียบเทียบระหว่างระดับ quantization ต่างๆ ได้

ตรวจสอบสิ่งที่คุณนำเข้า

ให้รันคำสั่งทั้ง 4 คำสั่งนี้หลังจากนำเข้าเสร็จสิ้น โดยเรียงตามลำดับดังนี้:

ollama list
ollama show my-model
ollama show --modelfile my-model
ollama run my-model "Reply with one short sentence."

ollama list เป็นการยืนยันว่าโมเดลมีอยู่จริงและแสดงขนาดที่ Ollama บันทึกไว้ ollama show เป็นการยืนยันว่า Ollama อ่าน metadata ที่จำเป็นจากไฟล์ GGUF ได้สำเร็จ ollama show --modelfile เป็นการยืนยันว่าโมเดลจะใช้ template และพารามิเตอร์ใด ซึ่งเป็นการตรวจสอบเพื่อป้องกันปัญหาผลลัพธ์ที่ผิดพลาดก่อนที่ผู้ใช้งานของคุณจะพบเจอ การทดสอบด้วย prompt จะเป็นการตรวจสอบการทำงานทั้งหมดของระบบ เนื่องจากโมเดลที่มี template เสียหายจะล้มเหลวแม้จะเป็นคำขอที่สั้นที่สุดก็ตาม เมื่อได้รับผลลัพธ์ที่ถูกต้องจาก prompt แล้ว ชื่อที่คุณตั้งให้กับโมเดลจะเป็นชื่อเดียวกับที่คุณใช้เรียกผ่าน Ollama API รวมถึง coding agent ที่เชื่อมต่อกับเซิร์ฟเวอร์ของคุณ หากต้องการลบการนำเข้าที่ผิดพลาดให้ใช้ ollama rm my-model แล้วจึงสร้างใหม่ คำสั่งดังกล่าวจะลบเฉพาะสำเนาของ Ollama โดยที่ไฟล์ต้นฉบับ .gguf ของคุณจะยังคงอยู่เหมือนเดิม

FAQ

ฉันสามารถนำเข้า GGUF เข้าสู่ Ollama โดยไม่ต้องเขียน Modelfile ได้หรือไม่?

ได้ หากไฟล์นั้นอยู่ใน repository ของ Hugging Face โดย ollama run hf.co/{username}/{repository} จะดึงและรันไฟล์นั้นโดยตรง และ ollama run hf.co/{username}/{repository}:{quantization} จะใช้เลือก quantization ที่ต้องการ Modelfile จะจำเป็นก็ต่อเมื่อคุณใช้ .gguf กับไฟล์ที่อยู่ในดิสก์ของคุณเองเท่านั้น ซึ่งในกรณีนั้นสามารถใช้เพียงบรรทัดเดียวคือ FROM /path/to/file.gguf ตามด้วย ollama create my-model

Ollama จะดาวน์โหลด quantization แบบใดหากฉันไม่ได้ระบุ?

เอกสารของ Hugging Face ณ วันที่ 25 สิงหาคม 2026 ระบุว่า Q4_K_M จะถูกเลือกใช้หากมี quantization นั้นอยู่ใน repository และหากไม่มี Ollama จะเลือก quantization ประเภทที่เหมาะสมที่มีอยู่ใน repository นั้นแทน คุณสามารถเพิ่ม tag เช่น :Q8_0 เพื่อควบคุมการเลือกได้ และตรวจสอบสิ่งที่ได้รับจริงด้วย ollama show <model> ซึ่งจะแสดงค่า quantization จาก metadata ของไฟล์โดยตรงแทนการดูจากชื่อไฟล์

ทำไมโมเดลที่นำเข้าถึงวนซ้ำหรือสร้างข้อความไม่หยุด?

chat template ไม่ตรงกับโมเดล Ollama จะเลือก template โดยอัตโนมัติจาก metadata tokenizer.chat_template ภายในไฟล์ GGUF และเมื่อ metadata ดังกล่าวหายไปหรือไม่เป็นที่รู้จัก ระบบจะใช้ wrapper ทั่วไป ทำให้โมเดลไม่พบเครื่องหมายสิ้นสุดการโต้ตอบ (end-of-turn marker) ที่ถูกฝึกมา ให้แสดง template ปัจจุบันด้วย ollama show --template <model> จากนั้นเพิ่มบล็อก TEMPLATE และบรรทัด PARAMETER stop ลงใน Modelfile แล้วรัน ollama create อีกครั้ง โดยต้องเขียนในรูปแบบ Go template เท่านั้น Jinja template จาก repository ต้นฉบับจะไม่สามารถใช้งานได้

ฉันควรใช้ --quantize กับไฟล์ GGUF ที่ดาวน์โหลดมาหรือไม่?

ไม่ควร --quantize จะทำหน้าที่แปลงไฟล์ต้นฉบับที่เป็น FP16 หรือ FP32 ในระหว่างขั้นตอน ollama create ส่วนไฟล์ที่มีชื่อระบุ quantization อยู่แล้ว เช่น Q4_K_M นั้นผ่านการแปลงมาแล้ว ความละเอียดของข้อมูลไม่สามารถกู้คืนได้ด้วยการทำ quantization ซ้ำ และไม่มีกระบวนการแปลงกลับไปเป็นค่าเดิม ให้ใช้ flag นี้เฉพาะในกรณีที่คุณแปลงไฟล์ safetensors เป็น GGUF แบบ full precision ด้วยตนเองแล้วต้องการลดขนาดไฟล์ลงเท่านั้น

ฉันจะดึงข้อมูลจาก private GGUF repository ได้อย่างไร?

ให้เพิ่ม SSH public key ของ Ollama เข้าไปในบัญชี Hugging Face ของคุณ โดยแสดงค่า key ได้ด้วย sudo cat /usr/share/ollama/.ollama/id_ed25519.pub บนการติดตั้ง Linux มาตรฐาน หรือจาก ~/.ollama/id_ed25519.pub ในกรณีที่คุณรันเซิร์ฟเวอร์ด้วย user ของคุณเอง จากนั้นให้นำไปเพิ่มในหน้าตั้งค่า SSH key ของบัญชีคุณ เมื่อดำเนินการเสร็จสิ้น ollama run hf.co/{username}/{repository} จะสามารถใช้งานกับ private repository ของคุณเองและ repository ในองค์กรที่คุณเป็นสมาชิกได้

#ollama#gguf#local-llm#hugging-face#modelfile