VI ▾
Lấy khóa API

NsfwAiApiHướng dẫn

LLM địa phương tốt nhất cho nhập vai hay API lưu trữ?

Mô hình LLM local tốt nhất cho nhập vai là mô hình không kiểm duyệt lớn nhất mà GPU của bạn có thể chứa với chất lượng bạn chấp nhận, và câu trả lời đó thay đổi sau mỗi vài tháng. Nếu bạn muốn bỏ qua phần cứng, một endpoint được lưu trữ cho bạn cùng quy trình trò chuyện giống hệt chỉ với một thay đổi URL.

Cập nhật

Minh họa đẳng cự so sánh hộp GPU cục bộ và cụm máy chủ lưu trữ được nối bởi các bong bóng trò chuyện

Cục bộ hay lưu trữ: quyết định nhanh

Chọn cục bộ nếu bạn đã sở hữu GPU mạnh, muốn mọi thứ ngoại tuyến hoặc thích tinh chỉnh mô hình. Chọn lưu trữ nếu bạn muốn bộ nhớ dài trong câu chuyện, dùng laptop hoặc điện thoại, hoặc muốn dành vài phút thay vì cuối tuần cho thiết lập. Nhiều người dùng cả hai: mô hình cục bộ cho thử nghiệm riêng tư và mô hình lưu trữ cho các chiến dịch dài.

Yếu tốMô hình cục bộAPI lưu trữ
Mô hình chi phíPhần cứng và điện năng, không phí theo tokenTrả theo token từ tín dụng trả trước
Kích thước mô hìnhGiới hạn bởi bộ nhớ GPU của bạnNhà cung cấp chạy cái gì thì tùy
Độ dài ngữ cảnhGiới hạn bởi bộ nhớ, vì ngữ cảnh dài hơn cần nhiều bộ nhớ hơn100.000 token tại đây
Quyền riêng tưKhông có gì rời khỏi máy của bạnPrompt được gửi đến nhà cung cấp; tại đây chúng không được dùng để huấn luyện
Cài đặtThời gian chạy, trọng số, lượng tử hóa, bản cập nhậtMột base URL và một khóa
Hoạt động từ mọi thiết bịChỉ khi bạn mở máy của chính mìnhCó

Yếu tố thực sự quyết định mô hình cục bộ tốt nhất

Bảng xếp hạng LLM địa phương tốt nhất cho nhập vai nhanh chóng lỗi thời, và không có tên nào phù hợp cho tất cả mọi người. Thay vào đó, hãy đánh giá các ứng viên dựa trên những yếu tố xuất hiện trong một phiên thực tế.

  • Hành vi từ chối. Nhiều mô hình cơ sở và hướng dẫn được tinh chỉnh để từ chối một số chủ đề nhất định. Các mô hình được tinh chỉnh cho văn học hoặc được đánh dấu là không kiểm duyệt thường từ chối ít hơn, nhưng chất lượng khác nhau, vì vậy bạn nên kiểm tra chúng trên các cảnh của riêng mình.
  • Giữ vững nhân vật. Chú ý tìm một mô hình không bị lạc vào việc tường thuật hành động của nhân vật bạn, lặp lại cùng một cụm từ mỗi lượt hoặc quên ai đang trong phòng.
  • Chất lượng văn xuôi. Đọc mười câu trả lời liên tiếp. Một số mô hình ổn cho một lượt nhưng gây mệt mỏi đến lượt thứ mười.
  • Xử lý ngữ cảnh. Một mô hình có thể tuyên bố một cửa sổ ngữ cảnh dài nhưng vẫn mất chi tiết ở giữa. Hãy chạy một bài kiểm tra trong đó một sự kiện từ đầu cuộc trò chuyện quan trọng sau này.
  • Kích thước và lượng tử hóa. Một mô hình lớn hơn ép vào lượng tử hóa nặng có thể mất nhiều hơn một mô hình nhỏ chạy ở độ chính xác cao. So sánh, đừng giả định.

Các luồng cộng đồng và thẻ mô hình cho thời gian chạy bạn dùng là nơi tốt nhất cho các khuyến nghị hiện tại. Tải xuống hai hoặc ba ứng viên, chạy cùng một cảnh trên mỗi cái và giữ lại cái khiến bạn muốn tiếp tục câu chuyện.

Nơi local hết dung lượng

Rào cản mà hầu hết người nhập vai gặp phải là bộ nhớ, và nó xuất hiện ở hai nơi. Thứ nhất là bản thân mô hình: mô hình lớn hơn viết tốt hơn nhưng cần nhiều bộ nhớ GPU hơn. Thứ hai là ngữ cảnh. Mỗi tin nhắn trong một câu chuyện dài được gửi lại với mỗi lượt mới, và bộ nhớ đệm chứa nó cũng tăng theo độ dài, vì vậy một chiến dịch dài có thể làm quá tải GPU xử lý các cuộc trò chuyện ngắn rất tốt.

