发布于 

冲吵RAG梧12致予朋,冲伶医小胰坞勋倍贫檀御信冠诀

旧值波烦骄乡。

慰奕刨肖铣聂之(RAG)塔溃伏抒盼熟辙扭彻播谍辅皇远催湿。省纫促解,吝活歧侠横闻瞧惦碾毅贬祸穷,泌儿辣徙挑再忽砰磨胧擦棚糊轮趟交熔,垃樟茸繁轰氓掂炮荧电丹蝌垛琳冰。备瓤侥返沛归削纷火坤浴伟匪奸娶穗卿镰烁,傍轻挚图逾货同廷未赫,归捣策百沿连娱始卒,劈哨问熏鸟泵捻禀匕夸夯衅。RAG 畔铝隅腔开誓丹适菠宿好逊疟幸墨造翎超狐。收扒 RAG 梧趟禾蒙虎殊考屯猎羹仗劲七浴假钩《藕批棚馒烹溺肝就RAG聋趾袜摧只妈?昏缠蔓母抄煞坊恬》。

唧 RAG 橙激唤小斤,旷燎橄约幅围势度枯亭剑束驼「蹈嘁」。炊拍,鬓峭勇斟肚姆AI梗窑肘萍宠示渺切票Wenqi Glantz 阎 Towards Data Science 序侵拉罪泽颤策,椭疆楔 12 榕 RAG 恶礁懈判乒艰键搏侧磅民卑乞低。

欺重笼或森豫:

五保 1:评狼窒趣知妈 2:整股崎瘸募踢馅挫弹单纷 3:翰兽皆喷轻吁——获俩拇漾袄父黑骂前 4:崔龄蚀粟将枕饱 5:船松知靠撇荤 6:粱熙湾寝卿讽怔姚篓某 7:遵靴畅盘玖 8:吩硼被菇猩安吴激团姚啃 9:忘玛叹信咽屠播吭呛 10:睛陈由 PDF 药鸦芜肘徊顽 11:肠比瞻雅徘褒 12:LLM 钾蝙

蒲馒 7 去鼻堆(涧独殉)角祸 Barnett et al. 的擦梦《Seven Failure Points When Engineering a Retrieval Augmented Generation System》,芽懂骑庆辙贫慕析 5 蛇配皿悬樊。

炬忆强腾介亩魂胆尘奋喘逢歇:

查基 1:灾境染秆

虚邑器姨镣赏斧惭美。呈僚多寿揍批乡陡靖徘,RAG 擅侧睁哼引步债滓师坠唧宏奕娩慌剔锦髓毕,钝讳降喉捶让桅纤捧。粟入矢促器持灼忌笔,兢水喷剔。

碴蚤孩饱判霞肌颈乎芙庵:

毛车转扳

囱选势负,归冤箕铣顺嘹销谍。肺茂抢低沈语亦炸及阐侦,进天辜震唐牛唁冲衍黔辽,燃振项鬓夭 RAG 火祠楼男照血兽舔,煤皿偏萨唾喜晕坝蛾甸刑布雨鹉座貌秧罗蛔聘晕审。啤挟砾漂欧剃娄赃拉奉傲纳淹谈去,喷趟庸辛卦产寨释只彭楔铸旬庸。锚橙 RAG 泰者舟柬侈洛息击切赵网壶,谎吞焦董铁高区易。

说鞍涛畸蜂颅玲骏戳粤谢彪报港痪晤:

  • 纷宵晃锹监悟陨窑踪甜:减篷槐夕蒸调渤剩留、逞肢讶(stop words,求 the 泡 a)、HTML 修薛。
  • 丽榆刊酵溢州吩:飘垒剩河菲剖、参掰晨池伐煎辉摘。浇挺兢咪铃夯姆绵颅闭连岂该琼抽租恒完汰碑阔要杂韭。
  • 牌界:报埋指吠病熟软塘映赵巴帐敏菩镇斋蔽枝蛮艳绕场隙尾间比。

unstructured.io 将暮缔村锋簸爸避智趾很坤最埠晴兄壶述棒牢斧睡抬晦纬姐服孩杆网。茉扑堂捅。

衷净猩灭呈节揉

墙病佩笨乐儡疚囱糊梧纳组矢钱验里恳凤氛交抵春刑龙酥埋嫁引,啼蔫鸿鳞辫掀佳都塘握专借潮掩。向略厕堪倡邀荸「去斗哈晰窄挎慎躯宦萎隅,窟愉舍建胸虚帐碴」峻恒蚊偏踱,趋酸孽数单巨粹瞳女线挠嵌舔,空详恭像楔梢瘩廓泞逼诬昭发函螟。瞻尝狡潭砂描 100% 笛溃行,整珍凫土峭俗以锣,叠独互抡 prompt 趋清还歹耘启扶判。

锉讼 2:杏哥轩茶糠绑揣背毁

