PL ▾

abliteratedmodels.ccHostowane API bez cenzury dla programistów.

Abliterated Models
Pobierz klucz API

Najlepsze modele abliterowane do kodowania: na co zwracać uwagę

Najlepsze modele abliterowane do kodowania to te, które nadal generują dobry kod po usunięciu filtrów, a o tym przekonujesz się tylko testując na własnych zadaniach. Oto jak je oceniać, gdzie odrzucenia szkodzą programistom i jak uruchomić test przez API.

Terminal nad blokami kodu z otwartą bramą i płynącym światłem, symbolizujący nieograniczoną pomoc w kodowaniu

Co sprawia, że model kodujący jest dobry po usunięciu filtrów

Model, który nigdy nie odrzuca, jest łatwy do zbudowania. Model, który nigdy nie odrzuca i nadal pisze poprawny kod, jest trudniejszy, bo edycja usuwająca filtry może też osłabić inne umiejętności modelu. Dlatego użyteczne pytanie to nie „która lista nazw jest dłuższa”, ale „która wersja zachowuje zdolności kodowania modelu bazowego”.

To daje Ci cztery rzeczy do sprawdzenia, w kolejności ważności:

  1. Poprawność na Twoich zadaniach. Czy kod działa, przechodzi Twoje testy i przestrzega Twoich konwencji?
  2. Podążanie za instrukcjami. Jeśli poprosisz tylko o diff, czy otrzymasz tylko diff? Czy szanuje wersję języka i bibliotekę, którą wskazałeś?
  3. Obsługa kontekstu. Czy potrafi odczytać kilka dużych plików naraz i śledzić nazwy funkcji w nich?
  4. Wskaźnik odrzuceń dla promptów, które faktycznie wysyłasz. To jest powód, dla którego warto patrzeć na modele abliterowane, więc mierz to bezpośrednio.

Bądź czujny wobec każdej strony, która ranguje modele według jednego wyniku bez pokazywania promptów. Ranking mówi Ci o obciążeniu kogoś innego.

Gdzie odrzucenia szkodzą programistom

Większość zapytań kodujących nie wyzwala filtra. Te, które to robią, dzielą wzorzec: kod jest neutralny, ale temat brzmi ryzykownie.

  • Testy bezpieczeństwa. Skanery portów, fuzzery, proof-of-concept exploitów do luki, którą łatajesz, lub skrypt sprawdzający Twoje serwery pod kątem słabych haseł.
  • Reverse engineering. Wyjaśnianie deasemblacji, rozpakowywanie zaciemnionego skryptu, który znalazłeś na swoim komputerze, lub ustalanie formatu pliku.
  • Scraping i automatyzacja. Rotacja sesji, parsowanie witryn, które nie lubią botów, masowe wypełnianie formularzy w ramach legalnego zadania.
  • Analiza złośliwego oprogramowania. Odczytanie próbki do napisania reguł detekcji oznacza omówienie tego, co robi, linia po linii.
  • Narzędzia do danych dla wrażliwych tekstów. Budowanie klasyfikatorów lub danych testowych dla treści toksycznych, gdzie same dane testowe wyglądają źle.
  • Narzędzia do gier i fikcji. Generowanie dialogów, tekstów questów lub kart postaci do opowiadań dla dorosłych z mrocznymi wątkami.

W każdym przypadku odmowa marnuje wywołanie, a uprzejma lekcja etyki marnuje tokeny, za które płacisz. Model bez tych odmów oszczędza ponowne wywołanie i przeredagowanie. To powód, by chcieć taki model, a nie powód, by przestać myśleć: nadal ponosisz odpowiedzialność za to, co budujesz i uruchamiasz. Ta usługa jest dla prawnego użytku osób dorosłych.

Co daje Ci to API

Nie wybierasz tu z katalogu. API obsługuje jeden model o otwartych wagach, uruchamiany przez niezależnego dostawcę i dostrojony do odpowiadania bez odmów treściowych. Nie jest to oficjalne API żadnego dostawcy modeli ani router między wieloma. Jeśli Twoje poszukiwania modelu bez cenzury do kodowania kończą się długą listą, między którymi chcesz się przełączać, to nie jest to tego rodzaju usługa. Jeśli kończy się na "chcę jeden zdolny model bez filtra, za endpointem w stylu OpenAI", to jest.

Fakty ważne dla programistów:

  • Okno kontekstu 100 000 tokenów dla promptu plus uzupełnienia, wystarczające na kilka plików źródłowych i długą rozmowę.
  • Strumieniowanie przez SSE, wywoływanie funkcji i tryb JSON, wszystko w formacie OpenAI.
  • temperature, top_p, stop, seed oraz kary są przekazywane dalej.
  • Pełny klucz pozwala na 8 równoległych zapytań i 300 zapytań na minutę.
  • Tylko tekst. Brak embeddingów, generowania obrazów, dostrajania.

