โลกอันน่าทึ่งของ Embeddings!

การสร้าง Embeddings ด้วย OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Embeddings คืออะไร?

  • แนวคิดจาก Natural Language Processing (NLP)
  • การแทนค่าข้อความด้วยตัวเลข

คำหนึ่งถูกป้อนเข้าโมเดล embedding ซึ่งแสดงผลลัพธ์เป็นตัวเลขแทนค่าข้อความ

การสร้าง Embeddings ด้วย OpenAI API

Embeddings คืออะไร?

 

  • ข้อความถูกแมปลงบน vector space หลายมิติ
  • ตัวเลขที่โมเดลแสดงผลคือตำแหน่งของข้อความในพื้นที่นั้น
  • คำที่มีความหมายคล้ายกันจะอยู่ ใกล้กัน
  • คำที่ต่างกันจะอยู่ ห่างกัน

ข้อความที่แทนค่าด้วยตัวเลข โดยข้อความที่คล้ายกันจะอยู่ใกล้กัน

การสร้าง Embeddings ด้วย OpenAI API

Embeddings มีประโยชน์อย่างไร?

  • Embeddings ช่วยจับ ความหมายเชิงความหมาย (semantic meaning)
  • Semantic meaning: บริบทและเจตนาที่อยู่เบื้องหลังข้อความ

 

  • ตัวอย่าง:
    • "Which way is it to the supermarket?"
    • "Could I have directions to the shop?"

ข้อความที่แทนค่าด้วยตัวเลข โดยข้อความที่คล้ายกันจะอยู่ใกล้กัน

การสร้าง Embeddings ด้วย OpenAI API

Semantic search engine

 

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

 

เครื่องมือค้นหาแบบดั้งเดิมที่แสดงผลลัพธ์ไม่ตรงประเด็น

การสร้าง Embeddings ด้วย OpenAI API

Semantic search engine

  • ใช้ embeddings เพื่อเข้าใจเจตนาและบริบท

ข้อความ "comfortable running shoes" ถูกแปลงเป็น embedding

การสร้าง Embeddings ด้วย OpenAI API

Semantic search engine

  • ใช้ embeddings เพื่อเข้าใจเจตนาและบริบท

ข้อความที่แปลงเป็น embedding แสดงในพื้นที่หลายมิติ

การสร้าง Embeddings ด้วย OpenAI API

ระบบแนะนำ

 

  • ตัวอย่าง: ระบบแนะนำตำแหน่งงาน
    • แนะนำงานตามคำอธิบายที่เคยดู
    • ลดผลกระทบจากความแตกต่างของชื่อตำแหน่ง

การแนะนำตำแหน่งงานที่แสดงเป็น embeddings

การสร้าง Embeddings ด้วย OpenAI API

การจำแนกประเภท

 

งานด้านการจำแนก:

  • จำแนก sentiment
  • จัดกลุ่มข้อมูล
  • การแบ่งหมวดหมู่

 

ตัวอย่าง:

  • จำแนกหัวข้อข่าว

 

หัวข้อข่าวที่ไม่รู้จักแสดงเป็น embeddings เพื่อจำแนกประเภท

การสร้าง Embeddings ด้วย OpenAI API

การสร้างคำขอ Embeddings

  • Embeddings endpoint
from openai import OpenAI


client = OpenAI(api_key="<OPENAI_API_KEY>")
response = client.embeddings.create(
model="text-embedding-3-small",
input="Embeddings are a numerical representation of text that can be used to measure the relatedness between two pieces of text."
)
response_dict = response.model_dump() print(response_dict)
1 https://platform.openai.com/docs/api-reference/embeddings
การสร้าง Embeddings ด้วย OpenAI API

การตอบกลับของ Embeddings

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
การสร้าง Embeddings ด้วย OpenAI API

การดึงค่า Embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
การสร้าง Embeddings ด้วย OpenAI API

มาฝึกกันเถอะ!

การสร้าง Embeddings ด้วย OpenAI API

Preparing Video For Download...