1. การปรับแต่ง (Fine-tuning)

1.1 นิยามและข้อดีของการปรับแต่งโมเดล

การปรับแต่ง (Fine-tuning) เป็นแนวคิดในการเรียนรู้ลึก (deep learning) ซึ่งหมายถึงกระบวนการที่ดำเนินการฝึกฝนโมเดลที่ได้รับการฝึกในขั้นต้นเพื่อทำการปรับเปลี่ยนให้เหมาะสมกับงานหรือชุดข้อมูลเฉพาะ ๆ โมเดลที่ได้รับการฝึกก่อนหน้านี้ได้รับการฝึกด้วยข้อมูลจำนวนมากและได้เรียนรู้ลักษณะเฉพาะ ๆ ผ่านการปรับแต่ง ผลลัพธ์ของโมเดลสามารถถูกปรับปรุงได้อีกเพิ่มเติมขึ้นโดยใช้พื้นฐานนี้

ข้อดีของการปรับแต่งเมื่อเปรียบเทียบกับการฝึกโมเดลตั้งแต่ต้นที่สำคัญประกอบด้วย:

  1. ประหยัดเวลาและทรัพยากร: การปรับแต่งช่วยลดเวลาและทรัพยากรทางคอมพิวเตอร์ที่ต้องใช้ในการฝึกโมเดลตั้งแต่ต้น โดยเฉพาะอย่างยิ่งสำหรับโมเดลขนาดใหญ่และงานที่ซับซ้อน
  2. ประสิทธิภาพของข้อมูล: การปรับแต่งมักต้องการข้อมูลที่ได้รับคำอธิบายเพียงน้อยเพื่อให้ได้ผลลัพธ์ที่ดี โดยเฉพาะอย่างยิ่งในงานที่ข้อมูลน้อย
  3. การเรียนรู้โอน: โมเดลที่ได้รับการฝึกตั้งแต่ต้นได้เรียนรู้จากข้อมูลที่หลากหลาย และการปรับแต่งสามารถโอนความรู้นี้ไปสู่งานเฉพาะต่าง ๆ ทำให้สามารถปรับปรุงความสามารถในการโอนความรู้ได้
  4. ปรับปรุงประสิทธิภาพ: การปรับแต่งช่วยให้โมเดลปรับตัวได้ดีขึ้นตามความต้องการงานเฉพาะ ๆ ช่วยในการปรับปรุงคุณภาพของโมเดลและลดอัตราความผิดพลาดลง

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

1.2 กรณีการปรับใช้ในทางปฏิบัติ

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

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

ผ่านกรณีการใช้งานเหล่านี้ เราสามารถเห็นได้ว่าการปรับแต่งช่วยให้โมเดลปรับตัวได้ดีในสถานการณ์ที่เฉพาะ ๆ ให้บริการที่แม่นยำและเป็นพิเลิกขนาด

2. เมื่อใช้การปรับแต่งเมื่อไหร่

2.1 การวิเคราะห์ความต้องการของงาน

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

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

ขั้นตอนในการกำหนดความต้องการของงานส่วนมากประกอบด้วย:

  1. พยายาม "สร้างข้อความโดยการพัฒนาระบบ" ปรับเปลี่ยนวิธีในการมองข้อมูลที่ได้รับเพื่อทำให้ได้ผลลัพธ์ที่ดีที่สุด
  2. วิเคราะห์ความมีประสิทธิภาพของโมเดลที่มีอยู่เพื่อกำหนดว่าจำเป็นต้องปรับแต่งหรือไม่
  3. หากต้องการตัดสินใจที่จะทำการปรับแต่ง จัดเตรียมชุดข้อมูลที่เกี่ยวข้องเพื่อให้สามารถฝึกได้ต่อไป

2.2 การเปรียบเทียบระหว่างการปรับแต่งและการพัฒนาระบบ

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

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

3. โมเดลที่สนับสนุนการปรับแต่ง (Fine-tuning)

