Thế giới kỳ diệu của embeddings!

Nhập môn Embeddings với OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Embeddings là gì?

  • Khái niệm từ Xử lý Ngôn ngữ Tự nhiên (NLP)
  • Biểu diễn số của văn bản

Một từ được đưa vào mô hình embedding và xuất ra biểu diễn số của văn bản.

Nhập môn Embeddings với OpenAI API

Embeddings là gì?

 

  • Ánh xạ văn bản vào không gian vector đa chiều
  • Các số mô hình xuất ra là vị trí của văn bản trong không gian
  • Từ tương tự nằm gần nhau hơn
  • Từ không tương tự nằm xa nhau hơn

Văn bản được biểu diễn bằng số; văn bản càng giống nhau thì càng gần nhau.

Nhập môn Embeddings với OpenAI API

Vì sao embeddings hữu ích?

  • Embeddings cho phép nắm bắt nghĩa ngữ nghĩa
  • Nghĩa ngữ nghĩa: ngữ cảnh và ý định đằng sau văn bản

 

  • Ví dụ:
    • "Đường nào đến siêu thị?"
    • "Cho tôi xin chỉ đường đến cửa hàng?"

Văn bản được biểu diễn bằng số; văn bản càng giống nhau thì càng gần nhau.

Nhập môn Embeddings với OpenAI API

Công cụ tìm kiếm ngữ nghĩa

 

  • Công cụ tìm kiếm truyền thống
    • Dùng khớp mẫu theo từ khóa
    • Có thể bỏ lỡ ý định thực sự
    • Bỏ sót biến thể của từ

 

Một công cụ tìm kiếm truyền thống hiển thị kết quả không liên quan.

Nhập môn Embeddings với OpenAI API

Công cụ tìm kiếm ngữ nghĩa

  • Dùng embeddings để hiểu ý định và ngữ cảnh

Văn bản "comfortable running shoes" được embedding.

Nhập môn Embeddings với OpenAI API

Công cụ tìm kiếm ngữ nghĩa

  • Dùng embeddings để hiểu ý định và ngữ cảnh

Văn bản đã embedding hiển thị trong không gian đa chiều.

Nhập môn Embeddings với OpenAI API

Hệ thống gợi ý

 

  • Ví dụ: Gợi ý tin tuyển dụng
    • Gợi ý dựa trên mô tả đã xem
    • Giảm ảnh hưởng khác biệt tiêu đề công việc

Gợi ý việc làm được hiển thị dưới dạng embeddings.

Nhập môn Embeddings với OpenAI API

Phân loại

 

Nhiệm vụ phân loại:

  • Phân loại cảm xúc
  • Gom cụm quan sát
  • Phân loại danh mục

 

Ví dụ:

  • Phân loại tiêu đề tin tức

 

Một tiêu đề tin tức chưa biết được hiển thị dưới dạng embeddings để phân loại.

Nhập môn Embeddings với OpenAI API

Tạo yêu cầu Embeddings

  • Điểm cuối embeddings
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
Nhập môn Embeddings với OpenAI API

Phản hồi 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
  }
}
Nhập môn Embeddings với OpenAI API

Trích xuất embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Nhập môn Embeddings với OpenAI API

Ayo berlatih!

Nhập môn Embeddings với OpenAI API

Preparing Video For Download...