Các cách khắc phục thông thường là tóm tắt các lượt cũ, sử dụng sách lore chỉ tiêm các sự kiện liên quan và giảm kích thước ngữ cảnh. Chúng hoạt động, và chúng cũng tốn công. Một endpoint được lưu trữ với cửa sổ 100.000 token cho phép bạn giữ nhiều phần của câu chuyện hơn trong tầm nhìn, phù hợp với các chiến dịch dài, thế giới chia sẻ với nhiều nhân vật và những câu chuyện diễn ra trong nhiều tuần.

Sự đánh đổi là chi phí, vì vậy việc đo lường sẽ hữu ích. Giả sử một cuộc trò chuyện có 30.000 token lịch sử và mô hình tạo ra 300 token cho mỗi câu trả lời. Một lượt tốn 30.000 token đầu vào với giá $0,15 cho mỗi 1 triệu token, tức là $0,0045, cộng thêm 300 token đầu ra với giá $0,50 cho mỗi 1 triệu token, tức là $0,00015. Tổng cộng là $0,00465 cho mỗi lượt, hay $0,465 cho 100 lượt. Một buổi tối chơi dài sẽ tốn kém dưới một đô la. Trang giá cả liệt kê các mức giá và các mức bonus cho các lần nạp tiền lớn hơn.

Thiết lập lưu trữ hoạt động trong Python

Endpoint tương thích với OpenAI, vì vậy gói openai chính thức hoạt động không thay đổi ngoại trừ URL cơ sở và khóa. ID mô hình là uncensored. Trước tiên hãy lấy một khóa từ trang khóa API; tài khoản mới có thể nhận một khoản dùng thử $0,50 ở đó chỉ với một cú nhấp chuột, không cần thông tin thanh toán.

Script này giữ lịch sử liên tục, phát trực tiếp câu trả lời và cắt bớt các lượt cũ để prompt luôn nhỏ. System prompt là phần đáng thời gian của bạn: nó thiết lập bối cảnh, các quy tắc và phong cách.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nsfwaiapi.com/v1",
    api_key=os.environ["NSFWAIAPI_KEY"],
)

SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''

history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40  # keep the last 40 messages besides the system prompt

def say(user_text):
    history.append({"role": "user", "content": user_text})
    trimmed = [history[0]] + history[1:][-MAX_TURNS:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=trimmed,
        temperature=0.9,
        top_p=0.95,
        frequency_penalty=0.3,
        max_tokens=600,
        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})

say("I push open the door of the Gull and Anchor and look for the harbor master.")

Vì cửa sổ là 100.000 token, bạn có thể tăng MAX_TURNS rất nhiều trước khi việc cắt bớt trở nên quan trọng. Cắt bớt vẫn là một thói quen tốt: prompt ngắn hơn tốn ít hơn và giữ mô hình tập trung vào các sự kiện gần đây.

Cài đặt client cho SillyTavern và các ứng dụng tương tự

Hầu hết các giao diện nhập vai đều có màn hình kết nối cho nguồn hoàn thành trò chuyện tương thích OpenAI hoặc tùy chỉnh. Ví dụ, SillyTavern cho phép bạn thêm một endpoint tương thích OpenAI. Các trường giống nhau ở mọi nơi:

  • URL cơ sở hoặc điểm cuối: https://api.nsfwaiapi.com/v1. Một số ứng dụng muốn đường dẫn đầy đủ kết thúc bằng /chat/completions; nếu ứng dụng yêu cầu URL cơ sở, hãy dừng lại ở /v1.
  • Khóa API: khóa của bạn, được gửi dưới dạng bearer token.
  • Mô hình: uncensored. Nếu ứng dụng có thể lấy danh sách mô hình, nó có thể gọi GET /v1/models.
  • Truyền phát: bật. Các câu trả lời xuất hiện khi chúng được viết, và ứng dụng có thể dừng sớm nếu bạn không thích hướng đi.

Để lấy mẫu, nhiệt độ khoảng 0,8 đến 1,0 phù hợp với văn bản tự sự, với top_p gần 0,95. Một hình phạt tần suất hoặc hiện diện nhỏ làm giảm các cụm từ lặp lại mà các cuộc trò chuyện dài có xu hướng tích lũy. Tăng hình phạt chỉ khi bạn thấy sự lặp lại, vì các giá trị cao làm cho văn xuôi tránh né kỳ lạ. Các chuỗi dừng được chuyển qua, vì vậy thêm tên người chơi theo sau là dấu hai chấm làm chuỗi dừng giúp nếu một mô hình cố gắng nói thay bạn. Đặt kích thước ngữ cảnh của ứng dụng thành bất cứ thứ gì bạn muốn trả tiền; bạn không cần phải điền đầy 100.000 token.