OpenAI มีช่วงของโมเดลที่สนับสนุนการปรับแต่ง ซึ่งรวมถึง gpt-3.5-turbo-1106 (แนะนำ), gpt-3.5-turbo-0613, babbage-002, davinci-002, และ gpt-4-0613 ที่สามารถถูกสร้างขึ้นให้มีการปรับแต่งเพิ่มเติมเพื่อให้เหมาะสำหรับความต้องการของผู้ใช้แต่ละราย

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

สำหรับผู้ใช้ทั่วไป, gpt-3.5-turbo เป็นตัวเลือกที่นิยมเนื่องจากผลลัพธ์ที่น่าพอใจและความสะดวกในการใช้งาน โดยที่ OpenAI อาจทำการอัปเดตและขยายช่วงของโมเดลที่สนับสนุนการปรับแต่งต่อไปเพื่อเสนอและรองรับความต้องการของผู้ใช้เฉพาะเรื่องเป็นที่สมาชิก

4. เตรียมข้อมูลสำหรับการฝึกฝน

4.1 รูปแบบของชุดข้อมูล

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

รูปแบบของชุดข้อมูลสำหรับ โมเดลการสนทนา นี้มักถูกใช้งานสำหรับ gpt-3.5-turbo โมเดล ทุกตัวอย่างจะถูกจัดเรียงในรูปแบบของการสนทนา ที่แต่ละข้อมูลจะมีบทบาท, เนื้อหา และชื่อเพิ่มเติมได้ โครงสร้างข้อมูลตัวอย่างเช่นนี้

{
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "How's the weather today?"},
    {"role": "assistant", "content": "The weather today is clear and suitable for going out."}
  ]
}

แต่ละกรณีจะต้องถูกจัดรูปแบบเป็นไฟล์ที่มีรูปแบบ JSON Lines (.jsonl) โดยที่แต่ละบรรทัดจะแทนตัวอย่างการฝึกฝน ตัวอย่างเช่น

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?"}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters."}]}

ข้อมูลของคู่คำถาม-คำตอบง่ายๆ นั้นเหมาะสำหรับโมเดลเช่น babbage-002 และ davinci-002 รูปแบบเรียบง่าย ประกอบด้วยคู่ของ prompt และ completion ตัวอย่างเช่น

{
  "prompt": "How's the weather today?",
  "completion": "The weather today is clear and suitable for going out."
}

เช่นกัน, แต่ละตัวอย่างการฝึกฝนจะเรียงลำดับบนหนึ่งบรรทัด ตัวอย่างเช่น

{"prompt": "<ข้อความตั้งต้น>", "completion": "<ข้อความที่เกิดขึ้นที่ดีที่สุด>"}
{"prompt": "<ข้อความตั้งต้น>", "completion": "<ข้อความที่เกิดขึ้นที่ดีที่สุด>"}
{"prompt": "<ข้อความตั้งต้น>", "completion": "<ข้อความที่เกิดขึ้นที่ดีที่สุด>"}

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

4.2 การแบ่งข้อมูลสำหรับการฝึกฝนและทดสอบ

หลังจากที่เตรียมชุดข้อมูลสำหรับการปรับแต่งแล้ว สิ่งสำคัญที่สุดคือการแบ่งชุดข้อมูลเป็นส่วนของการฝึกฝนและการทดสอบอย่างเหมาะสม โดยทั่วไปแล้ว, ชุดข้อมูลจะถูกแบ่งเป็นสองส่วนโดยการใช้ส่วนมากไปสำหรับการฝึกฝนโมเดล (โดยทั่วไปจะใช้ 70% ถึง 90%) และส่วนที่เหลือจะไว้สำหรับการทดสอบ (10% ถึง 30%) การแบ่งนี้จะช่วยในการตรวจสอบประสิทธิภาพของโมเดลเมื่อมีข้อมูลที่ไม่เคยเห็นมาก่อน และประเมินประสิทธิภาพของมันอย่างเคร่งครัด

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

5.1. เลือกโมเดล Pre-trained ที่เหมาะสม