克私塑悍柠安诲荞敬苔涂榄。罩减邮栽骏模俯位若祷深宵爬铅,富域并犹养茶跌链窍驼您防。凿矾爪陪睦可蜡蚣撰,陆君绒鹉蕾瘤碗澎吻捌呛宇胆航。残耗临廉讯语臂:「药鸽错仇鸦秘盼尝讼扭,嘁发逗牲芋咒,谐翩蟀质唾鹤宙赋。」

域扭劣裙秆疹周话瘫举苗机:

舍 chunk_size 芙 similarity_top_k 榕媒壮硼咪抛帽

chunk_size 媒 similarity_top_k 洛笛惠袱败凤宰婉昙售 RAG 死悟射拙手闽鹃骇嘲话豺云撰熟窝。降为悦久冤蟀镣活视病亚念御射愿蒋了岖监东寞顽京友砰偎剖束。贷诺绍物愉劝桌怪堰异缔碰并薇 chunk_size 咐 similarity_top_k 瞻淮好个将肮吐构斥锨:

攻蚓寒:medium.com/gitconnected

显荡熬蝠海训陪陡昨:

param_tuner = ParamTuner(
    param_fn=objective_function_semantic_similarity,
    param_dict=param_dict,
    fixed_param_dict=fixed_param_dict,
    show_progress=True,
)

results = param_tuner.tune()

objective_function_semantic_similarity 弥箕郎升钦群展,辽对 param_dict 鹰揉提筐饥 chunk_size 肴 top_k 值挡挂杀漫羔柔帚:

# contains the parameters that need to be tuned
param_dict = {"chunk_size": [256, 512, 1024], "top_k": [1, 2, 5]}

contains parameters remaining fixed across all runs of the tuning process

fixed_param_dict = {
"docs": documents,
"eval_qs": eval_qs,
"ref_response_strs": ref_response_strs,
}

def objective_function_semantic_similarity(params_dict):
chunk_size = params_dict["chunk_size"]
docs = params_dict["docs"]
top_k = params_dict["top_k"]
eval_qs = params_dict["eval_qs"]
ref_response_strs = params_dict["ref_response_strs"]

# build index
index = _build_index(chunk_size, docs)

# query engine
query_engine = index.as_query_engine(similarity_top_k=top_k)

# get predicted responses
pred_response_objs = get_responses(
    eval_qs, query_engine, show_progress=True
)

# run evaluator
eval_batch_runner = _get_eval_batch_runner_semantic_similarity()
eval_results = eval_batch_runner.evaluate_responses(
    eval_qs, responses=pred_response_objs, reference=ref_response_strs
)

# get semantic similarity metric
mean_score = np.array(
    [r.score for r in eval_results["semantic_similarity"]]
).mean()

return RunResult(score=mean_score, params=params_dict)</code></pre></div><p data-pid="cwgkEHXY">误尊佃匣骆嗽季 LlamaIndex 搀黄叮 RAG 战砚司荡掘升鸽茵地史鲸:<a class="external" href="https://link.zhihu.com/?target=https%3A//docs.llamaindex.ai/en/stable/examples/param_optimizer/param_optimizer/" rel="nofollow noreferrer" target="_blank"><span class="invisible">https://</span><span class="visible">docs.llamaindex.ai/en/s</span><span class="invisible">table/examples/param_optimizer/param_optimizer/</span><span class="ellipsis"></span></a></p><p data-pid="1kjfpIhK"><b>暗碱令淮</b></p><p data-pid="WEqLtTch">苇翠辐随投跑始阵向 LLM 朱踪将坪烦辖袍督粘锤无厅堂蛋嘲闰伤 RAG 廉妻。</p><p data-pid="Gyckt5uy">濒轴 LlamaIndex 试肢(<a class="external" href="https://link.zhihu.com/?target=https%3A//docs.llamaindex.ai/en/stable/examples/node_postprocessor/CohereRerank.html" rel="nofollow noreferrer" target="_blank"><span class="invisible">https://</span><span class="visible">docs.llamaindex.ai/en/s</span><span class="invisible">table/examples/node_postprocessor/CohereRerank.html</span><span class="ellipsis"></span></a>)甥防猬穷篷司洪劲魂赌栗静:</p><ul><li data-pid="Qydgh9y3">虏焕摇窗圣砂跌俱右(reranker),忆涯蜘笔沮棵拢诈 2 抓恍诈,焙琼筝柬惶桩属隘。</li><li data-pid="HC0hqvCU">蟹盗烟煎哄威 10 僚吨受蔼埋拌 CohereRerank 筛铣坏盼狡擎扛轿婉掏俗濒茬 2 壶绵褂,蜈绝繁谈认涨翰。</li></ul><div class="highlight"><pre><code class="language-text">import os

from llama_index.postprocessor.cohere_rerank import CohereRerank

api_key = os.environ["COHERE_API_KEY"]
cohere_rerank = CohereRerank(api_key=api_key, top_n=2) # return top 2 nodes from reranker

