アマゾンセージメーカースタジオを使用して、素早い実験結果のためにLlama 2、LangChain、およびPineconeを使用してRAG型の質問応答ソリューションを構築しましょう
アマゾンセージメーカースタジオを使用して、迅速な実験結果を得るために、Llama 2、LangChain、およびPineconeを使ったRAG型の質問応答ソリューションの構築
検索補完生成(Retrieval Augmented Generation, RAG)は、大規模言語モデル(LLM)にとって、リポジトリ、データベース、APIなどの外部知識源へのアクセスを提供しますが、微調整の必要はありません。質問応答のための生成型AIを使用する際、RAGはLLMが最も関連性の高い最新情報で質問に回答できるようにし、必要に応じてデータソースを引用して検証を行います。
ドキュメントからの知識検索における典型的なRAGソリューションでは、埋め込みモデルを使用してデータソースのデータを埋め込みに変換し、これらの埋め込みをベクトルデータベースに格納します。ユーザーが質問をすると、ベクトルデータベースを検索し、ユーザーのクエリに最も類似したドキュメントを取得します。次に、取得したドキュメントとユーザーのクエリを組み合わせて、テキスト生成のための拡張プロンプトをLLMに送信します。この実装には、埋め込みモデルと最終応答を生成するLLMの2つのモデルがあります。
この記事では、Amazon SageMaker Studioを使用してRAGに基づく質問応答ソリューションを構築する方法を示します。
RAGに基づく質問応答のためのノートブックの使用
RAGの実装には、さまざまな埋め込みモデル、ベクトルデータベース、テキスト生成モデル、プロンプトを試行し、コードをデバッグして機能的なプロトタイプを実現するまでの間に試行錯誤が伴います。 Amazon SageMakerは、GPUインスタンスを備えた管理されたJupyterノートブックを提供し、追加のインフラストラクチャを展開せずにこの初期フェーズで迅速に実験できます。 SageMakerでノートブックを使用するには、2つのオプションがあります。最初のオプションは、SageMaker Studioで利用できる高速起動のノートブックです。SageMaker Studioでは、機械学習(ML)向けに特別に設計された統合開発環境(IDE)で、異なるインスタンスタイプや異なる設定で実行されるノートブックを起動し、同僚と共同作業することができます。さらに、機械学習(ML)向けの特別な機能にもアクセスできます。2番目のオプションは、SageMakerノートブックインスタンスを使用することで、これはJupyter Notebookアプリを実行する完全に管理されたMLコンピュートインスタンスです。
- 「Amazon SageMakerを使用してビジョントランスフォーマーモデルのトレーニング時間を短縮するKTの取り組み」
- テンセントAIラボは、検索補完された言語モデルの堅牢性と信頼性を高めるために、Chain-of-Noting(CoN)を導入します
- 量子コンピュータを使ってより高度な機械学習モデル
この記事では、カスタムドメインに特化したより正確な応答を提供するために、モデルの知識を外部の知識源からの追加データで補完するRAGソリューションを紹介します。私たちは、ml.g5.2xlarge
インスタンス(1つのA10G GPU)で実行される単一のSageMaker Studioノートブックと、Hugging Face Hubからの対話使用ケースに最適化されたLlama 2 7bのファインチューニングバージョンであるLlama 2 7b chat hfを使用します。外部データのサンプルとして、2つのAWS Media&Entertainmentブログ投稿を使用し、これらをBAAI/bge-small-en-v1.5の埋め込みで変換します。これらの埋め込みを高性能な検索と類似性マッチングを提供するベクトルベースのデータベースであるPineconeに格納します。また、ノートブックでの実験からプロトタイピングが完了したら、モデルをSageMakerエンドポイントにデプロイする方法についても説明します。同じアプローチは、異なるモデルやベクトルデータベースでも使用できます。
ソリューションの概要
次の図は、ソリューションアーキテクチャを示しています。
ソリューションの実装は、次の2つの高レベルなステップで構成されます:SageMaker Studioノートブックを使用してソリューションを開発し、モデルを推論用にデプロイすることです。
SageMaker Studioノートブックを使用してソリューションを開発する
ソリューションを開発するために、次の手順を完了します:
- ノートブックにてHugging Face HubからLlama-2 7b chatモデルを読み込みます。
- LangChainを使用してPromptTemplateを作成し、ユースケースに対応するプロンプトを作成します。
- 1〜2つの例のプロンプトに、外部ドキュメントからの関連する静的テキストをプロンプトの文脈として追加し、応答の品質が向上するかどうかを評価します。
- 品質が向上すると仮定すると、RAGの質問応答ワークフローを実装します:
- ユースケースの質問にモデルがよりよく回答できる外部ドキュメントを収集します。
- BGE埋め込みモデルをロードし、これらのドキュメントの埋め込みを生成します。
- これらの埋め込みをPineconeインデックスに格納します。
- ユーザーが質問をした場合、Pineconeで類似性検索を実行し、もっとも類似したドキュメントのコンテンツをプロンプトの文脈に追加します。
SageMakerでモデルを推論に大規模にデプロイする
パフォーマンスの目標を達成したら、モデルをSageMakerにデプロイして、生成型AIアプリケーションで使用することができます:
- Llama-2 7bチャットモデルをSageMakerのリアルタイムエンドポイントにデプロイします。
- BAAI/bge-small-en-v1.5埋め込みモデルをSageMakerのリアルタイムエンドポイントにデプロイします。
- 質問応答型の生成型AIアプリケーションでデプロイしたモデルを使用します。
次のセクションでは、SageMaker Studioのノートブックでこのソリューションを実装する手順を説明します。
前提条件
この記事の手順に従うには、AWSアカウントと、解決策リソースを作成およびアクセスするためのAWS Identity and Access Management(IAM)ロールが必要です。AWS初心者の場合は、スタンドアロンAWSアカウントを作成するを参照してください。
AWSアカウントでSageMaker Studioノートブックを使用するには、SageMakerドメインと、SageMaker Studioアプリを起動する権限を持つユーザープロファイルが必要です。SageMaker Studio初心者の場合、クイックスタジオセットアップが最も簡単な方法です。ワンクリックで、SageMakerはデフォルトのプリセットを使用してSageMakerドメインをプロビジョニングし、ユーザープロファイル、IAMロール、IAM認証、およびパブリックインターネットアクセスを設定します。この記事のノートブックでは、ml.g5.2xlarge
インスタンスタイプを想定しています。割り当て枠を確認または増やすには、AWSサービスクオータコンソールを開き、ナビゲーションペインでAWSサービスを選択し、Amazon SageMakerを選択し、ml.g5.2xlarge
インスタンスで実行されるStudio KernelGatewayアプリの値を参照してください。
クオータ制限を確認した後、Llama 2 7bチャットを使用するための依存関係を完了する必要があります。
Llama 2 7bチャットは、Llama 2ライセンスの下で利用可能です。Llama 2にアクセスするには、まずいくつかのステップを完了する必要があります:
- Hugging Faceアカウントを作成します(まだ作成していない場合)。
- Meta ウェブサイトの「Llamaの次のバージョンへのアクセスを要求する」フォームを完了します。
- Hugging FaceでLlama 2 7bチャットのアクセスを要求します。
アクセスが許可されたら、モデルにアクセスするための新しいアクセストークンを作成することができます。アクセストークンを作成するには、Hugging Faceウェブサイトの設定ページに移動します。
ベクトルデータベースとしてPineconeを使用するためには、Pineconeのアカウントが必要です。PineconeはAWS Marketplaceを介してAWSで利用できます。Pineconeのウェブサイトでは、無料アカウントの作成オプションも提供されており、この記事の目的には十分な単一のインデックスを作成する権限が付属しています。Pineconeキーを取得するには、Pineconeコンソールを開き、APIキーを選択します。
ノートブックと環境のセットアップ
この投稿のコードに従うには、SageMaker Studioを開き、次のGitHubリポジトリをクローンします。次に、studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynbを開き、PyTorch 2.0.0 Python 3.10 GPU最適化イメージ、Python 3カーネル、およびml.g5.2xlarge
をインスタンスタイプとして選択してください。SageMaker Studioノートブックを初めて使用する場合は、Amazon SageMaker Studioノートブックの作成または開く方法を参照してください。
開発環境をセットアップするには、次のコードに示すように必要なPythonライブラリをインストールする必要があります:
%%writefile requirements.txtsagemaker>=2.175.0transformers==4.33.0accelerate==0.21.0datasets==2.13.0langchain==0.0.297pypdf>=3.16.3pinecone-clientsentence_transformerssafetensors>=0.3.3
!pip install -U -r requirements.txt
事前学習済みモデルとトークナイザの読み込み
必要なライブラリをインポートした後、Hugging FaceからLlama-2 7b chatモデルと対応するトークナイザを読み込むことができます。これらの読み込まれたモデルアーティファクトはSageMaker Studio内のローカルディレクトリに保存されています。これにより、別の時間に作業を再開する必要がある場合でも、簡単にメモリに再読み込みすることができます。
import torchfrom transformers import ( AutoTokenizer, LlamaTokenizer, LlamaForCausalLM, GenerationConfig, AutoModelForCausalLM)import transformerstg_model_id = "meta-llama/Llama-2-7b-chat-hf" # Hugging FaceのモデルIDtg_model_path = f"./tg_model/{tg_model_id}" # モデルを保存するローカルディレクトリtg_model = AutoModelForCausalLM.from_pretrained(tg_model_id, token=hf_access_token,do_sample=True, use_safetensors=True, device_map="auto", torch_dtype=torch.float16tg_tokenizer = AutoTokenizer.from_pretrained(tg_model_id, token=hf_access_token)tg_model.save_pretrained(save_directory=tg_model_path, from_pt=True)tg_tokenizer.save_pretrained(save_directory=tg_model_path, from_pt=True)
最新の情報が必要な質問をする
モデルを使って質問をすることができます。Llama-2 chatモデルでは、プロンプトは次の形式に従う必要があります:
<s>[INST] <<SYS>>system_prompt<<SYS>>{{ user_message }} [/INST]
LangChainのPromptTemplateを使用して、プロンプト形式に基づいたレシピを作成し、簡単にプロンプトを作成できます:
from langchain import PromptTemplatetemplate = """<s>[INST] <<SYS>>\n質問応答タスクのためのアシスタントです。役に立ち、フレンドリーです。クエリに答えるために、以下のコンテキストの一部を使用してください。答えがわからない場合は、「わかりません」と言ってください。回答を簡潔に保つため、最大3文を使用してください。<<SYS>>\n{context}\n{question} [/INST]"""prompt_template = PromptTemplate( template=template, input_variables=['context','question'] )
モデルには最新の情報が必要な質問をしましょう。LangChainおよびLLMChainタイプのチェーン、およびLLM(以前に作成したプロンプトテンプレート)と質問をパラメータとして渡すことができます:
question = "ニューヨーク市のAWS M&Eカスタマーエクスペリエンスセンターにいつ訪れることができますか?"tg_tokenizer.add_special_tokens( {"pad_token": "[PAD]"} )tg_tokenizer.padding_side = "left"tg_pipe = transformers.pipeline(task='text-generation', model=tg_model, tokenizer=tg_tokenizer, num_return_sequences=1, eos_token_id=tg_tokenizer.eos_token_id, pad_token_id=tg_tokenizer.eos_token_id, max_new_tokens=400, temperature=0.7)from langchain.chains import LLMChainfrom langchain.llms import HuggingFacePipelinellm=HuggingFacePipeline(pipeline=tg_pipe, model_kwargs={'temperature':0.7})llm_chain = LLMChain(llm=llm, prompt=prompt_template)no_context_response = llm_chain.predict(context="", question=question)print(no_context_response)
次の生成された回答を得ます:
お問い合わせいただきありがとうございます!ニューヨーク市のAWS M&Eカスタマーエクスペリエンスセンターは、COVID-19パンデミックのため現在訪問不可となっています。ただし、センターの再開予定に関する更新情報については、公式ウェブサイトやソーシャルメディアアカウントをチェックしてください。その間、オンラインで利用可能なバーチャルツアーやリソースをご活用いただけます。
プロンプトに文脈を追加して回答を改善する
生成された回答は完全に真実ではありません。文脈を提供することで改善できるか見てみましょう。以下の記事から抜粋を追加できます:ニューヨークに新しいAWS M&Eカスタマーエクスペリエンスセンターが発表されました、2023年のアップデートが含まれています:
context = """メディアとエンターテイメント(M&E)の顧客は、グローバルの視聴者を魅了するために、従来に比べてより多くのコンテンツをより迅速に制作し、より多くのエンドポイントに配信するという課題に直面しています。アマゾン ウェブ サービス (AWS) と AWS パートナーは、数年間にわたり、National Association of Broadcasters(NAB)ショーとInternational Broadcast Convention(IBC)などの業界イベントで、M&Eソリューションの急速な進化を展示してきました。今まで、AWS for M&Eテクノロジーデモンストレーションは1年のうちわずか数週間のみアクセス可能でした。顧客の関与度はこれまで以上に高くなっており、ユーザーエクスペリエンスとメディアツールに関するクオリティの高い対話を行いたいと考えています。これらの対話は、参考となる相互接続されたソリューションアーキテクチャを持つことで最も効果的にサポートされます。M&Eカスタマーエクスペリエンスセンターを訪問することは、11月13日から利用可能になります。訪問のスケジュールについては、[email protected]までメールを送信してください。"""
再びLLMChainを使用し、前述の文章を文脈として渡します:
context_response = llm_chain.predict(context=context, question=question)print(context_response)
新しい回答は最新の情報で質問に答えています:
11月13日からニューヨーク市のAWS M&Eカスタマーエクスペリエンスセンターを訪問することができます。訪問のスケジュールについては、[email protected]までメールを送信してください。
適切な文脈を追加することで、モデルのパフォーマンスが向上することを確認しました。これにより、質問に適切な文脈を見つけて追加するための努力に集中できます。つまり、RAGを実装してください。
BGE埋め込みとPineconeを使用してRAG質問応答を実装する
この段階では、モデルの知識を向上させるための情報源を選択する必要があります。これらの情報源は、組織内の内部ウェブページやドキュメント、または一般公開されているデータソースなどが選択できます。この記事の目的と簡便さのために、2023年に公開された2つのAWSブログ記事を選びました:
これらの記事は、SageMakerスタジオのデータプロジェクトディレクトリ内のPDFドキュメントとしてすでに利用可能です。ドキュメントを管理可能なチャンクに分割するためには、LangChainのRecursiveCharacterTextSplitterメソッドを使用することができます:
from langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.document_loaders import PyPDFDirectoryLoaderloader = PyPDFDirectoryLoader("./data/")documents = loader.load()text_splitter=RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=5)docs = text_splitter.split_documents(documents)
次に、北京AIアカデミー(BAAI)が作成したHugging Faceで利用可能なBGEエンベディングモデルbge-small-enを使用して、これらのチャンクのエンベディングを生成します。モデルをHugging FaceからダウンロードしてStudioのローカルディレクトリに保存します。インスタンスのCPUで実行できるように、fp32を使用します。
em_model_name = "BAAI/bge-small-en"em_model_path = f"./em-model"from transformers import AutoModel# HuggingFaceハブからモデルをロードem_model = AutoModel.from_pretrained(em_model_name,torch_dtype=torch.float32)em_tokenizer = AutoTokenizer.from_pretrained(em_model_name,device="cuda")# モデルをディスクに保存em_tokenizer.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)em_model.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)em_model.eval()
以下のコードを使用して、embedding_generator関数を作成します。この関数は、ドキュメントのチャンクを入力として受け取り、BGEモデルを使用してエンベディングを生成します:
# 文章をトークン化するdef tokenize_text(_input, device): return em_tokenizer( [_input], padding=True, truncation=True, return_tensors='pt' ).to(device)# モデルと文章を入力として、エンベディングタスクを関数として実行するdef embedding_generator(_input, normalize=True): # トークンのエンベディングを計算する with torch.no_grad(): embedded_output = em_model( **tokenize_text( _input, em_model.device ) ) sentence_embeddings = embedded_output[0][:, 0] # エンベディングを正規化する if normalize: sentence_embeddings = torch.nn.functional.normalize( sentence_embeddings, p=2, dim=1 ) return sentence_embeddings[0, :].tolist() sample_sentence_embedding = embedding_generator(docs[0].page_content)print(f"ドキュメントのエンベディングサイズ --->", len(sample_sentence_embedding))
この投稿では、Pineconeを使用したRAGワークフローをデモンストレーションします。Pineconeは、マネージドなクラウドネイティブのベクトルデータベースであり、類似性検索のためのAPIも提供しています。以下のコードを使用して、お好みのベクトルデータベースを使用するように書き換えることができます。
PineconeのPythonクライアントを初期化し、埋め込みモデルの出力長を使用して新しいベクターサーチインデックスを作成します。LangChainの組み込みPineconeクラスを使用して、前のステップで作成した埋め込みを取り込みます。3つのパラメータが必要です:取り込むドキュメント、埋め込み生成関数、およびPineconeインデックスの名前です。
import pineconepinecone.init( api_key = os.environ["PINECONE_API_KEY"], environment = os.environ["PINECONE_ENV"])# インデックスがまだ存在しない場合は作成するindex_name = "rag-index"if index_name not in pinecone.list_indexes(): pinecone.create_index( name=index_name, dimension=len(sample_sentence_embedding), ## bge-small-enの場合は384 metric='cosine' )# 埋め込みを挿入from langchain.vectorstores import Pineconevector_store = Pinecone.from_documents( docs, embedding_generator, index_name=index_name)
Llama-2 7Bチャットモデルをメモリに読み込み、Pineconeインデックスに組み込まれた埋め込みを使用して、質問応答のためにLlama 2の回答を強化できます。これを実現するために、LangChainのRetrievalQAを使用して、最も類似したドキュメントをベクターストアに追加します。 return_source_documents=True
を設定することで、回答の一部として使用される正確なドキュメントを確認して回答の正確性を検証することができます。
from langchain.chains import RetrievalQAimport textwrap#helper method to improve the readability of the responsedef print_response(llm_response): temp = [textwrap.fill(line, width=100) for line in llm_response['result'].split('\n')] response = '\n'.join(temp) print(f"{llm_response['query']}\n \n{response}'\n \n Source Documents:") for source in llm_response["source_documents"]: print(source.metadata)llm_qa_chain = RetrievalQA.from_chain_type( llm=llm, #the Llama-2 7b chat model chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), # perform similarity search in Pinecone return_source_documents=True, #show the documents that were used to answer the question chain_type_kwargs={"prompt": prompt_template})print_response(llm_qa_chain(question))
次の回答を取得します:
Q: AWS M&E Customer Experience Center in New York Cityはいつ訪問することができますか?
A: お手伝いできてうれしいです!コンテキストによると、AWS M&Eカスタマーエクスペリエンスセンターは、11月13日から訪問可能になります。訪問のスケジュールをするために[email protected]宛にメールを送信できます。’
ソースドキュメント:
{‘page’: 4.0, ‘source’: ‘data/AWS announces new M&E Customer Experience Center in New York City _ AWS for M&E Blog.pdf’}
{‘page’: 2.0, ‘source’: ‘data/AWS announces new M&E Customer Experience Center in New York City _ AWS for M&E Blog.pdf’}
別の質問を試してみましょう:
question2=" AWS Media Servicesは2023年に何個の賞を受賞しましたか?"print_response(llm_qa_chain(question2))
次の回答を取得します:
Q: AWS Media Servicesは2023年に何個の賞を受賞しましたか?
A: ブログ記事によれば、AWS Media Servicesは2023年に5つの業界賞を受賞しました。’
ソースドキュメント:
{‘page’: 0.0, ‘source’: ‘data/AWS Media Services awarded industry accolades _ AWS for M&E Blog.pdf’}
{‘page’: 1.0, ‘source’: ‘data/AWS Media Services awarded industry accolades _ AWS for M&E Blog.pdf’}
自信度が十分に確立されたら、モデルをリアルタイム推論用のSageMakerエンドポイントにデプロイできます。これらのエンドポイントは完全に管理されており、オートスケーリングに対応しています。
SageMakerは、Large Model Inferenceコンテナ(LMI)を使用して大規模モデル推論を提供しています。これを利用してモデルをデプロイすることができます。これらのコンテナには、DeepSpeedなどの事前インストール済みのオープンソースライブラリが搭載されており、推論中にテンソル並列処理などのパフォーマンス向上手法の実装を容易にします。さらに、これらのコンテナは統合済みのモデルサーバーとしてDJLServingを使用しています。DJLServingは高性能で、ダイナミックバッチングとワーカーオートスケーリングをサポートする普遍的なモデルサービングソリューションであり、スループットを向上させます。
私たちのアプローチでは、SageMakerのLMIを利用して、Llama-2-chat 7bおよびBGEモデルをml.g5.2xlarge
インスタンス上で実行されているSageMakerエンドポイントにデプロイします。これにより、リアルタイム推論が可能になります。これらの手順を自身で実行したい場合は、詳しい手順については添付のノートブックを参照してください。
デプロイには2つのml.g5.2xlarge
インスタンスが必要です。クォータを確認または増やすには、AWS Service Quotasコンソールを開き、ナビゲーションペインでAWSサービスを選択し、Amazon SageMakerを選択し、エンドポイント使用量のml.g5.2xlarge
の値を参照してください。
次の手順では、SageMakerエンドポイントにカスタムモデルを展開するためのRAGワークフローのプロセスを説明します。
- Llama-2 7b チャットモデルを
ml.g5.2xlarge
インスタンスで動作するSageMakerリアルタイムエンドポイントに展開し、テキストを高速に生成します。 - BAAI/bge-small-en-v1.5の埋め込みモデルを
ml.g5.2xlarge
インスタンスで動作するSageMakerリアルタイムエンドポイントに展開します。または、独自の埋め込みモデルを展開することもできます。 - 質問を投げかけ、LangChainのRetrievalQAを使用してPineconeから最も類似したドキュメントでプロンプトを拡張します。この時点では、SageMakerリアルタイムエンドポイントに展開されたモデルを使用します:
# convert your local LLM into SageMaker endpoint LLMllm_sm_ep = SagemakerEndpoint( endpoint_name=tg_sm_model.endpoint_name, # <--- Your text-gen model endpoint name region_name=region, model_kwargs={ "temperature": 0.05, "max_new_tokens": 512 }, content_handler=content_handler,)llm_qa_smep_chain = RetrievalQA.from_chain_type( llm=llm_sm_ep, # <--- This uses SageMaker Endpoint model for inference chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), return_source_documents=True, chain_type_kwargs={"prompt": prompt_template})
- 次に、埋め込みモデルが正常に動作するSageMakerエンドポイントを確認するためにLangChainを使用します。これにより、将来のドキュメント取り込みに使用できるようになります:
response_model = smr_client.invoke_endpoint( EndpointName=em_sm_model.endpoint_name, <--- Your embedding model endpoint name Body=json.dumps({ "text": "This is a sample text" }), ContentType="application/json",)outputs = json.loads(response_model["Body"].read().decode("utf8"))['outputs']
後片付け
リソースを片付けるには、以下の手順を完了します:
- SageMaker Studioノートブックで作業を終了したら、料金が発生しないように
ml.g5.2xlarge
インスタンスを停止アイコンを選択してシャットダウンします。使用されないときにリソースを自動的にシャットダウンするために、ライフサイクル設定スクリプトをセットアップすることもできます。
- モデルをSageMakerエンドポイントに展開した場合、ノートブックの最後に以下のコードを実行してエンドポイントを削除します:
#delete your text generation endpointsm_client.delete_endpoint( EndpointName=tg_sm_model.endpoint_name)# delete your text embedding endpointsm_client.delete_endpoint( EndpointName=em_sm_model.endpoint_name)
- 最後に、Pineconeインデックスを削除するには、次の行を実行します:
pinecone.delete_index(index_name)
結論
SageMakerノートブックは、検索補完生成における旅のスタートを容易にする方法を提供します。さまざまなモデル、設定、質問を対話的に試すことができ、追加のインフラストラクチャのセットアップは必要ありません。この投稿では、LangChain、BGE埋め込みモデル、Pineconeを使用して、質問応答のユースケースでLlama 2 7bチャットのパフォーマンスを向上させる方法を説明しました。始めるには、SageMaker Studioを起動し、以下のノートブックを実行します。詳細については、以下のGitHubリポジトリをご覧ください。コメントセクションでご意見をお聞かせください!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Juliaプログラミング言語の探索:アプリケーションプログラミングインターフェース(API)—パート1」
- 基本に戻る週3:機械学習の紹介
- マシンラーニングのCRISP ML(Q)とは何ですか?
- 「ChatGPT AI-1の解放:高度なLLMベースのシステムの構築」
- メタラマは本当にオープンソースなのか? (Meta Rama wa hontō ni ōpun sōsu na no ka?)
- 「マイクロソフト、Azureカスタムチップを発表:クラウドコンピューティングとAI能力を革新する」
- このMITのAI論文では、ロボット操作に革新的な方法を紹介しています:エンコードされた特徴フィールドとビジョン言語モデルによる2Dから3Dのギャップの橋渡し