back to top
Saturday, April 18, 2026
0

เปิดประสบการณ์ใหม่ เล่น Gemini text embedding models กับภาษาไทย

Share

เมื่อไม่นาน (MAR 07, 2025)มานี้ทาง Google ได้ประกาศ Gemini text embedding models ตัวใหม่ออกมาให้ได้ใช้งานผ่าน API (ทั้งในรูปแบบของ Gemini API และ Vertex AI) ที่มีชื่อว่า gemini-embedding-exp-03-07 (ใน Vertex AI นั้นเราสามารถเรียกใช้ด้วยชื่อ text-embedding-large-exp-03-07.) Gemini text embedding models

โมเดลที่ถูกฝึกฝนมาจาก Gemini?

ซึ่งทาง Google เองก็ได้แสดงผลการทดสอบของโมเดลตัวนี้ว่าทำได้ดีมากกว่าโมเดลรุ่นก่อนหน้านั่นคือ text-embedding-004 รวมทั้งโมเดลสำหรับทำตัวอื่นด้วย ก่อนหน้านี้เวลาจะใช้งานโมเดลเพื่อใช้ทe นั้นถ้าเป็นภาษาอังกฤษเราสามารถใช้โมเดลที่ทางกูเกิ้ลเปิดให้ใช้ได้เลยอย่างเช่น text-embedding-gecko@001, เป็นต้น แต่ถ้าหากเป็นภาษาไทยแล้ว เราจำเป็นต้องเปลี่ยนมาใช้โมเดลอีกตัวที่มีชื่อกำกับว่า multilingual เช่น textembedding-gecko-multilingual@001, text-multilingual-embedding-002  ซึ่งแน่นอนว่าโมเดลตัวนี้รองรับหลายภาษาด้วย โดยปัจจุบันเราสามารถเรียกใช้งานด้วยชื่อโมเดลดังนี้Gemini text embedding models

AI Studiogemini-embedding-exp-03-07
VertexAItext-embedding-large-exp-03-07 (experimental)

กูเกิลบอกว่าจุดเด่นคือชุดฝึกฝนข้อมูลทำให้รองรับการแปลงข้อมูลเฉพาะหัวข้อที่หลากหลายตั้งแต่ การเงิน วิทยาศาสตร์ กฎหมาย การค้นข้อมูล และอื่น ๆgemini-text-embedding-modelsGemini Embedding

ทำไมเราจึงต้องการ embeddings?

ในการพัฒนาระบบ Retrieval Augmented Generation (RAG) หรือ Recommendation System ในการแยกและจัดกลุ่มข้อความนั้นจำเป็นที่จะต้องทำให้ LLM นั้นมีความเข้าใจถึงความหมายของคำคำนั้นว่ามีความหมายอย่างไร Gemini text embedding models

การทำ embeddings มีประโยชน์ในการหาความหมายที่แท้จริงหรือไม่

โดยจะทำการแปลงข้อมูลข้อความที่เป็นคำหรือประโยคให้อยู่ในรูปแบบของตัวเลข ถ้าคำไหนมีความหมายหรือลักษณะที่ใกล้เคียงกันแล้วตำแหน่งของคำก็จะอยู่ใกล้กันด้วย การทำนั้นช่วยให้การทำงานมีต้นทุนประมวลผลที่ลดลง แต่ยังได้ประสิทธิภาพผลลัพธ์ที่สูง โดยเราสามารถนำมาใช้ประโยชน์ในงาน Content AI

  • การค้นหาในฐานข้อมูลขนาดใหญ่ โดยจะเทียบ embeddings ของคำที่เราต้องการจะค้นหากับตัวเอกสารทั้งหมดว่า
  • การพัฒนา Retrieval Augmented Generation (RAG) เพิ่มประสิทธิภาพในการค้นหาแหล่งของข้อมูลก่อนที่จะนำสิ่งที่ได้จากการค้นหาไปให้ LLM ช่วยสร้างคำตอบออกมา
  • การจัดกลุ่ม (Clustering and Categorization) ช่วยในการจัดกลุ่มคำที่มีนัยหรือความหมายใกล้เคียงกัน
  • การแยกประเภท (Classification) ช่วยในการแยกประเภทของคำหรือข้อความอย่างเช่นถ้าเราต้องการจะตรวจสอบข้อความไหนเป็นข้อความหลอกลวง เป็นต้น
  • คำใกล้เคียงกัน ช่วยในการตรวจสอบว่าคำ ข้อมูล หรือเอกสารใดที่ซ้ำกันเพื่อลดการจัดเก็บข้อมูลที่ซ้ำซ้อนออกไป

