Реасонинг-Еффорт Роутинг у АИ АПИ капији: Контрола токена размишљања, кашњења и трошкова међу добављачима
Модели способни за расуђивање излажу различите контроле за дубину размишљања, буџете токена, наплату и кашњење. Третирајте покушај размишљања као регулисану политику времена извршавања у мрежном пролазу, а не као лабаву поставку модела унутар сваке апликације.
1 мин читањаModel Gate Editorial Team
<п>Дубина расуђивања више није једноставна опција модела. Неки провајдери излажу нивое напора у стилу енум. Други откривају симболичне буџете, динамично размишљање или моделске породице у којима размишљање не може бити потпуно онемогућено. Видљиви одговор може бити кратак док скривено резоновање троши наплативе излазне токене. Ако сваки тим за апликацију поставља ове контроле директно, трошкови, кашњење и квалитет постају тешки за објашњење.п><п>Практичан одговор је преместити контролу размишљања и напора у АПИ пролаз. Мрежни пролаз треба да класификује радно оптерећење, да га мапира у контролу размишљања специфичног за провајдера, да спроведе буџете станара, да забележи стварну употребу образложења и учини да одлуке о нижој верзији буду видљиве у аналитици. ИД модела, ниво услуге, максимални учинак и дубина размишљања требало би да буду засебне димензије политике.п><х2>Проблем читача: Једноставни захтеви плаћају за дубоко резоновањех2><п>Тимови који усвајају моделе који су способни за расуђивање обично почињу са разумним циљем: побољшати квалитет на тешким задацима. Проблем се појављује касније, када се исте подразумеване вредности поново користе за екстракцију, кратке резимее, форматирање и класификацију. Овим захтевима није потребно скупо израчунавање времена тестирања, али га и даље могу покренути.п><п>Ово ствара три оперативна неуспеха:п><ул><ли><стронг>Непрозирност трошкова:стронг> корисник види кратак одговор, али књига садржи скривене токене за образложење или еквиваленте специфичне за добављача.ли><ли><стронг>Лагано изгледа да споро функционише као ток рада:ли><ли><стронг>Ла. зато што се напор у закључивању повећао иза истог псеудонима модела.ли><ли><стронг>Фрагментација политике:стронг> сваки тим производа учи различите параметре добављача и примењује различита ограничења.ли>ул><п>Политика образложења на нивоу мрежног пролаза решава проблем контроле пре него што он постане проблем са обрачуном.п><х2>Чињенице: Провајдери нису следећи. препоруке.п><ул><ли>АПИ-ји који подржавају ОпенАИ резоновање излажу објекат <цоде>реасонингцоде> за подржане моделе, укључујући вредности напора као што су <цоде>нонецоде>, <цоде>минималцоде>, <цоде>ловцоде>, <цоде>медиумцоде>, <цоде>хигхцоде> и <цоде>хигх Мањи напор може да смањи токене за размишљање и побољша брзину одговора.ли><ли>ОпенАИ документација наводи да <цоде>мак_оутпут_токенсцоде> може да ограничи укупан број генерисаних токена, укључујући и токене за резоновање и финалне излазне токене.ли><ли>Антропско проширено размишљање може да се омогући помоћу вредности <цоде>будгет_токенсцоде>. Токени размишљања се наплаћују као излазни токени и рачунају се према <цоде>мак_токенсцоде> заједно са видљивим текстом одговора.ли><ли>Антропска документација такође напомиње да се број наплаћених излазних токена можда не поклапа са бројем видљивих токена одговора, јер интерни токени размишљања могу да се наплаћују чак и када нису у потпуности видљиви.лиинг><ли>Гемини излазна стања размишљања могу укључити и мишљење прикен документа. токени, са пољима коришћења која раздвајају токене мисли и излазне токене.ли><ли>Контроле у стилу Гемини 2.5 укључују <цоде>тхинкингБудгетцоде>, са динамичким размишљањем на подржаним моделима и онемогућавањем нултог буџета на неким породицама модела. Неки модели не могу да онемогуће размишљање.ли><ли>Новија упутства за Гемини препоручују вредности <цоде>тхинкинг_левелцоде> као што су <цоде>минималницоде>, <цоде>нискицоде>, <цоде>средњицоде> и <цоде>високицоде> за моделе у стилу Гемини 3.к уместо необрађених ><бр>а>п>програмских буџета.п> изложите контроле образложења изворних добављача као једини уговор. Нису довољно стабилни, довољно преносиви или упоредиви за управљање са више провајдера.п><х2>Препорука: Направите профиле за расуђивање неутралних добављачах2><п>Дефинишите мали интерни речник који тимови производа могу да разумеју без читања сваке АПИ референце добављача.За већину мрежних пролаза, пет профила је довољно:п><табле><тхеад><тр><тх>Интерни профилтх><тх>Сврхатх><тх>Типична употребатх><тх>Положај политикетх>тр>тхеад><тбоди><тр><тд><цоде>нонецоде>тд><тд>Онемогући или минимизирајтд><тд>Онемогући или минимизира извлачење, где је подржано извлачење на минимум означавање, рутирањетд><тд>Подразумевано за једноставне крајње тачке великог обиматд>тр><тр><тд><цоде>низакцоде>тд><тд>Лако образложење за скромну двосмисленосттд><тд>Кратки одговори подршке, једноставна поређења, задаци преписивањатд><тд>Дозвољено широкотд>тр><тд><цоде>стандардцоде>тд><тд>Уравнотежено резоновање за рутински рад са знањемтд><тд>Планирање, преглед кода, анализа политике, дужа синтезатд><тд>Подразумевано за мешовита оптерећењатд>тр><тр><тд><цоде>дубокецоде>тд><тд><тд>дубокецоде>тд><тд>напоре задацитд><тд>Отклањање грешака, математика, безбедносни преглед, планирање агенататд><тд>Ограничено закупцем, кључем, током посла и буџетомтд>тр><тр><тд><цоде>цаппед-деепцоде>тд><тд>Високо резоновање са тврдим плафономтд><тд>Премијум цена задатка је уначуђена ><тд>прихватљивим задацима ><тд цап и аналитицстд>тр>тбоди>табле><п>Профил је уговор који је окренут апликацији. Параметри провајдера постају детаљи адаптера. Ово одржава клијентски код преносивим и омогућава власницима платформе да ажурирају мапирања како се АПИ-ји провајдера мењају.п><х2>Класе радног оптерећења мапе пре добављача мапирањах2><п>Напор за расуђивање треба бирати на основу намере радног оптерећења, а не из личних преференција или популарности модела. Додајте поље мрежног пролаза као што је <цоде>ворклоад_цлассцоде>, било које је обезбедио клијент или је изведено из одобрене конфигурације руте.п><х3>Пример смерница радног оптерећењах3><пре><цоде>{
"ворклоад_полициес": {
"ектрацт_инвоице_фиелдс": {
"дефаулт_реасонинг_профиле": "ништа",
"мак_реасонинг_профиле": "низак",
"мак_оутпут_токенс": 800
},
"цлассифи_суппорт_тицкет": {
"дефаулт_реасонинг_профиле": "ништа",
"мак_реасонинг_профиле": "низак",
"мак_оутпут_токенс": 300
},
"драфт_цустомер_репли": {
"дефаулт_реасонинг_профиле": "низак",
"мак_реасонинг_профиле": "стандард",
"мак_оутпут_токенс": 1200
},
"цоде_ревиев": {
"дефаулт_реасонинг_профиле": "стандардни",
"мак_реасонинг_профиле": "дубоко",
"мак_оутпут_токенс": 4000
},
"сецурити_ревиев": {
"дефаулт_реасонинг_профиле": "дубоко",
"мак_реасонинг_профиле": "ограничено-дубоко",
"мак_оутпут_токенс": 6000
},
"агент_план": {
"дефаулт_реасонинг_профиле": "стандардни",
"мак_реасонинг_профиле": "дубоко",
"мак_оутпут_токенс": 5000
}
}
}
цоде>пре><п>Ова политика има две корисне ствари. Прво, спречава једноставне крајње тачке да наслеђују скупе подразумеване вредности. Друго, даје администраторима конкретну површину за преглед: који токови посла смеју да захтевају дубоко размишљање и под којим ограничењима?п><х2>Изградите матрицу компатибилностих2><п>Адаптер мрежног пролаза треба да одржава матрицу за сваког добављача и породицу модела. У најмању руку, сачувајте да ли модел подржава онемогућавање расуђивања, напор набрајања, нумерички буџет, динамичко размишљање, максимални подржани буџет и поља коришћења за токене за резоновање.п><х3>Пример облика матрицех3><пре><цоде>{
"провајдери": {
"провидер_а": {
"модел_фамили_к": {
"суппортс_реасонинг": истина,
"цонтрол_типе": "еффорт_енум",
"алловед_валуес": ["нема", "минимално", "ниско", "средње", "високо", "кхигх"],
"цан_дисабле": истина,
"репортс_реасонинг_токенс": тачно
}
},
"провидер_б": {
"модел_фамили_и": {
"суппортс_реасонинг": истина,
"цонтрол_типе": "будгет_токенс",
"мин_будгет_токенс": 1024,
"мак_будгет_токенс": 32000,
"цан_дисабле": нетачно,
"репортс_реасонинг_токенс": тачно
}
},
"провидер_ц": {
"модел_фамили_з": {
"суппортс_реасонинг": истина,
"цонтрол_типе": "тхинкинг_левел",
"алловед_валуес": ["минимални", "ниски", "средњи", "високи"],
"цан_дисабле": нетачно,
"репортс_реасонинг_токенс": тачно
}
}
}
}
цоде>пре><п>Матрица компатибилности није документација само за људе. То би требало да буде извршна политика. Рутер захтева треба да га користи пре слања, а књига обрачуна треба да га користи током обрачуна.п><х2>Преведи интерне профиле у параметре добављачах2><п>Мапирање добављача треба да буде експлицитно и верзионисано. Немојте се ослањати на нејасну фразу као што је „користите паметније резоновање“. Мрежни пролаз треба да зна тачно који параметар добављача је послат.п><х3>Пример мапирањах3><пре><цоде>{
"реасонинг_профиле_маппингс": {
"ноне": {
"еффорт_енум": "ниједан",
"будгет_токенс": 0,
"тхинкинг_левел": "минимални"
},
"ниско": {
"еффорт_енум": "низак",
"будгет_токенс": 2048,
"тхинкинг_левел": "низак"
},
"стандард": {
"еффорт_енум": "средњи",
"будгет_токенс": 8192,"тхинкинг_левел": "средњи"
},
"дубоко": {
"еффорт_енум": "високо",
"будгет_токенс": 20000,
"тхинкинг_левел": "висок"
},
"цаппед-дееп": {
"еффорт_енум": "високо",
"будгет_токенс": 12000,
"тхинкинг_левел": "висок"
}
}
}
цоде>пре><п>Ови бројеви су примери, а не универзалне подразумеване вредности. Прави буџети зависе од породице модела, цене, захтева за кашњење и резултата евалуације. Важан детаљ имплементације је да мрежни пролаз поседује мапирање и бележи разрешени параметар добављача за сваки захтев.п><х2>Неуспешно затварање када мапирање није безбеднох2><п>Неподржане контроле расуђивања не би требало да прећутно постану подразумеване вредности добављача. Подразумеване вредности могу бити скупе и временом се могу променити.п><п>Користите један од три исхода када се тражени профил не може безбедно мапирати:п><ул><ли><стронг>Дозволи:стронг> добављач/модел подржава тражени профил и смернице закупца то дозвољавају.ли><ли><стронг>Премазивање верзије:стронг> тако да је захтевани профил одобрена смерница изнад, тако да је тражени профил одобрен од стране корисника. надогради.ли><ли><стронг>Одбиј:стронг> профил не може бити безбедно представљен, закупац захтева стриктно понашање или би прелазак на нижи ниво прекршио очекивања производа.ли>ул><х3>Пример записа одлукех3><пре><цоде>{
"рекуест_ид": "рек_123",
"тенант_ид": "тенант_42",
"апи_кеи_ид": "кеи_абц",
"ток посла": "преглед_кода",
"рекуестед_реасонинг_профиле": "дубоко",
"апплиед_реасонинг_профиле": "стандардни",
"одлука": "понижено",
"децисион_реасон": "тенант_монтхли_дееп_реасонинг_будгет_екцеедед",
"сервед_провидер": "провидер_а",
"сервед_модел": "модел_фамили_к",
"провидер_реасонинг_парам": {
"напор": "средњи"
}
}
цоде>пре><п>Ова евиденција одлука је драгоцена током подршке, спорова око наплате и испитивања квалитета. Такође спречава невидљиве регресије квалитета током притиска буџета.п><х2>Контролама буџета је потребно више од максималног излазног токенах2><п>Ограничење максималног излазног токена је неопходно, али није довољно. За моделе способне за расуђивање, модел може потрошити велики део граничног резоновања и оставити премало простора за коначни одговор. Корисник тада може да плати за неупотребљив скраћени одговор.п><п>Користите слојевите плафоне:п><ул><ли><цоде>мак_реасонинг_профилецоде> по закупцу, АПИ кључу и току рада.ли><ли><цоде>мак_тхинкинг_будгетцоде> или еквивалентно по добављачу/моделу ><липут> залик_цоде>пар. укупно генерисане токене где добављач заједно броји образложење и видљиви излаз.ли><ли><цоде>даили_дееп_реасонинг_спендцоде> по закупцу или препродавцу.ли><ли><цоде>дееп_реасонинг_рекуестс_пер_хоурцоде> за крајње тачке великог обима.лисон><ли><цоде>ре_ре_реасонинг><ли><цоде>ен_реасонинг. упозорења о аномалијама.ли>ул><п>Провера буџета би требало да се обави пре слања. Корак поравнања би затим требало да усклади стварну употребу након што стигне одговор провајдера. Ако провајдер засебно пријављује токене за размишљање, чувајте их одвојено. Ако извештава само о укупним излазним токенима, ускладиштите најбоља доступна нормализована поља и означите ниво поузданости.п><х2>Поља књиге за расуђивањех2><п>Аналитика мора да покаже разлику између видљиве дужине одговора и плаћеног труда за расуђивање. Користан ред главне књиге треба да садржи:п><ул><ли><цоде>тенант_идцоде>, <цоде>апи_кеи_идцоде>, <цоде>енд_усер_идцоде> и <цоде>воркфловцоде>.ли><ли><цоде>рекуестед_моделцоде>, <цоде>сервед_моделцоде>, провајдер и модел и модел. алиас.ли><ли><цоде>рекуестед_реасонинг_профилецоде> и <цоде>апплиед_реасонинг_профилецоде>.ли><ли><цоде>провидер_реасонинг_парамцоде>, ускладиштено као структурирани ЈСОН.ли><ли><цоде>инпут_токенсцоде>, <цоде>токенссибле_оут>, <цоде>токенс_висибле_цоде>, сачувано као структурирани ЈСОН. <цоде>реасонинг_токенс_ор_екуивалентцоде>, <цоде>цацхед_токенсцоде> и <цоде>тотал_биллабле_токенсцоде>.ли><ли><цоде>мак_оутпут_токенсцоде> и било који буџет за размишљање специфично за провајдера.ли><ли><цоде>латенци_то_фирст_ток>тал,цоде_то_фирст_ток> и статус довршетка стрима.ли><ли><цоде>естиматед_цост_бефоре_диспатцхцоде>, <цоде>ресервед_будгетцоде>, <цоде>сеттлед_цостцоде> и <цоде>рецонцилиатион_статусцоде>.ли><ли><цоде>полици_децисионцоде>, као што је дозвољено, одбацивање ><лифецоде>, као што је дозвољено, одбацивање ><лифе. подразумевано евидентирајте сирови ланац мисли. За већину послова управљања и ФинОпс-а довољни су пребројавања и политичке одлуке. Чување осетљивог текста образложења може да створи проблеме са приватношћу, усклађеношћу и задржавањем које се могу избећи.п><х2>Ток имплементацијех2><п>Производни мрежни пролаз може да имплементира усмеравање напора као детерминистички цевовод захтева.п><ол><ли><стронг>Аутентификујте захтев.стронг> Решите кључ, кориснички тим, закупац, АПИ и АПИ. ток посла.ли><ли><стронг>Класификујте радно оптерећење.стронг> Користите експлицитно поље клијента где је то могуће.За познате крајње тачке, повежите класу радног оптерећења при конфигурацији руте.ли><ли><стронг>Смернице учитавања.стронг> Обједините глобална ограничења, ограничења закупца, кључева и тока посла.ли><ли><стронг>Изаберите кандидате за моделе.стронг> Користите постојећи псеудоним модела или смернице за избор модела пре решавања контрола образложења.ли><ли><стронг>Покрените подразумевани профил тока, а затим примените подразумевани профил токастронг>. максималне вредности.ли><ли><стронг>Проверите компатибилност.стронг> Потврдите да пар добављач/модел безбедно подржава изабрани профил.ли><ли><стронг>Процените трошкове и резервишите буџет.стронг> Укључите вероватну употребу образложења, а не само видљиви резултат.ли><ли><стронг>Испорука са изворним параметрима добављача, у зависности од нивоа контроле, без размишљања о буџету.стронг> адаптера.ли><ли><стронг>Нормализујте коришћење на одговор.стронг> Одвојите улаз, видљиви излаз, образложење, кеширане, алатке и укупне токене где је то могуће.ли><ли><стронг>Поравнајте и упозорите.стронг> Ускладите резервисане и стварне трошкове, ажурирајте квоте и емитујте сигнале аномалије.ли>ол.ли>ол. Такође даје тимовима платформе једно место за промену подразумеваних вредности када се АПИ-ји провајдера развијају.п><х2>Евалуација пре промене подразумеваних вредностих2><п>Немојте промовисати већи напор у размишљању на основу само неколико импресивних примера. Покрените евалуације пре него што промените подразумеване вредности за класу радног оптерећења.п><п>Измерите најмање четири исхода:п><ул><ли><стронг>Квалитет задатка:стронг> тачност, прихватање рецензента, валидност шеме или успех позивања алата.ли><ли><стронг>Кашњење:стронг> време до првог токена и укупно време завршеткастронг> и цена за прихватање по захтеву.ли><стронг>Цост. одговор.ли><ли><стронг>Режими грешке:стронг> скраћивање, одбијање, неисправан излаз, прекомерни позиви алата или временско ограничење.ли>ул><п>Кључни показатељ није „токени по захтеву“. Одговор са нижим токеном који не прође валидацију може бити скупљи након поновних покушаја. Одговор са вишим образложењем може бити оправдан за безбедносни преглед, али расипнички за означавање карата. Процените према току посла.п><х2>Контролах2><п>Управљање расуђивањем додаје контролу, али није бесплатно.п><ул><ли><стронг>Функције преносивости у односу на провајдере:стронг> интерни профили омогућавају пренос кода апликације, али напредним тимовима ће можда бити потребан одобрени излаз за излаз за одређене контроле специфичне за добављача:ли><стронг>ограничење квалитетали><стронг>тврдостронг>ограничење квалитета. штите закупце од безначајне потрошње, али претерано строга ограничења могу да скрате корисне одговоре након што су токени за образложење већ потрошени.ли><ли><стронг>Динамичко размишљање наспрам предвидљивости:стронг> динамичке контроле добављача могу да побољшају погодност, али слабе процене трошкова пре отпреме осим ако мрежни пролаз не бележи стварну употребу и не примењује конзистентност ограничењастронг>насупротстронг>ограничења доступностистронг>. Смањење резоновања током притиска на буџет чува доступност, али одговор треба да буде обележен у телеметрији и укључен у процену квалитета.ли><ли><стронг>Аналитика против приватности:стронг> метрике аргументације су корисне, али необрађени трагови образложења не би требало да се чувају осим ако не постоји намерна, одобрена политика задржавања.лисонинг>ул><ха>Предитионинг Полицтион а Стандард Рецоме:х2> Контролах2><п>Ово је предвиђање, а не проверена чињеница: напори у размишљању ће постати нормална контрола производње поред рутирања модела, ограничења стопе, нивоа услуга и буџета токена. Како провајдери настављају да излажу различите контроле размишљања, тимови за апликације ће имати мање апетита за чврсто кодирање тих разлика у код производа.п><п>Гатеваи-и који третирају размишљање као регулисану димензију времена извршавања имаће јаснију наплату станара, чистију преносивост и бољу контролу над кашњењем.Гатеваи-и који га третирају као случајни параметар модела ће се трудити да објасне зашто кратки одговори понекад коштају више од дугих.п><х2>Контролна листа за које се може предузети радњах2><ул><ли>Дефинишите интерне профиле: <цоде>нонецоде>, <цоде>ловцоде>, <цоде>стандардцоде>, <цоде>деепцоде> и <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <цоде>деепцоде>, анд <епцоде>цаппед за сваку класу радног оптерећења.ли><ли>Направите матрицу компатибилности добављача/модела за контроле образложења.ли><ли>Преведите профиле у параметре који су изворни добављачу у слоју адаптера.ли><ли>Неуспешно затварање када се захтевани профил не може безбедно мапирати.ли><ли>Резервирајте буџет пре слања помоћу процене Ре рекуестинг-аваре, профил за резоновањели><ли> обезбеди процену профила за резоновање. коришћење расуђивања, видљиви излаз, кашњење и цена.ли><ли>Додајте упозорења о аномалијама за високе односе аргумента-токена и дубоко резоновање у једноставним радним токовима великог обима.ли><ли>Покрените евалуације на нивоу тока посла пре него што промените подразумевани напор.ли><ли>Избегавајте подразумевано евидентирање необрађеног текста образложења; Уместо тога, број продавница и одлуке о политикама.ли>ул><х2>Закључакх2><п>Модели који имају способност расуђивања су корисни јер могу потрошити више рачунања на тешке проблеме. Та иста способност постаје скупа када се примењује неселективно. Мрежни пролаз треба да одлучи када је дубље резоновање дозвољено, како се пресликава на сваког добављача, колики буџет може да потроши и како се мери резултат.п><п>Трајни образац је одвајање напора у закључивању од ИД-а модела. Рутирање према оптерећењу, ограничење према политици закупца, прилагођавање по провајдеру и обрачунавање стварне употребе у књизи. То претвара расуђивање из скривене променљиве трошкова у експлицитну контролну површину за контролу трошкова АПИ-ја АИ.п><х2>Повезано читањех2><ул><ли><а хреф="хттпс://модел-гате.цом/ен/блог/аи-апи-биллинг-ледгер-куоте-ресерве-сеттле-рецонциле-14/">резервације и ><либинг моделе <а хреф="хттп://ввв.фаилинг-ресерве-сеттле-рецонциле. хреф="хттпс://модел-гате.цом/ен/блог/интернал-модел-алиасес-аи-апи-гатеваи-пин-провидер-версионс-21/">псеудоними интерних модела и уговори о могућностимаа>ли><ли><а хреф="хттпс://модел-гате.цом/ен/блог/стреаминг-токен-истреаминг/стреаминг-атеваи-аццоунтинг" обрачун коначне употребе и делимичних одговораа>ли>ул>
FAQ
Често постављана питања
Да ли би тимовима за апликације требало дозволити да директно постављају изворне параметре за провајдере?
Обично није подразумевано. Профил који је неутралан за провајдера чини клијентски код преносивим и омогућава мрежном пролазу да спроводи буџете закупца. Напредни тимови и даље могу да користе контроле специфичне за провајдера преко одобреног отвора за евакуацију са евиденцијом ревизије.
Да ли су максимални излазни токени довољни за контролу трошкова расуђивања?
Не. На неким моделима који могу да размишљају, токени за образложење и токени видљивих одговора деле ограничење генерисаног токена или категорију обрачуна. Захтев може потрошити много токена на расуђивање и оставити премало простора за коначни одговор, тако да би мрежни пролаз такође требало да ограничи профил расуђивања или буџет за размишљање.
Да ли би капија требало да запише ланац размишљања?
Не подразумевано. За контролу трошкова и аналитику, мрежном пролазу су обично потребни бројеви, одлуке о политици, идентификатори модела, кашњење и поља трошкова. Текст необрађеног образложења може створити ризик за приватност и задржавање.
Када би дубоко резоновање требало да буде подразумевано?
Само за токове посла где евалуације показују да повећање квалитета оправдава кашњење и трошкове. Математика, отклањање грешака у више корака, преглед безбедности и планирање агената високе вредности су уобичајени кандидати; издвајање, форматирање, класификација и кратки чињенични одговори обично нису.
We use essential technologies to operate and secure the website. With your permission, we also use optional analytics and advertising technologies. See our Cookie Policy.