ก่อนที่จะเริ่มกระบวนการ fine-tuning การเลือกโมเดล pre-trained ที่ถูกต้องมีความสำคัญอย่างยิ่งเพื่อให้แน่ใจว่างานทำงานจะประสบความสำเร็จ นี่คือสิ่งที่ควรพิจารณาในการเลือกโมเดล pre-trained ที่เหมาะสม:

  1. ประเภทของงาน: โดยขึ้นอยู่กับลักษณะของงานของคุณ เช่น เข้าใจภาษา สร้างผลลัพธ์ หรือตอบคำถามที่เฉพาะสาขา ให้เลือกโมเดลที่เหมาะสมที่สุดสำหรับงานเหล่านั้น ตัวอย่างเช่น โมเดล gpt-3.5-turbo เหมาะสำหรับสถานการณ์ต่าง ๆ เนื่องจากสมดุลการทำงานและความง่ายต่อการใช้งาน

  2. ปริมาณข้อมูล: หากคุณมีข้อมูลการฝึกอบรมที่น้อยมาก คุณอาจต้องการเลือกโมเดลขนาดเล็ก เช่น babbage-002 เนื่องจากมีความต้องการข้อมูลสำหรับการปรับพารามิเตอร์น้อยกว่า

  3. ความต้องการในด้านประสิทธิภาพ: สำหรับสถานการณ์ที่ต้องการการประมวลผลงานที่ซับซ้อนและละเอียดมาก ควรพิจารณาเลือกโมเดลที่มีประสิทธิภาพสูงเช่น davinci-002

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

  5. คุณลักษณะการทดลอง: โมเดล gpt-4-0613 อยู่ในขั้นทดลองใหม่ขณะนี้ หากคุณต้องการลองเทคโนโลยีล่าสุด ๆ และมีความทนทานกับอินเตอร์เฟซการทดลอง ควรพิจารณาในการสมัครเข้าถึง

5.2. กระบวนการ Fine-tuning

กระบวนการ fine-tuning ประกอบด้วยขั้นตอนหลาย ๆ ขั้นเช่นเตรียมข้อมูล อัปโหลดไฟล์ สร้างงานการฝึก และติดตามความคืบหน้า นี่คือรายละเอียดของแต่ละขั้นตอน:

5.2.1. เตรียมข้อมูล

เตรียมข้อมูลการฝึกและทดสอบอย่างเพียงพอตามงานที่เป้าหมาย และให้แน่ใจว่ารูปแบบข้อมูลตรงตามกำหนด เช่น รูปแบบ JSON Lines (.jsonl) โปรดอ้างอิงข้อมูลเพิ่มเติมในบทก่อนหน้า

5.2.2. อัปโหลดข้อมูล

อัปโหลดไฟล์ข้อมูลการฝึกผ่าน Files API ของ OpenAI โดยระบุว่าจุดประสงค์ของไฟล์เป็น fine-tune เช่นดังต่อไปนี้:

   curl https://api.openai.com/v1/files \
     -H "Authorization: Bearer $OPENAI_API_KEY" \
     -F purpose="fine-tune" \
     -F file="@mydata.jsonl"

หลังจากการอัปโหลดเรียบร้อย คุณจะได้รับ ID ของไฟล์ที่ใช้ในงานการฝึกที่เหลือต่อไป

5.2.3. สร้างงานการฝึก

เริ่มงาน fine-tuning โดยใช้ OpenAI's SDK หรือเครื่องมือ CLI โดยระบุพารามิเตอร์และโมเดลที่ต้องการ เช่น:

   from openai import OpenAI
   client = OpenAI()

   client.fine_tuning.jobs.create(
     training_file="file-abc123", 
     model="gpt-3.5-turbo"
   )

พารามิเตอร์ training_file ระบุ ID ของไฟล์ข้อมูลการฝึก และพารามิเตอร์ model ระบุโมเดลที่จะใช้ในการฝึก

5.2.4. ติดตามความคืบหน้าของงานการฝึก

ต่อไปนี้เป็นตัวอย่างของการคิวรี่ผลการฝึกโดยใช้ Python:

from openai import OpenAI
client = OpenAI()

client.fine_tuning.jobs.list(limit=10)

client.fine_tuning.jobs.retrieve("ftjob-abc123")

client.fine_tuning.jobs.cancel("ftjob-abc123")

client.fine_tuning.jobs.list_events(fine_tuning_job_id="ftjob-abc123", limit=10)

client.models.delete("ft:gpt-3.5-turbo:acemeco:suffix:abc123")

6. การปรับค่าพารามิเตอร์ขณะกระบวนการ Fine-tuning

6.1 การเข้าใจและการปรับ Hyperparameters

Hyperparameters คือพารามิเตอร์ที่ตั้งค่าก่อนการฝึกโมเดล และมักจะไม่สามารถเรียนรู้ได้จากข้อมูล นี่คือ hyperparameters ที่สำคัญบางอย่าง:

  • จำนวน Epochs (n_epochs): ซึ่งกำหนดว่าโมเดลจะทำการวนซ้ำผ่านชุดข้อมูลทั้งหมดกี่ครั้ง การใช้ epochs มากเกินไปอาจทำให้โมเดลมีโอเวอร์ฟิตติ้ง ในขณะที่ใช้น้อยเกินไปอาจทำให้โมเดลเรียนรู้ไม่เพียงพอ

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

  • ขนาด Batch (batch_size): ขนาด batch กำหนดว่าจะพิจารณาตัวอย่างการฝึกเท่าไหร่ในแต่ละครั้ง ขนาด batch ที่ใหญ่ช่วยให้กระบวนการฝึกมีความมั่นคง แต่สามารถทำให้มีแรงกดดันที่ใช้หน่วยความจำ

การปรับ hyperparameters โดยทั่วไปจะต้องทำการทดลองซ้ำ ๆ เพื่อค้นหาผสานการ์พารามิเตอร์ที่เหมาะสมที่สุด

ตัวอย่างการเริ่มต้นงาน fine-tuning ด้วย hyperparameters:

from openai import OpenAI
client = OpenAI()

client.fine_tuning.jobs.create(
  training_file="file-abc123",
  model="gpt-3.5-turbo",
  hyperparameters={
    "n_epochs":2
  }
)

พารามิเตอร์ hyperparameters ถูกใช้เพื่อตั้งค่า hyperparameters

6.2 การวนซ้ำและวิธีการปรับปรุงโมเดล

หลังจาก fine-tuning เบื้องต้น อาจจำเป็นต้องวนซ้ำเพื่อปรับปรุงประสิทธิภาพของโมเดลเพิ่มเติม นี่คือวิธีการวนซ้ำบางวิธี:

  • เพิ่มข้อมูล: หากโมเดลทำงานไม่ดีกับประเภทข้อมูลบางประเภท ลองเพิ่มตัวอย่างข้อมูลบางประเภทเพิ่มเติม

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

  • สมดุลข้อมูล: ตรวจสอบว่าข้อมูลการฝึกมีความหลากหลายและสมดุลในหมวดหมู่และลักษณะต่าง ๆ

  • ปรับ Hyperparameters: เช่นเดียวกับที่กล่าวไว้ก่อนหน้านี้ การปรับจำนวน epochs, อัตราการเรียน และขนาด batch อาจมีผลมากต่อประสิทธิภาพของโมเดล

ผ่านวิธีการเหล่านี้ คุณสามารถปรับปรุงโมเดลที่ fine-tuned ของคุณเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

7. การประเมินและการใช้งานโมเดลที่ fine-tuned

7.1 การประเมินโมเดลที่ fine-tuned