ความสามารถของ Gemini embedding model

  • รองรับอินพุตได้สูงถึง 8,000 tokens: เพิ่มความยาวของ context จากรุ่นก่อน ทำให้สามารถฝังข้อความ, โค้ด หรือข้อมูลขนาดใหญ่ได้ในครั้งเดียว
  • เวกเตอร์เอาต์พุตมีความละเอียดสูงถึง 3,000 dimension : ให้ embedding ที่มีมิติมากขึ้นเกือบ 4 เท่าเมื่อเทียบกับโมเดลก่อนหน้า
  • Matryoshka Representation Learning (MRL): เทคนิคที่ช่วยให้สามารถตัดทอนมิติของเวกเตอร์จาก 3,000 dimension เหลือน้อยลงตามความต้องการ เพื่อลดต้นทุนในการจัดเก็บ
  • รองรับหลายภาษามากขึ้น: ขยายการรองรับภาษามากกว่าเดิมเป็นกว่า 100 ภาษา
  • โมเดลรวมแบบ Unified: เป็นโมเดลที่ให้คุณภาพเหนือกว่าโมเดลแบบเฉพาะทางเดิมๆ ทั้งที่ใช้กับหลายภาษา, ภาษาอังกฤษเท่านั้น หรือโค้ดโดยเฉพาะ

ตัวอย่างการใช้งาน

ในบทความนี้จะยกตัวอย่างการใช้งานโมเดล บน VertexAI

** ณ เวลาที่เขียนบทความนี้ ตัวโมเดล ยังอยู่ในช่วงทดสอบโมเดล ดังนั้นเราจึงยังไม่สามารถใส่ข้อความหรือคำหลายๆ คำเข้าไปจำเป็นต้องใส่ได้ครั้ง 1 ข้อความต่อการเรียกใช้ เท่านั้น

  1. ติดตั้ง library และ dependencies ที่เกี่ยวข้อง
! pip3 install --upgrade google-cloud-aiplatform \
 google-genai
  1. ประกาศตัวแปรชื่อโปรเจกต์และ location ที่จะใช้
PROJECT_ID = "my-test-project" 
LOCATION = "us-central1" 

from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
  1. ทำการ export variable ในกรณีที่เราจะใช้งาน VertexAI
!export GOOGLE_CLOUD_PROJECT=$PROJECT_ID
!export GOOGLE_CLOUD_LOCATION=$LOCATION
!export GOOGLE_GENAI_USE_VERTEXAI=True
  1. Initial client
import numpy as np
from google import genai
from google.genai.types import EmbedContentConfig


client = genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION)
  1. สร้างตัวอย่างกลุ่มประโยค
