Istraživanje12 minIzvor provjeren 26. srpnja 2026

Od @Generable do SwiftData: cjevovod kvalitete ponude na uređaju

Produkcijska arhitektura koja stoji iza RiseHush-ovog generatora temeljnih modela: utipkano strujanje, slojevito odbijanje, lokalni alati, ustrajnost sigurna za glumca i važni putevi neuspjeha.

Od @Generable do SwiftData: cjevovod kvalitete ponude na uređaju — RiseHush editorial illustration — risehush.comrisehush.com

Ograničenje nije bilo "natjerati model da napiše ponudu"

Jedan upit može proizvesti rečenicu. Ne može utvrditi je li model sustava spreman, održavati osjetljivost sučelja, razlikovati generirani redak od povijesnog citata, spriječiti gotovo duplikat da uđe u biblioteku ili ostaviti proizvod korisnim kada zaključivanje ne uspije. Te okolne odluke su značajka.

RiseHush nema pozadinu zaključivanja. Na podržanim Apple Intelligence uređajima, aplikacija šalje ograničeni upit Appleovom jezičnom modelu sustava na uređaju i pohranjuje prihvaćeni rezultat u lokalni SwiftData. obavještajna stranica okrenuta proizvodu objašnjava što osoba vidi; ovaj članak dokumentira put implementacije i njegova ograničenja. Appleov vlastiti API za dostupnost i dalje je autoritet za to može li se model sada pokrenuti.

"Reproducibilno" ovdje znači da drugi inženjer može ponoviti matricu spremnosti, fiksure odbijanja, staze vremenskog ograničenja i provjere postojanosti. To ne znači da će nedeterministički jezični model vraćati istu prozu malo po malo. Ova stranica izvješćuje o pregledanoj izvornoj arhitekturi, a ne o svježim metrikama kvalitete fizičkog uređaja; nijedan rezultat benchmarka nije izveden iz testne skripte.

  • Zaključak:Appleov jezični model sustava, na uređaju.
  • Izlazni ugovor:Vođeni Swift tip, zatim deterministička provjera valjanosti.
  • Pohrana:Lokalni SwiftData retci označeni kao generirani.
  • Mrežni put:Nema poslužitelja za generiranje RiseHush-a ili modela treće strane.

[1][2]

Od brze do knjižnice: proizvodni put

Ovo je arhitektura koja stoji iza RiseHushovog generatora ponuda na uređaju kako je pregledano u trenutnom izvoru aplikacije. Dokumentira vrata, putanje kvara i provjerava da programer može reproducirati; to nije mjerilo modela ili tvrdnja da je svaki nacrt dobar.

Naručivanje je namjerno. Jeftine, objašnjive provjere pokreću se prije novih zaključaka; nema pisanja sve dok svaka potrebna vrata ne prihvate kandidata. Streaming odgovor je privremeni tekst sučelja, a ne spremljeni citat.

  1. Dokažite spremnost

    Usluga provjerava dostupnost modela sustava i zatraženu lokalizaciju prije nego što stvori sesiju. Ispunjavanje uvjeta uređaja, stanje Apple Intelligence, spremnost modela i jezična podrška odvojeni su ishodi.

  2. Ograničite propuh

    Tip @Generable Swift traži jednu originalnu rečenicu, obično 10-16 riječi i nikad više od 18, bez atribucije, markdowna, hashtagova, emotikona ili znakova navodnika.

  3. Prijenos glavnog glumca

    Svježi LanguageModelSession je prethodno zagrijan za zahtjev. Djelomično strukturirani snimci mogu ažurirati sučelje dok petlja temeljnih modela ostaje izvan glavnog glumca.

  4. Odbacite očite neuspjehe

    Prije bilo kakvog ocjenjivanja temeljenog na modelu, deterministička vrata provjeravaju ograničenja rečenica i riječi, jezično slaganje, zabranjene fragmente, prelamanje interpunkcije i višejezične obrasce klišeja.

  5. Testirajte novost i kvalitetu

    Kada su usporedne ugradnje dostupne, preživjeli se suočavaju sa semantičkom provjerom gotovo duplikata, zatim s zasebnim vođenim sucem i ocjenom razlikovnosti. Streaming skica koja nema traženi prag se odbacuje umjesto da se tiho održava.

  6. Ustraj preživjeli

    Metapodaci se računaju izvan glavnog aktera. Umetanje SwiftData vraća se glavnom akteru, označava liniju kao generiranu, a ne kao javnu domenu, i vraća prijelazna umetanja ako spremanje ne uspije.

  7. Ponovno upotrijebi lokalno stanje

    Površine aplikacije i sustava koriste pohranjenu ponudu. Widgeti čitaju postojane podatke; oni ne probude jezični model unutar vremenske trake proširenja.

