AI Prompt Engineering · บทเรียน

การผสานข้อความและรูปภาพ

พรอมต์หลายสื่อแบบรวมเป็นหนึ่ง

บทเรียน 1 จาก 413 ขั้นตอน

การผสานข้อความและรูปภาพ เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน

คำสั่งหลายรูปแบบแบบรวมเป็นหนึ่ง

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

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

ลำดับการสลับแทรกและการยึดโยง

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

สำหรับคำสั่งที่มีหลายภาพ ให้กำกับแต่ละภาพไว้ในบรรทัดเดียวกัน เพื่อให้ข้อความภายหลังอ้างอิงได้อย่างไม่กำกวม ([Image 1], [Image 2])

messages = [
  {'role': 'user', 'content': [
    {'type': 'text', 'text': 'You will see two product photos.'},
    {'type': 'text', 'text': 'Image 1:'},
    {'type': 'image', 'source': img_a},
    {'type': 'text', 'text': 'Image 2:'},
    {'type': 'image', 'source': img_b},
    {'type': 'text', 'text': 'Which has better lighting? Cite the image label.'}
  ]}
]

การกำหนดกรอบงานก่อนการเข้ารหัส

ตัวเข้ารหัสภาพสูญเสียข้อมูล: รายละเอียดที่ไม่เกี่ยวข้องกับงานโดยนัยอาจถูกตัดทิ้งระหว่างการรวมข้อมูล หากระบุงาน ก่อน ภาพ จะทำให้โมเดลมุ่งความสนใจไปยังบริเวณที่สำคัญได้มากขึ้น

  • คำขอให้บรรยายภาพทั่วไปให้คุณลักษณะทั่วไป
  • คำถามที่เฉพาะเจาะจง ('นับตัวต้านทานบนแผงวงจร') จะมุ่งงบประมาณการแทนข้อมูลไปยังบริเวณย่อยที่เกี่ยวข้อง

ระบุความเฉพาะเจาะจงไว้ตั้งแต่ต้นเมื่อจำเป็นต้องใช้รายละเอียดปลีกย่อย

งบประมาณความละเอียดและการแบ่งภาพเป็นช่อง

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

  • ใช้ crop บริเวณที่สนใจก่อนส่ง — อย่าพึ่งพาให้โมเดลซูมเอง
  • สำหรับเอกสารที่มีข้อมูลหนาแน่น ให้ส่งภาพที่ crop เฉพาะหน้า แทนการส่งภาพทั้งหน้าภาพเดียว
  • ควรทราบจำนวนช่องสูงสุดของผู้ให้บริการ เพราะเมื่อเกินจำนวนดังกล่าว ข้อความขนาดเล็กจะอ่านไม่ออก
def estimate_image_tokens(w, h, tile=512, per_tile=256):
    import math
    tiles = math.ceil(w / tile) * math.ceil(h / tile)
    return tiles * per_tile + per_tile  # + thumbnail

ข้อความในฐานะโครงสร้างข้อมูลสำหรับภาพ

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

ขอผลลัพธ์เป็น JSON โดยใช้เอนทิตีที่คาดว่าจะพบเป็นคีย์ และกำชับให้โมเดลส่ง null สำหรับฟิลด์ที่มองไม่เห็น — วิธีนี้ช่วยลดรายละเอียดที่โมเดลสร้างขึ้นเอง

instruction = (
  'Extract from the receipt image. Return JSON: '
  '{"merchant": str|null, "total": number|null, '
  '"date": str|null, "line_items": [{"name": str, "price": number}]}. '
  'Use null when a field is not legible. Do not invent values.'
)

การขจัดความกำกวมด้วยคำอ้างชี้เฉพาะ

คำอ้างชี้เฉพาะ ('นี้', 'อันที่อยู่ทางซ้าย', 'กรอบที่เน้นไว้') เชื่อมข้อความเข้ากับบริเวณต่าง ๆ ในภาพ เมื่อสามารถใส่คำกำกับล่วงหน้าให้ภาพได้ (วาดกรอบ เพิ่มลูกศร) การอ้างอิงในข้อความจะมีความทนทานกว่าการใช้ภาษาบอกตำแหน่งเพียงอย่างเดียวมาก

  • คำบอกตำแหน่ง ('บนขวา') มีโอกาสผิดพลาดได้ง่ายเมื่อภาพถูกหมุนหรือ crop
  • เครื่องหมายตัวเลขที่ซ้อนทับ พร้อมกับ 'วัตถุ #3' ไม่กำกวม
  • การประมวลผลภาพล่วงหน้าเพื่อเพิ่มเครื่องหมายเป็นแนวทางวิศวกรรมคำสั่งที่เหมาะสม

การเรียนรู้จากตัวอย่างจำนวนน้อยด้วยหลายรูปแบบข้อมูล

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

