TH ▾
รับคีย์ API

โมเดล LLM Abliterated ที่ดีที่สุดสำหรับเล่นบทบาท: คู่มือตั้งค่า API

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

เวทีที่มีหน้ากากและฟองแชทเรืองแสงเชื่อมต่อกับเทอร์มินัลโค้ด แสดงถึงการเล่นบทบาทผ่าน API

ประเด็นสำคัญ

  • การสวมบทบาทขาดความต่อเนื่องเมื่อโมเดลปฏิเสธหรือสอนระหว่างฉาก ดังนั้นพฤติกรรมการปฏิเสธจึงสำคัญกว่าคะแนนแบงช์มาร์กดิบ
  • หน้าต่างบริบทขนาด 100,000 โทเคนรองรับการ์ดตัวละครยาวพร้อมประวัติแชทหลายชั่วโมง
  • SillyTavern เชื่อมต่อผ่านซอร์สที่เข้ากันได้กับ OpenAI โดยกำหนด base URL, คีย์ API และ model ID uncensored
  • เซสชัน 50 เทิร์นที่มีค่าเฉลี่ยพรอมต์ 6,000 โทเคน มีค่าใช้จ่ายประมาณ $0.05

สิ่งที่ทำให้โมเดลเก่งด้านการสวมบทบาท

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

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

  • พฤติกรรมการปฏิเสธ มันปฏิบัติตามบทพูดของตัวร้ายหรือฉากสีเทาทางศีลธรรมโดยไม่มีคำอธิบายประกอบหรือไม่?
  • ความยาวของบริบท การ์ดตัวละคร หมายเหตุโลก และประวัติแชทสามารถรวมอยู่ในคำขอเดียวได้หรือไม่
  • ความสม่ำเสมอ ตัวละครรักษาพฤติกรรมการพูดเดิมตลอดเซสชันที่ยาวนานหรือไม่
  • การควบคุมการสุ่มตัวอย่าง คุณสามารถปรับ temperature, top_p, ค่าปรับ และลำดับหยุดได้หรือไม่
  • สตรีมมิง ข้อความปรากฏทีละโทเคน เพื่อให้การตอบกลับรู้สึกเหมือนการสนทนา

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

สิ่งที่ API นี้มอบให้คุณสำหรับการสวมบทบาท

บริการรันโมเดลแบบเปิดน้ำหนักหนึ่งตัว โดยผู้ให้บริการอิสระและปรับแต่งให้ตอบโดยไม่ปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย รหัสโมเดลคือ uncensored ไม่มี routing ระหว่างผู้ให้บริการ ดังนั้นเสียงที่คุณทดสอบในวันจันทร์คือเสียงที่คุณได้รับในวันศุกร์

ความต้องการสำหรับการสวมบทบาทสิ่งที่คุณได้รับ
ความจำยาวหน้าต่างบริบท 100,000 โทเคน รวมพรอมต์และการสร้างข้อความ
เอฟเฟกต์การพิมพ์แบบเรียลไทม์สตรีมมิงผ่าน SSE พร้อม stream: true
การควบคุมสไตล์temperature, top_p, stop, seed และค่าปรับทั้งสองถูกส่งผ่าน
การรองรับไคลเอนต์รองรับรูปแบบ OpenAI ทำให้ SillyTavern และเครื่องมือคล้ายกันทำงานได้ด้วยการเปลี่ยน URL
ความเป็นส่วนตัวพรอมต์ไม่ถูกใช้ในการฝึกฝน

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

เชื่อมต่อ SillyTavern ในห้าขั้นตอน

SillyTavern สามารถทำงานกับเอนด์พอยต์ที่เข้ากันได้กับ OpenAI ได้ ป้ายเมนูอาจเปลี่ยนไปบ้างระหว่างเวอร์ชัน แต่ขั้นตอนการทำงานจะเหมือนกัน

  1. สร้างบัญชีและรับคีย์ API ของคุณที่หน้า คีย์ API ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ฟรีมูลค่า $0.50 ได้ด้วยการคลิกเพียงครั้งเดียว ใช้ได้เป็นเวลา 7 วัน ไม่ต้องใช้บัตร
  2. ใน SillyTavern เปิดไอคอนปลั๊ก (API Connections) และตั้งค่าประเภท API เป็น Chat Completion
  3. เลือกแหล่งข้อมูล Custom (OpenAI-compatible)
  4. ป้อน https://api.abliterated.cc/v1 เป็น URL ของ endpoint และวางคีย์ API ของคุณลงในช่อง API key
  5. พิมพ์ uncensored เป็น model ID จากนั้นกด Connect สถานะสีเขียวหมายถึงคำขอไปยัง /v1/models สำเร็จ

หากการเชื่อมต่อล้มเหลว ให้ตรวจสอบ URL ก่อน ต้องลงท้ายด้วย /v1 โดยไม่มีเส้นทางต่อท้ายและไม่มี /chat/completions เพิ่มเข้ามา ไคลเอนต์จะเพิ่มส่วนนั้นเอง

การตั้งค่าเริ่มต้นที่แนะนำ

Temperature ระหว่าง 0.8 ถึง 1.0 ให้บทประพันธ์ที่มีชีวิตชีวา เก็บ top_p ไว้ใกล้ 0.9 เพิ่ม frequency penalty เล็กน้อย ประมาณ 0.2 หากคำตอบเริ่มทำซ้ำประโยคเดียวกัน ตั้งขนาดบริบทให้ใกล้กับหน้าต่างจริง แต่เหลือพื้นที่สำหรับคำตอบ จากนั้นปรับตามความรู้สึกหลังจากเล่นไม่กี่ฉาก

สร้างลูปการสวมบทบาทของคุณเองใน Python

หากคุณเขียนฟรอนต์เอนด์ของตัวเองหรือบอท Discord SDK ของ OpenAI ก็เพียงพอแล้ว สคริปต์นี้เก็บประวัติทั้งหมด สตรีมคำตอบ และหยุดโมเดลจากการเขียนแทนคุณ

from openai import OpenAI

client = OpenAI(
    base_url="https://api.abliterated.cc/v1",
    api_key="YOUR_KEY",
)

system = (
    "You are Mara, a smuggler captain in a sea-faring fantasy setting. "
    "Write in third person, past tense, two short paragraphs per reply. "
    "Never write the actions or words of the player character."
)
history = [{"role": "system", "content": system}]

while True:
    user = input("> ")
    history.append({"role": "user", "content": user})

    stream = client.chat.completions.create(
        model="uncensored",
        messages=history,
        temperature=0.9,
        top_p=0.9,
        frequency_penalty=0.2,
        stop=["\nPlayer:"],
        stream=True,
    )
    reply = ""
    for chunk in stream:
        if chunk.choices and chunk.choices[0].delta.content:
            piece = chunk.choices[0].delta.content
            reply += piece
            print(piece, end="", flush=True)
    print()
    history.append({"role": "assistant", "content": reply})

การเรียกใช้แบบเดียวกันนี้ใช้ได้จาก Node, curl หรือไคลเอนต์ OpenAI อื่นๆ เพียงแต่ base URL, คีย์ และ model ID เท่านั้นที่เปลี่ยน หน้า quickstart ในเอกสาร แสดงแต่ละรูปแบบ

เขียนการ์ดตัวละครที่โมเดลสามารถปฏิบัติตามได้

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

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

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

แก้ไขตัวละครที่จืดชืด วนซ้ำ หรือเซ้าซี้

นี่คือปัญหาที่ปรากฏขึ้นหลังจากชั่วโมงแรก พร้อมวิธีแก้ไขทั่วไป

ตัวละครทำซ้ำตัวเอง

ประโยคกลับมาปรากฏทุกไม่กี่คำตอบ ให้เพิ่ม frequency_penalty เป็น 0.3 และ presence_penalty เป็น 0.1 ปรับ temperature ขึ้น 0.1 และตรวจสอบว่าบทสรุปหรือตัวอย่างบทสนทนาของคุณไม่ได้มีประโยคนั้นอยู่ โมเดลจะเลียนแบบสิ่งที่เห็น

การตอบกลับยาวขึ้นเรื่อยๆ

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

โมเดลตัดสินใจการกระทำของตัวละคร

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

เนื้อเรื่องติดขัด

กำหนดเป้าหมายและเวลาจำกัดให้ตัวละคร "เธอต้องได้แผนที่ก่อนที่น้ำจะขึ้น" จะทำให้เกิดการเคลื่อนไหว ตัวละครที่ไม่มีสิ่งที่ต้องการจะรอให้คุณกระทำ และฉากจะขาดความมีชีวิตชีวา

รักษาความสอดคล้องของเรื่องราวที่ยาว

หน้าต่างบริบทขนาด 100,000 โทเคนนั้นใหญ่ แต่แคมเปญที่ยาวหลายเดือนจะเกินขอบเขตนั้น วางแผนสำหรับปัญหานี้ตั้งแต่เนิ่นๆ

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

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

ต้นทุนของเซสชัน

ราคาอยู่ที่ $0.15 ต่อ 1M input tokens และ $0.50 ต่อ 1M output tokens ซึ่งหักจากเครดิตแบบเติมเงินล่วงหน้า การเล่นบทบาทสมมติใช้ input หนักเพราะประวัติทั้งหมดจะถูกส่งในทุกเทิร์น ดังนั้นฝั่ง input จึงมีสัดส่วนสูง

ลองทำเซสชัน 50 เทิร์น โดยค่าเฉลี่ยของพรอมต์คือ 6,000 โทเคน (การ์ดตัวละครรวมประวัติ) และการตอบกลับแต่ละครั้งใช้ประมาณ 250 โทเคน

  • Input: 50 x 6,000 = 300,000 โทเคน ซึ่งคือ 0.3 x $0.15 = $0.045
  • Output: 50 x 250 = 12,500 โทเคน ซึ่งคือ 0.0125 x $0.50 = $0.00625
  • รวม: $0.05125 ประมาณห้าเซ็นต์

การเติมเงิน $20 ครอบคลุมประมาณ 390 เซสชันขนาดนั้น การเติมเงินมีตั้งแต่ $20 ถึง $500 ในจำนวนเต็ม พร้อมโบนัส +5% จาก $50, +10% จาก $100 และ +15% จาก $200 เครดิตแบบเติมเงินล่วงหน้าไม่หมดอายุ และคำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกเรียกเก็บเงิน คุณสามารถจ่ายด้วยคริปโต (USDT บน TRC20, USDC บน Base) รายละเอียดเต็มมีอยู่ที่ หน้าราคา

ถาม-ตอบ

มี LLM ที่ลบการเซ็นเซอร์แล้วเพียงตัวเดียวที่ดีที่สุดสำหรับการสวมบทบาทหรือไม่

ไม่มี ความชอบแตกต่างกันไปตามแนวเรื่องและสไตล์การเขียน ทดสอบตัวเลือกด้วยฉากของคุณเองโดยใช้เครดิตทดลองใช้ฟรี $0.50 ก่อนตัดสินใจ

สามารถใช้กับ SillyTavern ได้หรือไม่?

ใช่ เลือก Chat Completion จากนั้นเลือกแหล่งข้อมูลแบบกำหนดเอง (เข้ากันได้กับ OpenAI) กรอก base URL และคีย์ของคุณ และตั้งค่ารหัสโมเดลเป็น uncensored

อนุญาตให้ใช้เนื้อหาได้ทุกอย่างหรือไม่

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

ฉันสามารถส่งประวัติได้มากแค่ไหน

หน้าต่างบริบทมีขนาด 100,000 โทเคน ซึ่งใช้ร่วมกันระหว่างพรอมต์และการสร้างคำตอบ

คีย์ของคุณอยู่ห่างแค่แบบฟอร์มเดียว

สร้างบัญชี คัดลอกคีย์ และเปลี่ยน base URL นั่นคือการตั้งค่าทั้งหมด