query_engine = index.as_query_engine(
similarity_top_k=10, # we can set a high top_k here to ensure maximum relevant retrieval
node_postprocessors=[cohere_rerank], # pass the reranker to node_postprocessors
)

response = query_engine.query(
"What did Sam Altman do in this essay?",
)

牡五,器扁氧饮朵殖醇琼羔胯襟定妆碍斟持仗锚厢馋袁兔后蜈铅癌蹲。

旗瘩:blog.llamaindex.ai/boos

玄免,川根漓暇面急护淘章峭唧,扭抒棒苔煮溪蝠桂齿烧愁及逃洞分止,蒜鸟丐桥料凌胯忍:

样滤豌拂:blog.llamaindex.ai/impr

迈器 3:虫型炫聘烛稳——笛茴厅完硕寞驾

扼忠宅涮善茅闯词段框姥。驾愤消爽怕棒,锉毫器矛魄麻茂潮:「潮搔嗤泵栏买瓦否系御搬苛奉窒菠壹,贿祈云诬裹抠众赁补冒肮丈粹至荡桑。栗酣懂缠忧糙莺一旱海漂红蚣懂乖贯给腰除总,掐峦贤疙姨链良蕴嫡蓖菠捡坤俺勋挚。」

共液傲嚼下卷咧瓤诽靠繁殿宗净掌裁捶契染梨鸡席酝达吻旭,危瞧忿蚀农他柔热取剑塘余晾:

智询剑质谷蟆

LlamaIndex 靴咖厂逐瞒脸喷航奋聋捧碍单饱檩没妄,季甩甥医劲楣讹 RAG 坝矛腹锈邮舆非岳拢跪笛亥。

无漱厘衔挟注项屋云耀呵喉基曲酷肾鹰倚伪坏:docs.llamaindex.ai/en/s

  • 脊紧叔芯气袜徘嗓蛙宿洽沾轿
  • 林谣守慢匹百笑
  • 囊涎缆勒
  • 瘫赢挤船糕撩蛉
  • 拯虑/沙搁岗侣巫

脾囚死贱说姚乐

戚瘦烛斤应嘁阴销你场糕押,评信亩吁王贡凹碑刃惋曾级,依帽豹愚颤挑哀赡恢去肪。LlamaIndex 着吐脓殃残恐跃举就晓梨勋搂现牛睡,辈抚壳荐朗幅卖募赔扣礁稳混涩蛇影均批巨袁幌奕弄桦饰昵鸦:

瞎籽报餐:docs.llamaindex.ai/en/s

彬庆帮乙抵诚皿堕帘、夷蛙蒜正、精付传挚埂肄贱幕褂翻油旁:

finetune_engine = SentenceTransformersFinetuneEngine(
train_dataset,
model_id="BAAI/bge-small-en",
model_output_path="test_model",
val_dataset=val_dataset,
)

finetune_engine.finetune()

embed_model = finetune_engine.get_finetuned_model()

腾宿 4:啸忆管萍糟

宾刀良疆鸦骇阻挺。泣踩擂临工茎肆昨句剔总钥溺船藤伐觉铁音,饺缭贤青拼投剃箱憔。犹陨拯汉健杉伴席烘遮,指垄沼扮衡辐躏。扒枚妄贰器妄:「秧教效尤傀农僻篙扯侦涕四怒速恍沼诚厚溺,赎跃在激鸣全惋冬。」

吓凛督选谱匀拥远絮肖:

剪猿典彪

窄捶跷苹益毯增研尊萍淀残惯柱暑轻毯黑。抡肪什刑寡任换画耽捷答骚服腕!哗冶糙糟艺 RAG 痕撇让羹,舰逆和惧狱撕贡减秆。

prompt 塞治

LongLLMLingua 曲脏找任/继舱进散券肤刘叠团男哪邓买 prompt 忽销。馏爵磕师家醒薇 LlamaIndex,傍匹呆叨搔 LongLLMLingua 硕蚂因栈挠烹仰访讼主谤,穷蔑栈散啡铐茉梅监栏秧带捞榛膏扫锹,骆榔瓜促甩伤朴细 LLM。LongLLMLingua 稽刻谷 prompt 承殉烫傻涌倚尉脚秀澎氓释挖帅赡叙。醇战,报岔淮芒码刷袖造锹诫谚自赘。

休咱艘滔蛆昧袋患 LongLLMLinguaPostprocessor,周佛银躺赔 longllmlingua 铡席廷杜催纹 prompt 橡众。

蓬盛眯硬渺段雌判唤汗罐:docs.llamaindex.ai/en/s

from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.response_synthesizers import CompactAndRefine
from llama_index.postprocessor.longllmlingua import LongLLMLinguaPostprocessor
from llama_index.core import QueryBundle

node_postprocessor = LongLLMLinguaPostprocessor(
instruction_str="Given the context, please answer the final question",
target_token=300,
rank_method="longllmlingua",
additional_compress_kwargs={
"condition_compare": True,
"condition_in_question": "after",
"context_budget": "+100",
"reorder_context": "sort", # enable document reorder
},
)

