Eining 3 / 11

Straumspilun og löng svör

Hagnaður:

  • Getur útskýrt hvað streymi er, tegundir viðburða og hvers vegna það er þörf.
  • max_tokens skilur tímamörk og 128K langt framleiðslusamband
  • Getur valið rétt á milli streymandi og streymandi beiðna í samræmi við vinnuálag

Þú gætir hafa tekið eftir því að í spjallviðmóti er svarið "sláað inn" orð fyrir orð. Þetta er ekki sjónræn blóma; Það er afleiðing af tækni sem kallast streymi og er oft skylda fyrir framleiðslugæða LLM samþættingu. Í þessari einingu muntu læra hvað flæði er, hvaða atburði það samanstendur af, tengsl þess við langa framleiðslu og tímamörk og hvenær á að nota flæði og hvenær ekki. Við munum fara yfir efnið í gegnum raunveruleg verkefni fagmanns - lifandi aðstoðarmaður, langur skýrslugerð, lotuvinnsla.

Hvað er Flow?

Með beiðni sem ekki streymir (samstillt) bíðurðu þar til líkanið framleiðir allt svarið; Þegar svarið er tilbúið kemur það í heilu lagi. Í streymisbeiðni sendir þjónninn svarið stykki fyrir stykki eftir því sem líkanið býr til. Tæknilega séð er þetta gert með viðburðum sem sendar eru frá miðlara (SSE — Server-Sent Events, aðferð þar sem þjónninn sendir litla atburði í röð yfir opna tengingu).

Munurinn kemur í ljós í upplifun notenda: við svar sem tekur 8 sekúndur starir notandinn sem ekki er á straum á auðan skjá í 8 sekúndur; Straumnotandinn sér fyrstu orðin eftir ~0,5 sekúndur og textinn byrjar að flæða. Skynjuð töf - biðin sem notandinn finnur fyrir - minnkar verulega á meðan heildartíminn er óbreyttur.

Tegundir flæðisviðburða

Flæði er atburðarrás. Huglægt er dæmigert flæði svona:

atvik

Merking

message_start

Viðbrögðin hófust; Hausupplýsingar eins og gerð og auðkenni eru komnar.

content_block_start

Innihaldsblokk (t.d. texti) byrjaði

content_block_delta

Lítill texti (delta) kom; þú safnar þessum

content_block_stop

blokk lokið

skilaboð_delta

Uppfærðar lokaupplýsingar eins og stop_reason og notkun

skilaboð_stopp

Svaraðu yfir

Kóðinn þinn sameinar texta í röð í content_block_delta atburðum; þú endar með nákvæmlega sama texta og svarið sem ekki er streymt. notkun (táknnúmer) eru venjulega skýr í lok flæðisins - þú fylgist með kostnaði þegar flæðinu er lokið.

Ábending: Flest opinber SDK (hugbúnaðarþróunarsett — tilbúið bókasafn veitunnar) bjóða upp á aðstoðarmann sem safnar straumnum fyrir þig (t.d. stream.get_final_message()). Þú þarft ekki að stjórna öllum lögunum handvirkt; Notaðu þennan hjálpara ef þú vilt allan textann, vinna einstaka atburði en fyrir lifandi prentun.

Löng svör, max_tokens og Timeout

Önnur og tæknilegri orsök streymisins er tíminn. Ef HTTP beiðni er ekki lokið innan ákveðins tíma, sleppir viðskiptavinurinn tengingunni. Þegar þú biður um mikla framleiðslu frá líkaninu (t.d. skýrslu um 40.000 tákn), gæti símtalið sem ekki flæðir farið yfir þessi mörk og tíminn rennur út - beiðnin mun mistakast og þú verður að borga fyrir táknin sem myndast.

Nútíma gerðir geta gefið út allt að 128.000 tákn í einni beiðni. En þumalputtareglan er skýr: notaðu strauma ef `max_tokens` gildið er hátt (u.þ.b. yfir 16.000). Straumspilun heldur tengingunni á lífi og kemur í veg fyrir tímaleysi; Þú munt líka sjá framfarir samstundis.

  • `max_tokens`: Hámarks framleiðsla tákn sem líkanið getur framleitt; hörðu lofti. Ef truflun á sér stað er stop_reason max_tokens skilað.
  • Samhengisgluggi: Glugginn þar sem summan af inntak + úttak verður að passa. max_tokens er þak úttaksins; Ekki blanda þessu tvennu saman.
