Giskard是一个开源的Python库,专门用于自动检测AI应用中的性能、偏见和安全问题。它可以应用于基于LLM的应用程序(如RAG代理)以及传统的表格数据机器学习模型。
Giskard的主要功能包括:
使用pip安装最新版本的Giskard:
pip install "giskard[llm]" -U
Giskard官方支持Python 3.9、3.10和3.11版本。
以下是一个简单的示例,构建了一个基于IPCC气候变化综合报告的问答代理:
from langchain import OpenAI, FAISS, PromptTemplate from langchain.embeddings import OpenAIEmbeddings from langchain.document_loaders import PyPDFLoader from langchain.chains import RetrievalQA from langchain.text_splitter import RecursiveCharacterTextSplitter # 准备向量存储 text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100, add_start_index=True) loader = PyPDFLoader("https://www.ipcc.ch/report/ar6/syr/downloads/report/IPCC_AR6_SYR_LongerReport.pdf") db = FAISS.from_documents(loader.load_and_split(text_splitter), OpenAIEmbeddings()) # 准备QA链 PROMPT_TEMPLATE = """You are the Climate Assistant, a helpful AI assistant made by Giskard. Your task is to answer common questions on climate change. You will be given a question and relevant excerpts from the IPCC Climate Change Synthesis Report (2023). Please provide short and clear answers based on the provided context. Be polite and helpful. Context: {context} Question: {question} Your answer: """ llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=0) prompt = PromptTemplate(template=PROMPT_TEMPLATE, input_variables=["question", "context"]) climate_qa_chain = RetrievalQA.from_llm(llm=llm, retriever=db.as_retriever(), prompt=prompt)
将您的代理包装为Giskard可以扫描的格式:
import giskard import pandas as pd def model_predict(df: pd.DataFrame): return [climate_qa_chain.run({"query": question}) for question in df["question"]] giskard_model = giskard.Model( model=model_predict, model_type="text_generation", name="Climate Change Question Answering", description="This model answers any question about climate change based on IPCC reports", feature_names=["question"], ) # 运行Giskard扫描 scan_results = giskard.scan(giskard_model) # 显示结果 display(scan_results) # 或保存到文件 scan_results.to_html("scan_results.html")
如果扫描发现模型存在问题,您可以自动生成评估数据集:
from giskard.rag import generate_testset, KnowledgeBase # 加载数据并初始化知识库 df = pd.read_csv("path/to/your/knowledge_base.csv") knowledge_base = KnowledgeBase.from_pandas(df, columns=["column_1", "column_2"]) # 生成测试集 testset = generate_testset( knowledge_base, num_questions=60, language='en', agent_description="A customer support chatbot for company X", ) # 保存生成的测试集 testset.save("my_testset.jsonl")
Giskard是一个强大而易用的AI模型评估工具,可以帮助开发者更好地控制AI应用中的各种风险。通过本文的介绍和提供的学习资源,相信读者可以快速上手Giskard,提高AI应用的质量和安全性。
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
最强AI数据分析助手
小浣 熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。