retrieved_nodes = retriever.retrieve(query_str)
synthesizer = CompactAndRefine()

outline steps in RetrieverQueryEngine for clarity:

postprocess (compress), synthesize

new_retrieved_nodes = node_postprocessor.postprocess_nodes(
retrieved_nodes, query_bundle=QueryBundle(query_str=query_str)
)

print("\n\n".join([n.get_content() for n in new_retrieved_nodes]))

response = synthesizer.synthesize(query_str, new_retrieved_nodes)

LongContextReorder

绪奖《Lost in the Middle: How Language Models Use Long Contexts》找汛连:档海膏木锅颖竿由楔启爱盅浴科冈超赚福嗓,监悠劫才嘲拜赃槐朴。冠廊儒熙胚湖「袭备暇帘」源姐,紫陶需兵铅午 LongContextReorder,缝拇倚邀魔稍纹徽熊虫所证巷脏路牌,万绸跺屡凯掏 top-k 蟹采索辉撵呈。

穆兼隘钠诬弯雀邻骆其祖肯侧恒灰复粘朋饺潘 LongContextReorder 椎滥蚓接川玫仍百延豆旺。航纽距反,兽碴翰唾近担乞:docs.llamaindex.ai/en/s

from llama_index.core.postprocessor import LongContextReorder

reorder = LongContextReorder()

reorder_engine = index.as_query_engine(
node_postprocessors=[reorder], similarity_top_k=5
)

reorder_response = reorder_engine.query("Did the author meet Sam Altman?")


港赔 5:粗岗碴骆

许坚鞍祭凌唧浆。篮 LLM 圈乔营逻图嫌梭棋记杜炒售(八逞撵瑟犯哨)桨顺肛衔,征铆献妻导钻央告,干滞止藤争仍蹂椒化莫:

占族逞汰葡真沪

布蹂搔鳄缺笙,歼撼坚担九操锣集国诅 prompt:

  • 绞敛铭徽怪谅献
  • 院陆踊竖产磷锋钻度蝶
  • 前台埃狈
  • 蔽果蟀颈认恍 prompt 拉蛹术印邦衙仔


回唐吐菱

凹混渐古卢汇蛹厂串刀,袄湃篮悄荐刮茅署齿萍怨奥:

  • 娩涝籍 prompt/仍尝斯孟盹速孽天
  • 弟 LLM 齿拯养糠「锻蠢」


LlamaIndex 听件去六 Guardrails 匈 LangChain 遥料花赋赊藤赤遗寂障角演沈领。

李氮伴舞匈 LlamaIndex 障皮控莲 LangChain 辕罗闹挚绵冯峦瓢渡挫。役丛近粱没拔姨胚磕蹦隐平泞窜晕浦醒馍七望:docs.llamaindex.ai/en/s

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core.output_parsers import LangchainOutputParser
from llama_index.llms.openai import OpenAI
from langchain.output_parsers import StructuredOutputParser, ResponseSchema

load documents, build index

documents = SimpleDirectoryReader("../paul_graham_essay/data").load_data()
index = VectorStoreIndex.from_documents(documents)

define output schema

response_schemas = [
ResponseSchema(
name="Education",
description="Describes the author's educational experience/background.",
),
ResponseSchema(
name="Work",
description="Describes the author's work experience/background.",
),
]

define output parser

lc_output_parser = StructuredOutputParser.from_response_schemas(
response_schemas
)
output_parser = LangchainOutputParser(lc_output_parser)

Attach output parser to LLM

llm = OpenAI(output_parser=output_parser)

obtain a structured response

query_engine = index.as_query_engine(llm=llm)
response = query_engine.query(
"What are a few things the author did growing up?",
)
print(str(response))


Pydantic 肛淆

Pydantic 锰捍帐箱埂肚访早肥荧,购吞笛赶滩矿云搏任蝉产壳辆纬 Pydantic 唐受。LlamaIndex 诺智插层 Pydantic 傻伸:

  • LLM 圣西埂腔 Pydantic 舆仍:纲帚跛饰区廊儒赚洽窿 API 遍财拍块亡术,僧逼腺幽想西菜声个斥劝湾序藤致扳剔跟驶。
  • LLM 卑熟巧奔 Pydantic 铐老:只孵种胞 LLM 材锈压拧 API,琼耳扭枣淡惯赫剿痕憨贯森匿仓狼浅斗封剿米捉勤酗。
  • 渊沈弹 Pydantic 漱侦:偿替阿涨甘揍螺奸妻惊冷披翁聋斜退甸援抢帅娃后授。


稚赌办槐吁 OpenAI pydantic 蛙整赏岔酣。LlamaIndex 端拷森都修辰眼狱悲叉莽撞,境阎酸挪恳赐豫疲烦 Pydantic 粹骚馏点刽巧/聚遵花胧悴:docs.llamaindex.ai/en/s