ให้ภาพตัวอย่างเป็นตัวแทนของการกระจายจริง — ตัวอย่างจากคนละโดเมนจะสอนให้โมเดลเลือกคุณลักษณะผิด

shots = [
  ('image', chart_a), ('text', 'Trend: upward. Peak: Q3. Anomaly: none.'),
  ('image', chart_b), ('text', 'Trend: flat. Peak: Q1. Anomaly: Q4 dip.'),
  ('image', target_chart), ('text', 'Trend:')  # model completes
]

การเชื่อมโยงข้ออ้างกับพิกเซล

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

  • 'สำหรับแต่ละค่า ให้ยกข้อความป้ายกำกับที่คุณอ่านได้มาแบบตรงตัว'
  • 'ให้กรอบล้อมโดยประมาณที่ทำให้เป็นมาตรฐาน [x0,y0,x1,y1] ต่อฟิลด์'

การยึดโยงหลักฐานเปลี่ยนคำตอบที่ทึบแสงให้เป็นคำตอบที่ตรวจสอบย้อนกลับได้

รูปแบบความล้มเหลวที่ต้องป้องกัน

โมเดลหลายสื่อมักผิดพลาดในรูปแบบเฉพาะ:

  • การคลาดเคลื่อนของ OCR กับแบบอักษรขนาดเล็กหรือมีรูปแบบพิเศษ — ตัวเลขอย่าง 1/7 และ 0/O ทำให้สับสน
  • การนับพังทลายเมื่อมีวัตถุคล้ายกันมากกว่า ~6 ชิ้น
  • อคติจากคำบรรยาย: บรรยายฉากทั่วไปแทนที่จะบรรยายฉากที่มีอยู่จริง
  • การครอบงำจากช่องข้อความ: ข้ออ้างในข้อความที่ผิดแต่แสดงอย่างมั่นใจอาจกดทับหลักฐานภาพที่ถูกต้อง

ลดปัญหาโดยขอให้โมเดลอนุมานจากภาพก่อน แล้วจึงเทียบกับข้อกล่าวอ้างในข้อความ

คำสั่งสำหรับการจัดการข้อขัดแย้ง

เมื่อบริบทข้อความกับภาพขัดแย้งกัน คุณต้องกำหนดลำดับความสำคัญอย่างชัดเจน — โมเดลไม่มีนโยบายเริ่มต้นที่ไว้ใจได้ ให้ระบุไปเลยว่า: 'หากภาพขัดแย้งกับข้อมูลเมตาที่ให้มา ให้เชื่อภาพและแจ้งความไม่ตรงกัน'

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

policy = (
  'You are given metadata AND a photo. '
  'When they disagree, prefer the photo as ground truth. '
  'Emit {"value": ..., "conflict": bool, "note": str}.'
)

การออกแบบกระบวนการผสานข้อมูล

การเขียนคำสั่งหลายสื่อสำหรับการใช้งานจริงเป็นกระบวนการ ไม่ใช่การเรียกใช้เพียงครั้งเดียว:

  • ประมวลผลล่วงหน้า: crop ใส่คำกำกับ และลดขนาดให้พอดีกับงบประมาณ
  • ผสาน: สอดประสานข้อมูลเข้ากับคำสั่งที่เริ่มจากงานและโครงสร้างผลลัพธ์
  • ยึดโยงหลักฐาน: กำหนดให้มีหลักฐานต่อข้ออ้างแต่ละข้อ
  • จัดการข้อขัดแย้ง: ระบุลำดับความสำคัญระหว่างรูปแบบข้อมูล
  • ตรวจสอบความถูกต้อง: แยกวิเคราะห์ JSON ตรวจค่า null และตรวจเครื่องหมายข้อขัดแย้ง

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

คุณต้องดึงข้อความตัวพิมพ์ขนาดเล็กจากภาพสแกนสัญญาความละเอียดสูง และต้องการตัวเลขที่เชื่อถือได้

ทบทวน: การผสานข้อความกับภาพ

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

เริ่มต้นได้ฟรี

เรียนรู้ AI Prompt Engineering ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
53
บทเรียน
199

คำถามที่พบบ่อย

บทเรียน “การผสานข้อความและรูปภาพ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การผสานข้อความและรูปภาพ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การผสานข้อความและรูปภาพ”

พรอมต์หลายสื่อแบบรวมเป็นหนึ่ง คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Prompt Engineering หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Prompt Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การผสานข้อความและรูปภาพ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Prompt Engineering นี้ได้ไหม

ได้ บทเรียน AI Prompt Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การผสานข้อความและรูปภาพ
  2. การยึดโยงข้ามรูปแบบสื่อ
  3. เสียง ข้อความ และภาพร่วมกัน
  4. การควบคุมผลลัพธ์หลายสื่อ
← กลับไปที่ AI Prompt Engineering