sentences = [
   "วันนี้เป็นวันที่ดี ฉันมีความสุขมาก",
   "ฉันรู้สึกมีความสุขกับทุกอย่างในวันนี้",
   "ชีวิตเต็มไปด้วยเรื่องดีๆ ฉันยิ้มได้ทั้งวัน",
   "ทุกปัญหาที่เจอวันนี้ กลับทำให้ฉันยิ้มได้เสมอ",
   "หัวใจของฉันมีแต่ความสุข ไม่มีอะไรทำให้ฉันทุกข์ได้เลย",
   "วันนี้เป็นวันที่ฉันอารมณ์ดีเป็นพิเศษ",
   "ฉันรู้สึกเบิกบานใจเมื่อได้มองท้องฟ้าในวันนี้",
   "ทุกสิ่งรอบตัวดูสดใสและเต็มไปด้วยความสุข",
   "รอยยิ้มของเธอทำให้โลกของฉันดูสวยงามขึ้น",
   "วันนี้ฉันมีแต่ความสุขจนอยากแบ่งปันให้ทุกคน",
   "เขานั่งเศร้าอยู่ริมหน้าต่าง มองฝนตกเงียบๆ",
   "ความผิดหวังทำให้เขาไม่อยากพูดอะไรกับใครอีก",
   "ทุกอย่างดูหมดความหมายเมื่อความหวังได้พังลง",
   "เขารู้สึกเศร้าเหมือนหัวใจแตกเป็นเสี่ยงๆ",
   "ความรู้สึกโดดเดี่ยวกำลังกัดกินใจเขาอย่างเงียบๆ",
   "วันนี้เขารู้สึกแย่มากจนไม่อยากลุกขึ้นมาเผชิญโลก",
   "เขายืนเศร้ากลางสายฝนด้วยความรู้สึกที่ว่างเปล่า",
   "หัวใจของเขารู้สึกหนักอึ้งจากความผิดหวังที่ได้รับ",
   "น้ำตาของเธอไหลออกมาโดยไม่มีเสียงร้องไห้",
   "ความทุกข์ที่สะสมอยู่ในใจเขาเกินกว่าจะบรรยายออกมา",
   "ในห้องที่มีคนมากมาย แต่เขากลับรู้สึกเหงาที่สุด",
   "เขาเหมือนอยู่คนเดียว แม้จะมีเพื่อนล้อมรอบก็ตาม",
   "เขารู้สึกโดดเดี่ยวแม้ในฝูงชน",
   "ความเงียบในใจเขาดังกว่าเสียงผู้คนรอบข้าง",
   "เขารู้สึกเหมือนตัวเองเป็นส่วนเกินในโลกใบนี้",
   "แม้คนจะอยู่ใกล้แค่ไหน แต่ใจเขาก็ยังห่างไกลอยู่ดี",
   "เขาอยู่ท่ามกลางผู้คนแต่กลับรู้สึกเหมือนไม่มีใครเลย",
   "ความเหงากำลังค่อยๆ กัดกินใจเขาจากภายใน",
   "ในค่ำคืนที่เงียบสงัด เขารู้สึกโดดเดี่ยวที่สุด",
   "เขาพยายามจะหนีจากความเหงา แต่ยิ่งหนียิ่งเจอ",
   "ป่าเคยอุดมสมบูรณ์ แต่ตอนนี้กลับแห้งแล้งไร้ชีวิต",
   "ธรรมชาติที่เคยสวยงาม วันนี้กลับดูเศร้าหมองลงไป",
   "แม่น้ำยังคงไหลสงบ ไม่ว่ารอบข้างจะเปลี่ยนแปลงไปแค่ไหน",
   "ต้นไม้ที่เคยเขียวชอุ่มกลับโรยราในเวลาไม่นาน",
   "ความงามของธรรมชาติกำลังถูกทำลายไปทีละน้อย",
   "ภูเขายังคงนิ่งสงบ แม้จะผ่านกาลเวลามานานแค่ไหน",
   "ป่าที่เคยมีชีวิตชีวา วันนี้กลับเงียบสงัดอย่างน่ากลัว",
   "ทะเลที่เคยสดใสกลับหม่นหมองลงทุกวัน",
   "สายลมที่เคยพัดเย็นสบาย ตอนนี้กลับร้อนและแห้งแล้ง",
   "แม่น้ำสายเดิมที่ไหลเอื่อยๆ วันนี้น้ำลดลงจนแทบแห้งขอด",
   "ความเงียบดังยิ่งกว่าคำพูดที่ได้ยินชัดเจน",
   "สิ่งที่สำคัญที่สุดบางครั้งกลับมองไม่เห็นด้วยตาเปล่า",
   "ดวงดาวส่องสว่างชัดเจนเมื่อฟ้ามืดมิดที่สุด",
   "คำพูดมากมายแต่กลับไม่มีความจริงใจซ่อนอยู่เลย",
   "สิ่งที่เรามองข้ามอาจสำคัญกว่าสิ่งที่เราสนใจอยู่",
   "บางครั้งรอยยิ้มก็ซ่อนน้ำตาเอาไว้ภายในใจ",
   "คำตอบที่แท้จริงอาจไม่ได้อยู่ในคำถามที่ถูกถาม",
   "ยิ่งพูดมากเท่าไร กลับยิ่งห่างไกลจากความจริง",
   "แสงสว่างมีค่าก็ต่อเมื่ออยู่ในที่ที่มืดที่สุด",
   "คนที่พูดเสียงดังที่สุด อาจเป็นคนที่รู้เรื่องน้อยที่สุด"
]
  1. สร้างฟังก์ชันในการทำ embedding
