1. โมเดล GPT-4 Vision คืออะไร

โมเดล GPT-4 Vision (GPT-4V) คือโมเดลปัญญาประดิษฐ์แบบมัลติโมดัลที่ถูกนำเสนอโดย OpenAI ซึ่งผสานความสามารถในการเข้าใจภาพเข้ากับ GPT-4 โดยที่ GPT-4V สามารถรับและวิเคราะห์เนื้อหาของภาพได้ โดยสามารถให้คำบรรยาย ตอบคำถาม และมีปฏิสัมพันธ์ที่เกี่ยวข้องกับภาพ

การประยุกต์ใช้ตัวอย่าง

  • การระบุและจำแนกสินค้า: แพลตฟอร์มอีคอมเมิร์ซสามารถใช้ GPT-4V เพื่อระบุและให้คำอธิบายสำหรับภาพสินค้า เพื่อช่วยปรับปรุงระบบค้นหาและแนะนำ
  • ช่วยตัดสินใจทางการแพทย์: ขณะที่ GPT-4V ไม่เหมาะสำหรับการวินิจฉัยภาพการแพทย์อย่างเชี่ยวชาญโดยตรง มันสามารถช่วยเจ้าหน้าที่ทางการแพทย์ในการเข้าใจภาพในระดับเบื้องต้นและการจัดระเบียบข้อมูล
  • การศึกษาและวิจัย: ในการสอนและการวิจัยทางวิทยาศาสตร์ GPT-4V สามารถใช้เพื่อวิเคราะห์กราฟ ผลการทดลอง และการอธิบายข้อมูลภาพทางวิทยาศาสตร์โดยอัตโนมัติ
  • การติดตามและวิเคราะห์การจราจร: โดยการวิเคราะห์ภาพตรวจจับการจราจร GPT-4V สามารถช่วยในการรายงานเงื่อนไขแบบรายเวลาจริงและการระบุอุบัติเหตุทางถนน

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

ด้านล่างนี้คือตัวอย่างง่ายๆ โดยใช้คำขอ CURL เพื่อสาธิตวิธีการใช้โมเดล GPT-4 Vision ในการวิเคราะห์ภาพ:

พารามิเตอร์ของคำขอ API:

  • model: ระบุเวอร์ชันของโมเดลที่จะใช้ ในกรณีนี้คือ "gpt-4-vision-preview"
  • messages: มีการกำหนดบทบาทและเนื้อหา ซึ่งเนื้อหาสามารถรวมถึงลิงก์ข้อความและภาพ
  • max_tokens: ระบุขีดจำกัดความยาวสูงสุดสำหรับการสร้างข้อความ

ตัวอย่างคำขอ CURL:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-vision-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "มีอะไรในภาพนี้?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "ลิงก์ภาพของคุณ"
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

ด้วยคำขอข้างต้น เราได้ส่งภาพไปยังโมเดล GPT-4 Vision และถามคำถามง่ายๆ: "มีอะไรในภาพนี้?" โมเดลจะวิเคราะห์เนื้อหาของภาพและให้คำตอบโดยขึ้นอยู่กับเนื้อหาของภาพ

3. การอัปโหลดภาพโดยใช้การเข้ารหัส Base64

ในบางกรณีอาจจะต้องอัปโหลดไฟล์ภาพจากเครื่องคอมพิวเตอร์ไปยังโมเดล GPT-4 Vision ในกรณีเช่นนี้เราสามารถฝังข้อมูลภาพเข้าไปในคำขอ API โดยใช้การเข้ารหัส Base64

ตัวอย่างการเขียนโค้ดภาษา Python:

import base64
import requests

api_key = "YOUR_OPENAI_API_KEY"

def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

image_path = "path_to_your_image.jpg"

base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "มีอะไรในภาพนี้?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

ในโค้ดด้านบน เราจะทำการแปลงไฟล์ภาพจากคอมพิวเตอร์เป็นสตริงที่เข้ารหัส Base64 จากนั้นส่งสตริงนี้เป็นส่วนหนึ่งของคำขอไปยัง API ข้อมูลที่ได้จากโมเดลจะประกอบด้วยคำอธิบายของเนื้อหาของภาพ

4. การจัดการข้อมูลภาพหลายภาพ

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

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-vision-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "มีอะไรต่างกันบนรูปภาพเหล่านี้?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "URL ของรูปภาพที่หนึ่ง",
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "URL ของรูปภาพที่สอง",
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

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

5. การตั้งระดับของการวิเคราะห์ภาพ