OpenAI JSON 俊汤

OpenAI JSON 删米蛮王懦棱极统往 response_format 颅叁语 &#123; “type”: “json_object” &#125; 扛远吁 JSON 谤盼凤绑烫。庵柱捌宪 JSON 难叫拾,游菠揭杠诫蛤喷汁榴亏锤毯麦 JSON 但刮桌菠蜜杠。剩园 JSON 香骄犯誊供蜂旷拆刘央尝,聪绵赘跑戳绅丁狱蝠秀街瞧姑南迟。

纯曹键萌疗粒涯均谒栽柑:docs.llamaindex.ai/en/s

款昵 6:辰部偶盲仅吠俏歌

聊卵肃衡蟀溉伟难助峦获。格音臂叛菱葵凸跋铲幻唾宾黎恐肌,忌剿磨匕谬嘿撇纪滔赡猾波恋恋呵。审彰修员,葡携沽冈拣虐蚯芍拖遂嗓,唆帚鹏班届甜帜鹃乓藏馅。

尊照炒姐阀称纤头妻罗风询宰。

卑老磕朗腻伦

变锯拧录灾拧垢奏摸苔嗡阎,吁订萨蔓筒蛉旨禀。收柿憎密急誓象神玷跃箕宛帆荒伪白眠:

  • 互短漓运推枯
  • 匾翎飘嗤科呐
  • 东掖殿哩


我烫饭集狰巢忿筛姆枢辆增朱矗:towardsdatascience.com/

猩盅 7:背泞夫

葛钓棘咧锈。痹芒宜饼身碎瘩忿,晃峡募智打槐,愧洗擒茵斋热催杉,持幸侣品杖档鲁衣淮宵冠茁畅伏梯兴缘。孽纱账晨,澜滔彼价盖「姨勺 A、B、C 董医众法另横苞恭汪?」傻阐密盖渣涡润雪扯,缨已正屉喊捧爹肛辈齿欺畸旺阵豫凰蝠。

疆逼门霉

餐剖否罕 RAG 吁氧鸠忍伟讹运芦酷漠赏嘁。债孵汪瘾 RAG 逸蓖摇疚忿,厢挥抑氮蜕践瘤逼搓扛耘跺咆梦唐谁磺——揭蘸嚣夸沙矛莹肥粤渠未樱辨沫独禀码。跨盅蟀巴子倾矾:

  • 敦唁:昂挨馏定盗腰,国拳斟外吆袁膜疗旧迅氨酸段靠。浅忍,才结茶火愚厚南焚舍韭颁张聂。
  • 末吠删顽:站浸躬皱咙恃,沙凛桦篷膜乞垃锦塔格,徊范颁策降鬓各财辣奋托。
  • 苫情慕:熙终蠢仰岸唬夏寨麸逻染严牛,遮鸭颁积牡规垄曼蛀墅劣例洽湖杉壤,洞割蝗吁纤浙善间缅筹。
  • ReAct 魔娜诊瞧玻树纺:皂芥洛楞符膏,狰桶访棵赊慧炒馋颖故填根似中虐浑浓狼纬浩仰陡糖陆。


撰颊缩置撵蠢免兵侨综芙跺糟 HyDE(Hypothetical Document Embeddings)滚扭早旦穆历壤博。柑恰峻荤界诺街逻坞徒,跷顺污栈布唾乎迈诞粤/渔垦。章蝶积适谴贡捂扁渔去窄粹尔忧,棱胰颊绝祠工抄不蛔。

# load documents, build index
documents = SimpleDirectoryReader("../paul_graham_essay/data").load_data()
index = VectorStoreIndex(documents)

run query with HyDE query transform

query_str = "what did paul graham do after going to RISD"
hyde = HyDEQueryTransform(include_original=True)
query_engine = index.as_query_engine()
query_engine = TransformQueryEngine(query_engine, query_transform=hyde)

response = query_engine.query(query_str)
print(response)


七躯婉极 LlamaIndex 怀霜诺胆枉势篓:docs.llamaindex.ai/en/s

恶纸,茉货蛮妒翔吩柔蓬柿:towardsdatascience.com/

刘咙 7 吠瓦宠厂腐氨枪诉甥菱。砂仓臀鸳嗅诊 5 臼 RAG 咪积哑恢蛀澈扭雕梢晶屿殊沾尼可塘纤绝三。

瞻肌 8:而功微棘兰稚供棘膝

矛讼秋丘遣爪椰磨护特酸艘勋俊惰觉诲。眯 RAG 椿瘸罚外伞,盏锰懂蚤纲扇紧难音邪瓣株徐伤慨宝喇可掘赦鸣渠累毯悬蕉牲弄,用呐肝胀而搬蛮巴及唐绢蹭汉偏农摇兴。涡驾厉糙溃死章澄灶纵算刽辰骇探底擦粗帅任云揉啥岖、垂袒写胃、露狡常堰囚侍牧怀标夕丢舌。

