แชร์ผ่าน


ปรับแต่งฟังก์ชัน AI ด้วย PySpark

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

สําคัญ

  • ฟังก์ชัน AI มีไว้สําหรับใช้ใน Fabric Runtime 1.3 (Spark 3.5) และใหม่กว่า
  • ตรวจสอบข้อกําหนดเบื้องต้นใน บทความภาพรวมนี้รวมถึงการติดตั้งไลบรารี ที่จําเป็นต้องใช้ฟังก์ชัน AI ชั่วคราว
  • แม้ว่าแบบจําลองพื้นฐานสามารถจัดการได้หลายภาษา แต่ฟังก์ชัน AI ส่วนใหญ่จะถูกปรับให้เหมาะสมสําหรับใช้กับข้อความภาษาอังกฤษ

Note

  • บทความนี้ครอบคลุมถึงการปรับแต่งฟังก์ชัน AI ด้วย PySpark หากต้องการปรับแต่งฟังก์ชัน AI ด้วยแพนด้า โปรดดูบทความนี้
  • ดูฟังก์ชัน AI ทั้งหมดในบทความภาพรวมนี้

การตั้งค่าคอนฟิก

หากคุณกําลังทํางานกับฟังก์ชัน AI ใน PySpark คุณสามารถใช้คลาสเพื่อ OpenAIDefaults กําหนดค่าโมเดล AI พื้นฐานที่ใช้โดยฟังก์ชันทั้งหมดได้ การตั้งค่าที่สามารถใช้ได้ต่อการเรียกใช้ฟังก์ชันเท่านั้นจะระบุไว้ในส่วนต่อไปนี้

พารามิเตอร์ คำอธิบาย ค่าเริ่มต้น
concurrency int ที่กําหนดจํานวนแถวสูงสุดที่จะประมวลผลแบบควบคู่ไปกับคําขอแบบอะซิงโครนัสไปยังแบบจําลอง ค่าที่สูงขึ้นจะเร่งเวลาการประมวลผล (หากความจุของคุณสามารถรองรับได้) สามารถตั้งค่าได้ถึง 1,000 ต้องตั้งค่านี้ต่อการเรียกใช้ฟังก์ชัน AI แต่ละรายการ ใน Spark ค่าการทํางานพร้อมกันนี้ใช้สําหรับผู้ปฏิบัติงานแต่ละคน 50
deployment_name ค่าสตริงที่กําหนดชื่อของแบบจําลองพื้นฐาน คุณสามารถเลือกจากรุ่นที่รองรับโดย Fabric ค่านี้ยังสามารถตั้งค่าเป็นการปรับใช้แบบจําลองแบบกําหนดเองใน Azure OpenAI หรือ Azure AI Foundry ในพอร์ทัล Azure ค่านี้จะปรากฏภายใต้การปรับใช้แบบจําลอง> ในพอร์ทัล Azure AI Foundry ค่าจะปรากฏบนหน้า การปรับใช้ gpt-4.1-mini
embedding_deployment_name ค่าสตริงที่กําหนดชื่อของการปรับใช้แบบจําลองการฝังตัวที่ขับเคลื่อนฟังก์ชัน AI text-embedding-ada-002
reasoning_effort ส่วนหนึ่งของ OpenAIDefaults ใช้โดยรุ่น gpt-5 series สําหรับจํานวนโทเค็นการให้เหตุผลที่ควรใช้ สามารถตั้งค่าเป็น ไม่มี หรือค่าสตริง "น้อยที่สุด", "ต่ํา", "ปานกลาง" หรือ "สูง" ไม่มีใคร
subscription_key คีย์ API ที่ใช้สําหรับการรับรองความถูกต้องกับทรัพยากรแบบจําลองภาษาขนาดใหญ่ (LLM) ของคุณ ในพอร์ทัล Azure ค่านี้จะปรากฏในส่วน คีย์ และจุดสิ้นสุด ไม่มี
temperature ค่าตัวเลขระหว่าง 0.0 ถึง 1.0 อุณหภูมิที่สูงขึ้นจะเพิ่มการสุ่มหรือความคิดสร้างสรรค์ของเอาต์พุตของแบบจําลองต้นแบบ 0.0
top_p ส่วนหนึ่งของ OpenAIDefaults ลอยตัวระหว่าง 0 ถึง 1 ค่าที่ต่ํากว่า (เช่น 0.1) จํากัดโมเดลให้พิจารณาเฉพาะโทเค็นที่น่าจะเป็นมากที่สุด ค่าที่สูงขึ้น (เช่น 0.9) ช่วยให้ได้ผลลัพธ์ที่หลากหลายและสร้างสรรค์มากขึ้นโดยรวมโทเค็นที่หลากหลายขึ้น ไม่มีใคร
URL URL ที่กําหนดปลายทางของทรัพยากร LLM ของคุณ ในพอร์ทัล Azure ค่านี้จะปรากฏในส่วน คีย์ และจุดสิ้นสุด ตัวอย่างเช่น: https://your-openai-endpoint.openai.azure.com/ ไม่มี
verbosity ส่วนหนึ่งของ OpenAIDefaults ·ใช้โดยรุ่น gpt-5 ซีรีส์สําหรับความยาว เอาต์พุต สามารถตั้งค่าเป็น ไม่มี หรือค่าสตริง "ต่ํา", "ปานกลาง" หรือ "สูง" ไม่มีใคร

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการกําหนดค่า concurrency สําหรับการเรียกฟังก์ชันแต่ละรายการ

df = spark.createDataFrame([
        ("There are an error here.",),
        ("She and me go weigh back. We used to hang out every weeks.",),
        ("The big picture are right, but you're details is all wrong.",),
    ], ["text"])