เมื่อใช้โมเดลทางภาพ GPT-4 สำหรับการวิเคราะห์ภาพ คุณสามารถตั้งระดับการละเอียดตามความต้องการของคุณได้ โดยการปรับพารามิเตอร์ detail คุณสามารถเลือกใช้ low, high, หรือ auto ได้ นี่คือคำอธิบายและวิธีการตั้งค่าของแต่ละตัวเลือก:

  • low: เลือกระดับความละเอียดต่ำ จะปิดใช้ "โมเดลความละเอียดสูง" โมเดลนี้จะได้รับเวอร์ชั่นที่ลดขนาดของภาพที่ 512 พิกเซล x 512 พิกเซลและใช้งบประมาณ 65 token เพื่อแทนภาพ นี้เหมาะสำหรับสถานการณ์ที่ไม่จำเป็นต้องการรายละเอียดสูง ช่วยให้ได้เวลาตอบสนองที่เร็วขึ้นและใช้ token น้อยลง

  • high: ระดับความละเอียดสูง อนุญาตให้โมเดลเห็นภาพที่มีลักษณะละเอียดต่ำก่อน และจากนั้นสร้างรูปภาพที่ตัดออกละเอียดที่มีขนาด 512 พิกเซลตามขนาดของภาพเข้า ราคาค่าใช้จ่ายสำหรับการตัดละเอียดแต่ละรายละเอียดก็คือ 129 token (เช่น 65 token ต่อ crop)

  • auto: ระดับความละเอียดโดยอัตโนมัติ จะกำหนดว่าจะใช้ระดับความละเอียด low หรือ high อย่างไร ตามขนาดของภาพที่ส่งเข้าไป

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งระดับความละเอียด:

import base64
import requests

api_key = "your_OPENAI_API_KEY"

image_path = "path_to_your_image.jpg"

base64_image = base64.b64encode(open(image_path, "rb").read()).decode('utf-8')

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "มีอะไรในภาพนี้?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}",
            "detail": "high"  # ตั้งเป็นระดับความละเอียดสูง
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

6. ความเข้าใจขอบเขตของโมเดลและการจัดการภาพ

6.1 ข้อจำกัดของโมเดล

แม้ว่าฟังก์ชันที่มีประสิทธิภาพของโมเดลทางภาพ GPT-4 จะมีข้อจำกัด และการเข้าใจข้อจำกัดเหล่านี้นั้นสำคัญสำหรับการใช้ในการเข้าใจภาพ นี่คือภาพรวมของข้อจำกัดที่รู้จักบางอย่าง:

  • ภาพการแพทย์: โมเดลไม่เหมาะสำหรับการอ่านภาพทางการแพทย์เชี่ยวชาญ เช่น ภาพ CT scan และไม่ควรใช้เพื่อให้คำแนะนำทางการแพทย์

  • ข้อความภาษาอังกฤษ: โมเดลอาจทำงานไม่ดีเมื่อประมวลผลภาพที่มีข้อความที่ไม่ใช่อักษรละติน เช่น ญี่ปุ่น หรือ เกาหลี

  • การจำแนกพื้นที่ที่: ประสิทธิผลของโมเดลนี้นั้นไม่ดีในงานที่ต้องการการจำแนกพื้นที่ที่แน่นองอย่างเช่น การระบุตำแหน่งของเหล่งบนกระดานหมากรุก

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

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

6.2 การจัดการรูปภาพในเซสชัน

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

additional_payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "จากรูปนี้ คุณมีคำแนะนำ?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

new_response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=additional_payload)

print(new_response.json())

7. การคำนวณค่าใช้จ่าย

การใช้รูปภาพด้วยตัวเลือก detail: low ใช้ทรัพยากร 85 tokens คงที่ สำหรับรูปภาพที่ใช้ตัวเลือก detail: high จะถูกปรับขนาดให้พอดีกับขนาด 2048px x 2048px ก่อน และทำให้ด้านที่สั้นที่สุดของรูปภาพมีขนาด 768px จากนั้นรูปภาพจะถูกแบ่งเป็นกล่องขนาด 512px หลาย ๆ กล่อง โดยที่แต่ละกล่องใช้ทรัพยากร 170 tokens และ tokens 85 เพิ่มเข้าไปในการคำนวณทั้งหมด

ตัวอย่างเช่น หากรูปภาพมีขนาด 1024px x 1024px และเลือกตัวเลือก detail: high ค่า token จะเป็นดังนี้:

  • ก่อนอื่น ๆ เนื่องจาก 1024 น้อยกว่า 2048 จึงไม่มีการปรับขนาดเริ่มต้น
  • จากนั้น ด้านที่สั้นที่สุดคือ 1024 รูปภาพถูกปรับขนาดเป็น 768 x 768
  • ต้องใช้กล่อง 512px 4 กล่องเพื่อแทนรูปภาพ ดังนั้นค่า token สุดท้ายจะเป็น 170 * 4 + 85 = 765

สำหรับคำอธิบายเพิ่มเติมเกี่ยวกับวิธีคำนวณค่าใช้จ่าย โปรดอ้างถึงเอกสารเพื่อ GPT-4 Vision model

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

ด้านล่างนี้เป็นคำถามที่พบบ่อยและคำตอบที่ผู้ใช้อาจพบเมื่อใช้โมเดล GPT-4 Vision:

ค: ฉันสามารถปรับปรุงความสามารถในการใช้ภาพของ gpt-4 ได้หรือไม่?

ค: ณ ปัจจุบันเราไม่รองรับการปรับปรุงความสามารถในการใช้ภาพของ gpt-4

ค: ฉันสามารถใช้ gpt-4 เพื่อสร้างรูปภาพได้หรือไม่?

ค: ไม่ คุณสามารถใช้ dall-e-3 เพื่อสร้างรูปภาพและใช้ gpt-4-vision-preview เพื่อเข้าใจภาพ

ค: ประเภทของการอัปโหลดไฟล์ที่รองรับคืออะไร?

ค: ณ ปัจจุบันเรารองรับไฟล์ PNG (.png), JPEG (.jpeg และ .jpg), WEBP (.webp), และ non-animated GIF (.gif)