Kitengo 3 / 11

Utiririshaji na Majibu marefu

Faida:

  • Inaweza kueleza utiririshaji ni nini, aina za hafla na kwa nini inahitajika.
  • max_tokens hushika muda wa kuisha na uhusiano wa pato la 128K
  • Inaweza kufanya chaguo sahihi kati ya maombi ya kutiririsha na yasiyo ya kutiririsha kulingana na mzigo wa kazi

Huenda umegundua kuwa katika kiolesura cha gumzo, jibu "hupigwa" neno baada ya neno. Huu si ushamiri wa kuona; Ni matokeo ya mbinu inayoitwa utiririshaji na mara nyingi ni lazima kwa ujumuishaji wa ubora wa uzalishaji wa LLM. Katika kitengo hiki, utajifunza mtiririko ni nini, inajumuisha matukio gani, uhusiano wake na matokeo ya muda mrefu na muda wa kuisha, na wakati wa kutumia mtiririko na wakati usiofaa. Tutashughulikia mada kupitia kazi halisi za mtaalamu - msaidizi wa moja kwa moja, utoaji wa ripoti ndefu, usindikaji wa kundi.

Flow ni nini?

Ukiwa na ombi lisilo la kutiririsha (synchronous), unasubiri hadi kielelezo kitoe jibu zima; Jibu likiwa tayari, linafika kwa kipande kimoja. Katika ombi la utiririshaji, seva hutuma jibu kipande baada ya kipande jinsi modeli inavyozalisha. Kitaalam, hii inafanywa na matukio yaliyotumwa na seva (SSE - Matukio Iliyotumwa na Seva, njia ambayo seva hutuma matukio madogo kwa mfululizo juu ya muunganisho wazi).

Tofauti inakuwa dhahiri katika matumizi ya mtumiaji: kwenye jibu linalochukua sekunde 8, mtumiaji asiyetiririsha anakodolea macho skrini tupu kwa sekunde 8; Mtumiaji anayetiririsha huona maneno ya kwanza katika ~ sekunde 0.5 na maandishi huanza kutiririka. Muda unaotambulika—usubiri anaohisi mtumiaji—hupunguzwa sana, ilhali muda wote haujabadilika.

Aina za Matukio ya Mtiririko

Mtiririko ni mlolongo wa matukio. Kwa kweli, mtiririko wa kawaida huenda kama hii:

tukio

Maana

ujumbe_anza

Majibu yakaanza; Taarifa za kichwa kama vile modeli na kitambulisho zimefika.

content_block_start

Sehemu ya maudhui (k.m. maandishi) imeanza

content_block_delta

Kipande kidogo cha maandishi (delta) kilifika; unakusanya hizi

content_block_stop

block imekamilika

ujumbe_delta

Taarifa za mwisho zilizosasishwa kama vile stop_reason na matumizi

ujumbe_acha

Jibu juu

Msimbo wako unachanganya kwa mpangilio vipande vya maandishi katika maudhui_block_delta matukio; unaishia na maandishi sawa na jibu lisilotiririshwa. matumizi (nambari za ishara) kwa kawaida huwa wazi mwishoni mwa mtiririko - unafuatilia gharama mara tu mtiririko unapoisha.

Kidokezo: SDK nyingi rasmi (Kifaa cha Ukuzaji Programu - maktaba iliyotengenezwa tayari ya mtoa huduma) hutoa msaidizi anayekusanyia mtiririko (k.m. stream.get_final_message()). Sio lazima udhibiti nyimbo zote wewe mwenyewe; Tumia msaidizi huyu ikiwa unataka maandishi kamili, shughulikia matukio ya mtu binafsi lakini kwa uchapishaji wa moja kwa moja.

Majibu marefu, max_tokens na Timeout

Sababu ya pili na ya kiufundi zaidi ya utiririshaji ni muda umeisha. Ikiwa ombi la HTTP halijakamilika ndani ya muda fulani, mteja huacha muunganisho. Unapoomba pato kubwa kutoka kwa mfano (kwa mfano, ripoti ya tokeni 40,000), simu isiyo ya mtiririko inaweza kuzidi kikomo hiki na kuisha muda - ombi litashindwa, na utahitaji kulipa kwa ishara zinazozalishwa.

Mifano ya kisasa inaweza kutoa hadi tokeni 128,000 kwa ombi moja. Lakini kanuni ya kidole gumba iko wazi: tumia mitiririko ikiwa thamani ya `max_tokens` ni ya juu (takriban zaidi ya 16,000). Utiririshaji huweka muunganisho hai na huzuia kuisha kwa muda; Pia utaona maendeleo mara moja.

  • `max_tokens`: Tokeni za juu zaidi ambazo muundo unaweza kutoa; dari ngumu. Ukatizaji ukitokea, stop_reason max_tokens hurejeshwa.
  • Dirisha la muktadha: Dirisha ambalo jumla ya ingizo + pato lazima itoshee. max_tokens ni dari ya pato; Usichanganye hizo mbili.