def embed_text(text):
 result = client.models.embed_content(
       model="text-embedding-large-exp-03-07",
       contents=text,
 )
 return result.embeddings[0].values
  1. สร้าง embeddings ของแต่ละประโยค
embeddings = []
for word in sentences:
 result = embed_text(word)
 embeddings.append(result)
  1. เตรียมข้อมูลเพื่อนำไปแสดงผลใน tensorboard
from torch.utils.tensorboard import SummaryWriter

def save_tb(mat, words):
 writer = SummaryWriter()
 writer.add_embedding(mat, words)
 writer.close()

mat = np.vstack(embeddings)
save_tb(mat, sentences)
  1. เมื่อรันแล้วเราจะได้ไฟล์ออกมาจำนวน 2 ไฟล์ตามภาพ (metadata.tsv และ tensors.tsv) ซึ่งเป็นไฟล์ที่เราจะใช้

  1. ไปที่ https://projector.tensorflow.org/ และทำการ upload ไฟล์ metadata.tsv และ tensor.tsv
    Google ประกาศ Gemini text embedding models ตัวใหม่ออกมาให้ได้ใช้งานผ่าน API โมเดล เป็นโมเดลจากทาง Google โดยผลการทดสอบตัวนี้ว่าทำได้ดีมาก
  2. เมื่อคลิกที่พื้นที่ว่างของหน้าเว็บแล้ว ตัวเว็บจะโหลด embedding vector ของเราขึ้นมา
  3. ทดสอบประโยค “เขาเหมือนอยู่คนเดียว แม้จะมีเพื่อนล้อมรอบก็ตาม”


    จะเห็นได้ว่าประโยคนี้มีประโยคที่มีความหมายใกล้เคียง 3 อันดับแรก เป็น
    – เขารู้สึกโดดเดี่ยวแม้ในฝูงชน
    – เขาอยู่ท่ามกลางผู้ค้นแต่กลับรู้สึกเหมือนไม่มีใครเลย
    – ในห้องที่มีคนมากมาย แต่เขากลับรู้สึกเหงาที่สุด
    ถือว่าเป็นประโยคที่เกี่ยวกับความเหงาและความโดดเดี่ยว
  4. ทดสอบประโยค “ทุกปัญหาที่เจอวันนี้ กลับทำให้ฉันยิ้มได้เสมอ”

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

จะเห็นได้ว่าความสามารถของโมเดล นั้น รองรับความหลากหลายภาษารวมถึงภาษาไทยแล้วและยังเข้าใจความหมายของประโยคภาษาไทยได้อย่างดีอีกด้วย (ก่อนหน้านี้ก็ทำได้ดีเช่นกัน) นับว่าเป็นอีกก้าวที่ดีที่โมเดลเหล่านี้ได้รู้จักคำและความหมายของภาษาไทยมากขึ้นด้วย  Gemini text embedding models

References

– State-of-the-art text embedding via the Gemini API, https://developers.googleblog.com/en/gemini-embedding-text-model-now-available-gemini-api/

– Google เปิดตัวโมเดล AI ที่เทรนจาก Gemini, 
https://www.blognone.com/node/145156

Teerapat Khunpech
Teerapat Khunpech
Data and AI Solutions Technical Team Lead ดูแลทีมและโครงการ Data สนใจเทคโนโลโยด้าน LLMs และ Agentic AI มีประสบการณ์การจัดการ Data Pipeline Realtime, Near Realtime ข้อมูลขนาดใหญ่ให้กับองค์กรชั้นนำ

Read more

คุณน่าจะชอบบทความนี้