โลโก้ Milvus
AI, Machine Learning และ LLMApache License 2.0 (โอเพนซอร์ส)

Milvus คืออะไร และวิธีติดตั้งบน Cloud Server

Milvus คือฐานข้อมูลเวกเตอร์ที่ออกแบบมาเพื่อข้อมูลขนาดใหญ่มากระดับพันล้านรายการ โดยแยกส่วนประกอบของระบบออกจากกันเพื่อให้ขยายแต่ละส่วนได้อิสระ

หมวดหมู่
AI, Machine Learning และ LLM
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
4 vCPU · RAM 8 GB
ไลเซนส์
Apache License 2.0 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Milvus คืออะไร

เมื่อจำนวนเวกเตอร์ที่ต้องค้นหาโตถึงระดับหลายร้อยล้านหรือพันล้านรายการ ฐานข้อมูลเวกเตอร์ที่รันเป็นบริการเดียวเริ่มไม่พอ ต้องใช้ระบบที่แยกส่วนจัดเก็บ ส่วนสร้างดัชนี และส่วนค้นหาออกจากกัน

Milvus ออกแบบมาแบบนั้นโดยตรง แต่ละส่วนขยายได้อิสระตามภาระงานจริง ทำให้รองรับข้อมูลขนาดใหญ่มากได้ แลกกับความซับซ้อนในการติดตั้งและดูแลที่สูงกว่า

ระบบรองรับวิธีสร้างดัชนีหลายแบบให้เลือกตามสมดุลระหว่างความเร็ว ความแม่นยำ และหน่วยความจำที่ใช้ ซึ่งเป็นการปรับที่สำคัญเมื่อข้อมูลมีขนาดใหญ่

แผนผังการวางระบบ Milvus บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 19530, 9091 ตัว Milvus และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 4 vCPU แรม 8 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Milvus ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Milvus

รองรับเวกเตอร์ระดับพันล้านรายการ

ออกแบบมาสำหรับข้อมูลขนาดใหญ่มากโดยเฉพาะ

แยกส่วนประกอบและขยายอิสระ

เพิ่มกำลังเฉพาะส่วนที่เป็นคอขวดได้

เลือกวิธีสร้างดัชนีได้หลายแบบ

ปรับสมดุลระหว่างความเร็ว ความแม่นยำ และหน่วยความจำ

ค้นหาพร้อมกรองเงื่อนไข

จำกัดผลลัพธ์ตามข้อมูลประกอบที่เก็บไว้

มีหน้าจอสำหรับจัดการ

สำรวจข้อมูลและดูสถานะของคอลเลกชันได้

ใช้ Milvus ทำอะไรได้บ้าง

  • ระบบค้นหาภาพหรือวิดีโอที่มีข้อมูลจำนวนมหาศาล
  • ระบบแนะนำสินค้าของแพลตฟอร์มขนาดใหญ่
  • ระบบตอบคำถามจากคลังเอกสารขนาดใหญ่ขององค์กร
  • งานวิจัยที่ต้องค้นหาความคล้ายในข้อมูลจำนวนมาก

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Milvus 3 ระดับ เริ่มจาก 4 vCPU แรม 8 GB ดิสก์ NVMe 100 GB ไปจนถึง 16 vCPU ขึ้นไปต่อโหนด แรม 64 GB ขึ้นไปต่อโหนด ดิสก์ NVMe หลาย TB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
ขั้นต่ำทดลองใช้แบบรวมทุกส่วนในเครื่องเดียว4 vCPU8 GBNVMe 100 GB
แนะนำเวกเตอร์ระดับหลายสิบล้านรายการ8 vCPU32 GBNVMe 500 GB
ข้อมูลมหาศาลแยกส่วนประกอบออกเป็นหลายเครื่อง16 vCPU ขึ้นไปต่อโหนด64 GB ขึ้นไปต่อโหนดNVMe หลาย TB

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Milvus บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Docker และ Docker Compose หรือ Kubernetes
  • RAM สูงเพราะดัชนีถูกเก็บในหน่วยความจำ
  • พื้นที่จัดเก็บสำหรับข้อมูลและดัชนี
  • โมเดลสำหรับแปลงข้อมูลเป็นเวกเตอร์

ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว

  1. 1

    ดึงไฟล์ Compose ทางการ

    mkdir -p /srv/milvus && cd /srv/milvus
    curl -L https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml -o docker-compose.yml
  2. 2

    เริ่มระบบ

    docker compose up -d
    docker compose ps
  3. 3

    ติดตั้งไลบรารีฝั่งแอปและเชื่อมต่อ

    pip install pymilvus
    
    from pymilvus import MilvusClient
    client = MilvusClient(uri="http://10.10.0.71:19530")
  4. 4

    สร้างคอลเลกชัน

    กำหนดจำนวนมิติให้ตรงกับโมเดลที่ใช้แปลงข้อมูล และเลือกวิธีวัดระยะห่างให้เหมาะกับโมเดล

    client.create_collection(
        collection_name="docs",
        dimension=768,
        metric_type="COSINE",
    )
  5. 5

    เพิ่มข้อมูลและสร้างดัชนี

    เพิ่มเวกเตอร์พร้อมข้อมูลประกอบ แล้วสร้างดัชนีตามวิธีที่เหมาะกับขนาดข้อมูลและความแม่นยำที่ต้องการ

    client.insert(collection_name="docs", data=[
        {"id": 1, "vector": embedding, "dept": "hr"},
    ])
    client.load_collection("docs")
  6. 6

    ค้นหาและตั้งการสำรองข้อมูล

    ทดสอบค้นหาแล้วตั้งสำรองข้อมูลตามรอบ เพราะการสร้างเวกเตอร์ใหม่ทั้งหมดใช้เวลาและค่าใช้จ่ายสูงมากเมื่อข้อมูลมีจำนวนมาก

    res = client.search(collection_name="docs", data=[question_embedding], limit=5)