Tahadhari: Kutuma maombi yasiyo ya mtiririko kwa kutumia max_tokens kubwa ni kosa la kawaida katika uzalishaji. Bila jibu, muunganisho unashuka, mtumiaji anaona hitilafu, na gharama ya ishara inapotea. Pato la muda mrefu = mkondo.

Wakati wa Kutiririka na Wakati Sio?

Hali

upendeleo

Kwa nini

Gumzo la moja kwa moja / msaidizi

mtiririko

Muda wa kusubiri unaotambulika unapungua, mtumiaji anaona maendeleo

Ripoti ndefu / utengenezaji wa hati

mtiririko

Huzuia muda kuisha, hubeba pato kubwa kwa usalama

Uainishaji mfupi (k.m. lebo ya neno moja)

hakuna mtiririko

Pato tayari ni ndogo; ugumu wa ziada usiohitajika

Usindikaji wa kundi

isiyo na mtiririko/kundi

Matokeo hayaonyeshwi mara moja; Angalia sehemu ya 7

Hatua ya otomatiki (chinichini)

Kwa kawaida hakuna mtiririko

Unapitisha matokeo kwa hatua inayofuata, hakuna onyesho la moja kwa moja

Vielelezo/Vielelezo vinavyoweza kunakiliwa

Mtiririko wenyewe sio kidokezo, lakini vidokezo ni muhimu kwa udhibiti wa matokeo yanayotolewa na mtiririko. Katika uzalishaji wa muda mrefu na wa mtiririko, kuweka muundo kutoka mbele huongeza ubora na ufuatiliaji.

# Gawa ripoti ndefu katika sehemu (ili maendeleo yaonekane katika mtiririko) Andika ripoti yenye vichwa vifuatavyo, kwa mpangilio huu. Anza kila kichwa kwa '## ':## Muhtasari## Matokeo## Mapendekezo## Hatua zinazofuata

# Toa urefu wa lengo ili kuzuia kupunguzwa kwa uzalishaji mrefu. Nakala ya jumla itakuwa takriban maneno 800. Weka sehemu kwa usawa; Usiache nusu ya sentensi mwishoni.

# Toa sentensi ya kwanza mara moja kwa msaidizi wa utiririshaji. Toa jibu la moja kwa moja la sentensi moja kwanza, kisha ueleze kwa undani. Kwa hivyo mtumiaji huona matokeo ya haraka wakati wa kusubiri.

# Weka towe refu likiwa limepangwa (ili liweze kuchanganuliwa baadaye) Toa matokeo katika sehemu hizi na uweke alama kwa kila sehemu kwa kichwa tofauti cha '###' ili niweze kuichanganua kwa utaratibu: ### UTANGULIZI ### MWILI ### VYANZO

Mwongozo dhaifu / Mwongozo wa nguvu (uzalishaji wa muda mrefu)

# WEAKWandika ripoti ndefu na ya kina juu ya mada hii.

# STRONG Andika ripoti ya takriban maneno 900 kuhusu mada hii. Vichwa: ## Muhtasari, ## Uchambuzi, ## Hatari, ## Mapendekezo. Kila kichwa kinapaswa kuwa na aya zisizozidi 3. Usiache nusu ya sentensi mwishoni.

Toleo la nguvu; Inaamua urefu, muundo na ubora wa kumaliza mapema. Kadiri sehemu zinavyokuja katika mtiririko, mtumiaji huona maendeleo kwa uwazi na anadhibiti urefu mwenyewe dhidi ya hatari ya kukatizwa kwa muundo.

Kesi Tatu Ndogo

Kesi 1 - Malalamiko ya skrini tupu. Msaidizi wa mteja wa timu ya ushauri alikuwa akijibu bila mtiririko; majibu ya wastani huchukua sekunde 7, watumiaji huuliza "inaganda?" alilalamika. Mara tu nilipoingia kwenye mtiririko, neno la kwanza lilikuja kwa sekunde ~0.6; Muda wote ulibaki sawa, lakini malalamiko ya "polepole" karibu kutoweka.

Kesi ya 2 - Ripoti iliyopitwa na wakati. Timu ya fedha ilikuwa na ripoti ya robo ya kurasa 30 iliyotolewa; Na max_tokens: 30000, ombi la kutotiririsha lingekwama katika muda wa mteja wa sekunde 60, ombi lingeshindwa - na tokeni zinazozalishwa zingeandikwa kwa ankara. Walikwenda na mtiririko; muunganisho ulibakia moja kwa moja, ripoti iliwasilishwa kwa ukamilifu, na gharama zilizopotea ziliondolewa.

Kesi ya 3 - mtiririko usiohitajika. Timu ya operesheni ilikuwa ikitambulisha barua pepe zinazoingia kama "haraka/kawaida"; Matokeo yalikuwa neno moja, lakini kwa kawaida walitumia mtiririko. Mtiririko haukutoa faida yoyote katika jibu la neno moja, na kufanya msimbo kuwa tata isivyofaa. Nilipobadilisha kuwa isiyo na mtiririko, nambari imerahisishwa na tabia ikabaki sawa. Somo: utiririshaji ni muhimu katika matokeo ya muda mrefu/ya moja kwa moja, si kila mahali.