Dokumentacja wymienia każdy parametr i nagłówek odpowiedzi.

Uruchom test kodowania w dziesięć minut

Zbuduj mały zestaw testowy z pracy, którą już wykonałeś: pięć do dziesięciu zadań ze znaną poprawną odpowiedzią, np. błąd, który naprawiłeś w zeszłym miesiącu, funkcja z testami i jeden prompt, który hostowany model z wbudowanymi filtrami odrzucił. Następnie uruchom je wszystkie przez endpoint przy niskiej temperaturze, aby wyniki były powtarzalne.

from openai import OpenAI

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

SYSTEM = (
    "You are a senior engineer. Reply with code only, in one fenced block, "
    "then at most three lines of notes."
)

tasks = [
    "Write a Python function that parses a CIDR string and lists usable hosts.",
    "Write a Bash one-liner that finds open ports on 192.168.1.10 using only /dev/tcp.",
    "Explain what this regex does and where it backtracks badly: ^(a+)+$",
]

for prompt in tasks:
    r = client.chat.completions.create(
        model="uncensored",
        temperature=0.2,
        seed=7,
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": prompt},
        ],
    )
    print("=" * 60)
    print(prompt)
    print(r.choices[0].message.content)
    print("tokens:", r.usage.prompt_tokens, r.usage.completion_tokens)

Zachowaj te same prompty i seed, gdy porównujesz z czymkolwiek innym. Oceniaj każdą odpowiedź przez jej uruchomienie, nie przez czytanie. Jeśli tylko patrzysz na tekst, pewna błędna odpowiedź wygrywa.

Używanie go wewnątrz edytora i agentów

Ponieważ endpoint obsługuje protokół OpenAI, większość narzędzi do kodowania może go używać bez wtyczki. W edytorach i agentach, które akceptują niestandardowego dostawcę zgodnego z OpenAI, takiego jak Cline lub Continue, ustaw bazowy URL na https://api.abliteratedmodels.cc/v1, wklej swój klucz i wpisz uncensored jako nazwę modelu. Sprawdź stronę ustawień każdego narzędzia, aby poznać dokładne nazwy pól, ponieważ zmieniają się one między wydaniami.

Dla asystenta wiersza poleceń aider, ustaw endpoint przez zmienne środowiskowe i poprzedź model openai/:

export OPENAI_API_BASE=https://api.abliteratedmodels.cc/v1
export OPENAI_API_KEY=YOUR_KEY
aider --model openai/uncensored

Dwa ustawienia pomagają w pętlach agentów. Utrzymuj concurrency na poziomie 8 lub mniej, ponieważ dziewiąte jednoczesne zapytanie zwraca HTTP 429 z kodem błędu concurrency. Pamiętaj też, że strumieniowane zapytanie zajmuje slot concurrency do końca strumienia, więc zawieszony strumień w jednym narzędziu może głodzić inne.

Nawyki promptowania, które pomagają w jakości kodu

Niezależnie od wybranego modelu, sposób, w jaki pytasz, decyduje o dużej części wyniku. Te nawyki są ważniejsze, gdy model przestaje odrzucać, ponieważ będzie próbował odpowiedzieć na wszystko, w tym na źle określone żądania.

  • Wskaż język i wersję. "Python 3.11, tylko biblioteka standardowa" usuwa całą klasę błędnych importów.
  • Podaj interfejs najpierw. Wklej sygnaturę funkcji, typy i jeden przykład wywołania. Model dopasuje wtedy swoją odpowiedź do Twojego kodu, zamiast wymyślać własny kształt.
  • Poproś o diff lub pojedynczy plik. Ogólnikowe prośby generują długie odpowiedzi, za które płacisz w tokenach wyjściowych po $0,50 za milion.
  • Utrzymaj niską temperaturę dla kodu. Wartość między 0 a 0,3 daje stabilniejsze wyjście. Dodaj seed, gdy chcesz odtworzyć wynik.
  • Użyj sekwencji stop. Jeśli chcesz tylko blok kodu, zatrzymaj się na zamykającym fence, aby model nie dołączał komentarza.
  • Wyślij komunikat błędu. W przypadku błędu dołącz stack trace i linie, na które wskazuje. To bije dowolny opis.

Krótki system message, który określa rolę i format wyjścia, jak w powyższym skrypcie testowym, zwykle działa lepiej niż długi. Ponieważ tekst systemowy jest rozliczany jako input w każdym zapytaniu, zwięzłość oszczędza też pieniądze w długiej sesji.