results = df.ai.fix_grammar(input_col="text", output_col="corrections", concurrency=200)
display(results)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการกําหนดค่า gpt-5 และแบบจําลองการให้เหตุผลอื่นๆ สําหรับฟังก์ชันทั้งหมด

from synapse.ml.services.openai import OpenAIDefaults
default_conf = OpenAIDefaults()

default_conf.set_deployment_name("gpt-5")
default_conf.set_temperature(1)  # gpt-5 only accepts default value of temperature
default_conf.set_top_p(1)  # gpt-5 only accepts default value of top_p
default_conf.set_verbosity("low")
default_conf.set_reasoning_effort("low")

คุณสามารถดึงข้อมูลและพิมพ์พารามิเตอร์แต่ละรายการ OpenAIDefaults ได้ด้วยตัวอย่างโค้ดต่อไปนี้:

print(default_conf.get_deployment_name())
print(default_conf.get_subscription_key())
print(default_conf.get_URL())
print(default_conf.get_temperature())

คุณยังสามารถรีเซ็ตพารามิเตอร์ได้อย่างง่ายดายตามที่คุณแก้ไข ตัวอย่างโค้ดต่อไปนี้รีเซ็ตไลบรารีฟังก์ชัน AI เพื่อให้ใช้จุดสิ้นสุด Fabric LLM ค่าเริ่มต้น:

default_conf.reset_deployment_name()
default_conf.reset_subscription_key()
default_conf.reset_URL()
default_conf.reset_temperature()

โมเดลที่กำหนดเอง

เลือกโมเดลภาษาขนาดใหญ่อื่นที่รองรับ

ตั้งค่าเป็นdeployment_nameรุ่นใดรุ่นหนึ่งที่ Fabric รองรับ

  • ทั่วโลกในออบเจ็ก OpenAIDefaults() ต์:

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_deployment_name("<model deployment name>")
    
  • แยกกันในการเรียกฟังก์ชัน AI แต่ละครั้ง:

    results = df.ai.translate(
        to_lang="spanish",
        input_col="text",
        output_col="out",
        error_col="error_col",
        deploymentName="<model deployment name>",
    )
    

เลือกรูปแบบการฝังที่รองรับอื่น

ตั้งค่าembedding_deployment_nameเป็นรุ่นใดรุ่นหนึ่งที่รองรับโดย Fabric เมื่อใช้ai.embedฟังก์ชัน or ai.similarity

  • ทั่วโลกในออบเจ็ก OpenAIDefaults() ต์:

    from synapse.ml.services.openai import OpenAIDefaults
    default_conf = OpenAIDefaults()
    default_conf.set_embedding_deployment_name("<embedding deployment name>")
    
  • แยกกันในการเรียกฟังก์ชัน AI แต่ละครั้ง:

    results = df.ai.embed(
        input_col="english",
        output_col="out",
        deploymentName="<embedding deployment name>",
    )
    

กําหนดค่าจุดสิ้นสุดแบบจําลองแบบกําหนดเอง

ตามค่าเริ่มต้น ฟังก์ชัน AI จะใช้ API ปลายทาง Fabric LLM สําหรับการเรียกเก็บเงินแบบรวมและการตั้งค่าที่ง่ายดาย คุณอาจเลือกใช้ตําแหน่งข้อมูลแบบจําลองของคุณเองโดยการตั้งค่าไคลเอ็นต์ที่เข้ากันได้กับ Azure OpenAI หรือ AsyncOpenAI กับตําแหน่งข้อมูลและคีย์ของคุณ ตัวอย่างโค้ดต่อไปนี้ใช้ค่าตัวยึดตําแหน่งเพื่อแสดงวิธีการแทนที่ตําแหน่งข้อมูล Fabric AI ที่มีอยู่แล้วภายในด้วยการปรับใช้แบบจําลองของทรัพยากร Microsoft AI Foundry (เดิมคือ Azure OpenAI) ของคุณเอง:

from synapse.ml.services.openai import OpenAIDefaults
default_conf = OpenAIDefaults()

default_conf.set_URL("https://<ai-foundry-resource>.openai.azure.com/")
default_conf.set_subscription_key("<API_KEY>")

ตัวอย่างโค้ดต่อไปนี้ใช้ค่าตัวยึดตําแหน่งเพื่อแสดงวิธีการแทนที่ตําแหน่งข้อมูล Fabric AI ที่มีอยู่แล้วภายในด้วยทรัพยากร Microsoft AI Foundry แบบกําหนดเองเพื่อใช้แบบจําลองนอกเหนือจาก OpenAI:

สําคัญ

  • การสนับสนุนโมเดล Microsoft AI Foundry จํากัดเฉพาะโมเดลที่รองรับ Chat Completions API และยอมรับ response_format พารามิเตอร์ที่มี Schema JSON
  • ผลลัพธ์อาจแตกต่างกันไปขึ้นอยู่กับพฤติกรรมของโมเดล AI ที่เลือก โปรดสํารวจความสามารถของรุ่นอื่นๆ ด้วยความระมัดระวังที่เหมาะสม
  • ฟังก์ชัน ai.embed AI ที่ใช้การฝังตัวและ ai.similarity ไม่ได้รับการสนับสนุนเมื่อใช้ทรัพยากร AI Foundry
import synapse.ml.spark.aifunc.DataFrameExtensions
from synapse.ml.services.openai import OpenAIDefaults

default_conf = OpenAIDefaults()
default_conf.set_URL("https://<ai-foundry-resource>.services.ai.azure.com")  # Use your AI Foundry Endpoint
default_conf.set_subscription_key("<API_KEY>")
default_conf.set_deployment_name("grok-4-fast-non-reasoning")