Makosa ya kawaida

  • Kutotumia mitiririko kwa muda mrefu: Muda umeisha na gharama ya tokeni iliyopotea.
  • Kutumia utiririshaji kwa muda mfupi: Utata usiohitajika, faida sifuri.
  • Si kuangalia `stop_reason` mwishoni mwa mtiririko: jibu lililopunguzwa kwa max_tokens linachukuliwa kuwa limekamilika.
  • Kuunganisha delta kwa njia isiyo sahihi: Muhtasari wa mwongozo na kisaidizi cha SDK hutoa hitilafu ya mfuatano/kukosekana kwa sehemu.
  • Kujaribu kusoma `matumizi` katikati ya mtiririko: Nambari za ishara kawaida huwa wazi mwishoni; Fuatilia gharama mwishoni.
  • Kutiririsha kimakosa kwa kupunguza gharama: Kutiririsha kunaboresha uzoefu na ustahimilivu; Haibadilishi bei ya ishara.

Kina zaidi: Mapumziko ya Mtiririko na Ustahimilivu

Utiririshaji ni muunganisho wa moja kwa moja; Hii ni nguvu yake na udhaifu wake. Ikiwa muunganisho unashuka katikati (kubadilika kwa mtandao, kuisha kwa mteja), utahifadhi maandishi ambayo umekusanya hadi sasa, lakini jibu litakuwa pungufu. Kiteja cha utiririshaji cha ubora wa uzalishaji kinapaswa kutayarishwa kwa hili: haipaswi kutilia maanani maandishi kidogo kama "jibu lililokamilika", wala haipaswi kuzingatia jibu kuwa limekamilika hadi ione tukio la_stop.

Ujanja wa pili ni kwamba mtiririko haubadilishi gharama. Iwapo utapokea jibu kwa kutumia au bila kutiririsha haliathiri bei ya tokeni; mtiririko unaboresha tu uzoefu na uvumilivu. Kwa hivyo "tukienda kutiririsha, zitakuwa nafuu?" Jibu la swali ni hapana - kwa gharama, angalia kitengo cha 5 na 6 (uteuzi wa mfano, cache).

Jambo la tatu ni kupiga usawa wa vitendo: pamoja na wasaidizi wa kuishi, kuwasili kwa haraka kwa neno la kwanza (kuonekana kuchelewa) kunathaminiwa sana; Kwa hiyo, kuuliza mfano kuingiza jibu moja kwa moja na kutoa matokeo mafupi kwanza (kupitia mfumo wa haraka katika kitengo cha 4) huzidisha manufaa ya mtiririko. Ikiwa mtumiaji ataona kitu cha maana katika sekunde ya kwanza, anasubiri kwa subira maelezo yafuatayo. Kwa upande mwingine, mtiririko hauna mchango kwa kazi zinazoendesha nyuma, matokeo ambayo huenda kwenye hatua inayofuata ya automatisering; Kigezo pekee ni kwamba kazi imekamilika kwa usahihi na kabisa.

Kwa muhtasari

Utiririshaji hurejesha majibu sehemu baada ya nyingine, kupunguza muda unaotambulika na kuzuia kukatika kwa muda kwa matokeo makubwa. Karibu lazima kwa msaidizi wa kuishi na utengenezaji wa hati ndefu; Sio lazima kwa kazi fupi/msingi. Katika uzalishaji wa muda mrefu, kuweka muundo na urefu kutoka mbele kwa haraka huongeza ubora na ufuatiliaji; Mtiririko unapokamilika, stop_reason na utumiaji huangaliwa kwa hakika.

Jukumu la maombi

Chagua hali mbili: moja kwa moja/refu (k.m. ripoti kwa mteja), moja fupi/chinichini (k.m. kuweka lebo). (1) Amua na uhalalishe ikiwa utatumia mtiririko kwa kila moja. (2) Andika kidokezo ambacho kinaweka muundo wa hati ndefu (vichwa + urefu wa lengo). (3) Bainisha thamani za max_tokens. (4) Orodhesha ni ukaguzi gani utafanya na stop_reason na matumizi mwishoni mwa mtiririko.

orodha ya ukaguzi

  • [ ] Ninaweza kueleza utiririshaji ni nini na jinsi unavyopunguza muda unaotambulika.
  • [ ] Nilielewa aina za msingi za matukio ya kujiunga kwa mtiririko na delta.
  • [ ] Ninajua kuhusu hitaji la kutiririsha na max_tokens kubwa na uhusiano wa muda kuisha.
  • [ ] Ninaweza kuamua ni mzigo gani wa kazi nitatumia utiririshaji na ambao sitatumia.
  • [ ] Ninaweza kuangalia stop_reason na matumizi mwishoni mwa mtiririko.