การฝังลึก (Embeddings) หรือที่รู้จักกันในนาม Feature Vectors คือวิธีการของปัญญาประดิษฐ์ในการแสดงข้อมูลประเภทต่าง ๆ โดยทำให้เหมาะสมต่อการใช้กับเครื่องมือและอัลกอริทึมปัญญาประดิษฐ์ต่าง ๆ สามารถแสดงข้อมูลข้อความ ภาพ และเสียง รวมถึงวิดีโอได้อย่างมีประสิทธิภาพ มีหลายทางเลือกในการสร้างข้อมูล Feature Vector ซึ่งรวมถึงการใช้โมเดลการฝังข้อความโอเพ่นซอร์สและเรียกใช้ API จากบริการคลาวด์
Chroma มีการให้บริการ Wrapper ที่เบาสำหรับโมเดลการฝังลึกที่นิยม ทำให้ง่ายต่อการนำมาใช้ในแอปพลิเคชันของคุณ ในขณะสร้างคอลเลคชันของ Chroma คุณสามารถตั้งค่าฟังก์ชันการฝังของไปคำข้อความได้โดยอัตโนมัติเมื่อบันทึกและอัพเดทข้อมูลข้อความ
หมายเหตุ: คุณยังสามารถเลือกที่จะไม่ใช้ฟังก์ชันการฝังของ Chroma ในการคำนวณเวกเตอร์ คุณสามารถเลือกโมเดลการฝังข้อความใด ๆ เพื่อคำนวณข้อมูลเวกเตอร์ข้อความล่วงหน้า
เพื่อให้ได้ฟังก์ชันการฝังจาก Chroma คุณสามารถนำเข้าโมดูล embedding_functions
จาก chromadb.utils
from chromadb.utils import embedding_functions
โมเดลเริ่มต้น: all-MiniLM-L6-v2
ตามค่าเริ่มต้น Chroma ใช้โมเดล all-MiniLM-L6-v2 จาก Sentence Transformers เพื่อคำนวณเวกเตอร์ โมเดลการฝังนี้สามารถสร้างเวกเตอร์ข้อความและเอกสาร ฟังก์ชันการฝังของโมเดลนี้ทำงานบนเครื่องท้องถิ่นและต้องการดาวน์โหลดไฟล์โมเดล (ซึ่งทำโดยอัตโนมัติ)
default_ef = embedding_functions.DefaultEmbeddingFunction()
โมเดล Transformers
Chroma ยังสามารถใช้โมเดล Sentence Transformers ใด ๆ เพื่อคำนวณเวกเตอร์
sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
คุณสามารถส่งพารามิเตอร์ model_name
ได้เพื่อเลือกโมเดล Sentence Transformers ที่คุณต้องการใช้ ตามค่าเริ่มต้น Chroma ใช้ all-MiniLM-L6-v2 คุณสามารถค้นหาชื่อโมเดลได้ที่ Hugging Face
โมเดล OpenAI
Chroma มีการให้บริการ Wrapper ที่สะดวกสบายสำหรับ OpenAI's embedding API นี้ต้องการเรียกใช้อินเตอร์เฟซของ OpenAI และคีย์ API คุณสามารถรับคีย์ API ได้โดยการลงทะเบียนบัญชี OpenAI
ฟังก์ชันการฝังนี้ขึ้นอยู่กับแพ็คเกจ openai
ภาษาไพธอน ซึ่งสามารถติดตั้งได้โดยใช้ pip install openai
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="YOUR_API_KEY",
model_name="text-embedding-ada-002"
)
เพื่อใช้โมเดลการฝังของ OpenAI บนแพลตฟอร์มเช่น Azure คุณสามารถใช้พารามิเตอร์ api_base
และ api_type
openai_ef = embedding_functions.OpenAIEmbeddingFunction(
api_key="YOUR_API_KEY",
api_base="YOUR_API_BASE_PATH",
api_type="azure",
model_name="text-embedding-ada-002"
)
ฟังก์ชันการฝังที่กำหนดเอง
คุณสามารถสร้างฟังก์ชันการฝังที่กำหนดเองเพื่อใช้งานกับ Chroma โดยการทำการสร้างเมทอดของฐานคลาส EmbeddingFunction
from chromadb.api.types import Documents, EmbeddingFunction, Embeddings
class MyEmbeddingFunction(EmbeddingFunction):
def __call__(self, texts: Documents) -> Embeddings:
return embeddings