Varúð: Að henda beiðnum sem ekki flæðir með stórum max_tokens er klassísk mistök í framleiðslu. Án svars fellur tengingin niður, notandinn sér villu og táknkostnaðurinn fer til spillis. Langt úttak = straumur.

Hvenær á að flæða og hvenær ekki?

Staða

val

Hvers vegna

Lifandi spjall / aðstoðarmaður

flæði

Skynjuð töf minnkar, notandi sér framfarir

Löng skýrsla / skjalagerð

flæði

Kemur í veg fyrir tímamörk, ber mikið afköst á öruggan hátt

Stutt flokkun (t.d. stakt orðamerki)

ekkert flæði

Framleiðslan er þegar lítil; auka flókið óþarft

Lotuvinnsla

flæðilaust/lotu

Niðurstöður eru ekki sýndar samstundis; Sjá einingu 7

Sjálfvirkniskref (í bakgrunni)

Yfirleitt ekkert flæði

Þú sendir niðurstöðuna í næsta skref, engin lifandi sýning

Afritanleg hvetja/sniðmát

Straumurinn sjálfur er ekki vísbending, en leiðbeiningar eru mikilvægar til að stjórna framleiðslunni sem straumurinn framleiðir. Í löngum og flæðandi framleiðslu eykur það bæði gæði og rekjanleika að þvinga uppbygginguna að framan.

# Skiptu löngu skýrslunni í hluta (svo að framvindan sé sýnileg í flæðinu) Skrifaðu skýrsluna með eftirfarandi fyrirsögnum, nákvæmlega í þessari röð. Byrjaðu hverja fyrirsögn á '## ':## Samantekt## Niðurstöður## Ráðleggingar## Næstu skref

# Gefðu upp marklengd til að forðast styttingu í langri framleiðslu. Heildartextinn verður um 800 orð. Haltu hlutunum í jafnvægi; Ekki skilja eftir hálfa setningu í lokin.

# Gefðu fyrstu setninguna strax fyrir streymisaðstoðarmanninn. Gefðu fyrst beint svar í einni setningu, farðu síðan í smáatriði. Þannig að notandinn sér strax niðurstöðu á meðan hann bíður.

# Hafðu langa úttakið skipulagt (svo hægt sé að flokka það seinna) Úttakið úttakið í þessum hlutum og merktu hvern hluta með sérstökum '### ' haus svo ég geti flokkað það forritunarlega: ### INNGANGUR ### BODY ### HEIMILDIR

Veik kvaðning / Sterk hvetja (löng framleiðsla)

# WEAK Skrifaðu langa og ítarlega skýrslu um þetta efni.

# STERK Skrifaðu um það bil 900 orða skýrslu um þetta efni. Fyrirsagnir: ## Samantekt, ## Greining, ## Áhætta, ## Ráðleggingar. Hver fyrirsögn ætti að vera að hámarki 3 málsgreinar. Ekki skilja eftir hálfa setningu í lokin.

Öflug útgáfa; Það ákvarðar lengd, uppbyggingu og frágangsgæði fyrirfram. Þegar kaflar koma í flæðið sér notandinn framfarirnar skýrt og stjórnar lengdinni sjálfur gegn hættu á truflunum á líkaninu.

Þrjú Mini Cass

Mál 1 - Kvörtun á tómum skjá. Aðstoðarmaður ráðgjafateymis var að svara án flæðis; meðalsvar tekur 7 sekúndur, notendur spyrja "frýs það?" kvartaði hann. Þegar ég kom inn í flæðið kom fyrsta orðið eftir ~0,6 sekúndur; Heildartíminn var sá sami, en „hægar“ kvartanir hurfu næstum.

Mál 2 — Úrelt skýrsla. Fjármálateymi var að láta framleiða 30 blaðsíðna ársfjórðungsskýrslu; Með max_tokens: 30000, myndi engin flæðisbeiðnin festast í 60 sekúndna biðtíma biðlara, beiðnin myndi mistakast - og mynduð tákn yrðu skrifuð á reikninginn. Þeir fóru með straumnum; tengingin hélst lifandi, skýrslan var afhent í heild sinni og sóun á kostnaði var eytt.

Mál 3 — Óþarfa flæði. Aðgerðarteymi var að merkja móttekinn tölvupóst sem „brýn/venjulegur“; Úttakið var eitt orð, en þeir notuðu venjulega flæði. Flæðið gaf engan ávinning í eins orðs svarinu, sem gerði kóðann óþarflega flókinn. Þegar ég skipti yfir í flæðislaust einfaldaðist kóðinn og hegðunin hélst óbreytt. Lærdómur: streymi er dýrmætt í langtíma/lifandi úttak, ekki alls staðar.