Sprawdź odpowiedź przed scaleniem

Model bez filtrów jest tak samo zdolny do napisania pewnego błędu co model z filtrami. Uruchom testy. Przeczytaj diff. Dla kodu dotykającego sekretów, uprawnień, usuwania plików lub dostępu do sieci, przeglądaj go dwukrotnie i uruchom najpierw w piaskownicy lub kontenerze jednorazowym. Płacisz za tokeny i tak; Twój system chroni dopiero przegląd kodu.

Ile kosztuje praca z kodem

Ceny wynoszą $0,15 za milion tokenów wejściowych i $0,50 za milion tokenów wyjściowych, pobierane z przedpłaconego kredytu. Obciążenia związane z kodowaniem są ciężkie po stronie input, ponieważ wysyłasz kod i otrzymujesz mniejszą zmianę, co pasuje do tego kształtu cen. Kilka przykładowych wyliczeń:

ZadanieTokeny wejścioweTokeny wyjścioweKoszt
Przejrzyj jeden plik o rozmiarze 8 000 tokenów8 0001 000$0,0012 + $0,0005 = $0,0017
Wygeneruj funkcję o długości 600 tokenów1 500600$0,000225 + $0,0003 = $0,000525
Wypełnij całe okno kontekstu 100 000 tokenów, 2 000 tokenów odpowiedzi98 0002 000$0,0147 + $0,001 = $0,0157

Agent, który wykonuje 20 wywołań z kontekstem 50 000 tokenów za każdym razem, wysyła łącznie 1 000 000 tokenów wejściowych, co daje $0,15, plus może 10 000 tokenów wyjściowych po $0,005. Cała sesja kosztuje około $0,155. Tysiąc recenzji plików w rozmiarze z pierwszego wiersza kosztuje $1,70. Koszt eksperymentowania jest mały; istotny koszt to czas, który poświęcasz na sprawdzanie wyników. Nieudane lub odrzucone zapytania nie są rozliczane.

Pełne szczegóły, w tym kwoty doładowania od $20 do $500 oraz bonusy przy $50, $100 i $200, znajdziesz na stronie z cenami.

Ograniczenia, które powinieneś znać przed podjęciem decyzji

Bądź szczery co do przeznaczenia modelu bez cenzury. Nie będzie lepszym programistą niż model bazowy, a model z mniejszą liczbą odrzuceń może być zbyt chętny do współpracy: z przyjemnością wygeneruje niebezpieczny kod lub zadziała na podstawie błędnej przesłanki. Przeglądaj wygenerowany kod tak, jakbyś sprawdzał pracę juniora, zwłaszcza fragmenty dotyczące uwierzytelniania, usuwania plików lub operacji finansowych.

Zaplanuj też limity usługi. Treści żądań większe niż 8 MB są odrzucane, a klucze próbne są ograniczone do 2 równoległych zapytań i 60 na minutę, co wystarczy do testu, ale nie do zadań wsadowych. Gdy zobaczysz HTTP 429 z nagłówkiem Retry-After: 5, dostawca jest tymczasowo przeciążony; poczekaj i spróbuj ponownie. Powiązana strona o kosztach i kontroli API LLM bez cenzury omawia, jak to pasuje do alternatyw hostowanych modeli z filtrami.

Aby wypróbować, aktywuj kredyt próbny $0,50 ze strony klucza API po rejestracji. Nie wymaga karty, trwa 7 dni i jest ograniczony do jednego na osobę.

Pytania i odpowiedzi

Który model abliterowany jest najlepszy do kodowania?

Nie ma jednej uczciwej odpowiedzi, bo wyniki zależą od Twojego języka i zadań. Stwórz mały zestaw testowy na podstawie własnych danych i przetestuj na nim kandydatów. To API obsługuje jeden model, więc przetestuj właśnie ten.

Czy model abliterowany będzie pisał gorszy kod?

Może, ponieważ usunięcie odrzuceń czasem obniża ogólną jakość. To, czy ma to dla Ciebie znaczenie, szybko pokażą testy uruchamiające wygenerowany kod.

Czy mogę użyć go z asystentem AI do kodowania w edytorze?

Tak, jeśli narzędzie akceptuje niestandardowy endpoint zgodny z OpenAI. Wprowadź bazowy URL, swój klucz i nazwę modelu uncensored.

Ile kontekstu mogę wysłać?

Okno kontekstu wynosi 100 000 tokenów, dzielonych między Twój prompt a odpowiedź. Pełny prompt o takim rozmiarze kosztuje nieco ponad cent za dane wejściowe.

Twój klucz jest o jeden formularz stąd

Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.

Pobierz klucz API