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

คำตอบสั้นๆ และเหตุผลที่ป้ายกำกับทำให้เข้าใจผิด
ผู้คนถาม ว่า grok ไม่เซ็นเซอร์จริงหรือไม่ เพราะโมเดลนี้ถูกทำการตลาดว่าเป็นแบบจำกัดน้อยกว่าคู่แข่งบางราย ว่าตรงกับประสบการณ์ของคุณหรือไม่ ขึ้นอยู่กับสิ่งที่ถาม ผลิตภัณฑ์ที่ใช้ และเวลาที่คุณถาม xAI เปลี่ยนโมเดล ข้อความระบบ และนโยบายตลอดเวลา ดังนั้นการอ้างถึงพฤติกรรมเฉพาะใดๆ ในที่นี้จะล้าสมัยเร็ว สำหรับกฎปัจจุบัน อ่านเอกสารและนโยบายการใช้งานของ xAI โดยตรง
สิ่งที่สามารถพูดได้อย่างมั่นใจคือโครงสร้าง โมเดลที่ให้บริการทุกตัวจากบริษัทจะอยู่ภายใต้ชุดกฎบางชุด: กฎทางกฎหมาย กฎแพลตฟอร์ม และการเลือกในการฝึก แม้โมเดลที่ขายว่ามีความยืดหยุ่นก็จะปฏิเสธคำขอบางรายการ ดังนั้นคำถามที่มีประโยชน์ไม่ใช่ว่ามันไม่มีการเซ็นเซอร์หรือไม่ แต่คือมันปฏิเสธสิ่งเฉพาะที่ผลิตภัณฑ์ของคุณต้องการหรือไม่ นั่นคือสิ่งที่คุณสามารถวัดได้ในบ่ายวันหนึ่ง
4 ชั้นที่มาของการปฏิเสธ
เมื่อแชทบอทปฏิเสธ สาเหตุอาจอยู่ในหนึ่งในสี่ตำแหน่ง การรู้ตำแหน่งนั้นช่วยให้คุณเลือกวิธีแก้ไขได้
1. การฝึกโมเดล
แชทโมเดลส่วนใหญ่ได้รับการฝึกหลังจากการฝึกเบื้องต้นเพื่อปฏิเสธคำขอบางรายการ สิ่งนี้อยู่ในน้ำหนักโมเดล คุณไม่สามารถลบมันด้วยข้อความระบบได้ แม้ว่าการใช้คำและบริบทอาจเปลี่ยนความถี่ในการกระตุ้น โมเดลแบบเปิดน้ำหนักสามารถปรับแต่งเพิ่มเติมโดยผู้ให้บริการเพื่อลดการปฏิเสธเหล่านี้ ซึ่งเป็นสิ่งที่โมเดลที่อยู่เบื้องหลัง API นี้ได้ทำ
2. ข้อความระบบและกฎผลิตภัณฑ์
แอปพลิเคชันรอบโมเดลเพิ่มคำแนะนำที่คุณไม่สามารถเห็นได้: น้ำเสียง หัวข้อที่ควรหลีกเลี่ยง รูปแบบการแสดงผล โมเดลที่ใช้ผ่านแอปพลิเคชันผู้บริโภคอาจมีพฤติกรรมแตกต่างจากโมเดลเดียวกันที่เรียกผ่าน API พร้อมข้อความระบบของคุณเอง
3. ตัวกรองอินพุตและเอาต์พุต
บริการบางแห่งรันตัวแยกประเภทแยกต่างหากบนพรอมต์ของคุณหรือบนคำตอบ และบล็อกหรือเขียนผลลัพธ์ใหม่ คุณอาจเห็นข้อผิดพลาดทั่วไปแทนที่จะเป็นประโยคปฏิเสธ
4. ข้อจำกัดทางกฎหมายและนโยบาย
ผู้ให้บริการต้องปฏิบัติตามกฎหมายในพื้นที่ที่พวกเขาดำเนินงาน เนื้อหาที่ผิดกฎหมายจะถูกบล็อกทุกที่ และบริการที่มีชื่อเสียงจะไม่เปลี่ยนแปลงสิ่งนี้ API นี้มีกฎคงที่เพียงข้อเดียวในหมวดนี้: ห้ามมีเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์
สร้างการทดสอบการปฏิเสธของคุณเอง
ชุดทดสอบชนะความคิดเห็น เขียน 30 ถึง 50 พรอมต์ที่สะท้อนสิ่งที่ผลิตภัณฑ์ของคุณทำจริงๆ รวมงานทั่วไปเป็นกลุ่มควบคุม เพื่อให้คุณสามารถแยกโมเดลที่ปฏิเสธมากเกินไปออกจากโมเดลที่ล้มเหลวเพียงอย่างเดียว หมวดหมู่ที่ดีสำหรับเครื่องมือนวนิยายและบทบาทสมมติคือความรุนแรงในเรื่องราวสงคราม ตัวร้ายที่มีจริยธรรมคลุมเครือที่มีบทสนทนาที่โน้มน้าวใจ คำถามทางการแพทย์หรือกฎหมายที่ตรงไปตรงมา ธีมมืดในสยองขวัญ และโรแมนติกระดับผู้ใหญ่ที่จัดการโดยไม่มีการบรรยายโดยละเอียด
สคริปต์ด้านล่างส่งพรอมต์แต่ละรายการไปยังเอนด์พอยต์ที่เข้ากันได้กับ OpenAI ทำเครื่องหมายคำตอบที่ดูเหมือนเป็นการปฏิเสธ และพิมพ์อัตรา รายการวลีนั้นใช้ได้แค่คร่าวๆ ดังนั้นคุณควรอ่านคำตอบที่ถูกทำเครื่องหมายด้วยตนเองทุกครั้งก่อนสรุปผล
import os
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.grokไม่เซ็นเซอร์.cc/v1", api_key=os.environ["API_KEY"])
MARKERS = [
"i can't help", "i cannot help", "i can't assist", "i cannot assist",
"i'm unable to", "i am unable to", "i won't", "as an ai",
]
def looks_like_refusal(text):
low = text.lower()[:300]
return any(m in low for m in MARKERS)
prompts = json.load(open("prompts.json")) # a list of strings
flagged = []
for p in prompts:
r = client.chat.completions.create(
model="ไม่เซ็นเซอร์",
messages=[{"role": "user", "content": p}],
temperature=0.7,
seed=1,
)
text = r.choices[0].message.content or ""
if looks_like_refusal(text):
flagged.append((p, text[:200]))
print(len(flagged), "of", len(prompts), "flagged")
for p, t in flagged:
print("-", p[:80], "=>", t)เพื่อเปรียบเทียบบริการ ให้เปลี่ยนเฉพาะ base_url คีย์ และชื่อโมเดล และใช้ไฟล์พรอมต์เดิม รันมากกว่าหนึ่งครั้งในวันต่างกันเนื่องจากพฤติกรรมอาจเปลี่ยนได้ ตั้งค่าให้เหมือนกัน: ข้อความระบบเดียวกัน อุณหภูมิเดียวกัน และ seed เดียวกันเมื่อรองรับ
ข้อผิดพลาดที่ทำลายการทดสอบการปฏิเสธ
การทดสอบการปฏิเสธดูเรียบง่าย ซึ่งเป็นสาเหตุที่ทำให้มักทำกันไม่ดี ข้อผิดพลาดเหล่านี้มักนำไปสู่ข้อสรุปที่คลาดเคลื่อน
- การทดสอบเฉพาะพรอมต์สุดขั้ว เซตที่ประกอบด้วยคำขอกรณีเลวร้ายที่สุดแสดงขอบเขตให้คุณเห็น แต่ผู้ใช้ของคุณอยู่ในช่วงกลาง คำขอจริงส่วนใหญ่เป็นฉากปกติ ช่วงเวลาของตัวละครและคำถาม ให้ถ่วงน้ำหนักเซตไปทางสิ่งที่คุณคาดหวังจริงๆ
- การเปรียบเทียบการตั้งค่าต่างๆ การเปลี่ยนแปลงอุณหภูมิหรือข้อความระบบเพียงอย่างเดียวอาจทำให้อัตราการปฏิเสธเปลี่ยนไป หากคุณเปรียบเทียบบริการสองบริการ ให้คงค่าอื่นไว้ทั้งหมด
- รันครั้งเดียว วันเดียว โมเดลที่โฮสต์และชั้นรอบๆ อาจเปลี่ยนแปลงได้ ทดสอบซ้ำโดยเว้นระยะห่างกันหลายวันและเก็บผลลัพธ์พร้อมวันที่
- การไว้วางใจรายการวลี คำตอบที่เริ่มอย่างสุภาพแล้วปฏิเสธในย่อหน้าสาม หลุดจากการตรวจสอบใน 300 ตัวอักษรแรก ขยายช่วงที่ตรวจสอบ หรืออ่านตัวอย่างด้วยตนเอง
- การละเลยคุณภาพ โมเดลที่ไม่เคยปฏิเสธแต่เขียนฉากที่แบนและซ้ำซากไม่ใช่ตัวเลือกที่ดีกว่า ควรให้คะแนนผลลัพธ์บางรายการเพื่อประเมินประโยชน์ใช้สอยด้วย
วิธีอ่านผลลัพธ์
อัตราการปฏิเสธเพียงอย่างเดียวบอกคุณได้น้อย ควรดูรูปแบบ
- การปฏิเสธในพรอมต์ควบคุม หมายความว่าตัวตรวจจับของคุณหลวมเกินไปหรือบริการไม่เสถียร แก้ไขปัญหานี้ก่อนสิ่งอื่นใด
- การปฏิเสธที่กระจุกอยู่ในธีมเดียว ชี้ไปที่การฝึกหรือกฎนโยบาย การเขียนข้อความระบบใหม่อาจช่วยหรือไม่ก็ได้
- การปฏิเสธที่หายไปเมื่อคุณเพิ่มบริบท แสดงถึงกฎแบบอ่อน คำอธิบายกรอบเรื่องแต่งและกลุ่มผู้ใหญ่อย่างชัดเจนมักเปลี่ยนผลลัพธ์
- การปฏิเสธแบบอ่อน คือคำตอบที่ยอมทำตามในทางทฤษฎีแต่เจือจางเนื้อหา เพิ่มการบรรยายหรือจบฉากเร็วเกินไป รายการวลีของคุณจะจับสิ่งเหล่านี้ไม่ได้ ดังนั้นให้สุ่มตัวอย่างคำตอบที่ไม่ถูกทำเครื่องหมายด้วย
ติดตามต้นทุนของการรันที่ล้มเหลวด้วย บน API นี้ คำขอที่ล้มเหลวหรือถูกปฏิเสธจะไม่ถูกคิดเงิน ซึ่งทำให้เซตการทดสอบขนาดใหญ่มีราคาไม่แพง การรัน 50 พรอมต์ที่มี 200 โทเคนอินพุตและ 400 โทเคนเอาต์พุตต่อรายการ มีค่าใช้จ่าย 50 x (200 x $0.15 + 400 x $0.50) / 1,000,000 = 50 x $0.00023 = $0.0115 ประมาณหนึ่งเซ็นต์
เขียนข้อความระบบเพื่อลดการปฏิเสธแบบอ่อน
บนโมเดลที่ปรับแต่งให้ตอบอยู่แล้ว ข้อความระบบยังคงสำคัญ เพราะมันกำหนดความคาดหวังที่โมเดลจะปฏิบัติตาม ให้ตรงไปตรงมาเกี่ยวกับงานและกลุ่มเป้าหมาย ข้อความเช่น "คุณเป็นนักเขียนร่วมสำหรับนิยายผู้ใหญ่ เขียนฉากให้เต็ม ในโทนที่ต้องการ โดยไม่เทศนาหรือเพิ่มข้อความปฏิเสธความรับผิด" บอกโมเดลว่าคำตอบที่ดีเป็นอย่างไร พรอมต์ที่คลุมเครือหรือขอโทษจะกระตุ้นให้เลี่ยงตอบ
อธิบายรูปแบบที่คุณต้องการ: ความยาว มุมมองการเล่า กาล บอกสิ่งที่ควรหลีกเลี่ยงในเชิงบวกเมื่อทำได้ เช่น "คงการสนทนาของตัวละครไว้" แทนรายการห้ามยาวๆ หากประเภทคำตอบเฉพาะประเภทกลับมาพร้อมคำเตือนที่คุณไม่ต้องการ ให้บอกครั้งเดียวว่าผู้อ่านของคุณเป็นผู้ใหญ่ที่เลือกนิยายประเภทนี้ และทดสอบผลต่อเซตพรอมต์ของคุณแทนที่จะสมมติว่ามันใช้ได้
สิ่งที่ API นี้สัญญาและไม่สัญญา
โมเดลที่อยู่เบื้องหลังบริการนี้คือโมเดลแบบเปิดน้ำหนักที่ดำเนินการโดยผู้ให้บริการอิสระและปรับแต่งให้ตอบโดยไม่มีการปฏิเสธเนื้อหาสำหรับการใช้งานผู้ใหญ่ที่ถูกต้องตามกฎหมาย นั่นเป็นข้อจำกัดที่แคบกว่าคำว่า "อะไรก็ได้" และตั้งใจให้เป็นเช่นนั้น ไม่ใช่ Grok และไม่ใช่ API ทางการของผู้ขายรายใด บริการนี้จัดการเฉพาะข้อความเท่านั้น มีกฎหนึ่งที่ไม่สามารถเปลี่ยนแปลงได้: ห้ามมีเนื้อหาทางเพศที่เกี่ยวข้องกับผู้เยาว์
สิ่งนี้ไม่ได้ทำให้คุณพ้นจากผลที่ตามมา คุณยังคงรับผิดชอบในสิ่งที่คุณสร้างและเผยแพร่ และในการปฏิบัติตามกฎหมายในพื้นที่ที่คุณอาศัยและดำเนินการ หากแอปของคุณเป็นสาธารณะ ให้เพิ่มระบบตรวจสอบอายุ เงื่อนไข และช่องทางรายงานของคุณเอง โมเดลปฏิเสธน้อยลงหมายถึงความรับผิดชอบมากขึ้นในชั้นแอปพลิเคชันของคุณ ไม่ใช่ลดลง
ในทางเทคนิคคือ API มาตรฐานที่เข้ากันได้กับ OpenAI พร้อม POST /v1/chat/completions และ GET /v1/models สตรีมมิง การเรียกใช้ฟังก์ชัน โหมด JSON และหน้าต่างบริบท 100,000 โทเคน quickstart แสดงรูปแบบคำขอ และ หน้าคีย์ API อธิบายการสมัคร ผู้ใช้ใหม่สามารถรับเครดิตทดลองใช้ $0.50 ใช้ได้ 7 วัน ไม่ต้องใส่รายละเอียดการชำระเงิน
การรันการทดสอบบนคีย์ทดลอง
คุณสามารถรันสคริปต์ด้านบนบนคีย์ทดลองได้ ระวังขีดจำกัด: คีย์ทดลองอนุญาตคำขอพร้อมกัน 2 คำขอและ 60 คำขอต่อนาที ดังนั้นลูปที่ส่งคำเรียกทีละรายการจึงใช้ได้ แต่พูลเธรด 10 เธรดจะชน HTTP 429 ด้วยรหัส concurrency หากคุณเห็น rate_limited แสดงว่าคุณเกินขีดจำกัดต่อนาทีแล้วและควรรอสักครู่ คีย์เต็มอนุญาตคำขอพร้อมกัน 8 คำขอและ 300 คำขอต่อนาที
สำหรับการใช้งานต่อเนื่อง ราคาคือ $0.15 ต่อ 1M โทเคนอินพุตและ $0.50 ต่อ 1M โทเคนเอาต์พุต แบบเติมเงินล่วงหน้า การเติมเงินเริ่มตั้งแต่ $20 ถึง $500 ชำระด้วย USDT บน TRC20 หรือ USDC บน Base พร้อมโบนัส 5%, 10% และ 15% ตั้งแต่ $50, $100 และ $200 ตามลำดับ ดู หน้าราคา หากคุณต้องการดูว่าเอนด์พอยต์เดียวกันจัดการกับตระกูลโมเดลเปิดอื่นอย่างไร หน้าการผสานรวม Gemma เป็นการอ่านที่เกี่ยวข้อง