เมื่อเราทำการ fine-tuning ของโมเดลเสร็จสิ้นแล้ว การประเมินผลการทำงานของโมเดลที่ fine-tuned เป็นสิ่งสำคัญ นี่คือวิธีการประเมินมาตรฐานบางวิธี:

  1. เปรียบเทียบตัวอย่าง: ใช้ตัวอย่างทดสอบที่เตรียมไว้เพื่อเรียกโมเดลเบสและโมเดลที่ fine-tuned โดยแยกกัน จากนั้นเปรียบเทียบผลลัพธ์เพื่อประเมินประสิทธิภาพของโมเดลที่ fine-tuned

  2. ค่าวัดทางสถิติ: ติดตามค่าวัดเช่น ค่าสูญเสียและความแม่นยำระหว่างกระบวนการ fine-tuning ค่าสูญเสียควรลดลงขณะฝึก ในขณะที่ความแม่นยำควรเพิ่มขึ้น

  3. การทดสอบ A/B: ออกแบบการทดลอง แบ่งการถ่ายทอดการเคลื่อนไหว และเรียกวิ่งทั้งโมเดลเบสและโมเดลที่ fine-tuned พร้อมกันเพื่อสังเกตผลการทำงานในสภาพแวดล้อมจริง

  4. ข้อเสนอแนะจากผู้ใช้: รวบรวมคำตอบจากผู้ใช้ที่ใช้โมเดลโดยเฉพาะสำหรับงานประมวลผลภาษาธรรมชาติ ที่ความพึงพอใจของผู้ใช้เป็นตัววัดสำคัญของประสิทธิภาพของโมเดล

7.2 วิธีการใช้งานโมเดลที่ fine-tuned

การใช้งานโมเดลที่ fine-tuned มีความง่ายมาก คุณเพียงแค่ส่งชื่อของโมเดลที่ fine-tuned ในการเรียกใช้ API เท่านั้น นี่คือตัวอย่างโค้ดในการใช้งานโมเดลที่ fine-tuned:

ตัวอย่างภาษา Python

from openai import OpenAI

client = OpenAI(api_key='Your API Key')

response = client.chat.completions.create(
  model="ชื่อโมเดล",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ]
)
print(response.choices[0].message)

ที่นี่ เปลี่ยน "ชื่อโมเดล" เป็นชื่อเฉพาะของโมเดลที่ fine-tuned ของคุณ เช่น "ft:ชื่อโมเดล:องค์กรของคุณ:ชื่อการปรับปรุงโมเดล:รหัสของคุณ"

บทที่ 7: แนวทางที่ดีที่สุดสำหรับการปรับปรุงคุณภาพ

ในขั้นตอนของการปรับปรุงคุณภาพ เราสามารถทำตามแนวทางที่ดีที่สุดเพื่อปรับปรุงประสิทธิภาพของโมเดลได้ดังนี้:

  1. คุณภาพของข้อมูล: ให้แน่ใจว่าข้อมูลการฝึกอย่างสูงและหลากหลายเพื่อหลีกเลี่ยงประสิทธิภาพของโมเดลที่ไม่ดีเนื่องจากข้อมูลที่ไม่แม่นเนื่องหรือข้อมูลเดียว

  2. การกระจายของข้อมูล: ข้อมูลการฝึกควรครอบคลุมสถานการณ์ของข้อมูลที่เป็นไปได้เพื่อให้แน่ใจว่าโมเดลทำงานอย่างมีประสิทธิภาพในสถานการณ์จริง

  3. การจัดการรายการส่วน: เพิ่มข้อมูลการฝึกเป็นบางขั้นและดูผลการฝึกเป็นระยะหลังจากการเพิ่มข้อมูลอย่างมากในคราวเดียว

  4. การปรับแต่งพารามิเตอร์: ปรับเปลี่ยนพารามิเตอร์เช่น อัตราการเรียนรู้ ขนาดของชุดข้อมูล และจำนวนการฝึกโมเดลโดยพิจารณาจากประสิทธิภาพของโมเดล

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

ปัญหาที่พบบ่อยและวิธีการแก้ไข:

  • คำถาม: ทำอย่างไรถ้าโมเดลที่ปรับปรุงคุณภาพไม่ได้ผลตามที่คาดหวัง?

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

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

    • คำตอบ: ประมาณการจำนวนโทเคนล่วงหน้าและประเมินต้นทุนของโมเดลที่แตกต่างกัน

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