Hãy cân nhắc tính đồng thời nếu bạn mở nhiều tab chat hoặc chạy bot cho bạn bè. Khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút, còn khóa dùng thử cho phép 2 yêu cầu đồng thời và 60 yêu cầu mỗi phút. Một phản hồi truyền phát giữ vị trí của nó cho đến khi luồng kết thúc, vì vậy một tab bị treo có thể chiếm hết một vị trí. Tài liệu docs liệt kê các giới hạn và các tiêu đề phản hồi, bao gồm X-Balance-USD, hiển thị tín dụng còn lại của bạn.

Một quy trình nhỏ giữ cho câu chuyện dài luôn ổn định

Các phiên nhập vai dài thường sai theo những cách có thể dự đoán, và một vài thói quen ngăn chặn hầu hết điều đó. Viết một bản tóm tắt câu chuyện ngắn sau mỗi 20 hoặc 30 lượt và giữ nó gần đầu prompt, sau thông báo hệ thống. Cập nhật nó bằng tay hoặc yêu cầu mô hình tạo ra nó, sau đó kiểm tra xem tên, địa điểm và lời hứa vẫn còn đúng. Ghim các sự kiện không bao giờ bị lãng quên, chẳng hạn như mối quan hệ và các luồng mở, trong chính system prompt.

Nếu một câu trả lời đi theo hướng bạn không thích, hãy tạo lại nó thay vì tranh luận với nó trong cuộc trò chuyện. Tranh luận làm ô nhiễm lịch sử và dạy mô hình rằng cảnh đó là về cuộc tranh luận. Khi bạn muốn điều hướng, hãy thêm một dòng rõ ràng trong ngoặc vuông, chẳng hạn như ghi chú về tâm trạng của cảnh tiếp theo, và để câu trả lời tiếp theo mang nó. Giữ tên nhân vật nhất quán và cung cấp cho mọi nhân vật không phải người chơi một ghi chú giọng nói một dòng, vì các mô hình làm mờ các nhân vật có âm thanh giống nhau.

Giới hạn trung thực của mô hình này

Đây là một mô hình trọng số mở, được chạy bởi một nhà cung cấp độc lập và được tinh chỉnh để trả lời mà không có từ chối nội dung cho việc sử dụng người trưởng thành hợp pháp. Nó không phải là API chính thức của bất kỳ nhà cung cấp mô hình nào và không phải là bộ định tuyến qua nhiều mô hình. Bạn không thể chọn giữa các mô hình và bạn không nên mong đợi nó phù hợp với các mô hình đóng tốt nhất trên mọi nhiệm vụ.

Nó chỉ tạo văn bản. Không có hình ảnh cho nhân vật của bạn, không có giọng nói và không có phép nhúng để tìm kiếm lorebook, vì vậy nếu bạn muốn chân dung hoặc giọng nói, bạn cần thêm một dịch vụ riêng cho mỗi thứ. Cũng không có tinh chỉnh. Chất lượng cũng sẽ phụ thuộc vào prompt của bạn: một prompt hệ thống mơ hồ cho ra văn học mơ hồ, và một hồ sơ nhân vật tốt với hội thoại ví dụ làm được nhiều hơn bất kỳ điều chỉnh lấy mẫu nào.

Một quy tắc là cố định. Nội dung tình dục liên quan đến người chưa thành niên không được phép, và một thiết lập cố gắng tạo ra nó sẽ không được hỗ trợ. Hãy giữ các nhân vật là người lớn và giữ việc sử dụng của bạn hợp pháp. Đối với truyện, ứng dụng bạn đời và trò chuyện nhân vật dành cho người lớn, sự kết hợp giữa ít từ chối hơn và cửa sổ ngữ cảnh dài là phần hữu ích.

Hỏi đáp

LLM cục bộ có tốt hơn API được lưu trữ cho nhập vai không?

Không bên nào thắng ở mọi nơi. Cục bộ mang lại cho bạn quyền riêng tư ngoại tuyến và không có chi phí trên mỗi token, trong khi lưu trữ cung cấp cho bạn cửa sổ ngữ cảnh dài hơn và không có giới hạn phần cứng. Nhiều người sử dụng cả hai.

Tôi có thể sử dụng SillyTavern với API này không?

Có. SillyTavern và các ứng dụng tương tự chấp nhận một điểm cuối tương thích với OpenAI. Nhập https://api.nsfwaiapi.com/v1 làm URL, khóa của bạn và ID mô hình uncensored.

Một phiên nhập vai có thể sử dụng bao nhiêu ngữ cảnh?

Cửa sổ ngữ cảnh là 100.000 token, tính cả prompt và câu trả lời cùng nhau. Các cuộc trò chuyện dài tốn nhiều tiền hơn vì lịch sử được gửi cùng với mỗi lượt.

Nó có tạo hình ảnh hoặc giọng nói cho các nhân vật của tôi không?

Không. Dịch vụ chỉ dành cho văn bản, không có tạo hình ảnh, âm thanh hoặc video và không có embedding.

Khóa của bạn chỉ cách một bước điền biểu mẫu

Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.

Lấy khóa API

NsfwAiApiAPI LLM không kiểm duyệt cho việc tạo văn bản NSFW