Information processing system and information processing method
The information processing system addresses the challenge of using large-scale language models by integrating a first component, second component, and third component to generate and suggest code snippets, ensuring convenience, usefulness, and reliability through a search engine and index-based code retrieval.
Patent Information
- Application Number
- JP2025015111
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-08
- Filing Date
- 2025-01-31
- Publication Date
- 2025-08-21
AI Technical Summary
The challenge of incorporating and operating large-scale language models in-house is due to equipment and cost constraints, necessitating the use of external services, which may compromise convenience and reliability.
An information processing system comprising a first component, a second component, and a third component, where the first component receives ideas and proposals, the second component processes directives using a large-scale language model to generate code snippets, and the third component uses a search engine and index to find related code snippets, enhancing convenience, usefulness, and reliability.
The system allows generation of code snippets from natural language ideas, suggests related code snippets, and completes incomplete code, providing a highly convenient, useful, and reliable information processing system.
Smart Images

Figure 2025122637000001_ABST
Abstract
Description
[Technical Field]
[0001] One embodiment of the present invention relates to an information processing system, an information processing method, or a semiconductor device.
[0002] Note that one embodiment of the present invention is not limited to the above-mentioned technical field. The technical field of one embodiment of the invention disclosed in this specification relates to an object, a method, or a manufacturing method. Alternatively, one embodiment of the present invention relates to a process, a machine, a manufacture, or a composition of matter. Therefore, more specifically, examples of the technical field of one embodiment of the present invention disclosed in this specification include information processing devices, semiconductor devices, memory devices, driving methods thereof, and manufacturing methods thereof. [Background technology]
[0003] In recent years, there has been active development of language models using neural networks, with large-scale language models (LLMs) attracting particular attention. Large-scale language models are natural language models trained using large amounts of data. Large-scale language models can realize dialogue models that respond to user instructions, for example. Non-Patent Document 1 discloses GPT-4 (Generative Pre-trained Transformer 4) (registered trademark) as a large-scale language model, and ChatGPT as a dialogue model.
[0004] The use of large-scale language models has significantly increased the capabilities of natural language models. However, as language models become larger, it is difficult to incorporate and operate language models in-house due to the equipment and cost involved. Therefore, one way to use language models is to use external services that provide language models. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] Summary of ChatGPT / GPT-4 Research and Perspective Towards the Future of Large Language Models, Yiheng Liu et al. (Submitted on 4 Apr 2023, [online], Internet<URL:https: / / arxiv.org / abs / 2304.01852> Summary of the Invention [Problem to be solved by the invention]
[0006] An object of one embodiment of the present invention is to provide a novel information processing system with excellent convenience, usefulness, or reliability, or to provide a novel information processing method with excellent convenience, usefulness, or reliability, or to provide a novel information processing system, a novel information processing method, or a novel semiconductor device.
[0007] Note that the description of these problems does not preclude the existence of other problems. Note that one embodiment of the present invention does not necessarily solve all of these problems. Note that problems other than these will become apparent from the description of the specification, drawings, claims, etc., and it is possible to extract other problems from the description of the specification, drawings, claims, etc. [Means for solving the problem]
[0008] (1) One aspect of the present invention is an information processing system having a first component, a second component, and a third component.
[0009] The first component has a function of receiving an idea and transmitting it to the third component, and a function of receiving a first proposal and providing it.
[0010] The second component has a function of receiving the directive and processing it using a large-scale language model, and a function of sending the first code snippet to a third component, where the large-scale language model has a function of generating the first code snippet according to the directive.
[0011] The third component comprises a first subcomponent, a second subcomponent and a third subcomponent.
[0012] The first subcomponent has functionality for receiving an idea, creating a directive, and transmitting the directive to the second component, the directive including the idea and an instruction for generating a first code snippet from the idea.
[0013] The second subcomponent includes functionality for accepting the first code snippet and creating a query, a search engine, and an index, the query including the first code snippet.
[0014] The search engine has the ability to use an index to find relevant code snippets related to a query, and the index includes documents, and the documents include second code snippets.
[0015] The related code snippet includes the second code snippet, and the similarity represents the strength of the relationship between the first code snippet and the second code snippet.
[0016] The third subcomponent has functionality for accepting the associated code snippet and creating a first suggestion, and functionality for sending the first suggestion to the first component, where the first suggestion includes the associated code snippet.
[0017] This allows a first code snippet to be generated from a user's idea written in natural language in a text editor, for example. Alternatively, a user's text describing the function and / or specifications of an integrated circuit in natural language can be used as the idea. Based on the idea, a first code snippet describing the register transfer level (RTL) of the integrated circuit can be generated using a hardware description language, for example.
[0018] Furthermore, a second code snippet related to a first code snippet generated from an idea can be found using the index. Furthermore, design assets, for example, can be stored in the index. Details of the design assets will be described later. Furthermore, a second code snippet related to the first code snippet can be found, for example, from the design assets.
[0019] Furthermore, one or more code snippets related to the first code snippet can be used as related code snippets. Furthermore, the related code snippets can be included in the first proposal and provided to the user. Furthermore, code snippets with a proven track record can be found from design assets and provided to the user. As a result, a novel information processing system with excellent convenience, usefulness, and reliability can be provided.
[0020] (2) Furthermore, one aspect of the present invention is the information processing system described above, wherein the first component has a function of receiving design information and transmitting it to the third component.
[0021] The second subcomponent has a function of accepting the design information and the first code snippet and creating a query, where the query includes the design information and the first code snippet.
[0022] This allows design information to be added to the conditions for finding related code snippets using the index. Furthermore, for example, operating frequency can be added to the conditions for finding related code snippets using the index. Furthermore, for example, power consumption can be added to the conditions for finding related code snippets using the index. As a result, a novel information processing system that is highly convenient, useful, and reliable can be provided.
[0023] (3) Another aspect of the present invention is the above-mentioned information processing system, wherein the first component has a function of accepting selection information and adopting a second code snippet from the first proposal, and a function of adding the second code snippet after the idea.
[0024] This allows, for example, multiple code snippets to be suggested to the user, and allows a selected code snippet to be added after an idea written in a text editor, for example. As a result, a novel information processing system with excellent convenience, usefulness, and reliability can be provided.
[0025] (4) In another aspect of the present invention, the first component has a function of accepting incomplete code and transmitting it to the third component. The first component also has a function of accepting and providing a second proposal.
[0026] The second component has a function of accepting the incomplete code and generating a third code snippet, and a function of sending the third code snippet to the third component.
[0027] The first subcomponent has a function of accepting the incomplete code and sending it to the second component, and the third subcomponent has a function of accepting the third code snippet and creating a second proposal and sending the second proposal to the first component, where the second proposal includes the third code snippet.
[0028] This makes it possible to generate a third code snippet using a large-scale language model and propose completion of the incomplete code. Furthermore, it is possible to generate a third code snippet using a large-scale language model without referring to design assets and propose completion of the incomplete code. As a result, it is possible to provide a novel information processing system that is highly convenient, useful, and reliable.
[0029] (5) One aspect of the present invention is an information processing method including first to ninth steps.
[0030] In the first step, a first component accepts an idea and sends it to a second component.
[0031] In a second step, a second component receives the idea and creates a directive, where the directive includes the idea and an instruction for generating a first code snippet from the idea.
[0032] In a third step, the second component sends the directive to the third component.
[0033] In a fourth step, the third component receives the directive and generates a first code snippet using the large-scale language model, where the large-scale language model has a function of generating the first code snippet according to the directive.
[0034] In a fifth step, the third component sends the first code snippet to the second component.
[0035] In a sixth step, a second component accepts the first code snippet and creates a query, where the query includes the first code snippet.
[0036] In a seventh step, a second component uses a search engine to find relevant code snippets, the second component comprising a search engine and an index.
[0037] The search engine has the ability to use an index to find relevant code snippets related to a query, and the index includes documents, and the documents include second code snippets.
[0038] The related code snippet includes the second code snippet, and the similarity represents the strength of the relationship between the first code snippet and the second code snippet.
[0039] In an eighth step, the second component creates a proposal and sends the proposal to the first component, where the proposal includes the relevant code snippet.
[0040] In the ninth step, the first component accepts and provides suggestions.
[0041] This allows the first code snippet to be generated from a user's idea written in natural language in a text editor, for example. Alternatively, the idea may be a user's text describing the function and / or specifications of an integrated circuit in natural language. Based on the idea, the first code snippet may be generated using a hardware description language, for example, to describe the register transfer level of the integrated circuit.
[0042] In addition, a second code snippet related to a first code snippet generated from an idea can be found using the index. In addition, for example, design assets can be stored in the index. In addition, a second code snippet related to the first code snippet can be found from, for example, the design assets.
[0043] Furthermore, one or more code snippets related to the first code snippet can be used as related code snippets. Furthermore, the related code snippets can be included in a proposal and provided to the user. Furthermore, code snippets with a proven track record can be found from design assets and provided to the user. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided.
[0044] (6) Another embodiment of the present invention is the above-described information processing method including the first to ninth steps.
[0045] In the first step, the first component receives design information and ideas and transmits them to the second component.
[0046] In a sixth step, the second component receives the design information and the first code snippet and creates a query, where the query includes the design information and the first code snippet.
[0047] This allows design information to be added to the conditions for finding related code snippets using an index. Furthermore, for example, operating frequency can be added to the conditions for finding related code snippets using an index. Furthermore, for example, power consumption can be added to the conditions for finding related code snippets using an index. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided.
[0048] (7) Another embodiment of the present invention is the above information processing method including the first to eleventh steps.
[0049] In a tenth step following the ninth step, the first component accepts the selection information and adopts a second code snippet from the proposal.
[0050] In the eleventh step, the first component adds a second code snippet after the idea.
[0051] This allows, for example, multiple code snippets to be suggested to the user, and a selected code snippet can be added after an idea written in a text editor, for example. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided. [Effects of the Invention]
[0052] One embodiment of the present invention can provide a novel information processing system with excellent convenience, usefulness, or reliability, or a novel information processing method with excellent convenience, usefulness, or reliability, or a novel information processing system, a novel information processing method, or a novel semiconductor device.
[0053] Note that the description of these effects does not preclude the existence of other effects. Note that one embodiment of the present invention does not necessarily have all of these effects. Note that effects other than these will become apparent from the description in the specification, drawings, claims, etc., and it is possible to extract other effects from the description in the specification, drawings, claims, etc. [Brief explanation of the drawings]
[0054] [Figure 1] FIG. 1 is a diagram illustrating a configuration of an information processing system according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating a configuration of components used in the information processing system according to the embodiment. [Figure 3] 3A to 3C are diagrams illustrating the configuration of directives and queries used in the information processing system according to the embodiment. [Figure 4] 4(A) and 4(B) are diagrams illustrating the structure of an index and the structure of related code snippets used in the information processing system according to the embodiment. [Figure 5] FIG. 5 is a diagram illustrating a configuration of a proposal provided by an information processing system according to an embodiment. [Figure 6] FIG. 6 is a diagram illustrating a configuration of a proposal provided by an information processing system according to an embodiment. [Figure 7] FIG. 7 is a diagram illustrating the configuration of an information processing device used in the information processing system according to the embodiment. [Figure 8] FIG. 8 is a diagram illustrating an information processing method according to an embodiment. [Figure 9] FIG. 9 is a diagram illustrating an information processing method according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0055] An information processing system according to one embodiment of the present invention includes a first component, a second component, and a third component. The first component has a function of receiving an idea and transmitting it to the third component, and a function of receiving and providing a first proposal. The second component has a function of receiving a directive and processing it using a large-scale language model, and a function of transmitting a first code snippet to the third component. The large-scale language model has a function of generating the first code snippet in accordance with the directive.
[0056] The third component comprises a first subcomponent, a second subcomponent and a third subcomponent.
[0057] The first subcomponent has functionality for receiving an idea, creating a directive, and transmitting the directive to the second component, the directive including the idea and an instruction for generating a first code snippet from the idea.
[0058] The second subcomponent includes a function for accepting a first code snippet and creating a query, a search engine, and an index, the query including the first code snippet, the search engine including a function for using the index to find related code snippets related to the query, and a function for calculating a similarity score, the index including documents, the documents including second code snippets, the related code snippets including the second code snippet, and the similarity score representing the strength of the relationship between the first code snippet and the second code snippet.
[0059] The third subcomponent has functionality for accepting the associated code snippet and creating a first suggestion, and functionality for sending the first suggestion to the first component, where the first suggestion includes the associated code snippet.
[0060] This allows the first code snippet to be generated from a user's idea written in natural language in a text editor, for example. Alternatively, the idea may be a user's text describing the function and / or specifications of an integrated circuit in natural language. Based on the idea, the first code snippet may be generated using a hardware description language, for example, to describe the register transfer level of the integrated circuit.
[0061] The embodiments will be described in detail with reference to the drawings. However, the present invention is not limited to the following description, and it will be readily understood by those skilled in the art that various changes in form and details can be made without departing from the spirit and scope of the present invention. Therefore, the present invention should not be interpreted as being limited to the description of the embodiments shown below. In the configuration of the invention described below, the same parts or parts having similar functions will be denoted by the same reference numerals in different drawings, and repeated explanations will be omitted.
[0062] In the drawings accompanying this specification, components are classified by function and shown as block diagrams that are independent of each other, but in reality, it is difficult to completely separate components by function, and one component may be involved in multiple functions.
[0063] (Embodiment 1) In this embodiment, an information processing system of one embodiment of the present invention will be described with reference to FIGS.
[0064] FIG. 1 is a diagram illustrating the configuration of an information processing system according to an embodiment of the present invention.
[0065] FIG. 2 is a diagram illustrating a configuration of components of an information processing system according to an embodiment of the present invention.
[0066] FIG. 3(A) is a schematic diagram illustrating the configuration of an instruction statement used by an information processing system according to one embodiment of the present invention, and FIGS. 3(B) and 3(C) are schematic diagrams illustrating the configuration of a query.
[0067] FIG. 4A is a schematic diagram illustrating the configuration of an index provided by an information processing system according to one embodiment of the present invention, and FIG. 4B is a schematic diagram illustrating the configuration of a related code snippet.
[0068] FIG. 5 is a schematic diagram illustrating a proposed configuration provided by an information processing system according to one embodiment of the present invention.
[0069] FIG. 6 is a schematic diagram illustrating a proposed configuration provided by an information processing system according to an embodiment of the present invention.
[0070] FIG. 7 is a block diagram illustrating a configuration of an information processing device that can be used in the information processing system of one embodiment of the present invention.
[0071] <Configuration example 1 of information processing system> An information processing system according to one embodiment of the present invention described in this embodiment includes a component 30, a component 20, and a component 21 (see FIG. 1).
[0072] 《Component 30 Configuration Example 1》 Component 30 has a function for receiving an idea (IDEA) from a user of the information processing system and transmitting it to component 21, and a function for receiving a proposal (Sug_1) from component 21 and providing it to the user using an output device such as a display device, speaker, printer, or storage device. The user can input the idea (IDEA) into a text editor using an input device such as a keyboard, mouse, eye-gaze input device, or microphone. Specifically, the idea (IDEA) can be entered in a predetermined format into the code being created. Specifically, the user inputs the idea (IDEA) into component 30 using an input device such as a keyboard, mouse, or eye-gaze input device. For example, a string beginning with " / / " can be used as a comment. Furthermore, a string entered in comment format can be used as the idea (IDEA). Specifically, the string written in comment format shown in the following paragraph expresses, in natural language, an idea (IDEA) for an 8-bit counter with a reset signal. Note that clk and rst represent input signals, and value represents an output signal.
[0073] " / / 8-bit counter with reset / / input: clk, rst / / output: value"
[0074] Component 20 Configuration Example 1 The component 20 has a function of receiving the directive Pt_1 and performing processing using the large-scale language model LLM, and a function of transmitting the code snippet CS_0 to the component 21.
[0075] The large-scale language model LLM has a function of generating a code snippet CS_0 according to a directive Pt_1. For example, a large-scale language model LLM trained on a programming language such as Python or a hardware description language such as VHDL, Verilog, or System Verilog can be used for the component 20. Also, a large-scale language model LLM trained on an ESL (Electronic System Level) language such as SystemC or C++ can be used for the component 20.
[0076] A code snippet contains one or more statements (also called statements). For example, a fragment of code can be used as a code snippet. Specifically, commonly used expressions and boilerplate expressions can be used as code snippets. For example, the following paragraph shows a code fragment that describes the register transfer level of an integrated circuit using a hardware description language. This code snippet CS_0, written using Verilog, represents an 8-bit counter with the reset signal shown above.
[0077] "module counter ( input clock, input rst, output reg [7:0] value );”
[0078] For example, GPT-3, GPT-3.5, GPT-4 (registered trademark), LaMDA (Language Model for Dialogue Applications), Llama2, Codellama, etc. can be used for large-scale language models (LLM).
[0079] <<Component 21 configuration example>> The component 21 includes a subcomponent 21A, a subcomponent 21B, and a subcomponent 21C (see FIG. 2).
[0080] [Configuration example 1 of subcomponent 21A] The subcomponent 21A has a function of receiving an idea IDEA and creating a directive Pt_1, and a function of sending the directive Pt_1 to the component 20 (see FIG. 2). The directive Pt_1 includes the idea IDEA and a command g1() for generating a code snippet CS_0 from the idea IDEA (see FIG. 3(A)). For example, the command specifies the language used to write the code and commands the generation of the code. Specifically, the sentence shown in the following paragraph can be used for the directive Pt_1.
[0081] "Write a module in Verilog that meets the following functions or specifications. / / 8-bit counter with reset / / input: clk, rst / / output: value"
[0082] [Configuration example 1 of subcomponent 21B] The subcomponent 21B has a function of receiving the code snippet CS_0 and creating a query Que, a search engine SE, and an index INDX (see FIG. 2). The query Que includes the code snippet CS_0 (see FIG. 3(B)).
[0083] The search engine SE has a function of using the index INDX to find a related code snippet CS_R related to the query Que, and a function of calculating a similarity DoS_1.
[0084] The index INDX includes documents Doc_1 to Doc_n (see FIG. 4A). The document Doc_1 includes code Code_1, which includes code snippet CS_1(0). The document Doc_1 also includes, for example, design information DI_1.
[0085] The related code snippet CS_R includes the code snippet CS_1(0) (see FIG. 4(B)). Furthermore, multiple code snippets related to the code snippet CS_0 can be found from multiple documents and adopted as the related code snippet CS_R. For example, the code snippet CS_1(0) can be found from the document Doc_1, the code snippet CS_2(0) can be found from the document Doc_2, and the code snippet CS_3(0) can be found from the document Doc_3, and adopted as the related code snippet CS_R.
[0086] Furthermore, similarity DoS_1(0) represents the strength of the relationship between code snippet CS_0 and code snippet CS_1. Furthermore, for example, similarity DoS_2(0) represents the strength of the relationship between code snippet CS_0 and code snippet CS_2(0), and similarity DoS_3(0) represents the strength of the relationship between code snippet CS_0 and code snippet CS_3(0).
[0087] For example, a full-text search system can be used in subcomponent 21B. The full-text search system can create an index INDX of materials stored in the archive. Specifically, it can create an index INDX of design assets stored in the archive. The design assets include, for example, soft IP, firm IP, and hard IP of large-scale integrated circuits. The design assets also include the type of hardware description language, the version of the hardware description language, libraries on which the description language depends, license information, author information, calculation complexity information indicating the calculation complexity, etc.
[0088] Archives of public documents, private documents, and archives managing confidential information within the organization to which the user of the information processing system belongs can be used for archiving materials. Specifically, past technical assets, design assets, patent publications, patent bulletins, books, literature, manuals, confidential documents, and other confidential documents can be included in the search targets. By adding technical assets accumulated in the organization to which the user belongs to the archive, the user can share the characteristic information used in that organization with other users.
[0089] The full-text search system can use the index INDX to find information related to the query Que from the archive. Note that the query Que includes the code snippet CS_0, so reserved words in programming languages can be used as search terms.
[0090] For example, an inverted index can be created by dividing materials stored in an archive into words and associating the words with materials in which the words appear. This inverted index can then be used as an index INDX. Alternatively, an N-gram method can be used to divide materials into n consecutive characters. Specifically, an inverted index can be created by sequentially extracting strings of characters, for example, two characters at a time, from the materials and associating the strings with materials in which the strings appear. This inverted index can also be used as an index INDX. Queries, for example, can also be divided into words and used as search terms. Queries, for example, can also be extracted into strings of characters, for example, two characters at a time, and used as search terms.
[0091] Furthermore, for example, materials stored in an archive can be converted into distributed representations (also called embedded representations) using a large-scale language model. These distributed representations can then be included in the index INDX. A query Que can also be converted into a distributed representation using a large-scale language model. By using distributed representations, it becomes possible to treat not only documents written in different languages, but also different types of data as related information. Specifically, image data, audio data, and video data can also be treated as related information to text data.
[0092] Specifically, GPT-3, GPT-3.5, GPT-4 (registered trademark), LaMDA, Llama2, Codellama, etc. can be used to convert archived materials and queries into distributed representations.
[0093] By comparing the distributed representation of the data stored in the archive with the distributed representation of the query, semantic similarity can be determined. By evaluating the closeness of the meaning of the data stored in the archive with the meaning of the query, variations in expression due to synonyms can be absorbed. In particular, variations in the expression of verbs in natural language can be absorbed.
[0094] For example, the code shown in the following paragraphs is all "display numbers 1 to 5" written using the programming language "python" and is semantically similar to each other.
[0095] "# Writing method 1 for i in range(5): print(i)
[0096] "# Writing method 2 i = 0 while True: print(i) i += 1 if i > 5: Break"
[0097] For example, the similarity DoS_1 can be calculated using the Euclidean distance between the distributed representations to be compared. Also, the cosine similarity between the distributed representations to be compared can be used as the similarity DoS_1.
[0098] [Subcomponent 21C configuration example 1] The subcomponent 21C has a function of receiving the related code snippet CS_R and creating a suggestion Sug_1, and a function of transmitting the suggestion Sug_1 to the component 30. Note that the suggestion Sug_1 includes the related code snippet CS_R (see FIG. 5).
[0099] This allows a code snippet CS_0 to be generated from a user's idea IDEA written in natural language in a text editor, for example. Furthermore, a user's text describing, for example, the function or specifications or both of an integrated circuit in natural language can be used as the idea IDEA. Furthermore, based on the idea IDEA, a code snippet CS_0 describing the register transfer level of the integrated circuit can be generated using, for example, a hardware description language.
[0100] Furthermore, the code snippet CS_1(0) related to the code snippet CS_0 generated from the idea IDEA can be found using the index INDX. Furthermore, for example, design assets can be stored in the index INDX. Furthermore, the code snippet CS_1(0) related to the code snippet CS_0 can be found from, for example, the design assets.
[0101] Furthermore, one or more code snippets related to the code snippet CS_0 can be used as the related code snippet CS_R. The related code snippet CS_R can be included in the proposal Sug_1 and provided to the user. Furthermore, code snippets with a proven track record can be found from design assets and provided to the user. As a result, a novel information processing system with excellent convenience, usefulness, and reliability can be provided.
[0102] Component 30 Configuration Example 2 The component 30 has a function of receiving design information DI_0 from a user and transmitting it to the component 21.
[0103] [Configuration example 2 of subcomponent 21B] The subcomponent 21B has a function of receiving the design information DI_0 and the code snippet CS_0 and creating a query Que. The query Que includes the design information DI_0 and the code snippet CS_0 (see FIG. 3C). For example, when starting to create code, a user can input information such as the circuit function, the circuit area, the delay time, and the design rules as the design information DI_0.
[0104] As a result, the design information DI_0 can be added to the conditions when using the index INDX to find the related code snippet CS_R. Also, for example, the operating frequency can be added to the conditions when using the index INDX to find the related code snippet CS_R. Also, for example, the power consumption can be added to the conditions when using the index INDX to find the related code snippet CS_R. Furthermore, by adding the design information DI_0 to the search conditions, particularly useful information can be extracted from past technical assets. As a result, a novel information processing system that is excellent in convenience, usefulness, and reliability can be provided.
[0105] Component 30 Configuration Example 3 The component 30 has a function of, for example, receiving selection information Slc from a user and adopting a code snippet CS_1(0) from the proposal Sug_1 (see FIG. 5). For example, the component 30 displays an idea IDEA input by the user and the proposal Sug_1 created by the component 21 on an operation screen of an input / output device connected to the component 30. The user can input the selection information Slc using a pointer. The component 30 also has a function of adding the code snippet CS_1(0) after the idea IDEA. For example, the component 30 appends the code snippet CS_1(0) after the idea IDEA input in a text editor.
[0106] This allows, for example, multiple code snippets to be suggested to the user. Also, a selected code snippet from the related code snippets CS_R can be added after an idea IDEA written in a text editor, for example. As a result, a novel information processing system with excellent convenience, usefulness, and reliability can be provided.
[0107] Component 30 Configuration Example 4 The component 30 has a function of receiving incomplete code InC from a user and sending it to the component 21 (see FIG. 1). For example, an incomplete sentence (also called a statement) or an incomplete expression is incomplete code InC. Also, an incomplete snippet is incomplete code InC.
[0108] The component 30 also has a function of receiving a suggestion Sug_2 from the component 21 and providing it to the user. For example, the component 30 adds the suggestion Sug_2 after the incomplete code InC entered in a text editor.
[0109] Component 20 Configuration Example 2 The component 20 has a function of receiving the incomplete code InC and generating a code snippet CS_2, and a function of transmitting the code snippet CS_2 to the component 21.
[0110] [Configuration example 2 of subcomponent 21A] The subcomponent 21A has the function of accepting the incomplete code InC and sending it to the component 20 (see FIG. 1).
[0111] [Subcomponent 21C configuration example 2] The subcomponent 21C has a function of receiving the code snippet CS_2 and creating a suggestion Sug_2, and a function of transmitting the suggestion Sug_2 to the component 30. Note that the suggestion Sug_2 includes the code snippet CS_2 (see FIG. 6).
[0112] As a result, the large-scale language model LLM can be used to generate the code snippet CS_2 and propose completion of the incomplete code InC. Furthermore, the large-scale language model LLM can be used to generate the code snippet CS_2 and propose completion of the incomplete code InC without referring to design assets. As a result, a novel information processing system with excellent convenience, usability, and reliability can be provided.
[0113] <Configuration example 2 of information processing system> The information processing system described in this embodiment includes a component 30, a component 21, and a component 20 (see FIG. 1).
[0114] For example, an information processing system according to an embodiment of the present invention can be configured with an information processing device that performs the functions of component 30, an information processing device that performs the functions of component 21, and an information processing device that performs the functions of component 20. Note that the number of information processing devices that configure the information processing system according to an embodiment of the present invention is one or more. Furthermore, for example, the information processing system according to an embodiment of the present invention can be configured by connecting a plurality of information processing devices using a network 51.
[0115] When an information processing system according to one embodiment of the present invention is configured using a plurality of information processing devices, the load related to information processing can be distributed.
[0116] <<Configuration Example 1 of Information Processing Device>> The first configuration example of the information processing device described in this embodiment can be used for the component 30. The first configuration example of the information processing device can also be called a client computer. For example, a desktop computer can be used for the component 30.
[0117] The information processing device configuration example 1 can accept data input by a user of the information processing system of an embodiment of the present invention. Also, the information processing device configuration example 1 can provide the user with data output by the information processing system of an embodiment of the present invention.
[0118] For example, dedicated application software, a web browser, etc., can be operated. A user of the information processing system according to an embodiment of the present invention can access the information processing system via any of these. This allows the user to enjoy services using the information processing system according to an embodiment of the present invention.
[0119] <<Configuration Example 2 of Information Processing Device>> The second configuration example of the information processing device described in this embodiment can be used for the component 21. For example, the component 21 can be a workstation, a server computer, a supercomputer, or the like.
[0120] Moreover, it is preferable that the information processing device in configuration example 2 has a function as a parallel computer. By using it as a parallel computer, it is possible to perform large-scale calculations necessary for learning and inference of artificial intelligence (AI), for example.
[0121] Moreover, the configuration example 2 of the information processing device can perform processing using a natural language model using AI.
[0122] For example, processing can be performed using natural language processing models such as GPT-3, GPT-3.5, GPT-4 (registered trademark), LaMDA, Llama2, and Codellama.
[0123] <<Configuration Example 3 of Information Processing Device>> For example, the configuration example 3 of the information processing device described in this embodiment can be used for the component 20. Note that the component 20 is larger in scale and has higher calculation capabilities than the component 21. For example, a large computer such as a server computer or a supercomputer can be used for the component 20.
[0124] Moreover, it is preferable that the information processing device in configuration example 3 has a function as a parallel computer. By using it as a parallel computer, it is possible to perform large-scale calculations necessary for AI learning and inference, for example.
[0125] Moreover, the information processing device configuration example 3 can perform processing using a natural language model using AI. In particular, it can execute processing using a general-purpose language model that can perform various natural language processing tasks.
[0126] For example, processing can be performed using natural language models such as GPT-3, GPT-3.5, GPT-4 (registered trademark), LaMDA, Llama2, and Codellama. In particular, it is preferable to be able to perform processing using GPT-4 (registered trademark). For example, if processing can be performed using a large-scale language model that is larger than conventional natural language models, more natural sentence generation or dialogue can be realized.
[0127] Note that a person who provides a service using an information processing system according to an embodiment of the present invention does not necessarily have to own the information processing device of Configuration Example 3. For example, a service provider can use part of a service provided by another business or the like using Configuration Example 3 of the information processing device.
[0128] <<Network 51 configuration example>> The network 51 that can be used in the information processing system according to one embodiment of the present invention can connect multiple information processing devices. This allows the connected multiple information processing devices to transmit and receive data to and from each other. Furthermore, the load associated with information processing can be distributed.
[0129] When performing wireless communication, communication standards such as the fourth generation mobile communication system (4G), fifth generation mobile communication system (5G), and sixth generation mobile communication system (6G), or specifications standardized by IEEE such as Wi-Fi (registered trademark) and Bluetooth (registered trademark), can be used as communication protocols or communication technologies.
[0130] For example, a local network can be used for the network 51. Also, an intranet or an extranet can be used for the network 51. Also, a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a global area network (GAN), etc. can be used for the network 51.
[0131] Furthermore, for example, a global network can be used for the network 51. Specifically, the Internet, which is the foundation of the World Wide Web (WWW), can be used.
[0132] Furthermore, a person who provides a service using an information processing system according to an embodiment of the present invention can provide the service using an information processing method according to an embodiment of the present invention via a network 51, for example.
[0133] When the information processing system according to an embodiment of the present invention is built within a local network, the possibility of confidential information leaking can be reduced, for example, compared to when the Internet is used.
[0134] <<Configuration Example 4 of Information Processing Device>> An information processing device that can be used in an information processing system according to one embodiment of the present invention includes, for example, an input unit 110, a storage unit 120, a processing unit 130, an output unit 140, and a transmission path 150 (see FIG. 7).
[0135] In the drawings accompanying this specification, the components are classified by function and shown as independent blocks in the block diagrams. However, in reality, it is difficult to completely separate the components by function, and one component may be involved in multiple functions. For example, part of the processing unit 130 may function as the input unit 110. Also, one function may be involved in multiple components. For example, the processing performed by the processing unit 130 may be executed by different servers depending on the processing.
[0136] [Input section 110] The input unit 110 can receive data from outside the information processing device. For example, the input unit 110 receives data via a network 51. Specifically, the input unit 110 can be a device such as a personal computer equipped with a communication port or a communication function.
[0137] The input unit 110 supplies the received data to one or both of the storage unit 120 and the processing unit 130 via the transmission path 150 .
[0138] [Storage section 120] The storage unit 120 has a function of storing a program executed by the processing unit 130. The storage unit 120 can also have a function of storing data generated by the processing unit 130 (for example, calculation results, analysis results, inference results), data accepted by the input unit 110, and the like.
[0139] The storage unit 120 may have a database. Furthermore, the information processing device may have a database separate from the storage unit 120. The information processing device may have a function to retrieve data from a database that exists outside the storage unit 120, outside the information processing device, or outside the information processing system. Furthermore, the information processing device may have a function to retrieve data from both its own database and an external database.
[0140] Either or both of a storage and a file server can be used as the memory unit 120. Also, the memory unit 120 can be a database that records the paths of files stored in the file server.
[0141] The storage unit 120 includes at least one of a volatile memory and a nonvolatile memory. Examples of the volatile memory include a dynamic random access memory (DRAM) and a static random access memory (SRAM). Examples of the nonvolatile memory include a resistive random access memory (ReRAM), a phase change random access memory (PRAM), a ferroelectric random access memory (FeRAM), a magnetoresistive random access memory (MRAM), and a flash memory. The storage unit 120 may also include at least one of NOSRAM (registered trademark) and DOSRAM (registered trademark). The storage unit 120 may also include a recording media drive. Examples of the recording media drive include a hard disk drive (HDD) and a solid state drive (SSD).
[0142] NOSRAM is an abbreviation for "Nonvolatile Oxide Semiconductor Random Access Memory (RAM)." NOSRAM is a type of memory in which memory cells are two-transistor (2T) or three-transistor (3T) gain cells, and the transistors are transistors (also called OS transistors) that use metal oxides in the channel formation region. OS transistors have extremely low leakage current, i.e., the current that flows between the source and drain in the off state. NOSRAM can be used as a nonvolatile memory by retaining a charge corresponding to data in the memory cell using its extremely low leakage current. NOSRAM is particularly suitable for arithmetic processing that requires repeated large amounts of data read operations because it can read stored data without destroying it (nondestructive read). NOSRAM can increase its data capacity by stacking layers, so it can be used as a large-scale cache memory, main memory, or storage memory, thereby improving the performance of semiconductor devices.
[0143] DOSRAM is an abbreviation for "Dynamic Oxide Semiconductor RAM" and refers to RAM with 1T (transistor) 1C (capacitance) type memory cells. DOSRAM is a DRAM formed using OS transistors, and is a memory that temporarily stores information sent from outside. DOSRAM is a memory that takes advantage of the small off-current of OS transistors.
[0144] In this specification and the like, the term "metal oxide" refers to an oxide of a metal in a broad sense. Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also referred to as oxide semiconductors or simply as OSs), and the like. For example, when a metal oxide is used in a semiconductor layer of a transistor, the metal oxide may be referred to as an oxide semiconductor.
[0145] The metal oxide contained in the channel formation region preferably contains indium (In). When the metal oxide contained in the channel formation region contains indium, the carrier mobility (electron mobility) of the OS transistor is increased. For example, indium oxide (InOx) or indium gallium zinc oxide (In-Ga-Zn oxide, also referred to as "IGZO") can be used for the channel formation region. The metal oxide contained in the channel formation region is preferably an oxide semiconductor containing element M. The element M is preferably at least one of aluminum (Al), gallium (Ga), and tin (Sn). Other elements applicable to element M include boron (B), silicon (Si), titanium (Ti), iron (Fe), nickel (Ni), germanium (Ge), yttrium (Y), zirconium (Zr), molybdenum (Mo), lanthanum (La), cerium (Ce), neodymium (Nd), hafnium (Hf), tantalum (Ta), and tungsten (W). However, the element M may be a combination of two or more of the above elements. The element M is, for example, an element having a high bond energy with oxygen. For example, the element M is an element having a higher bond energy with oxygen than indium. Furthermore, the metal oxide contained in the channel formation region is preferably a metal oxide containing zinc (Zn). Metal oxides containing zinc may be more likely to crystallize.
[0146] The metal oxide contained in the channel formation region is not limited to a metal oxide containing indium, but may be, for example, a metal oxide containing zinc but not indium, such as zinc tin oxide or gallium tin oxide, a metal oxide containing gallium, or a metal oxide containing tin.
[0147] [Processing section 130] The processing unit 130 has a function of performing processes such as calculation, analysis, and inference using data supplied from one or both of the input unit 110 and the storage unit 120. The processing unit 130 can supply the generated data (e.g., calculation results, analysis results, and inference results) to one or both of the storage unit 120 and the output unit 140.
[0148] The processing unit 130 has a function of acquiring data from the storage unit 120. The processing unit 130 can also have a function of recording or registering data in the storage unit 120.
[0149] The processing unit 130 may include, for example, an arithmetic circuit. The processing unit 130 may include, for example, a central processing unit (CPU). The processing unit 130 may also include a graphics processing unit (GPU). The processing unit 130 may also include a neural processing unit / neural network processing unit (NPU).
[0150] The processing unit 130 may have a microprocessor such as a DSP (Digital Signal Processor). The microprocessor may be realized by a PLD (Programmable Logic Device) such as an FPGA (Field Programmable Gate Array) or an FPAA (Field Programmable Analog Array). The processing unit 130 may also have a quantum processor. The processing unit 130 can perform various data processing and program control by interpreting and executing instructions from various programs using the processor. Programs that can be executed by the processor are stored in at least one of a memory area of the processor and the storage unit 120.
[0151] The processing unit 130 may include a main memory. The main memory may include at least one of a volatile memory such as a RAM and a non-volatile memory such as a ROM (Read Only Memory). The main memory may also include at least one of the above-mentioned NOSRAM and DOSRAM.
[0152] The RAM may be, for example, a DRAM or an SRAM, and a virtual memory space is allocated and used as a working space for the processing unit 130. The operating system, application programs, program modules, program data, lookup tables, and the like stored in the storage unit 120 are loaded into the RAM for execution. The data, programs, and program modules loaded into the RAM are each directly accessed and operated by the processing unit 130.
[0153] ROM can store BIOS (Basic Input / Output System) and firmware, which do not require rewriting. Examples of ROM include mask ROM, OTPROM (One-Time Programmable Read Only Memory), and EPROM (Erasable Programmable Read Only Memory). Examples of EPROM include UV-EPROM (Ultra-Violet Erasable Programmable Read Only Memory), which allows stored data to be erased by exposure to ultraviolet light, EEPROM (Electrically Erasable Programmable Read Only Memory), and flash memory.
[0154] The processing section 130 can include one or both of an OS transistor and a transistor having silicon in a channel formation region (Si transistor).
[0155] The processing unit 130 preferably includes an OS transistor. Because the off-state current of an OS transistor is extremely small, using the OS transistor as a switch for retaining charge (data) flowing into a capacitor functioning as a memory element can ensure a long data retention period. By utilizing this characteristic in at least one of the register and cache memory of the processing unit, the processing unit can be operated only when necessary, and can be turned off at other times by saving the information from the previous processing in the memory element. In other words, normally-off computing becomes possible, enabling the information processing system to consume less power.
[0156] It is preferable that the information processing device uses AI for at least some of its processing.
[0157] It is particularly preferable that the information processing device uses an artificial neural network (ANN, hereinafter also simply referred to as a neural network). A neural network is realized by a circuit (hardware) or a program (software).
[0158] In this specification, a neural network refers to a general model that mimics the neural circuit network of a living organism, determines the connection strength between neurons through learning, and has problem-solving capabilities. A neural network has an input layer, an intermediate layer (hidden layer), and an output layer.
[0159] In this specification and the like, when discussing neural networks, determining the connection strengths (also called weighting coefficients) between neurons from existing information may be referred to as "learning."
[0160] In this specification and the like, the act of constructing a neural network using connection strengths obtained by learning and deriving a new conclusion from it may be referred to as "inference."
[0161] [Output section 140] The output unit 140 can output at least one of the calculation result, analysis result, and inference result in the processing unit 130 to the outside of the information processing device. For example, the output unit 140 can transmit data via the network 51. Specifically, a device such as a personal computer equipped with a communication port or a communication function can be used as the output unit 140. Furthermore, a device equipped with a communication function may be used as both the input unit 110 and the output unit 140.
[0162] [Transmission Line 150] The transmission path 150 has a function of transmitting data. Data can be transmitted and received between the input unit 110, the storage unit 120, the processing unit 130, and the output unit 140 via the transmission path 150. Specifically, an external bus, a LAN, or the Internet can be used as the transmission path 150.
[0163] Note that this embodiment mode can be appropriately combined with other embodiment modes described in this specification.
[0164] (Embodiment 2) In this embodiment, an information processing method according to one embodiment of the present invention will be described with reference to FIGS.
[0165] FIG. 8 is a diagram illustrating an information processing method according to one embodiment of the present invention.
[0166] FIG. 9 is a diagram illustrating an information processing method according to one embodiment of the present invention, which is different from the information processing method described with reference to FIG.
[0167] <Example of information processing method 1> An information processing method according to one embodiment of the present invention includes steps S1 to S9 (see FIG. 8).
[0168] [Step S1] In step S1, the component 30 accepts an idea IDEA from a user and transmits it to the component 21. The user can input the idea IDEA into, for example, a text editor. Specifically, the user can input the idea IDEA in a predetermined format into code created using a hardware description language. For example, a character string input in the form of a comment sentence exemplified in the first embodiment can be used as the idea IDEA.
[0169] [Step S2] In step S2, the component 21 receives the idea IDEA and creates a directive Pt_1. The directive Pt_1 includes the idea IDEA and a command g1() that generates a code snippet CS_0 from the idea IDEA. For example, the sentence exemplified in the first embodiment can be used for the directive Pt_1.
[0170] [Step S3] In step S3, the component 21 sends the instruction Pt_1 to the component 20.
[0171] [Step S4] In step S4, the component 20 receives the directive Pt_1 and generates a code snippet CS_0 using the large-scale language model LLM. For example, the large-scale language model LLM can generate the code fragment exemplified in the first embodiment.
[0172] The large-scale language model LLM has a function of generating a code snippet CS_0 according to a directive Pt_1.
[0173] [Step S5] In step S5, the component 20 sends the code snippet CS_0 to the component 21.
[0174] [Step S6] In step S6, the component 21 receives the code snippet CS_0 and creates a query Que. The query Que includes the code snippet CS_0.
[0175] [Step S7] In step S7, the component 21 uses the search engine SE to find the relevant code snippet CS_R.
[0176] The component 21 comprises a search engine SE and an index INDX.
[0177] The search engine SE has a function of using the index INDX to find related code snippets CS_R related to the query Que, and a function of calculating a similarity DoS_1.
[0178] The index INDX includes the document Doc_1, which includes the code snippet CS_1(0), and the related code snippet CS_R includes the code snippet CS_1(0).
[0179] The similarity DoS_1(0) represents the strength of the relationship between the code snippet CS_0 and the code snippet CS_1(0).
[0180] [Step S8] In step S8, the component 21 creates a suggestion Sug_1 and sends the suggestion Sug_1 to the component 30. The suggestion Sug_1 includes the related code snippet CS_R.
[0181] [Step S9] In step S9, the component 30 accepts and provides the suggestion Sug_1.
[0182] This allows a code snippet CS_0 to be generated from a user's idea IDEA written in natural language in a text editor, for example. Furthermore, a user's text describing, for example, the function or specifications or both of an integrated circuit in natural language can be used as the idea IDEA. Furthermore, based on the idea IDEA, a code snippet CS_0 describing the register transfer level of the integrated circuit can be generated using, for example, a hardware description language.
[0183] Furthermore, the code snippet CS_1(0) related to the code snippet CS_0 generated from the idea IDEA can be found using the index INDX. Furthermore, for example, design assets can be stored in the index INDX. Furthermore, the code snippet CS_1(0) related to the code snippet CS_0 can be found from, for example, the design assets.
[0184] Furthermore, one or more code snippets related to the code snippet CS_0 can be used as the related code snippet CS_R. The related code snippet CS_R can be included in the proposal Sug_1 and provided to the user. Furthermore, code snippets with a proven track record can be found from design assets and provided to the user. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided.
[0185] <Example of information processing method 2> Moreover, an information processing method according to one embodiment of the present invention includes steps S1 to S9 (see FIG. 8). Note that information processing method example 2 differs from information processing method example 1 in that in step S1, not only idea IDEA but also design information DI_0 is accepted, and in step S6, in addition to code snippet CS_0, design information DI_0 is also used as query Que. Here, the differences will be described in detail, and the above description will be used for parts that use similar steps.
[0186] [Step S1] In step S1, the component 30 receives design information DI_0 and an idea IDEA from the user and transmits them to the component 21.
[0187] [Step S6] In step S6, the component 21 receives the design information DI_0 and the code snippet CS_0 and creates a query Que. The query Que includes the design information DI_0 and the code snippet CS_0.
[0188] As a result, the design information DI_0 can be added to the conditions for finding the related code snippet CS_R using the index INDX. Furthermore, for example, the operating frequency can be added to the conditions for finding the related code snippet CS_R using the index INDX. Furthermore, for example, the power consumption can be added to the conditions for finding the related code snippet CS_R using the index INDX. Furthermore, by adding the design information DI_0 to the search conditions, particularly useful information can be extracted from past technological assets. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided.
[0189] <Example 3 of information processing method> An information processing method according to one embodiment of the present invention includes steps S1 to S11 (see FIG. 9). Note that information processing method example 3 differs from information processing method example 1 or information processing method example 2 in that it includes steps S10 and S11. Here, the differences will be described in detail, and the above description will be used for parts that use similar steps.
[0190] [Step S10] In step S10 following step S9, the component 30 accepts a selection Slc from the user and adopts the code snippet CS_1(0) from the suggestion Sug_1. For example, the user can input the selection using a pointer.
[0191] [Step S11] In step S11, the component 30 adds the code snippet CS_1(0) after the idea IDEA. For example, the component 30 adds the code snippet CS_1(0) after the idea IDEA entered in a text editor.
[0192] This allows, for example, multiple code snippets to be suggested to the user. Also, a selected code snippet from the related code snippets CS_R can be added after an idea IDEA written in a text editor, for example. As a result, a novel information processing method that is highly convenient, useful, and reliable can be provided.
[0193] Note that this embodiment mode can be appropriately combined with other embodiment modes described in this specification. [Explanation of symbols]
[0194] Code_1 Code CS_0 Code Snippet CS_1 Code Snippet CS_2 Code Snippet CS_R related code snippets DI_0 Design information DI_1 Design information Doc_1 document Doc_2 document DoS_1 Similarity IDEA idea INDX Index LLM Large-Scale Language Model Pt_1 Instruction text Que Query SE Search Engine Slc selection information Sug_1 Suggestion Sug_2 suggestion InC Code 20 Components 21 Components 21A Subcomponent 21B Subcomponent 21C Subcomponent 30 Components 51 Network 110 Input section 120 Storage section 130 Processing section 140 Output section 150 Transmission Line
Claims
1. a first component; and a second component; and a third component, the first component has a function of receiving an idea and transmitting it to the third component, and a function of receiving a first suggestion and providing it; the second component has a function of receiving a directive and processing it using a large-scale language model, and a function of sending the first code snippet to the third component; the large-scale language model has a function of generating the first code snippet according to the directive; the third component comprises a first subcomponent, a second subcomponent, and a third subcomponent; the first subcomponent has a function of receiving the idea, creating the instruction statement, and sending the instruction statement to the second component; the directive includes the idea and an instruction to generate the first code snippet from the idea; the second subcomponent includes a function for receiving the first code snippet and creating a query, a search engine, and an index; the query includes the first code snippet; The search engine has a function of using the index to find relevant code snippets related to the query and a function of calculating a similarity score; the index includes documents; the document includes a second code snippet; the associated code snippet includes the second code snippet; the similarity represents a strength of association between the first code snippet and the second code snippet; the third subcomponent having a function of accepting the relevant code snippet and creating the first suggestion; and a function of sending the first suggestion to the first component; The first proposal includes the associated code snippet.
2. the first component has a function of receiving design information and transmitting it to the third component; the second subcomponent has a function of receiving the design information and the first code snippet and creating the query; The information processing system of claim 1 , wherein the query includes the design information and the first code snippet.
3. the first component accepts the selection information and adopts the second code snippet from the first proposal; The information processing system according to claim 1 or claim 2, further comprising: a function of adding the second code snippet after the idea.
4. The first component accepts unfinished code and sends it to the third component; the first component has a function of receiving and providing a second proposal; the second component has a function of receiving the incomplete code and generating a third code snippet, and a function of sending the third code snippet to the third component; the first subcomponent has a function of accepting the incomplete code and sending it to the second component; the third subcomponent having a function of accepting the third code snippet and creating the second suggestion; and a function of sending the second suggestion to the first component; The information processing system according to claim 1 or 2, wherein the second suggestion includes the third code snippet.
5. An information processing method having first to ninth steps, In the first step, a first component receives an idea and sends it to a second component; In the second step, the second component receives the idea and creates a directive; the directives include the idea and instructions for generating a first code snippet from the idea; In the third step, the second component transmits the instruction to a third component; In the fourth step, the third component receives the directive and generates the first code snippet using a large-scale language model; the large-scale language model has a function of generating the first code snippet according to the directive; In the fifth step, the third component sends the first code snippet to the second component; In the sixth step, the second component receives the first code snippet and creates a query; the query includes the first code snippet; In the seventh step, the second component uses a search engine to find relevant code snippets; the second component comprises the search engine and index; The search engine has a function of using the index to find the relevant code snippets related to the query and a function of calculating a similarity score; the index includes documents; the document includes a second code snippet; the associated code snippet includes the second code snippet; the similarity represents a strength of association between the first code snippet and the second code snippet; In the eighth step, the second component creates a proposal and sends the proposal to the first component; the proposal includes the relevant code snippet; In the ninth step, the first component accepts and provides the proposal.
6. In the first step, the first component receives design information and the idea and transmits them to the second component; In the sixth step, the second component receives the design information and the first code snippet and creates the query; The information processing method of claim 5 , wherein the query includes the design information and the first code snippet.
7. An information processing method having the first to eleventh steps, In a tenth step following the ninth step, the first component accepts the selection information and adopts the second code snippet from the proposal; The information processing method according to claim 5 or 6, wherein in the eleventh step, the first component adds the second code snippet after the idea.