[2][3][4][5]

Vođeni izlaz sužava oblik; kod još uvijek posjeduje politiku

Nacrt je tipa Swift s oznakom@Generable. Njegov vodič traži jednu izvornu rečenicu, obično 10-16 riječi s maksimalnim brojem od 18, i zabranjuje pripisivanje, prelamanje navodnika, hashtagove, emoji, markdown i prijelome redaka. Proizvodne opcije koriste temperaturu od 0,7 i gornju granicu od 40 tokena: dovoljno prostora za strukturirani omot i kratku rečenicu, bez pozivanja na ispis dužine odlomka.

To provjeru ne čini izbornom. Apple opisuje vođeno generiranje kao način proizvodnje strukturiranih Swift podataka, a ne kao jamstvo da sadržaj zadovoljava sva pravila proizvoda. RiseHush stoga tretira upisanu vrijednost modela kao nepouzdan nacrt. Skraćena skica u nastavku čuva proizvodni redoslijed i pragove dok izostavlja upite i pojedinosti o postojanosti specifične za aplikaciju.

Architecture sketch — abridged from the current app sourceswift
@Generable
private struct GeneratedQuoteDraft {
    @Guide(description: "One original sentence; 10–16 words; no attribution")
    var text: String
}

guard availability(locale: locale) == .available else {
    throw GenerationError.unavailable
}

let stream = session.streamResponse(
    to: prompt,
    generating: GeneratedQuoteDraft.self,
    options: generationOptions
)

for try await snapshot in stream {
    yield(snapshot.content.text)          // interface update
}

guard deterministicGate.passes(text, locale: locale),
      await noveltyGate.isNearDuplicate(text) == false,
      await judge.score(text).overall >= 6,
      distinctiveness.score(text).overall >= 5
else {
    throw GenerationError.noCandidate
}

return try persistAsGeneratedQuote(text)

This is explanatory code, not a drop-in package. It intentionally omits app-private prompt construction, error mapping, and SwiftData model definitions.

[4][5]

Zašto drugi prolaz još uvijek nije bio dovoljan

Prvi sloj odbijanja je deterministički: prazan izlaz, zabranjeni promptni ostatak, omotani citati, ograničenja riječi i rečenica, jezična neslaganja i višejezični klišeji. Lokalni Core ML filter okusa može dodati naučeni signal za engleski, njemački, španjolski, francuski, talijanski i portugalski; namjerno se preskače umjesto da se pogrešno primjenjuje izvan tih kalibriranih lokaliteta.

Zatim, kada su usporedne ugradnje dostupne, vrata semantičke novosti uspoređuju kandidata s ograničenim lokalnim katalogom i odbacuju gotovo duplikate na pragu kosinusne sličnosti od 0,90. Ako je katalog prazan ili se ugradnja ne može proizvesti, taj sloj prolazi umjesto da se tvrdi da je novost dokazana. Nova sesija Foundation Models tada ocjenjuje ukupnu kvalitetu, originalnost i toplinu. Taj sudac je zasebna sesija koja koristi isti model sustava—ne neovisni model niti ljudski pregled. Ako nije dostupan, odbija ili ne može proizvesti strukturirani izlaz, deterministički rezultat pruža ograničenu zamjenu.

Konačno, rezultat prepoznatljivosti nagrađuje konkretne slike, akciju, emocionalnu specifičnost i djelovanje dok kažnjava formule i nedavna negativna sidra. Prihvaćanje trenutno zahtijeva ocjenu sudaca od najmanje 6 i razlikovnost od najmanje 5. Ovo su pragovi proizvoda, a ne dokaz globalne originalnosti ili sigurnosti.