Algeng mistök

  • Ekki nota strauma í langri framleiðslu: Tímamörk og sóun á táknkostnaði.
  • Notkun streymis í stuttum útgangi: Óþarfa flókið, enginn ávinningur.
  • Ekki er hakað við „stop_reason“ í lok straumsins: stytta svarið með max_tokens er talið lokið.
  • Röng sameining deltas: Handvirk samantekt með SDK hjálparanum framleiðir villu í röð/hlutum sem vantar.
  • Reynt að lesa „notkun“ í miðjum straumi: Táknnúmer verða venjulega skýr í lokin; Fylgstu með kostnaði í lokin.
  • Að misskilja streymi til að draga úr kostnaði: Straumspilun bætir upplifun og úthald; Það breytir ekki táknverðinu.

Dýpra: Flæðisbrot og seiglu

Straumspilun er tenging í beinni; Þetta er bæði styrkur þess og varnarleysi. Ef tengingin fellur niður í miðjunni (netsveifla, biðlaratími) heldurðu textanum sem þú hefur safnað hingað til, en svarið verður ófullkomið. Framleiðslugæða streymisviðskiptavinur ætti að vera tilbúinn fyrir þetta: hann ætti ekki að meðhöndla hlutatextann sem „lokið svar“, né ætti hann að líta á svarið sem lokið fyrr en það sér message_stop atburðinn.

Önnur fíngerðin er sú að flæðið breytir ekki kostnaðinum. Hvort sem þú færð svar með eða án streymis hefur ekki áhrif á táknverðið; flæði bætir aðeins upplifunina og úthaldið. Svo „ef við förum að streyma, verða þeir þá ódýrari? Svarið við spurningunni er nei - fyrir kostnað, skoðaðu 5. og 6. einingu (líkanaval, skyndiminni).

Þriðja atriðið er að ná hagnýtu jafnvægi: með lifandi aðstoðarmönnum er hröð komu fyrsta orðsins (skynja seinkun) mikils metin; Þess vegna, að biðja líkanið um að slá svarið beint inn og gefa stutta niðurstöðu fyrst (í gegnum kerfishvetninguna í 4. einingu) margfaldar ávinninginn af flæðinu. Ef notandinn sér eitthvað þýðingarmikið á fyrstu sekúndu bíður hann þolinmóður eftir smáatriðum sem fylgja. Á hinn bóginn hefur flæðið ekkert framlag til verkanna sem keyra í bakgrunni, afrakstur þeirra fer í næsta sjálfvirkniþrep; Eina viðmiðið þar er að verkinu sé lokið á réttan og fullan hátt.

Í stuttu máli

Straumspilun sækir svarið stykki fyrir stykki, dregur úr skynjaðri leynd og kemur í veg fyrir tímamörk á stórum afköstum. Næstum skylda fyrir lifandi aðstoðarmann og langa skjalaframleiðslu; Það er óþarfi fyrir stutta/bakgrunnsvinnu. Í löngum framleiðslu eykur það bæði gæði og rekjanleika að setja uppbygginguna og lengdina að framan með hvetjandi hætti; Þegar flæðinu er lokið eru stop_reason og notkun örugglega athugað.

Umsóknarverkefni

Veldu tvær aðstæður: eina lifandi/langa (t.d. tilkynna viðskiptavini), eina stutta/bakgrunn (t.d. merking). (1) Ákveða og rökstyðja hvort þú munt nota flæði fyrir hvern. (2) Skrifaðu hvetja sem setur uppbyggingu langa handritsins (fyrirsagnir + marklengd). (3) Ákvarða max_tokens gildi. (4) Skráðu hvaða athuganir þú munt framkvæma með stop_reason og notkun í lok flæðisins.

gátlisti

  • [ ] Ég get útskýrt hvað streymi er og hvernig það dregur úr skynjaðri leynd.
  • [ ] Ég skildi helstu atburðategundir straumsins og delta sameiningarinnar.
  • [ ] Ég veit um nauðsyn þess að streyma með stórum max_tokens og tímatengingarsambandinu.
  • [ ] Ég get ákveðið í hvaða vinnuálagi ég mun nota streymi og í hvaða ekki.
  • [ ] Ég get athugað stop_reason og notkun í lok straumsins.