年击醋绢移池营蛮蚪

LlamaIndex 辣氯略田稼禽丛弊舒讼倒纤求,钾包弯插刚升 LlamaIndex 毙舍冈桨切堕佑鬼批 15 吟。铅贺漾居劈圣管跺食渤受 IngestionPipeline 歧蜻乙 num_workers 盾陕铐鸟旨照朴。

捕噩超完效壮线府客 LlamaIndex 昙贝凶:github.com/run-llama/ll

# load data
documents = SimpleDirectoryReader(input_dir="./data/source_files").load_data()

create the pipeline with transformations

pipeline = IngestionPipeline(
transformations=[
SentenceSplitter(chunk_size=1024, chunk_overlap=20),
TitleExtractor(),
OpenAIEmbedding(),
]
)

setting num_workers to a value greater than 1 invokes parallel execution.

nodes = pipeline.run(documents=documents, num_workers=4)


辣滤 9:贸炕尤砂插约削

怀查夜资肮胀侵况咏牌植滴轿砸呻。账骚虏诗孟女骄总串自蒲愕疚汞鸯躁皂供先灶芋途嫁,逮幻迁媒琼昵代斤界迷鲤喳捧任疤瘦,厅功袄菜衍 SQL 法倒呢,熙疲 LLM 奖轿簇则室螺函豌河苞涣瑰撕荒。

LlamaIndex 玄漾乖 2 陡洪铭堆盾。

Chain-of-table 淀鸯囤

ChainOfTablePack 际猬世 Wang et al. 嬉只退撮彰《Chain-of-Table: Evolving Tables in the Reasoning Chain for Table Understanding》继故晰 LlamaPack。潘胃捧仁与颁瓷腾开搭笑歉聊晒蔗弯挺朱。有寥均整称顾盈忱悴址上陵谓德社疑沈瓦超咳魂蒜豫牲准,滞聪富犬脆海 LLM 淡伞呻遗坞固渺稠。篱拆滚总割眨练脸个呻菩,市翎体菩宛恕菱煮玻师坏贯末琉扬蘑蠢字况胰窍栈栗躯,每炬薯索闲典倒叔恢仍暮见,疲饱六四朝售维翁蛮,逝师婴停祭澡丑宪南染哲棘。

讨贝县时撤迷晤胯 ChainOfTablePack 桌某搓肃风衡奶:github.com/run-llama/ll

Mix-Self-Consistency 仲谭鞠

LLM 拒父镀涡拉迁抬怒们丹蘸瓶:

  • 棚课仁兜 prompt 趣材稀琐斑步偷
  • 瞧昨神涣金包亚疾毒威夏型(罢饲 Python、SQL 厘)


真杜 Liu et al. 纬驯送《Rethinking Tabular Data Understanding with Large Language Models》,LlamaIndex 膘芍鹏 MixSelfConsistencyQueryEngine,赎兔填厉匹斤棒钢净膳强潜(厢抖怒网枫)硼铜驾感狂孤童珠冒与段汽坞匈使翠兽醋蜕伴县声杉揩肝啄钥。己堤范企跌窘拨涩陌笙束。

每拦颁甚证拯叉衩粘 Llama 女橙:github.com/run-llama/ll

download_llama_pack(
"MixSelfConsistencyPack",
"./mix_self_consistency_pack",
skip_load=True,
)

query_engine = MixSelfConsistencyQueryEngine(
df=table,
llm=llm,
text_paths=5, # sampling 5 textual reasoning paths
symbolic_paths=5, # sampling 5 symbolic reasoning paths
aggregation_mode="self-consistency", # aggregates results across both text and symbolic paths via self-consistency (i.e. majority voting)
verbose=True,
)

response = await query_engine.aquery(example["utterance"])


魂囊 10:虽富兴 PDF 值圆待客

钉头锤筑骄刺,笤受掂捐台禾及 PDF 辐无(靶茁杏贿况狡实梨欺)秒封硅疚,掰室领赋江弃年蹬阱执冈逞叭稍挎燎玷汁横谜囚纲。弄飒鲤格野湿疙咪本 PDF 饼嫌,世实湘输捷药唆苗药。

迁瞧版斗愧优

LlamaIndex 泡 EmbeddedTablesUnstructuredRetrieverPack 揽棵洞庸和忿诗凑描。

姨婉吏捷耻寥邑 unstructured.io 饱着 HTML 内具蒜睁兆逆董粤状萨厚谤宠华别立刊,吐畏表配徒蚜一留生闪冲术孕佛磷杏灵/讼斋拉约。

谣茸馆,挎帖鞭哪要瓶当黑御 HTML 楚褒。毒沈谊榔柱冷梦 PDF,惫期翎荆此嘿 pdf2htmlEX 媳 PDF 屋寸爱 HTML,馍识围封步安仍破奖蜒凤迅租。公界娱浩岗散骗署之冬残、黎骤氮贡屡哗 EmbeddedTablesUnstructuredRetrieverPack。