Proizvodne odluke i neuspjeh koji svaka od njih sprječava
ZabrinutostProvedbaZašto postoji
DostupnostProvjerite stanje modela i lokalnu podršku prije svake generacije staze; zabilježite zašto spremnost nije uspjela."Podržava Apple Intelligence" ne znači da je model sada spreman ili da podržava aktivni jezik posjetitelja.
StrukturaKoristite @Generable i @Guide za nacrt oblika umjesto analiziranja izmišljenog JSON odgovora.Tip Swift je izlazni ugovor, dok deterministički kod i dalje posjeduje pravila proizvoda.
PodudarnostDržite strujanje modela i rad s metapodacima podalje od glavnog aktera; prekrižite samo za ustrajnost lokalnog modela.Okret temeljnih modela može potrajati nekoliko sekundi, dok objekti modela SwiftData ostaju vezani za glumca.
KvalitetaSlojna deterministička pravila, semantička novost, odvojeni sudac i pragovi razlikovnosti.Vođena generacija sužava oblik; ne jamči istinitost, originalnost, ton ili kvalitetu proizvoda.
LatencijaPrethodno zagrijavajte samo na prednjim površinama koje mogu stvarati i primijenite ograničene proračune: 45 sekundi u sučelju, 20 za Siri, 120 za pozadinski skup.Zahtjev upućen korisniku ne smije vječno čekati sredstva, ograničenja stope ili sporo okretanje modela.
PostojanostPohranite prihvaćene retke kao lokalno generirane zapise, nikada kao citate autora iz javne domene; vratiti nakon neuspjelog spremanja.Generirano pisanje zahtijeva trajno porijeklo i nikada ne smije naslijediti atribuciju stvarne osobe.

[7]

Neka model bude okrenut od glavnog glumca

Javni servis vraća objekte modela SwiftData, tako da njegove ulazne točke ostaju vezane za glavnog aktera. Skupa petlja odgovora Foundation Models ne. Svaki zahtjev posjeduje svježuLanguageModelSession; strujanje i izračunavanje metapodataka bježe od glavnog aktera, s malim eksplicitnim skokovima za promptne signale vezane za aktera i postojanost.

Streaming daje djelomične strukturirane snimke za sučelje, a zatim prosljeđuje konačni tekst kroz ista vrata, novosti, prosuđivače i distinktivnosti kao i put skupa. Dovršeni tok povezuje aktere pomoću trajnog identifikatora umjesto premještanja modela SwiftData koji se ne može poslati. Pozivatelj rješava taj identifikator na vlastitom akteru.

Umeće se samo prihvaćeni tekst. Zapis je autorski napisan kao RiseHush, označen kaoizvor = .generatediisPublicDomain = false, označen svojim lokalitetom i obogaćen lokalno izračunatim metapodacima. Ako spremanje ne uspije, prolazni umetci se brišu prije nego što se pogreška vrati.

[5][10]

Uzemljite vratara s tri alata samo za čitanje

Pitaj RiseHush nije dopušteno izmišljati stanje knjižnice osobe. Appleov API za pozivanje alata omogućuje zahtjevu sesije sužavanje funkcija aplikacije i uključivanje njihovih vraćenih podataka. Aplikacija izlaže tri ograničena alata samo za čitanje; nijedan ne doseže RiseHush poslužitelj.

Argumenti alata i izlazne veličine su ograničeni. Traženje spremljene ponude vraća najviše osam rezultata, pretraživanje kataloga najviše pet, a ukupni izlaz alata je ograničen. Alat za spremljene citate može vratiti nedavne podudarne stavke, ali ne prihvaća kalendarski raspon—tako da proizvod ne bi trebao obećavati da model može odgovoriti "što sam spremio prošli tjedan?"

  • Pretraga ponuda u katalogu

    Pretražuje skupni katalog ponuda prema raspoloženju, kategoriji ili temi. Ne traži od modela da izmisli izvor.

  • Spremljeno traženje ponude

    Traži vlastite spremljene i omiljene citate osobe u lokalnoj pohrani.

  • Status niza

    Čita lokalni niz inspiracije kako bi Ask RiseHush mogao odgovoriti na ograničeno osobno pitanje.

[6]

Ponašanje pri kvaru je dio arhitekture

Dostupnost nije Booleova vrijednost. Kompatibilni uređaj možda još uvijek ima onemogućen Apple Intelligence, sredstva modela u pripremi ili jezik koji model sustava ne podržava. Generiranje vremena izvođenja također može odbiti, udariti u zaštitnu ogradu, prekoračiti kontekst, biti prigušeno, naići na istodobni zahtjev, neuspješno strukturirano analiziranje ili istek vremena.

RiseHush preslikava te slučajeve u ograničeno ponašanje proizvoda. Generiranje prednjeg plana ima proračun od 45 sekundi, Siri 20 sekundi, a generiranje bazena u pozadini 120 sekundi. Odabrana knjižnica ostaje iskrena zamjena; aplikacija nikada ne pohranjuje prozu rezerviranog mjesta kao da je model uspio.

Promatrano grananje i rezultirajuće ponašanje proizvoda
SignalPonašanje
Uređaj ne ispunjava uvjete ili je Apple Intelligence onemogućenGeneracija je nedostupna. Postojeća odabrana biblioteka ostaje upotrebljiva bez pretvaranja da je došlo do odgovora modela.
Elementi modela nisu spremniZahtjev prijavljuje stanje nije spreman. Nakon što su prisutni Appleovi elementi modela, sam zaključak ne zahtijeva RiseHush poslužitelj.
Traženi jezik nije podržanPut koji je sposoban za prevođenje može u potpunosti otvoriti engleski nacrt i prevesti ga lokalno tamo gdje Appleov okvir za prevođenje podržava taj par; u suprotnom aplikacija zadržava odabranu zamjenu. Prevedeni tekst se provjerava za neprazan rezultat, ali ne ponavlja cijeli ciljni jezik vrata, novosti i hrpa prosuđivača.
Zaštitna ograda, odbijanje, ograničenje brzine, raščlanjivanje, kontekst, istovremenost ili pogreška vremenskog ograničenjaPutanja strujanja ne vrti se kroz neograničeni ponovni pokušaj. Ne vraća generiranog kandidata i dopušta proizvodu da se čisto vrati.
Nacrt ne zadovoljava prag kvaliteteStaza konačnog skupa može pokušati s drugom skicom; prijenos uživo prekida umjesto da animira drugi odgovor. Odbijeni tekst se ne sprema.
SwiftData spremanje nije uspjeloUsluga uklanja svoje prolazne umetke i prikazuje kvar postojanosti umjesto ostavljanja poluspremljene ponude.

[2][3][7]

Protokol ponovljivosti, bez izmišljenih rezultata

Protokol u nastavku odvaja inspekciju izvora od provjere uređaja uživo. Zabilježite hardver, verziju OS-a, lokalizaciju, stanje Apple Intelligence-a, spremnost modela, brzu postavku, proteklo vrijeme, terminalnu granu, razlog odbijanja i ishod postojanosti za svako pokretanje. Appleovi instrumenti temeljnih modela mogu razotkriti ponašanje upita, alata, tokena i latencije tijekom stvarne sesije.

Strojno čitljiva verzija dostupna je kaoFoundation Models evaluacijski protokol (JSON). Sadrži matricu i ugovor o polju, a ne izmišljena mjerenja. Kada se odobreno trenutno pokretanje fizičkog uređaja, dodajte njegove anonimizirane retke i objavite skupne vrijednosti prihvaćanja, vremenskog ograničenja i latencije s točnim uređajem i OS-om.

  1. Koristite kompatibilni hardver s podržanim OS-om. Test Apple Intelligence omogućen i spreman, onemogućen i još uvijek se preuzima.
  2. Ponovite s podržanim jezikom i nepodržanim jezikom; provjerite razlikuje li aplikacija podršku modela od opće prihvatljivosti uređaja.
  3. Nakon što su sredstva modela spremna, ponovite u načinu rada u zrakoplovu i potvrdite da nije potrebna krajnja točka generacije RiseHush-a.
  4. Promatrajte djelomični tekst tijekom interakcije sa sučeljem; potvrdite da pomicanje i kontrole ostaju osjetljivi tijekom okretanja modela.
  5. Feedovi koji su prazni, sastavljeni su od više rečenica, predugački, omotani navodnicima, na pogrešnom jeziku, klišeizirani ili gotovo duplikati; nijedan ne bi trebao postati spremljeni generirani redovi.
  6. Okidač odbijanja suca i ograničeni timeout; potvrdite da nema odbijene skice i da odabrano iskustvo ostaje dostupno.
  7. Prisilno lokalno spremanje neuspješno u testnoj trgovini; potvrditi da su umetnuti modeli vraćeni.
  8. Vježbajte Siri s njezinim kraćim vremenskim proračunom i provjerite čitaju li widgeti samo postojane podatke umjesto da počnu generirati u proširenju.

[8]

Što ova arhitektura ne dokazuje

Kvalitetan cjevovod može učiniti neuspjeh vidljivim i smanjiti nepostojanost. Ne može pretvoriti mali jezični model na uređaju u povijesni izvor, dokazati da rečenica nikada nigdje nije napisana ili jamčiti ukus. Generirani redovi stoga se nikada ne pripisuju povijesnim autorima i nikada ne ulaze u katalog javne domene.

Prijevod zaslužuje posebno upozorenje. Za lokalizaciju koju izravno ne podržavaju Foundation Models, izborna staza u potpunosti zatvara engleski nacrt i zatim koristi Appleov okvir za prevođenje na uređaju gdje je par dostupan. Prevedeni rezultat se provjerava radi nepraznog odgovora i održava se s novim metapodacima, ali trenutno ne ponavlja puna vrata ciljnog jezika, novost i slijed ocjenjivanja nakon prijevoda. Taj je put zamjena, a ne dokaz jednake kvalitete izravne generacije.

Ažuriranja modela i OS-a mogu promijeniti dostupnost, latenciju, ponašanje odbijanja i distribuciju izlaza. Apple preporučuje ponovno pregledavanje upita i evaluacije kako se temeljni modeli mijenjaju. Stoga se RiseHush-ova testna matrica mora ponovno pokrenuti nakon ažuriranja materijalne platforme, umjesto da se ova stranica tretira kao trajni benchmark dokaz.

  • Model sustava ne koristi se kao izvor činjenica o povijesnim citatima ili atribuciji autora.
  • Strukturirani izlaz i drugi prolaz modela smanjuju načine kvara; oni ne dokazuju da je rečenica duboka, originalna u globalnom smislu ili prikladna za svakoga.
  • Sloj semantičke novosti prolazi kada je njegov omeđeni katalog prazan ili su usporedbe ugrađene nedostupne; smanjuje poznate gotovo duplikate, ali ne potvrđuje globalnu originalnost.
  • Izvanmrežno generiranje ovisi o kompatibilnom hardveru, omogućenoj Apple Intelligence, podržanom jezičnom ponašanju i resursima modela koji su već spremni.
  • Opcijski naučeni filtar okusa Core ML kalibriran je za engleski, njemački, španjolski, francuski, talijanski i portugalski; druge lokalizacije i dalje primaju determinističke slojeve i slojeve temeljene na modelu koji ih podržavaju.
  • Lokalno prevedena zamjena nije ekvivalentna izravnom stvaranju ciljanog jezika: trenutni prevedeni rezultat ne ponavlja svaki sloj kvalitete nakon prijevoda.
  • Ažuriranja OS-a i modela mogu promijeniti latenciju i distribuciju izlaza, tako da se matrica uređaja mora ponovno pokrenuti nakon promjene materijalne platforme.
  • Ova stranica opisuje trenutnu arhitekturu, a ne obećanje da svaka površina platforme pokreće temeljne modele. Widgeti namjerno troše postojane rezultate.

[3][9][11]

Šalje li RiseHush upite za generiranje ponuda vlastitom poslužitelju?

Ne. Na podržanim uređajima na kojima je model sustava dostupan, skica ponude i propusnice za kvalitetu pokreću se s Appleovim okvirima na uređaju. RiseHush nema krajnju točku zaključivanja za ovaj put.

Jamči li @Generable dobru ili originalnu ponudu?

Ne. Ograničava oblik strukturiranog izlaza. RiseHush i dalje primjenjuje determinističko oblikovanje i jezična pravila, semantičko otkrivanje gotovo duplikata kada su dostupna usporedna ugrađivanja, zasebnu sesiju ocjenjivanja, bodovanje razlikovnosti i konačno ponašanje odbijanja.

Može li drugi programer reproducirati točnu generiranu rečenicu?

Nije pouzdano. Izlaz jezičnog modela je nedeterministički i može se mijenjati s ažuriranjem modela ili OS-a. Jedinica koja se može reproducirati je protokol spremnosti, rasporeda, ulaza, vremenskog ograničenja i postojanosti - a ne identična proza.

Dobiva li svaki podržani jezik identičnu putanju kvalitete?

Ne. Izravno podržane lokalne postavke dobivaju zajednički put generiranja, dok je naučeni Core ML filtar kalibriran za šest jezika. Neobavezna lokalno prevedena zamjena počinje od zatvorenog engleskog nacrta, ali ne ponavlja svaki sloj kvalitete ciljnog jezika nakon prijevoda.

  1. Apple Developer Documentation — Foundation Models framework overview: direct access to Apple’s on-device language model
  2. Apple Developer Documentation — SystemLanguageModel availability and unavailable reasons
  3. Apple Developer Documentation — supporting languages and locales with Foundation Models
  4. Apple Developer Documentation — generating Swift data structures with guided generation
  5. Apple Developer Documentation — LanguageModelSession, responses, and streaming
  6. Apple Developer Documentation — expanding generation with tool calling
  7. Apple Developer Documentation — improving the safety of generative model output
  8. Apple Developer Documentation — analyzing Foundation Models runtime performance
  9. Apple Developer Documentation — Foundation Models framework updates
  10. Apple Developer Documentation — SwiftData
  11. Apple Developer Documentation — Translation framework