เริ่มจากแบบรวมทุกส่วนในเครื่องเดียวก่อนเสมอ แล้วค่อยแยกเป็นหลายเครื่องเมื่อข้อมูลโตจริง เพราะการติดตั้งแบบกระจายซับซ้อนกว่ามาก

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
19530TCPการเชื่อมต่อของแอป (เปิดเฉพาะวงภายใน)
9091TCPตรวจสถานะและตัวชี้วัดของระบบ

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • เปิดการยืนยันตัวตนและไม่เปิดพอร์ตสู่อินเทอร์เน็ต
  • ให้แอปเข้าถึงผ่าน Private Network เท่านั้น
  • เฝ้าระวังหน่วยความจำเพราะดัชนีถูกเก็บในหน่วยความจำ
  • สำรองข้อมูลตามรอบเพราะการสร้างเวกเตอร์ใหม่มีค่าใช้จ่ายสูง

ทำไมควรรัน Milvus บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

ขยาย RAM และเพิ่มโหนดได้ตามจำนวนเวกเตอร์ที่โตขึ้น

รันในวง Private Network เดียวกับแอปและเซิร์ฟเวอร์โมเดลในไทย

เก็บข้อมูลสำรองบน Object Storage ในประเทศ

คำถามที่พบบ่อยเกี่ยวกับ Milvus

ควรเลือก Milvus หรือ Qdrant

ถ้าข้อมูลอยู่ในระดับหลักแสนถึงหลักล้านเวกเตอร์ Qdrant ติดตั้งและดูแลง่ายกว่ามาก ส่วน Milvus เหมาะเมื่อข้อมูลมีขนาดใหญ่มากถึงระดับหลายร้อยล้านหรือพันล้าน และทีมพร้อมดูแลระบบที่ซับซ้อนกว่า

ใช้ทรัพยากรเท่าไหร่

มากกว่าฐานข้อมูลเวกเตอร์ทั่วไปเพราะมีหลายองค์ประกอบและดัชนีถูกเก็บในหน่วยความจำ ควรเริ่มที่ 32 GB สำหรับข้อมูลระดับหลายสิบล้านเวกเตอร์และเฝ้าระวังหน่วยความจำอย่างใกล้ชิด

เปลี่ยนโมเดลแปลงข้อความภายหลังได้ไหม

ได้แต่ต้องสร้างคอลเลกชันใหม่และแปลงข้อมูลทั้งหมดอีกครั้ง เพราะเวกเตอร์จากคนละโมเดลเทียบกันไม่ได้ จึงควรเลือกโมเดลให้รอบคอบตั้งแต่ต้นและทดสอบกับข้อมูลจริง

บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ให้เราติดตั้ง Milvus ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด