주요 포인트
- 무검열은 규칙이 없는 모델을 의미하는 것이 아니라, 합법적인 성인 주제에 대한 거절이 적다는 것을 의미합니다.
- 이 동작은 요청에서 토글하는 스위치가 아닌 모델의 학습에서 비롯됩니다.
- 모든 OpenAI SDK가 작동합니다: 베이스 URL과 키를 변경하고 모델 ID로 uncensored를 사용하세요.
- 선불 크레딧을 소모하는 방식으로 요금이 청구됩니다. 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50입니다.
무검열 LLM의 실제 의미
대부분의 채팅 제품은 언어 모델에 거절 행위의 레이어를 감싸고 있습니다. 그중 일부는 가중치에 학습되어 있고, 일부는 시스템 프롬프트이며, 일부는 입력과 응답을 읽는 별도의 필터입니다. 무검열 LLM은 학습된 거절이 훨씬 약해지도록 가중치가 조정된 모델입니다. 이 모델은 소설의 어두운 주제, 직설적인 의학 또는 법률 주제, 일반 어시스턴트가 종종 거절하거나 완곡하게 표현하는 기타 성인 소재에 답합니다.
이 용어는 다소 부적절합니다. 잘린 케이블처럼 모델에서 무언가가 제거된 것이 아닙니다. 변화하는 것은 학습 데이터와 튜닝 단계입니다. 베이스 모델은 방대한 텍스트 컬렉션에서 언어를 학습합니다. 이후 단계에서는 지시사항을 따르도록 가르치며, 일반적으로 긴 목록의 요청을 거절하도록 합니다. 무검열 변종은 이러한 거절 학습의 대부분을 건너뛰거나 반대 방향으로 밀어붙이는 튜닝을 추가합니다.
이 사이트의 서비스는 독립적인 제공업체가 운영하는 이러한 유형의 오픈 웨이트 모델 하나를 실행합니다. 대형 연구소의 공식 API가 아니며, 벤더 간 선택을 하는 라우터도 아닙니다. 표준 채팅 완성 엔드포인트 뒤에 uncensored ID의 단일 모델이 있습니다.
무검열이 의미하지 않는 것
모델에 한계가 없다는 것을 의미하지 않습니다. 여기에는 명확한 한계가 하나 있습니다: 미성년자가 포함된 성적인 콘텐츠는 절대 없습니다. 이 서비스는 합법적인 성인 용도로만 구축되었습니다. 그 외의 용도로 모델이 필요하다면 이는 잘못된 도구입니다.
또한 모델이 더 똑똑하거나 정직하며 정확하다는 의미도 아닙니다. 거절이 적은 모델도 여전히 실수를 하고, 알지 못하는 사실을 발명하며, 프롬프트에 동일한 주의가 필요합니다. 거절을 없애면 말하려는 의사는 바뀌지만 추론 능력은 변하지 않습니다. 다른 모델에서 얻는 출력처럼 취급하세요: 중요한 내용은 반드시 확인하세요.
마지막으로, 이것이 당신의 책임을 면제한다는 뜻은 아닙니다. 앱을 구축한다면, 사용자가 무엇을 할 수 있는지 당신은 결정하며, 그들이 거주하는 지역의 법률을 준수할 의무를 집니다. 거절하지 않는 모델은 방패가 없는 도구이므로, 방패는 당신의 제품에서 나와야 합니다.
거절, 완곡한 표현 및 도덕적 논평은 다른 것입니다
사람들은 세 가지 행동을 하나로 묶습니다. 거절은 "그것에 대해 도와드릴 수 없습니다"라는 명확한 답변입니다. 완곡한 표현은 면책 조항으로 묻힌 답변입니다. 도덕적 설교는 요청되지 않은 강연입니다. 주류 어시스턴트는 종종 동일한 주제에 대해 이 세 가지를 모두 수행합니다. 무검열 모델은 일반적으로 거절과 강연의 대부분을 제거하므로 소설 작가와 역할극 개발자가 선호합니다: 출력이 캐릭터에 머물러 있으며 장면 밖으로 나가서 논평하지 않습니다.
동작의 기원
모델이 덜 거절한다면 원인은 네 가지 중 하나에 있으며, 어느 것이 통제 가능한지 알면 도움이 됩니다.
- 학습 데이터와 튜닝. 이것이 주요 출처입니다. 제공업체가 모델을 구축할 때 고정되며, API로는 변경할 수 없습니다.
- 시스템 프롬프트. 당신이 통제할 수 있습니다. 역할, 설정, 어조를 설정하는 명확한 시스템 메시지는 허용적인 모델에서도 답변을 크게 바꿉니다.
- 샘플링 설정. temperature와 top_p는 모델이 다룰 주제를 결정하지 않지만, 텍스트의 다양성과 일관성을 바꿉니다. 이 값들은 모델에 전달됩니다.
- 플랫폼 필터. 많은 호스팅 API는 모델 앞에 검열 레이어를 추가합니다. 이 레이어가 기본 가중치가 응답할 수 있는 요청이 실패하는 이유입니다. 이를 기반으로 빌드하기 전에 제공업체가 이를 어떻게 처리하는지 확인하세요.
실제 결과: 다른 모델로 "탈옥(jailbreak)"할 수는 없습니다. 주류 어시스턴트가 거절하면 정교한 프롬프트는 다음 업데이트까지 도움이 될 뿐입니다. 무검열 모델은 소스에서 문제를 건너뜁니다.
거절이 적을 때의 합법적인 사용 사례
사람들이 거절을 적게 원하는 이유의 정직한 목록은 고정관념이 시사하는 것보다 깁니다.
- 픽션과 세계관 구축. 소설은 폭력, 범죄, 슬픔, 잔혹함을 다룹니다. 경고를 위해 장면을 끊는 글쓰기 어시스턴트는 스릴러나 전쟁 이야기에는 쓸모가 없습니다.
- 성인용 역할극 및 동반자 앱. 캐릭터 중심 채팅은 편집 없이 긴 세션 동안 캐릭터를 유지하는 모델이 필요합니다.
- 안전성 및 검열 테스트. 콘텐츠 필터를 구축하는 팀은 잡으려는 텍스트의 실제 사례가 필요합니다. 어려운 사례를 생성하는 모델은 테스트에 도움이 됩니다.
- 연구 및 분석. 극단주의 텍스트 요약, 선전 연구 또는 민감한 역사 논의는 목적이 명확함에도 불구하고 신중한 모델의 필터를 작동시킬 수 있습니다.
- 프랭크한 조언 주제. 마약, 피해 최소화 또는 법적 회색 지대에 대한 질문은 주의사항의 벽보다는 직접적인 답변이 필요합니다. 모델이 틀릴 수 있으므로 의사와 변호사처럼 취급하지 마십시오.
이 중 어느 것도 불법적인 것을 요구하지 않으며, 모두 사용자를 성인처럼 대하는 모델에서 더 잘 작동합니다.
어떻게 부를지: 베이스 URL, 키 및 모델 ID
API는 OpenAI 채팅 완료 형식을 따르므로 두 값을 변경하면 모든 OpenAI SDK 또는 호환 클라이언트가 작동합니다. 베이스 URL은 https://api.ornith.top/v1이며, 키는 Authorization: Bearer 헤더에 들어가며, 모델 ID는 uncensored입니다. 두 가지 메서드를 사용할 수 있습니다: POST /v1/chat/completions 및 GET /v1/models.
키가 작동하는지 확인하려면 일반적인 curl 요청으로 시작하세요:
curl https://api.ornith.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "system", "content": "You are a blunt editor for adult fiction."},
{"role": "user", "content": "Rewrite this scene so the villain sounds more menacing."}
]
}'
Python에서는 공식 openai 패키지를 사용하고 새 베이스 URL을 가리키세요:
from openai import OpenAI
client = OpenAI(
base_url="https://api.ornith.top/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You write dark fantasy for adult readers."},
{"role": "user", "content": "Describe a siege from the point of view of a tired defender."},
],
temperature=0.9,
)
print(resp.choices[0].message.content)
Node에서도 동일합니다:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.ornith.top/v1",
apiKey: process.env.API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three bleak opening lines for a noir story." }],
stream: true,
});
for await (const chunk of resp) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
스트리밍은 stream: true로 SSE를 통해 작동하며, 함수 호출과 JSON 모드가 지원되고, 컨텍스트 창은 프롬프트와 응답을 합쳐 100,000 토큰입니다. API 문서에는 각 매개변수와 X-Balance-USD를 포함한 응답 헤더가 설명되어 있으며, 이는 모든 호출에서 남은 크레딧을 보여줍니다.
실제 비용
가격은 선불 크레딧 기반의 선불 요금제입니다: 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50입니다. 구독이 없으며, 실패하거나 거절된 요청에는 요금이 부과되지 않고, 크레딧은 만료되지 않습니다.
2,000토큰 프롬프트(시스템 메시지 및 이력 포함)와 500토큰 응답의 일반 채팅 턴을 가정합니다:
- 입력: 토큰 2,000개, 1M당 $0.15 기준 $0.0003.
- 출력: 토큰 500개, 1M당 $0.50 기준 $0.00025.
- 턴당 총 비용: $0.00055.
이러한 턴 1,000개의 비용은 $0.55입니다. $0.50의 체험 크레딧은 해당 크기의 약 900개의 턴을 커버하므로, 지불하기 전에 작성 품질을 판단하기에 충분합니다. 더 무거운 작업의 경우, 월간 입력 토큰 1,000만 개와 출력 토큰 200만 개의 경우 청구액은 $1.50 + $1.00, 즉 $2.50입니다.
충전 시 $20에서 $500 사이의 전체 금액이 적용되며, $50부터 5%, $100부터 10%, $200부터 15%의 보너스가 제공됩니다. 카드(Visa, Mastercard, Apple Pay, Google Pay) 또는 암호화폐(TRC20의 USDT, Base의 USDC)로 결제할 수 있습니다. 전체 표는 가격 책정 페이지에서 확인하십시오.
시도하고 옵션 간 선택
새로운 사용자는 Google 또는 이메일과 비밀번호로 로그인한 후 API 키 페이지에서 한 번의 클릭으로 $0.50의 무료 체험 크레딧을 청구할 수 있습니다. 카드는 필요 없으며, 인원당 하나이며, 7일 동안 유효합니다. 체험 키는 동시 요청 2개와 분당 60개의 요청을 허용하며, 전체 키는 동시 8개와 분당 300개를 허용합니다. 1분 만에 API 키를 얻어 위에서 본 예제들을 실행할 수 있습니다.
호스팅 모델이 거절을 줄이는 유일한 방법은 아닙니다. 오픈 웨이트 모델을 다운로드하여 자체 하드웨어에서 실행할 수도 있으며, 이는 완전한 제어권과 오프라인 작동을 제공하지만, 성능 좋은 GPU와 일부 설정 비용이 듭니다. 저희의 오픈 소스 LLM API 가이드는 옵션과 비용을 비교합니다. 하드웨어가 필요 없고 앱에 안정적인 엔드포인트를 제공하며, 사용하지 않을 때 요금이 0으로 줄어드는 것을 원한다면 호스팅 경로가 유리합니다.
민감한 텍스트를 다루는 사람들을 위한 한 가지 더: 서비스에 보내는 프롬프트는 학습에 사용되지 않습니다. 자세한 내용은 개인정보 보호 페이지를 읽으세요.