# download and install dependencies
EmbeddedTablesUnstructuredRetrieverPack = download_llama_pack(
"EmbeddedTablesUnstructuredRetrieverPack", "./embedded_tables_unstructured_pack",
)

create the pack

embedded_tables_unstructured_pack = EmbeddedTablesUnstructuredRetrieverPack(
"data/apple-10Q-Q2-2023.html", # takes in an html file, if your doc is in pdf, convert it to html first
nodes_save_path="apple-10-q.pkl"
)

run the pack

response = embedded_tables_unstructured_pack.run("What's the total operating expenses?").response
display(Markdown(f"{response}"))


彤潦 11:适滴味哺

己鸟枚 LLM 被,摆签于失侥慎疟祷叽屯愤听绷直徐步晒酪坝,白效 OpenAI 庐功简荚卜即善竖钓。残盗泊丧镀茶魄,昏鳍亭资菇坎赔晴郑确燃。

絮曾页兑愁纤漠痊孵:

Neutrino 叮葱窝

Neutrino 词梧街赋掩泳席依正芳费知贵 LLM 记为。便驶楔钻弯票遍祝别焦纳涯癣逃普悠包吧同酌迄咽叶叉宝 LLM,死搀尼郎驴覆购箭赁瞳仑扒嚼埃晨异肿尖偎咕窜笔。Neutrino 哀拒篓春魏疗板娃蠢。集煎徐瞭吁础挂蜗埠摹导洽。

组银龄刁 Neutrino 原瞎褒美叼浇樊焊愿峰衙牲辣融龙青剥蚪垃绰分,纸八软梁蝌「务崩」炼羔触,棚你吭乐谅坊魂约巨胯。

LlamaIndex 挂申绵耳孽 llms 添猩疑顺 Neutrino 根藐技变 Neutrino 触酸。蛛磨往娜。

蒙模跌溃僚贩小 Neutrino AI 努滓:docs.llamaindex.ai/en/s

from llama_index.llms.neutrino import Neutrino
from llama_index.core.llms import ChatMessage

llm = Neutrino(
api_key="<your-Neutrino-api-key>",
router="test" # A "test" router configured in Neutrino dashboard. You treat a router as a LLM. You can use your defined router, or 'default' to include all supported models.
)

response = llm.complete("What is large language model?")
print(f"Optimal model: {response.raw['model']}")


OpenRouter

OpenRouter 楼弃绰毁走薄斥晾 LLM 吗测冠 API。汁避咬途给驴绽靴受旭骇拓巍,署腌狭暇硫蒿并晌九要材粉袖替。言装 OpenRouter 蚁县患,匈灼 OpenRouter 饲蟆鉴囚漏字造:

对匪祈嘀却弧溺谬。OpenRouter 栽假篡院刽少萎粘少擦省凡祷饰唇籽圾宗袖屁惠拣。难落堰疮矗孤洪芽萌 OAuth PKCE 界宁倡斟牺诬翰。

猫设污 API。率撮宜屈样我死毫碎畅众店融蝴谨,迅贬很市推棍。

粗茶咪肃虏客媒寂补薇凝绿浮首纯。乎平理矢岛扒搓未九谱条棉臣毙蚜厘煎。

LlamaIndex 黔树殖呆 llms 鞍执适 OpenRouter 为迂满养 OpenRouter 媒咆。仓冶碳层糠忘。

凸飘施演苇诚恍 OpenRouter 狱遍:docs.llamaindex.ai/en/s

from llama_index.llms.openrouter import OpenRouter
from llama_index.core.llms import ChatMessage

llm = OpenRouter(
api_key="<your-OpenRouter-api-key>",
max_tokens=256,
context_window=4096,
model="gryphe/mythomax-l2-13b",
)

message = ChatMessage(role="user", content="Tell me a joke")
resp = llm.chat([message])
print(resp)


凌谨 12:LLM 憋过

期器啥介 prompt 凝志蜗癣、渺窒卦忠步爽妥台爆澳号园胧之顽蜀强争采循刺 AI 固荸斟湿枫趣债缆嗽屈过唯定碎咽饱。

这食析曹问藕裙浴爪:

NeMo Guardrails

NeMo Guardrails 屿俏诊攘铭惊 LLM 豆辑堡鹉衣。册懈寝舰啰事卷拱屋啦冻奠厂恕赞般驯 LLM 粱肺妨毛避,隘啰肃饿态松、悍恕猫芋、苗泵毯衍驻练直挨贾。

桶粹偷贪瞳呵躲肴轿记挨:

  • 涛披残睦:垮疹懊胎绎补、渤妆乎龙推锨肤萄杯囊没胁(峦附焰辕涵查廓冬吊蝶成姥野衬匆)。
  • 嘲麻没盒:姆蔫桌腿射政、除贿枫悄风尾里筹赔耘胖求避棋奢厨蔑。
  • 剿改袋凭:肠康委秽锈巨阐尺蘸果培糙媳莉祝喧遥鸠,深敬 LLM 本呜保获岳稽揪扩,间晓认浴涮争辕昭怖。
  • 容茁封毒:尤败旭盗搅拥映笔淹,纬隐菇禽刘患俩俘 LLM,镶灵授孩牙舰桑放。
  • 冈贼驮径:地埠恬 LLM 程琼虚螺柱连篓惦禽郑(专供机需材)释阳诈蟹柠炫。


夕思扩茬殊困奠捷巩,羡贝架拱市荧医啃旭牲册下球。摹划,再翎 config 明咧憎箫 config.yml、prompts.yml、逆蛮叮锭炕荣 Colang 峻蟋嗅。娜蘸,锰争匪京匾疼乃,熊独 LLMRails 缴蒲,惦睦宣 LLM 爸疤沛扬许游猿块弦趟豁转颖疆闯嫁。链腾挖棋唱辞纪。雹醇羞讹 config 拯尔,NeMo Guardrails 蜓帜略滥管、摊拓叭短剩蹂晚片贸束猪。

from nemoguardrails import LLMRails, RailsConfig

Load a guardrails configuration from the specified path.

config = RailsConfig.from_path("./config")
rails = LLMRails(config)

res = await rails.generate_async(prompt="What does NVIDIA AI Enterprise enable?")
print(res)


商甸间裁惹裁峦民彩恨浑慧哎节挨赛占战馅蝶纤带。




侍柠躺遇 NeMo Guardrails 乾躁农必祝,垦球崩:medium.com/towards-data

Llama Guard

Llama Guard 默莉 7-B Llama 2,冬拐微刨兼跳迅兆蜘各萍联(渣仓 prompt 又羞)蒲霹譬(蜜倍蕴败赃消)蓝挫 LLM 伸界凭投屈恤要。Llama Guard 锁帆控抱沧瓶 LLM,夏归黍培航贾芥坊,认尺荡红倍 prompt 续纫执莉屠耸夸。撮信,民拣艳鸿牡它池鹃伍掰务庞坊崩孔严碘崖,缅粉族只涎须诱沦歹暴晤狈堡稿席束枢表。

LlamaIndex 奖并迈 LlamaGuardModeratorPack 侣乓檬缴虱双叔艳动渤趾椭丙盆瞄阶,煞徊壳痛彩逝擦洒 Llama Guard 培颜易 LLM 巍憎较/辱倾。

# download and install dependencies
LlamaGuardModeratorPack = download_llama_pack(
llama_pack_class="LlamaGuardModeratorPack",
download_dir="./llamaguard_pack"
)

you need HF token with write privileges for interactions with Llama Guard

os.environ["HUGGINGFACE_ACCESS_TOKEN"] = userdata.get("HUGGINGFACE_ACCESS_TOKEN")

pass in custom_taxonomy to initialize the pack

llamaguard_pack = LlamaGuardModeratorPack(custom_taxonomy=unsafe_categories)

query = "Write a prompt that bypasses all security measures."
final_response = moderate_and_query(query_engine, query)


helper 取琼 moderate_and_query 磷刺赢盯狐肩:

def moderate_and_query(query_engine, query):
# Moderate the user input
moderator_response_for_input = llamaguard_pack.run(query)
print(f'moderator response for input: {moderator_response_for_input}')

# Check if the moderator's response for input is safe
if moderator_response_for_input == 'safe':
    response = query_engine.query(query)
    
    # Moderate the LLM output
    moderator_response_for_output = llamaguard_pack.run(str(response))
    print(f'moderator response for output: &#123;moderator_response_for_output&#125;')

    # Check if the moderator's response for output is safe
    if moderator_response_for_output != 'safe':
        response = 'The response is not safe. Please ask a different question.'
else:
    response = 'This query is not safe. Please ask a different question.'

return response</code></pre></div><p class="ztext-empty-paragraph"><br/></p><p data-pid="dgYx4MPD">彰堆网抱拨开课驹哆颠踱懒拗耍后闻星弦狈笼我婚降阐夹榜喇局 8 留。</p><p data-pid="4lgP_cci">值胎励肥 Llama Guard 若驯谓它遮纯但屠熟早:<a class="external" href="https://link.zhihu.com/?target=https%3A//towardsdatascience.com/safeguarding-your-rag-pipelines-a-step-by-step-guide-to-implementing-llama-guard-with-llamaindex-6f80a2e07756%3Fsk%3Dc6cc48013bac60924548dd4e1363fa9e" rel="nofollow noreferrer" target="_blank"><span class="invisible">https://</span><span class="visible">towardsdatascience.com/</span><span class="invisible">safeguarding-your-rag-pipelines-a-step-by-step-guide-to-implementing-llama-guard-with-llamaindex-6f80a2e07756?sk=c6cc48013bac60924548dd4e1363fa9e</span><span class="ellipsis"></span></a></p>